-
Notifications
You must be signed in to change notification settings - Fork 4.1k
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
--incompatible_use_plus_in_repo_names
#23127
Labels
area-Bzlmod
Bzlmod-specific PRs, issues, and feature requests
breaking-change-8.0
incompatible-change
Incompatible/breaking change
migration-ready
Incompatible flag is ready for migration with Bazel rolling releases or Bazel@last_green
P1
I'll work on this now. (Assignee required)
team-ExternalDeps
External dependency handling, remote repositiories, WORKSPACE file.
type: process
Comments
Wyverald
added
P1
I'll work on this now. (Assignee required)
type: process
team-ExternalDeps
External dependency handling, remote repositiories, WORKSPACE file.
area-Bzlmod
Bzlmod-specific PRs, issues, and feature requests
and removed
untriaged
labels
Jul 26, 2024
Wyverald
added
the
migration-ready
Incompatible flag is ready for migration with Bazel rolling releases or Bazel@last_green
label
Jul 29, 2024
7.3.0rc1 is working well for us, fixes #22865, thank you for your work on this! |
plobsing
added a commit
to plobsing/rules_jvm_external
that referenced
this issue
Aug 4, 2024
…imiter The delimiter used in canonical repo names is changing from `~` to `+`.[^1] This logic, which tries to normalize query results for the purposes of diff-testing against golden results, label parsing seems unavoidable, so we fall back to the non-preferred approach of supporting both delimiters in our patterns. Also, refine the patterns to be more exact and better reflect the intent to only act agaisnt the repo-name part of each label: * anchor the patterns to match only at start of each label * only operate before the first `/` [^1]: bazelbuild/bazel#23127
plobsing
added a commit
to plobsing/rules_jvm_external
that referenced
this issue
Aug 4, 2024
The delimiter used in Bzlmod for repo names has never been stable and will be changing soon.[^1] String-parsing to derive shorter, user-friendly names for labels will be broken by this change and is brittle in general. Instead, passing the right values down from the contexts where the true values are known is preferred. [^1]: bazelbuild/bazel#23127
Wyverald
pushed a commit
to bazel-contrib/rules_jvm_external
that referenced
this issue
Aug 5, 2024
…imiter (#1211) The delimiter used in canonical repo names is changing from `~` to `+`.[^1] This logic, which tries to normalize query results for the purposes of diff-testing against golden results, label parsing seems unavoidable, so we fall back to the non-preferred approach of supporting both delimiters in our patterns. Also, refine the patterns to be more exact and better reflect the intent to only act agaisnt the repo-name part of each label: * anchor the patterns to match only at start of each label * only operate before the first `/` [^1]: bazelbuild/bazel#23127
bazel-io
pushed a commit
to bazel-io/bazel
that referenced
this issue
Sep 10, 2024
Especially due to bazelbuild#23127, older marker files may contain entries that don't even parse correctly. Instead of crashing Bazel, we should signal a refetch. Fixes bazelbuild#23322. Closes bazelbuild#23336. PiperOrigin-RevId: 666416942 Change-Id: Ie5507654f69825d93f9523d9c209d417fb3cdaf6
iancha1992
pushed a commit
to bazel-io/bazel
that referenced
this issue
Sep 12, 2024
Especially due to bazelbuild#23127, older marker files may contain entries that don't even parse correctly. Instead of crashing Bazel, we should signal a refetch. Fixes bazelbuild#23322. Closes bazelbuild#23336. PiperOrigin-RevId: 666416942 Change-Id: Ie5507654f69825d93f9523d9c209d417fb3cdaf6
yukawa
added a commit
to yukawa/mozc
that referenced
this issue
Oct 16, 2024
There is an upcoming behavior change in bzlmod --incompatible_use_plus_in_repo_names, which changes the separator character in canonical repo names from tilde `~` to plus `+` due to I/O performance issue in Windows. * bazelbuild/bazel#23127 The above flag is planned to be enabled by default in Bazel 8.0, which is expected to be released on November 2024. Let's update our custom repository rules so that they can continue working with Bazel 8.0.
yukawa
added a commit
to yukawa/mozc
that referenced
this issue
Oct 16, 2024
There is an upcoming behavior change in bzlmod --incompatible_use_plus_in_repo_names, which changes the separator character in canonical repo names from tilde `~` to plus `+` due to I/O performance issue in Windows. * bazelbuild/bazel#23127 The above flag is planned to be enabled by default in Bazel 8.0, which is expected to be released on November 2024. Let's update our custom repository rules so that they can continue working with Bazel 8.0.
hiroyuki-komatsu
pushed a commit
to google/mozc
that referenced
this issue
Oct 16, 2024
There is an upcoming behavior change in bzlmod --incompatible_use_plus_in_repo_names, which changes the separator character in canonical repo names from tilde `~` to plus `+` due to I/O performance issue in Windows. * bazelbuild/bazel#23127 The above flag is planned to be enabled by default in Bazel 8.0, which is expected to be released on November 2024. Let's update our custom repository rules so that they can continue working with Bazel 8.0. PiperOrigin-RevId: 686421798
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
breaking-change-8.0
incompatible-change
Incompatible/breaking change
migration-ready
Incompatible flag is ready for migration with Bazel rolling releases or Bazel@last_green
P1
I'll work on this now. (Assignee required)
team-ExternalDeps
External dependency handling, remote repositiories, WORKSPACE file.
type: process
Motivation
In #22865, it was discovered that the
~
character currently used as a separator in canonical repo names can have significant performance impact on Windows.We reviewed all potential separators and found that
+
could serve as a good replacement.Description
When set to true, the flag causes the canonical repo name format to use
+
wherever~
is currently used. That is:$NAME+
$MODULE+$EXTENSION_NAME+$APPARENT_REPO_NAME
Incompatible Flag
--incompatible_use_plus_in_repo_names
Migration Guide
Ideally, people should have already not been depending on the canonical repo name format, as it was declared to be unstable.
But for those who have been parsing repo names, especially those relying on the existence of a
~
character, should try to switch to other alternatives:~
and+
.In which Bazel LTS version will this incompatible change be enabled?
Bazel 8
Additional Context
Note that in Bazel 8, this flag will be flipped to
true
by default, and the flag will immediately become a no-op (that is, setting it tofalse
will have no effect). This is to avoid having to maintain the different repo name formats for another LTS cycle, especially as it was never a stable API to begin with.TODO List
+
instead of~
as the canonical repo name separator #23098)+
instead of~
as the canonical repo name separator #23098)The text was updated successfully, but these errors were encountered: