Replies: 7 comments 16 replies
-
Putting external repositories and the main repository on an equal footing is not necessarily a benefit. For example, in Pigweed we use the fact that external repos are under Incidentally, this should ideally be done through toolchain configuration rather than |
Beta Was this translation helpful? Give feedback.
-
I agree that having two code paths is very unfortunate from a testing surface standpoint. I share the sentiment around the sibling layout being cleaner, but pragmatically speaking, if we can't find the time/energy to do the migration soon™, we should just cut our losses and accept the ugly/embarrassing API. On that note, it would help to know how many people are actively using the sibling layout and haven't found any bugs in Bazel around it. (Otherwise, this might not be "just" a matter of flipping the flag and fixing downstream projects.) |
Beta Was this translation helpful? Give feedback.
-
Does this actually affect the runfiles tree? I thought runfiles trees were already organized as
I'm mostly worried about @tpudlik's comment: IMO we definitely need a solution to the |
Beta Was this translation helpful? Give feedback.
-
I would also welcome the flag flip. Another benefit that hasn't been mentioned yet is that it aligns the directory structure of input files with that of runfiles, which would have helped me a lot when I initially got into rules authoring. That said, if we want to flip this in Bazel 8, I think that we need to resolve the following issues soon (i.e., in time for Bazel 7.1 so that ruleset authors have ample time to prepare the migration):
With these issues addressed and with buy-in from the Rules Authors SIG to address ruleset incompatibilities, this migration should be doable. |
Beta Was this translation helpful? Give feedback.
-
I sent out #21785 to disable the flag :( |
Beta Was this translation helpful? Give feedback.
-
Update: as a last-ditch effort to rescue this flag flip, I checked the downstream project pipeline and it looked like there was only a very manageable number of breakages. In light of this, @comius @meteorcloudy and @meisterT kindly agreed to push the migration forward, so instead of removing this flag, we are going to flip it. Yay! |
Beta Was this translation helpful? Give feedback.
-
A few months later, it seems that we are switching back to "this flag should be condemned": Please speak up if you think that's a bad idea -- given that we haven't made progress in the legwork to clean up the flag, that it has a large potential for harm, that no one benefits from it too much and that it's arguably the wrong layout anyway, it's hard to imagine an argument for it... |
Beta Was this translation helpful? Give feedback.
-
We have an experimental flag that costs quite a bit to maintain:
--experimental_sibling_repository_layout
.It makes external repositories appear under
../$REPO
instead ofexternal/$REPO
in the execroo and runfiles trees, which has two benefits:external/
. Otherwise, Bazel doesn't support projects that have this directory (which is kind of embarrassing)As it stands, "it's a forever experimental" flag: we have it implemented, we pay the maintenance price, but we have not committed to migrating to it, which is the worst of all worlds: our users in general don't derive the above benefits (since they presumably don't opt in) and we pay the maintenance price.
I think the best plan is to flip it in Bazel 8, but this is mostly based on feelings ((1) is quite painful). However, it may be a costly migration, so I could be convinced to delete the flag and give up on the whole things.
@Wyverald @meisterT @comius do you have any thoughts?
Beta Was this translation helpful? Give feedback.
All reactions