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

Minor verbiage changes about MVS + bzlmod #17766

Closed
wants to merge 1 commit into from
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 14 additions & 14 deletions site/en/external/module.md
Original file line number Diff line number Diff line change
Expand Up @@ -91,19 +91,19 @@ flag to explicitly allow the yanked version.

## Compatibility level

MVS's assumption about backwards compatibility works because it treats backwards
incompatible versions of a module as a separate module. In terms of SemVer, that
means `A 1.x` and `A 2.x` are considered distinct modules, and can coexist in
the resolved dependency graph. This is, in turn, made possible by encoding the
major version in the package path in Go, so there aren't any compile-time or
linking-time conflicts.

Bazel cannot provide such guarantees, so it needs the "major version" number in
order to detect backwards incompatible versions. This number is called the
*compatibility level*, and is specified by each module version in its `module()`
directive. With this information, Bazel can throw an error when it detects that
versions of the same module with different compatibility levels exist in the
resolved dependency graph.
In Go, MVS's assumption about backwards compatibility works because it treats
backwards incompatible versions of a module as a separate module. In terms of
SemVer, that means `A 1.x` and `A 2.x` are considered distinct modules, and can
coexist in the resolved dependency graph. This is, in turn, made possible by
encoding the major version in the package path in Go, so there aren't any
compile-time or linking-time conflicts.

Bazel, however, cannot provide such guarantees, so it needs the "major version"
number in order to detect backwards incompatible versions. This number is called
the *compatibility level*, and is specified by each module version in its
`module()` directive. With this information, Bazel can throw an error when it
detects that versions of the same module with different compatibility levels
exist in the resolved dependency graph.

## Overrides

Expand Down Expand Up @@ -190,4 +190,4 @@ dependencies. This helps prevent accidental breakages due to changes in
transitive dependencies.

[Module extensions](/external/extension) can also introduce additional repos
into the visible scope of a module.
into the visible scope of a module.