Enable incompatible_disallow_load_labels_to_cross_package_boundaries by default

Fixes https://github.com/bazelbuild/bazel/issues/6408

Tested: https://buildkite.com/bazel/bazelisk-plus-incompatible-flags/builds/52

RELNOTES: `--incompatible_disallow_load_labels_to_cross_package_boundaries` is enabled by default
PiperOrigin-RevId: 240347889
diff --git a/src/main/java/com/google/devtools/build/lib/packages/StarlarkSemanticsOptions.java b/src/main/java/com/google/devtools/build/lib/packages/StarlarkSemanticsOptions.java
index 095e3e83..59b6376 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/StarlarkSemanticsOptions.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/StarlarkSemanticsOptions.java
@@ -313,7 +313,7 @@
 
   @Option(
       name = "incompatible_disallow_load_labels_to_cross_package_boundaries",
-      defaultValue = "false",
+      defaultValue = "true",
       documentationCategory = OptionDocumentationCategory.STARLARK_SEMANTICS,
       effectTags = {OptionEffectTag.BUILD_FILE_SEMANTICS},
       metadataTags = {
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/SkylarkModuleCycleReporter.java b/src/main/java/com/google/devtools/build/lib/skyframe/SkylarkModuleCycleReporter.java
index 71035b4..12ab5e0 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/SkylarkModuleCycleReporter.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/SkylarkModuleCycleReporter.java
@@ -127,11 +127,10 @@
                     + "' was defined too late in your WORKSPACE file."));
         return true;
       } else if (Iterables.any(cycle, IS_PACKAGE_LOOKUP)) {
-        eventHandler.handle(
-            Event.error(null, "cycle detected loading "
-                + String.join(
-                    " ", lastPathElement.functionName().toString().toLowerCase().split("_"))
-                + " '" + lastPathElement.argument().toString() + "'"));
+        PackageIdentifier pkg =
+            (PackageIdentifier)
+                Iterables.getLast(Iterables.filter(cycle, IS_PACKAGE_LOOKUP)).argument();
+        eventHandler.handle(Event.error(null, "cannot load package '" + pkg + "'"));
         return true;
       }
     }
diff --git a/src/main/java/com/google/devtools/build/lib/syntax/StarlarkSemantics.java b/src/main/java/com/google/devtools/build/lib/syntax/StarlarkSemantics.java
index 9e54d4c..c60216d 100644
--- a/src/main/java/com/google/devtools/build/lib/syntax/StarlarkSemantics.java
+++ b/src/main/java/com/google/devtools/build/lib/syntax/StarlarkSemantics.java
@@ -219,7 +219,7 @@
           .incompatibleDisallowFileType(true)
           .incompatibleDisallowLegacyJavaProvider(false)
           .incompatibleDisallowLegacyJavaInfo(false)
-          .incompatibleDisallowLoadLabelsToCrossPackageBoundaries(false)
+          .incompatibleDisallowLoadLabelsToCrossPackageBoundaries(true)
           .incompatibleDisallowNativeInBuildFile(false)
           .incompatibleDisallowOldStyleArgsAdd(true)
           .incompatibleDisallowStructProviderSyntax(false)
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/SkylarkImportLookupFunctionTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/SkylarkImportLookupFunctionTest.java
index 5dad405..7d412d8 100644
--- a/src/test/java/com/google/devtools/build/lib/skyframe/SkylarkImportLookupFunctionTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skyframe/SkylarkImportLookupFunctionTest.java
@@ -195,8 +195,8 @@
     ErrorInfo errorInfo = result.getError(skylarkImportLookupKey);
     String errorMessage = errorInfo.getException().getMessage();
     assertThat(errorMessage)
-        .isEqualTo(
-            "Unable to load package for '//pkg:ext.bzl': BUILD file not found on package path");
+        .contains(
+            "Every .bzl file must have a corresponding package, but '//pkg:ext.bzl' does not");
   }
 
   @Test
@@ -211,9 +211,7 @@
     assertThat(result.hasError()).isTrue();
     ErrorInfo errorInfo = result.getError(skylarkImportLookupKey);
     String errorMessage = errorInfo.getException().getMessage();
-    assertThat(errorMessage)
-        .isEqualTo(
-            "Unable to load package for '//pkg:ext.bzl': BUILD file not found on package path");
+    assertThat(errorMessage).contains("Every .bzl file must have a corresponding package");
   }
 
   @Test
@@ -276,6 +274,8 @@
 
   @Test
   public void testLoadUsingLabelThatCrossesBoundaryOfPackage_Allow_OfSamePkg() throws Exception {
+    setSkylarkSemanticsOptions("--noincompatible_disallow_load_labels_to_cross_package_boundaries");
+
     scratch.file("a/BUILD");
     scratch.file("a/a.bzl", "load('//a:b/b.bzl', 'b')");
     scratch.file("a/b/BUILD", "");
@@ -314,6 +314,7 @@
   @Test
   public void testLoadUsingLabelThatCrossesBoundaryOfPackage_Allow_OfDifferentPkgUnder()
       throws Exception {
+    setSkylarkSemanticsOptions("--noincompatible_disallow_load_labels_to_cross_package_boundaries");
     scratch.file("a/BUILD");
     scratch.file("a/a.bzl", "load('//a/b:c/c.bzl', 'c')");
     scratch.file("a/b/BUILD", "");
@@ -355,6 +356,7 @@
   @Test
   public void testLoadUsingLabelThatCrossesBoundaryOfPackage_Allow_OfDifferentPkgAbove()
       throws Exception {
+    setSkylarkSemanticsOptions("--noincompatible_disallow_load_labels_to_cross_package_boundaries");
     scratch.file("a/b/BUILD");
     scratch.file("a/b/b.bzl", "load('//a/c:c/c.bzl', 'c')");
     scratch.file("a/BUILD");
diff --git a/src/test/java/com/google/devtools/build/lib/skylark/SkylarkDefinedAspectsTest.java b/src/test/java/com/google/devtools/build/lib/skylark/SkylarkDefinedAspectsTest.java
index e578b03..e471c19 100644
--- a/src/test/java/com/google/devtools/build/lib/skylark/SkylarkDefinedAspectsTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skylark/SkylarkDefinedAspectsTest.java
@@ -1252,7 +1252,7 @@
     } catch (ViewCreationFailedException e) {
       // expect to fail.
     }
-    assertContainsEvent("Unable to load package for '//foo:aspect.bzl'");
+    assertContainsEvent("Every .bzl file must have a corresponding package");
   }
 
   @Test
diff --git a/src/test/shell/bazel/skylark_repository_test.sh b/src/test/shell/bazel/skylark_repository_test.sh
index f1e9c9b..d5e090b 100755
--- a/src/test/shell/bazel/skylark_repository_test.sh
+++ b/src/test/shell/bazel/skylark_repository_test.sh
@@ -293,8 +293,7 @@
   [ $exitCode != 0 ] || fail "building @foo//:data.txt succeed while expected failure"
 
   expect_not_log "PACKAGE"
-  expect_log "Failed to load Starlark extension '@foo//:ext.bzl'"
-  expect_log "repository 'foo' was defined too late in your WORKSPACE file"
+  expect_log "cannot load package '@foo//'"
 }
 
 function test_load_nonexistent_with_subworkspace() {
@@ -312,8 +311,7 @@
   [ $exitCode != 0 ] || fail "building //... succeed while expected failure"
 
   expect_not_log "PACKAGE"
-  expect_log "Failed to load Starlark extension '@does_not_exist//:random.bzl'"
-  expect_log "repository 'does_not_exist' was defined too late in your WORKSPACE file"
+  expect_log "cannot load package '@does_not_exist//'"
 
   # Retest with query //...
   bazel clean --expunge
@@ -321,8 +319,7 @@
   [ $exitCode != 0 ] || fail "querying //... succeed while expected failure"
 
   expect_not_log "PACKAGE"
-  expect_log "Failed to load Starlark extension '@does_not_exist//:random.bzl'"
-  expect_log "repository 'does_not_exist' was defined too late in your WORKSPACE file"
+  expect_log "cannot load package '@does_not_exist//'"
 }
 
 function test_skylark_local_repository() {
diff --git a/src/test/shell/integration/loading_phase_test.sh b/src/test/shell/integration/loading_phase_test.sh
index 2fc74af..c208628 100755
--- a/src/test/shell/integration/loading_phase_test.sh
+++ b/src/test/shell/integration/loading_phase_test.sh
@@ -365,7 +365,9 @@
   touch "$pkg"/foo/a/b/BUILD
   echo "b = 42" > "$pkg"/foo/a/b/b.bzl
 
-  bazel query "$pkg/foo:BUILD" >& "$TEST_log" || fail "Expected success"
+  bazel query \
+    --incompatible_disallow_load_labels_to_cross_package_boundaries=false \
+    "$pkg/foo:BUILD" >& "$TEST_log" || fail "Expected success"
   expect_log "//$pkg/foo:BUILD"
 
   bazel query \
@@ -373,7 +375,9 @@
     "$pkg/foo:BUILD" >& "$TEST_log" && fail "Expected failure"
   expect_log "Label '//$pkg/foo/a:b/b.bzl' crosses boundary of subpackage '$pkg/foo/a/b'"
 
-  bazel query "$pkg/foo:BUILD" >& "$TEST_log" || fail "Expected success"
+  bazel query \
+    --incompatible_disallow_load_labels_to_cross_package_boundaries=false \
+    "$pkg/foo:BUILD" >& "$TEST_log" || fail "Expected success"
   expect_log "//$pkg/foo:BUILD"
 }