Skip to content
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

Add support for override_target when using bzlmod #2683

Merged
merged 3 commits into from
Jun 10, 2024

Conversation

AmeliasCode
Copy link
Contributor

The ability to override crate targets when using crate_universe was added here: #2674

However, this change did not expose that functionality when using bzlmod.

This change adds that functionality in. Because of the limited set of options we have for dictionaries in tag classes, I had to split out "override_targets" into four different options, each taking a Label.

I have added in an example based on the example given in #2674 , but using bzlmod instead. I have also tested that example and found it to be working.

Copy link
Collaborator

@illicitonion illicitonion left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks, this LGTM! (@matts1 do you have strong feelings on the API here?)

Could you add a new entry to .bazelci/presubmit.yml which runs this on our CI (similar to the existing bzlmod_no_cargo entry)?

Other maintainers (non-blocking for this change): I'm not sure whether we want to consolidate our bzlmod examples into a single workspace with many crate_universe calls, or keep having nice separate independent small workspaces (and accordingly many bazelci top-level tasks) - any strong thoughts? cc @UebelAndre @hlopko @scentini @krasimirgg @matts1

@illicitonion illicitonion mentioned this pull request Jun 7, 2024
@AmeliasCode
Copy link
Contributor Author

@illicitonion Thanks! I've gone ahead and added the tests that you mentioned, it looks like it worked but please let me know if I missed anything.

Copy link
Collaborator

@illicitonion illicitonion left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks!

@illicitonion illicitonion added this pull request to the merge queue Jun 10, 2024
Merged via the queue into bazelbuild:main with commit bbbeb68 Jun 10, 2024
3 checks passed
rrbutani pushed a commit to bazel-contrib/toolchains_llvm that referenced this pull request Jun 10, 2024
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| rules_rust | bazel_dep | minor | `0.45.1` -> `0.46.0` |
| [rules_rust](https://github.com/bazelbuild/rules_rust) |
http_archive | minor | `0.45.1` -> `0.46.0` |

---

### Release Notes

<details>
<summary>bazelbuild/rules_rust (rules_rust)</summary>

###
[`v0.46.0`](https://github.com/bazelbuild/rules_rust/releases/tag/0.46.0)

[Compare
Source](https://github.com/bazelbuild/rules_rust/compare/0.45.1...0.46.0)

##### 0.46.0

```python
load("@&#8203;bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
http_archive(
    name = "rules_rust",
    integrity = "sha256-F8U7+AC5MvMtPKGdLLnorVM84cDXKfDRgwd7/dq3rUY=",
    urls = ["https://github.com/bazelbuild/rules_rust/releases/download/0.46.0/rules_rust-v0.46.0.tar.gz"],
)
```

Additional documentation can be found at:
https://bazelbuild.github.io/rules_rust/#setup

##### What's Changed

- fix: default rustfmt version to supplied rust version by
[@&#8203;mattem](https://github.com/mattem) in
[bazelbuild/rules_rust#2660
- Use repo-mapping-aware runfiles API in rust-analyzer by
[@&#8203;dzbarsky](https://github.com/dzbarsky) in
[bazelbuild/rules_rust#2666
- Fix protobuf generated srcs to include all sources by
[@&#8203;matts1](https://github.com/matts1) in
[bazelbuild/rules_rust#2676
- Fix cargo_build_script executables. by
[@&#8203;matts1](https://github.com/matts1) in
[bazelbuild/rules_rust#2675
- crate_universe: Don't include crate name in build script path. by
[@&#8203;criemen](https://github.com/criemen) in
[bazelbuild/rules_rust#2663
- Ensure dynamic library dependencies end up in the runfiles directory
by [@&#8203;EdSchouten](https://github.com/EdSchouten) in
[bazelbuild/rules_rust#2671
- use bazel_ci_rules bazel_dep instead of http_archive by
[@&#8203;mmorel-35](https://github.com/mmorel-35) in
[bazelbuild/rules_rust#2678
- Ensure that running `bazel build` on a cargo_build_script target
actually runs the build script by
[@&#8203;matts1](https://github.com/matts1) in
[bazelbuild/rules_rust#2680
- Allow overriding crate universe packages to local packages by
[@&#8203;ograff](https://github.com/ograff) in
[bazelbuild/rules_rust#2674
- Depend on a copy of rustfmt for the target by
[@&#8203;EdSchouten](https://github.com/EdSchouten) in
[bazelbuild/rules_rust#2685
- \[Bugfix] Convert metadata keys to screaming snake case instead of
screaming kebab case in `cargo_build_script_runner` by
[@&#8203;Pagten](https://github.com/Pagten) in
[bazelbuild/rules_rust#2682
- Add support for override_target when using bzlmod by
[@&#8203;AmeliasCode](https://github.com/AmeliasCode) in
[bazelbuild/rules_rust#2683
- Release 0.46.0 by
[@&#8203;illicitonion](https://github.com/illicitonion) in
[bazelbuild/rules_rust#2686

##### New Contributors

- [@&#8203;mattem](https://github.com/mattem) made their first
contribution in
[bazelbuild/rules_rust#2660
- [@&#8203;EdSchouten](https://github.com/EdSchouten) made their first
contribution in
[bazelbuild/rules_rust#2671
- [@&#8203;mmorel-35](https://github.com/mmorel-35) made their first
contribution in
[bazelbuild/rules_rust#2678
- [@&#8203;ograff](https://github.com/ograff) made their first
contribution in
[bazelbuild/rules_rust#2674
- [@&#8203;Pagten](https://github.com/Pagten) made their first
contribution in
[bazelbuild/rules_rust#2682

**Full Changelog**:
bazelbuild/rules_rust@0.45.1...0.46.0

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about these
updates again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/bazel-contrib/toolchains_llvm).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4zOTMuMCIsInVwZGF0ZWRJblZlciI6IjM3LjM5My4wIiwidGFyZ2V0QnJhbmNoIjoibWFzdGVyIiwibGFiZWxzIjpbXX0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
@matts1
Copy link
Contributor

matts1 commented Jun 10, 2024

Bit late to the party, but I think the API is probably done correctly.

Re your question about workspaces, I'm on the fence about that. It's much easier to maintain a single module, and doing so should make CI much more reliable (and cheaper to run). However, from a "this is an example for people to copy" perspective, it can make things much more confusing, as it can be hard to tell which code is related to which feature.

Interested to hear other people's thoughts.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants