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

[bazel.build] Problem with /external/extension #17633

Closed
aherrmann opened this issue Mar 1, 2023 · 0 comments
Closed

[bazel.build] Problem with /external/extension #17633

aherrmann opened this issue Mar 1, 2023 · 0 comments
Labels
area-Bzlmod Bzlmod-specific PRs, issues, and feature requests P2 We'll consider working on this in future. (Assignee optional) team-Documentation Documentation improvements that cannot be directly linked to other team labels team-ExternalDeps External dependency handling, remote repositiories, WORKSPACE file. type: documentation (cleanup)

Comments

@aherrmann
Copy link
Contributor

Page link:

https://bazel.build/external/extension

Problem description (include actual vs expected text, if applicable):

As is explained and motivated in #17564 (comment), module extensions are identified by the .bzl file they are imported from instead of reference equality on the underlying module extension object. This is different behavior from most other concepts in Starlark and something that extension authors should be aware of. It would be helpful to document this fact in the Module extensions documentation.

Where do you see this issue? (include link to specific section of the page, if applicable)

This fact is not documented in https://bazel.build/external/extension#extension_definition as of now.

Any other information you'd like to share?

I will open a PR shortly with a proposed addition to the documentation.

aherrmann added a commit to aherrmann/bazel that referenced this issue Mar 1, 2023
Closes bazelbuild#17633

Adds a section to the module extension documentation about the identity
of module extensions as described in
bazelbuild#17564 (comment).
@Wyverald Wyverald added type: documentation (cleanup) P2 We'll consider working on this in future. (Assignee optional) team-Documentation Documentation improvements that cannot be directly linked to other team labels area-Bzlmod Bzlmod-specific PRs, issues, and feature requests team-ExternalDeps External dependency handling, remote repositiories, WORKSPACE file. labels Mar 1, 2023
fweikert pushed a commit to fweikert/bazel that referenced this issue May 25, 2023
Closes bazelbuild#17633

Adds a section to the module extension documentation about the identity of module extensions as described in bazelbuild#17564 (comment).

Closes bazelbuild#17634.

PiperOrigin-RevId: 513206202
Change-Id: I8cdc8ef836b0a119911b04aa7efb4f9882c72f54
Wyverald pushed a commit that referenced this issue Jul 12, 2023
Closes #17633

Adds a section to the module extension documentation about the identity of module extensions as described in #17564 (comment).

Closes #17634.

PiperOrigin-RevId: 513206202
Change-Id: I8cdc8ef836b0a119911b04aa7efb4f9882c72f54
Wyverald added a commit that referenced this issue Jul 12, 2023
* ModqueryExecutor output logic

- `show` implementation added (mostly uses `Query`'s `TargetOutputter` which is now publicly exposed instead of package-private).

- `text`, `json` and `graphviz dot` outputters added

- Unit testing for `ModqueryExecutor`output logic

#15365

PiperOrigin-RevId: 542325901
Change-Id: I155a326465355432fbb4436b28aecc0697c3ffab

* Add module extensions to modquery

- Now includes extension usages and repositories inside query graphs along related options
- `show` now supports extension-generated repos
- Added new subcommand `show_extension` which displays the list of repos generated by that extension and its usages by each module
- Since this CL introduces a new argument type to modquery (`<extension>`), refactored modquery argument parsing logic (see `ModuleArg` and `ExtensionArg`). For a user-friendly description, see the `modquery.txt` file.
- Added some basic Python integration tests for modquery (more to come).

#15365

Co-authored-by: Xùdōng Yáng <[email protected]>
PiperOrigin-RevId: 547524086
Change-Id: If1364f01c3be871343edcd5cee94b1180b4b930f

* New documentation for external deps
Rewrote the "external dependencies" and "Bzlmod" pages, organizing them into a subcategory of pages on external dependencies instead.

PiperOrigin-RevId: 506646517
Change-Id: Ib3f1d6fb8c33c06e723aeef2eb0a5b7a223cc487

* Document module extension identity

Closes #17633

Adds a section to the module extension documentation about the identity of module extensions as described in #17564 (comment).

Closes #17634.

PiperOrigin-RevId: 513206202
Change-Id: I8cdc8ef836b0a119911b04aa7efb4f9882c72f54

* Minor verbiage changes about MVS + bzlmod

This paragraph was a bit misleading, particularly if you are skimming the docs rather than reading top to bottom. Out of context, it sounds like coexistence of multiple major versions of the same module works, when really the next paragraph clarifies that its the opposite.

I tweaked things a tad to make it comparison to Go a bit more obvious at the start of the paragraph.

I think it might be worth reworking this entire page to be less dependent on Go semantics and simple explain MVS + bzlmod semantics for bzlmod directly (I say this as a bazel user without a ton of go modules experience, so the comparisons aren't useful for all audiences).

Closes #17766.

PiperOrigin-RevId: 516532030
Change-Id: Ie8a327511c9c26697b2f45501ebf6bbc2b0e2944

* add "archiveType" source.json property to set the http_archive's "typ…

…e" value.

Closes #17789.

PiperOrigin-RevId: 517408668
Change-Id: I7f89db0d2587cde3ff9d77c8657d162981cf32dc

* Add a best practices section for extensions

PiperOrigin-RevId: 528789449
Change-Id: I1d1e57493fee0e805d953178bd18679fd7e040e4

* Allow overrides in non-root modules

They're simply ignored.

RELNOTES: Overrides specified by non-root modules no longer cause an error, and are silently ignored instead. They were originally treated as an error to allow for the future possibility of overrides in the transitive dependency graph working together; but we've deemed that infeasible (and even if it was, it'd be so complicated and confusing to users that it would not be a good addition).
PiperOrigin-RevId: 529095596
Change-Id: I8b9b7b570b405ee757554accf791d8e4c1ff6528

* Add links to external useful Bzlmod doc and talk

PiperOrigin-RevId: 529706168
Change-Id: Iece19039f41bdc80f4acd2621e0d1f5b2ce27ed0

* Add Bzlmod Migration Guide to bazel.build

Based on https://docs.google.com/document/d/1JtXIVnXyFZ4bmbiBCr5gsTH4-opZAFf5DMMb-54kES0/edit#heading=h.5mcn15i0e1ch, but with more code snippets as examples and re-organized the guide structure.

PiperOrigin-RevId: 543742388
Change-Id: If77ff96b7686f206dd09f5c2453151dee149b087

* `mod` command docs

#15365

Co-authored-by: Xùdōng Yáng <[email protected]>
PiperOrigin-RevId: 547554906
Change-Id: I02ab16fe4044888bb13b652e2e75dbfa4f55ead1

* Rename `modquery` to `mod`

- Since we're considering adding more subcommands that don't exactly "query", such as `bazel mod upgrade` etc.
- `bazel modquery show` is renamed to `bazel mod show_repo` (`show_extension` is unchanged)
- `bazel modquery tree` is renamed to `bazel mod graph`.

#15365

Co-authored-by: Xùdōng Yáng <[email protected]>
PiperOrigin-RevId: 547553222
Change-Id: I74145fdb87c05761692391e6ba47ce8d975f90a9

* fix test

---------

Co-authored-by: andyrinne12 <[email protected]>
Co-authored-by: andyrinne12 <[email protected]>
Co-authored-by: Andreas Herrmann <[email protected]>
Co-authored-by: Andy Hamon <[email protected]>
Co-authored-by: Jon Landis <[email protected]>
Co-authored-by: Richard Levasseur <[email protected]>
Co-authored-by: Googler <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area-Bzlmod Bzlmod-specific PRs, issues, and feature requests P2 We'll consider working on this in future. (Assignee optional) team-Documentation Documentation improvements that cannot be directly linked to other team labels team-ExternalDeps External dependency handling, remote repositiories, WORKSPACE file. type: documentation (cleanup)
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants