From b868a5919d28554dea614800e8fbb8bd9da3b401 Mon Sep 17 00:00:00 2001 From: Fabian Meumertzheim Date: Tue, 11 Jun 2024 11:46:48 -0700 Subject: [PATCH] Treat missing repo boundary files as transient errors Fixes #22687 Closes #22700. PiperOrigin-RevId: 642340825 Change-Id: I96f496b309c4740ae561f69098eca54a12a574f0 --- .../RepositoryDelegatorFunction.java | 2 +- .../py/bazel/bzlmod/bazel_overrides_test.py | 22 +++++++++++++++++++ 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/google/devtools/build/lib/rules/repository/RepositoryDelegatorFunction.java b/src/main/java/com/google/devtools/build/lib/rules/repository/RepositoryDelegatorFunction.java index 7dd616f0577741..6ac3f346914e09 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/repository/RepositoryDelegatorFunction.java +++ b/src/main/java/com/google/devtools/build/lib/rules/repository/RepositoryDelegatorFunction.java @@ -566,7 +566,7 @@ public static RepositoryDirectoryValue.Builder symlinkRepoRoot( if (!WorkspaceFileHelper.isValidRepoRoot(destination)) { throw new RepositoryFunctionException( new IOException("No MODULE.bazel, REPO.bazel, or WORKSPACE file found in " + destination), - Transience.PERSISTENT); + Transience.TRANSIENT); } return RepositoryDirectoryValue.builder().setExcludeFromVendoring(true).setPath(source); } diff --git a/src/test/py/bazel/bzlmod/bazel_overrides_test.py b/src/test/py/bazel/bzlmod/bazel_overrides_test.py index 45c3f4d9890fd1..cb59bdd33e8c07 100644 --- a/src/test/py/bazel/bzlmod/bazel_overrides_test.py +++ b/src/test/py/bazel/bzlmod/bazel_overrides_test.py @@ -513,6 +513,28 @@ def testCmdWorkspaceRelativeModuleOverride(self): 'Target @@ss~//:choose_me up-to-date (nothing to build)', stderr ) + def testLocalPathOverrideErrorResolved(self): + self.ScratchFile( + 'MODULE.bazel', + [ + 'bazel_dep(name = "module")', + 'local_path_override(', + ' module_name = "module",', + ' path = "module",', + ')', + ], + ) + self.ScratchFile('module/BUILD') + + # MODULE.bazel file is missing + stderr, _, exit_code = self.RunBazel( + ['build', '@module//:all'], allow_failure=True + ) + self.AssertNotExitCode(exit_code, 0, stderr) + + self.ScratchFile('module/MODULE.bazel', ["module(name = 'module')"]) + _, _, _ = self.RunBazel(['build', '@module//:all']) + if __name__ == '__main__': absltest.main()