-
Notifications
You must be signed in to change notification settings - Fork 2.6k
feat: FRAME
umbrella crate.
#14137
base: master
Are you sure you want to change the base?
feat: FRAME
umbrella crate.
#14137
Conversation
This pull request has been mentioned on Polkadot Forum. There might be relevant details there: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I really like this idea.
w.r.t. the concern that we'll have too many 'minor' versions: is there a reason that we'd need to roll a new release/version every commit? what if instead, once or twice a week we took the current master and rolled a release from that, allowing us to pack multiple breaking changes into a single bump. the intermediary commits could optionally be released under a beta/rc version.
If we're going for lots of convenience, we might want to take another look at typical |
This is a cool effort. I'm glad to see you trying this. I remember Ben dreaming of a similar re-export crate several years ago.
Maybe
When I read this, alarms go off in my head. Why two sets of docs? Why not make the existing docs better and use the good ones in both places (ideally without copy-pasting if possible). What if a design change is made to frame and the developer only updates the docs in one place. What if someone stumbles upon the not-as-good docs and decides to make them better? All just things to think about. Again I like this idea overall. If you are so inclined you can look at the |
Co-authored-by: Bastian Köcher <git@kchr.de>
Co-authored-by: Bastian Köcher <git@kchr.de>
bot fmt |
@kianenigma https://gitlab.parity.io/parity/mirrors/substrate/-/jobs/3201202 was started for your command Comment |
@kianenigma Command |
The CI pipeline was cancelled due to failure one of the required jobs. |
sc-cli = { path = "../../../client/cli" } | ||
sc-executor = { path = "../../../client/executor" } | ||
sc-network = { path = "../../../client/network" } | ||
sc-service = { path = "../../../client/service" } | ||
sc-telemetry = { path = "../../../client/telemetry" } | ||
sc-transaction-pool = { path = "../../../client/transaction-pool" } | ||
sc-transaction-pool-api = { path = "../../../client/transaction-pool/api" } | ||
sc-consensus = { path = "../../../client/consensus/common" } |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just thinking if there should be actual substrate::client
and/or substrate::primitives
namespaces?
Re-exporting everything from the substrate
crate could work, but not sure if its a good or horrible idea 😆
Hey, is anyone still working on this? Due to the inactivity this issue has been automatically marked as stale. It will be closed if no further activity occurs. Thank you for your contributions. |
This brings in a new crate that is a mere re-export of common FRAME APIs into a new crate, and re-exports them, with better documentation.
This is WIP experiment. My initial goal is to build paritytech/polkadot-sdk-docs#3 using only this crate.
Whether it would be feasible to actually build things with it, I am not sure. Consider this an experiment for now. As a next step, I can re-build
node-template/pallets
using this crate.An end-goal is something along the lines of:
frame = { version = "X" }
is the umbrella crate with which you should be a frame palletframe = { version = "X", feature = "runtime" }
is the umbrella crate to build a frame-based runtime.sp_io
andsp_core
directly.frame
.frame
itself, with a matching version.substrate-node
should be the umbrella crate for all thingssc-*
related.parachain-sdk
orcumulus
(name tbd) should be the umbrella crate for turning both of the above into a parachain PVF and Collator, as opposed to a normal runtime and node respectively.You can see an example pallet built with this method here, and an example runtime here.
frame-macros
to work without needingframe-support
,frame-system
and such being in scope. polkadot-sdk#173impl_runtime_apis
does not work ifsp-api
is not in scope #14145frame-api
?