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

bzlmod prototype #1266

Merged
merged 2 commits into from
Jul 10, 2022
Merged

bzlmod prototype #1266

merged 2 commits into from
Jul 10, 2022

Conversation

fmeum
Copy link
Member

@fmeum fmeum commented Jun 8, 2022

Modules can use the go_dep module extension to define Go dependencies.

Only Go module dependencies are supported for now (go_dep.mod). HTTP
and VCS Go repositories can be implemented for the root module once
bazelbuild/bazel#15792 has been merged. They
should follow the semantics of archive_override/git_override.

@fmeum fmeum force-pushed the bzlmod branch 9 times, most recently from 70c1b52 to 8e1dfae Compare July 4, 2022 11:40
@fmeum fmeum requested a review from achew22 July 4, 2022 11:44
@fmeum
Copy link
Member Author

fmeum commented Jul 4, 2022

@achew22 @linzhp The prototype should work reasonably well now. The PR is still based on #1294.

@fmeum fmeum marked this pull request as ready for review July 4, 2022 11:44
@fmeum fmeum force-pushed the bzlmod branch 10 times, most recently from 6355eea to 07a3b08 Compare July 6, 2022 20:25
@fmeum
Copy link
Member Author

fmeum commented Jul 6, 2022

Rebased onto master, this can now be reviewed as is.

internal/bzlmod/go_deps.bzl Outdated Show resolved Hide resolved
internal/bzlmod/go_deps.bzl Outdated Show resolved Hide resolved
Modules can use the `go_deps` module extension to define Go dependencies.

Only Go module dependencies are supported for now (`go_deps.module`).

HTTP and VCS Go repositories can be implemented for the root module only
using the new bazel_module.is_root field added in
bazelbuild/bazel#15792 has been merged. They
should follow the semantics of archive_override/git_override.
importpaths = {}
for module_tag in module.tags.module:
if module_tag.importpath in importpaths:
fail("Duplicate importpath '{}' in module '{}'".format(module_tag.importpath, module.name))
Copy link
Contributor

Choose a reason for hiding this comment

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

When can this happen? Can a module have multiple module_tag?

Copy link
Member Author

Choose a reason for hiding this comment

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

Yes, there is nothing stopping a module from doing:

go_deps.module(importpath = "example.org/foo", version = "1.0.0")
go_deps.module(importpath = "example.org/foo", version = "1.1.0")

We could still apply MVS, but I would prefer emitting an error. Once we get to overrides, we would definitely get ambiguities.

internal/bzlmod/go_deps.bzl Outdated Show resolved Hide resolved
@fmeum fmeum merged commit e55d55e into bazel-contrib:master Jul 10, 2022
kreempuff referenced this pull request in kreempuff/rules_unreal_engine Jan 31, 2023
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [bazel_gazelle](https://togithub.com/bazelbuild/bazel-gazelle) |
http_archive | minor | `v0.26.0` -> `v0.29.0` |

---

### Release Notes

<details>
<summary>bazelbuild/bazel-gazelle</summary>

###
[`v0.29.0`](https://togithub.com/bazelbuild/bazel-gazelle/releases/tag/v0.29.0)

[Compare
Source](https://togithub.com/bazelbuild/bazel-gazelle/compare/v0.28.0...v0.29.0)

#### What's Changed

- bzlmod: Update Publish to BCR app config by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/bazel-gazelle/pull/1363](https://togithub.com/bazelbuild/bazel-gazelle/pull/1363)
- Fix: Skip default_visibility extension logic if no BUILD.bazel file
present by [@&#8203;dnathe4th](https://togithub.com/dnathe4th) in
[https://github.com/bazelbuild/bazel-gazelle/pull/1364](https://togithub.com/bazelbuild/bazel-gazelle/pull/1364)
- fix updateStmt makeslice panic by
[@&#8203;pcj](https://togithub.com/pcj) in
[https://github.com/bazelbuild/bazel-gazelle/pull/1371](https://togithub.com/bazelbuild/bazel-gazelle/pull/1371)
- bzlmod: Add missing `strip_prefix` field to `source.template.json` by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/bazel-gazelle/pull/1375](https://togithub.com/bazelbuild/bazel-gazelle/pull/1375)
- feat: support common test args in `gazelle_generation_test` by
[@&#8203;cgrindel](https://togithub.com/cgrindel) in
[https://github.com/bazelbuild/bazel-gazelle/pull/1377](https://togithub.com/bazelbuild/bazel-gazelle/pull/1377)
- Make the new facts pacakge public by
[@&#8203;linzhp](https://togithub.com/linzhp) in
[https://github.com/bazelbuild/bazel-gazelle/pull/1378](https://togithub.com/bazelbuild/bazel-gazelle/pull/1378)
- fix: add timeout message for `gazelle_generation_test` by
[@&#8203;cgrindel](https://togithub.com/cgrindel) in
[https://github.com/bazelbuild/bazel-gazelle/pull/1383](https://togithub.com/bazelbuild/bazel-gazelle/pull/1383)
- bzlmod: Add missing repository metadata by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/bazel-gazelle/pull/1387](https://togithub.com/bazelbuild/bazel-gazelle/pull/1387)
- Replace `cfg = "host"` with `cfg = "exec"` by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/bazel-gazelle/pull/1395](https://togithub.com/bazelbuild/bazel-gazelle/pull/1395)
- upgrade rules_go to 0.37.0 by
[@&#8203;JamyDev](https://togithub.com/JamyDev) in
[https://github.com/bazelbuild/bazel-gazelle/pull/1386](https://togithub.com/bazelbuild/bazel-gazelle/pull/1386)
- Fix embed on windows by [@&#8203;st3veV](https://togithub.com/st3veV)
in
[https://github.com/bazelbuild/bazel-gazelle/pull/1361](https://togithub.com/bazelbuild/bazel-gazelle/pull/1361)
- Update bazel-skylib to 1.3.0. by
[@&#8203;benjaminp](https://togithub.com/benjaminp) in
[https://github.com/bazelbuild/bazel-gazelle/pull/1367](https://togithub.com/bazelbuild/bazel-gazelle/pull/1367)
- Fix Directives anchor by [@&#8203;jmthvt](https://togithub.com/jmthvt)
in
[https://github.com/bazelbuild/bazel-gazelle/pull/1353](https://togithub.com/bazelbuild/bazel-gazelle/pull/1353)
- Use `patch` from `@bazel_tools//tools/build_defs/repo` by
[@&#8203;tyler-french](https://togithub.com/tyler-french) in
[https://github.com/bazelbuild/bazel-gazelle/pull/1381](https://togithub.com/bazelbuild/bazel-gazelle/pull/1381)
- Add link to BenchSci's rules_nodejs_gazelle extension by
[@&#8203;ColinHeathman](https://togithub.com/ColinHeathman) in
[https://github.com/bazelbuild/bazel-gazelle/pull/1369](https://togithub.com/bazelbuild/bazel-gazelle/pull/1369)
- bzlmod: Skip Go modules available as Bazel modules by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/bazel-gazelle/pull/1403](https://togithub.com/bazelbuild/bazel-gazelle/pull/1403)
- repo: opportunistically populate RemoteCache from go.mod by
[@&#8203;jayconrod](https://togithub.com/jayconrod) in
[https://github.com/bazelbuild/bazel-gazelle/pull/1396](https://togithub.com/bazelbuild/bazel-gazelle/pull/1396)
- Fix Gazelle with `--incompatible_disallow_empty_glob` by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/bazel-gazelle/pull/1405](https://togithub.com/bazelbuild/bazel-gazelle/pull/1405)
- chore: remove experimental warning from bzlmod module by
[@&#8203;alexeagle](https://togithub.com/alexeagle) in
[https://github.com/bazelbuild/bazel-gazelle/pull/1406](https://togithub.com/bazelbuild/bazel-gazelle/pull/1406)
- chore: add Swift extension to language list by
[@&#8203;cgrindel](https://togithub.com/cgrindel) in
[https://github.com/bazelbuild/bazel-gazelle/pull/1412](https://togithub.com/bazelbuild/bazel-gazelle/pull/1412)
- Update everything for release prep, add releaser tool by
[@&#8203;dnathe4th](https://togithub.com/dnathe4th) in
[https://github.com/bazelbuild/bazel-gazelle/pull/1373](https://togithub.com/bazelbuild/bazel-gazelle/pull/1373)
- adding go version and std_package_list to releaser by
[@&#8203;linzhp](https://togithub.com/linzhp) in
[https://github.com/bazelbuild/bazel-gazelle/pull/1415](https://togithub.com/bazelbuild/bazel-gazelle/pull/1415)

#### New Contributors

- [@&#8203;damingerdai](https://togithub.com/damingerdai) made their
first contribution in
[https://github.com/bazelbuild/bazel-gazelle/pull/1362](https://togithub.com/bazelbuild/bazel-gazelle/pull/1362)
- [@&#8203;st3veV](https://togithub.com/st3veV) made their first
contribution in
[https://github.com/bazelbuild/bazel-gazelle/pull/1361](https://togithub.com/bazelbuild/bazel-gazelle/pull/1361)
- [@&#8203;benjaminp](https://togithub.com/benjaminp) made their first
contribution in
[https://github.com/bazelbuild/bazel-gazelle/pull/1367](https://togithub.com/bazelbuild/bazel-gazelle/pull/1367)
- [@&#8203;jmthvt](https://togithub.com/jmthvt) made their first
contribution in
[https://github.com/bazelbuild/bazel-gazelle/pull/1353](https://togithub.com/bazelbuild/bazel-gazelle/pull/1353)
- [@&#8203;ColinHeathman](https://togithub.com/ColinHeathman) made their
first contribution in
[https://github.com/bazelbuild/bazel-gazelle/pull/1369](https://togithub.com/bazelbuild/bazel-gazelle/pull/1369)

**Full Changelog**:
bazel-contrib/bazel-gazelle@v0.28.0...v0.29.0

###
[`v0.28.0`](https://togithub.com/bazelbuild/bazel-gazelle/releases/tag/v0.28.0)

[Compare
Source](https://togithub.com/bazelbuild/bazel-gazelle/compare/v0.27.0...v0.28.0)

#### What's Changed

- language/proto: gen_known_imports creates structs instead of function
calls by [@&#8203;eric-skydio](https://togithub.com/eric-skydio) in
[https://github.com/bazelbuild/bazel-gazelle/pull/1333](https://togithub.com/bazelbuild/bazel-gazelle/pull/1333)
- Add DoneGeneratingRules language hook by
[@&#8203;illicitonion](https://togithub.com/illicitonion) in
[https://github.com/bazelbuild/bazel-gazelle/pull/1325](https://togithub.com/bazelbuild/bazel-gazelle/pull/1325)
- Allow configuring timeout of generation tests by
[@&#8203;illicitonion](https://togithub.com/illicitonion) in
[https://github.com/bazelbuild/bazel-gazelle/pull/1324](https://togithub.com/bazelbuild/bazel-gazelle/pull/1324)
- bug: Allow user-specified tags on gazelle rule by
[@&#8203;Helcaraxan](https://togithub.com/Helcaraxan) in
[https://github.com/bazelbuild/bazel-gazelle/pull/1308](https://togithub.com/bazelbuild/bazel-gazelle/pull/1308)
- Replace \_get_auth with Bazel's read_user_netrc by
[@&#8203;linzhp](https://togithub.com/linzhp) in
[https://github.com/bazelbuild/bazel-gazelle/pull/1338](https://togithub.com/bazelbuild/bazel-gazelle/pull/1338)
- language/go should consider default_visibility set by OtherGen
([#&#8203;783](https://togithub.com/bazelbuild/bazel-gazelle/issues/783))
by [@&#8203;dnathe4th](https://togithub.com/dnathe4th) in
[https://github.com/bazelbuild/bazel-gazelle/pull/1341](https://togithub.com/bazelbuild/bazel-gazelle/pull/1341)
- fix: pass `visibility` attribute for `gazelle` macro to resulting
`sh_binary` by [@&#8203;cgrindel](https://togithub.com/cgrindel) in
[https://github.com/bazelbuild/bazel-gazelle/pull/1340](https://togithub.com/bazelbuild/bazel-gazelle/pull/1340)
- Add additional bzlmod requirements to allow grpc protobufs to work by
[@&#8203;shs96c](https://togithub.com/shs96c) in
[https://github.com/bazelbuild/bazel-gazelle/pull/1345](https://togithub.com/bazelbuild/bazel-gazelle/pull/1345)
- bzlmod: Simplify go_grpc_library support by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/bazel-gazelle/pull/1346](https://togithub.com/bazelbuild/bazel-gazelle/pull/1346)
- bzlmod: Add support for custom `go_proto_library` compilers by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/bazel-gazelle/pull/1348](https://togithub.com/bazelbuild/bazel-gazelle/pull/1348)
- Add visibility extension to support recursive default_visibility
([#&#8203;783](https://togithub.com/bazelbuild/bazel-gazelle/issues/783))
by [@&#8203;dnathe4th](https://togithub.com/dnathe4th) in
[https://github.com/bazelbuild/bazel-gazelle/pull/1343](https://togithub.com/bazelbuild/bazel-gazelle/pull/1343)
- Make `gazelle_generation_test` respect out suffix when generating
golden files by [@&#8203;blorente](https://togithub.com/blorente) in
[https://github.com/bazelbuild/bazel-gazelle/pull/1352](https://togithub.com/bazelbuild/bazel-gazelle/pull/1352)
- Add size argument to `gazelle_generation_test` by
[@&#8203;charlesoconor](https://togithub.com/charlesoconor) in
[https://github.com/bazelbuild/bazel-gazelle/pull/1351](https://togithub.com/bazelbuild/bazel-gazelle/pull/1351)

#### New Contributors

- [@&#8203;eric-skydio](https://togithub.com/eric-skydio) made their
first contribution in
[https://github.com/bazelbuild/bazel-gazelle/pull/1333](https://togithub.com/bazelbuild/bazel-gazelle/pull/1333)
- [@&#8203;dnathe4th](https://togithub.com/dnathe4th) made their first
contribution in
[https://github.com/bazelbuild/bazel-gazelle/pull/1341](https://togithub.com/bazelbuild/bazel-gazelle/pull/1341)
- [@&#8203;cgrindel](https://togithub.com/cgrindel) made their first
contribution in
[https://github.com/bazelbuild/bazel-gazelle/pull/1340](https://togithub.com/bazelbuild/bazel-gazelle/pull/1340)
- [@&#8203;shs96c](https://togithub.com/shs96c) made their first
contribution in
[https://github.com/bazelbuild/bazel-gazelle/pull/1345](https://togithub.com/bazelbuild/bazel-gazelle/pull/1345)
- [@&#8203;blorente](https://togithub.com/blorente) made their first
contribution in
[https://github.com/bazelbuild/bazel-gazelle/pull/1352](https://togithub.com/bazelbuild/bazel-gazelle/pull/1352)
- [@&#8203;charlesoconor](https://togithub.com/charlesoconor) made their
first contribution in
[https://github.com/bazelbuild/bazel-gazelle/pull/1351](https://togithub.com/bazelbuild/bazel-gazelle/pull/1351)

**Full Changelog**:
bazel-contrib/bazel-gazelle@v0.27.0...v0.28.0

###
[`v0.27.0`](https://togithub.com/bazelbuild/bazel-gazelle/releases/tag/v0.27.0)

[Compare
Source](https://togithub.com/bazelbuild/bazel-gazelle/compare/v0.26.0...v0.27.0)

#### What's Changed

- Use repo-relative labels everywhere by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/bazel-gazelle/pull/1294](https://togithub.com/bazelbuild/bazel-gazelle/pull/1294)
- Fix RST URL errors for rules_jvm by
[@&#8203;qaisjp](https://togithub.com/qaisjp) in
[https://github.com/bazelbuild/bazel-gazelle/pull/1296](https://togithub.com/bazelbuild/bazel-gazelle/pull/1296)
- bzlmod prototype by [@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/bazel-gazelle/pull/1266](https://togithub.com/bazelbuild/bazel-gazelle/pull/1266)
- bzlmod: Do not create a repository with an invalid name by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/bazel-gazelle/pull/1304](https://togithub.com/bazelbuild/bazel-gazelle/pull/1304)
- language/go: Add support for //go:build tags by
[@&#8203;thempatel](https://togithub.com/thempatel) in
[https://github.com/bazelbuild/bazel-gazelle/pull/1243](https://togithub.com/bazelbuild/bazel-gazelle/pull/1243)
- Unwrap `go list -m -json` errors correctly by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/bazel-gazelle/pull/1301](https://togithub.com/bazelbuild/bazel-gazelle/pull/1301)
- Make one more label repo-relative by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/bazel-gazelle/pull/1297](https://togithub.com/bazelbuild/bazel-gazelle/pull/1297)
- bzlmod: Add go_deps.from_file by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/bazel-gazelle/pull/1300](https://togithub.com/bazelbuild/bazel-gazelle/pull/1300)
- language: add BaseLang by
[@&#8203;sluongng](https://togithub.com/sluongng) in
[https://github.com/bazelbuild/bazel-gazelle/pull/1303](https://togithub.com/bazelbuild/bazel-gazelle/pull/1303)
- Allow adding arguments to Rules by
[@&#8203;illicitonion](https://togithub.com/illicitonion) in
[https://github.com/bazelbuild/bazel-gazelle/pull/1310](https://togithub.com/bazelbuild/bazel-gazelle/pull/1310)
- Register and parse flags before calling Kinds/Loads by
[@&#8203;illicitonion](https://togithub.com/illicitonion) in
[https://github.com/bazelbuild/bazel-gazelle/pull/1318](https://togithub.com/bazelbuild/bazel-gazelle/pull/1318)
- SortMacro() should also sort the Loads by
[@&#8203;tyler-french](https://togithub.com/tyler-french) in
[https://github.com/bazelbuild/bazel-gazelle/pull/1321](https://togithub.com/bazelbuild/bazel-gazelle/pull/1321)
- bzlmod: Fix canonical label literal after Bazel change by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/bazel-gazelle/pull/1322](https://togithub.com/bazelbuild/bazel-gazelle/pull/1322)
- update-repos: don't add repositories declared with gazelle:repository…
by [@&#8203;tyler-french](https://togithub.com/tyler-french) in
[https://github.com/bazelbuild/bazel-gazelle/pull/1326](https://togithub.com/bazelbuild/bazel-gazelle/pull/1326)
- Look in call args for loadable symbols by
[@&#8203;illicitonion](https://togithub.com/illicitonion) in
[https://github.com/bazelbuild/bazel-gazelle/pull/1317](https://togithub.com/bazelbuild/bazel-gazelle/pull/1317)
- SortMacro() should also sort rules by Kind() by
[@&#8203;tyler-french](https://togithub.com/tyler-french) in
[https://github.com/bazelbuild/bazel-gazelle/pull/1327](https://togithub.com/bazelbuild/bazel-gazelle/pull/1327)
- bzlmod: Fix missing .format in go_deps by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/bazel-gazelle/pull/1330](https://togithub.com/bazelbuild/bazel-gazelle/pull/1330)
- bzlmod: Depend on rules_proto by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/bazel-gazelle/pull/1331](https://togithub.com/bazelbuild/bazel-gazelle/pull/1331)

#### New Contributors

- [@&#8203;qaisjp](https://togithub.com/qaisjp) made their first
contribution in
[https://github.com/bazelbuild/bazel-gazelle/pull/1296](https://togithub.com/bazelbuild/bazel-gazelle/pull/1296)

**Full Changelog**:
bazel-contrib/bazel-gazelle@v0.26.0...v0.27.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 this update
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://app.renovatebot.com/dashboard#github/kreempuff/rules_unreal_engine).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNC4xMTcuMSIsInVwZGF0ZWRJblZlciI6IjM0LjExNy4xIn0=-->
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.

2 participants