-
Notifications
You must be signed in to change notification settings - Fork 435
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Shard rules_rust into multiple bzlmod modules #2882
Comments
Sounds good to me! I guess we would still release all of these at the same time (i.e. there would always be matching versions)? Or would we move to more granular releases of each? I think my only concern is that we'll need to be a little careful around compatibility (e.g. if we add/remove attrs to But I'm happy to do the splitting up and work out the exact details about compatibility in the future - the bzlmod ecosystem as a whole is still working out compatibility somewhat... |
I would keep everything at the same version and recommend folks keep them all in sync.
Yeah, I figured this would be unlikely and we could advise folks to keep versions in sync.
If there are no major objections then I think it'd be good. Do you have thoughts on moving any code around? I could do some moves and add the commit to a |
Happy to move code around however makes sense :) Probably easier to discuss in a proposed PR? |
Looks reasonable to me. |
Instead of have a workspace for each extension, I've opted to create The design still not yet final so any suggestions are welcome! |
With the support of the BazelCI team we're able to move forward with the original proposal! There will no longer be a |
Awesome! |
#3007) This change moves the `bindgen`, `proto`, and `wasm_bindgen` sub-packages into individual workspaces within the `extensions` directory. The intent is improve ease of maintenance of both core and extension Rust rules by ensuring changes to extensions have no impact on the core rules. Core rules should *never* depend on extensions. Load statements should be updated according to the following table: | before | after | | --- | --- | | `@rules_rust//bindgen` | `@rules_rust_bindgen//` | | `@rules_rust//proto/prost` | `@rules_rust_prost//` | | `@rules_rust//proto/protobuf` | `@rules_rust_protobuf//` | | `@rules_rust//wasm_bindgen` | `@rules_rust_wasm_bindgen//` | closes #2882
It seems to me that the
MODULE.bazel
file is getting a bit unwieldy and rust is having to declare dependencies for things not all users want or need.rules_rust/MODULE.bazel
Lines 37 to 45 in 350d249
rules_rust/MODULE.bazel
Lines 63 to 160 in 350d249
rules_rust/MODULE.bazel
Lines 170 to 180 in 350d249
To improve maintainability and to keep the dependency trees tight, I'm wondering if it'd be better to have different bzlmod extensions for the various packages within
rules_rust
. Concretely, I'm proposing that@rules_rust//bindgen
become@rules_rust_bindgen
and be an independent module developers can choose to include but it's dependencies would not be a part of@rules_rust
.The scope of the proposed changed:
@rules_rust//bindgen
@rules_rust_bindgen
@rules_rust//proto/protobuf
@rules_rust_protobuf
@rules_rust//proto/prost
@rules_rust_prost
@rules_rust//wasm_bindgen
@rules_rust_wasm_bindgen
The
@rules_rust//crate_universe
,@rules_rust//cargo
,@rules_rust//tools
, and@rules_rust//util
and any dependencies they may have would remain the same (in core@rules_rust
).I don't have strong opinions on changes to repo structure but I'm thinking it would be good to create an
extensions
directory wherebindgen
,proto
, andwasm_bindgen
could be moved into which I think would make it easier to add additional integrations down the line.The text was updated successfully, but these errors were encountered: