Skip to content

Commit

Permalink
[6.3.0] Bzlmod documentation updates and modquery support (#18921)
Browse files Browse the repository at this point in the history
* 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]>
  • Loading branch information
8 people authored Jul 12, 2023
1 parent 62799ed commit af1b791
Show file tree
Hide file tree
Showing 63 changed files with 7,601 additions and 3,117 deletions.
6 changes: 2 additions & 4 deletions site/en/_book.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -108,10 +108,6 @@ upper_tabs:
path: /build/style-guide
- title: Share variables
path: /build/share-variables
- title: External dependencies
path: /build/external
- title: Manage dependencies with Bzlmod
path: /build/bzlmod
- title: Recommended rules
path: /community/recommended-rules
- heading: Running Bazel
Expand All @@ -136,6 +132,8 @@ upper_tabs:
path: /external/extension
- title: Module lockfile
path: /external/lockfile
- title: '`mod` command'
path: /external/mod-command
- title: Bzlmod migration guide
path: /external/migration
- title: Advanced topics
Expand Down
2 changes: 1 addition & 1 deletion site/en/about/roadmap.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ Q4 brings Bazel 6.0 — the new [long term support (LTS)](https://bazel.build/re

### Bzlmod: external dependency management system

[Bzlmod](https://bazel.build/docs/bzlmod) automatically resolves transitive dependencies, allowing projects to scale while staying fast and resource-efficient. Introduced experimentally in Bazel 5.0, Bzlmod will be generally available and provide a solution for the [diamond dependency problem](https://docs.google.com/document/d/1moQfNcEIttsk6vYanNKIy3ZuK53hQUFq1b1r0rmsYVg/edit#heading=h.lgyp7ubwxmjc).
[Bzlmod](https://bazel.build/external/overview#bzlmod) automatically resolves transitive dependencies, allowing projects to scale while staying fast and resource-efficient. Introduced experimentally in Bazel 5.0, Bzlmod will be generally available and provide a solution for the [diamond dependency problem](https://docs.google.com/document/d/1moQfNcEIttsk6vYanNKIy3ZuK53hQUFq1b1r0rmsYVg/edit#heading=h.lgyp7ubwxmjc).

* Bzlmod goes from ‘experimental’ to ‘generally available’
* Includes support for `rules\_jvm\_external`, allowing users to download Maven dependencies for Java projects
Expand Down
443 changes: 0 additions & 443 deletions site/en/build/bzlmod.md

This file was deleted.

368 changes: 0 additions & 368 deletions site/en/build/external.md

This file was deleted.

Loading

0 comments on commit af1b791

Please sign in to comment.