diff --git a/CHANGELOG.md b/CHANGELOG.md index 32e5836cf..9e35ede47 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,7 @@ ##### Enhancements +- Expose a stable `@periphery//bazel:generated` package group so Bazel projects can grant visibility to Periphery's generated scan target and use `--bazel-check-visibility` safely. - Added a `--bazel-query` option to override the default Bazel top-level target query. ##### Bug Fixes diff --git a/README.md b/README.md index b358b9964..e3ef5f055 100644 --- a/README.md +++ b/README.md @@ -465,7 +465,7 @@ Periphery's generated scan rule follows embedded bundle and plugin edges transit > [!TIP] > By default, Periphery passes `--check_visibility=false` to `bazel run` to simplify integration, since the generated scan target references your project's targets which may not otherwise be visible. However, disabling visibility checking can invalidate Bazel's analysis cache, resulting in slower subsequent builds. > -> You can disable this behavior with the `--bazel-check-visibility` option. You must ensure the necessary targets are visible to the generated package by adding the `@@+generated+periphery_generated//:__pkg__` visibility label to your targets. +> You can disable this behavior with the `--bazel-check-visibility` option. You must ensure the necessary targets are visible to Periphery's generated package, for example by adding the `@@+generated+periphery//bazel:generated` visibility label to your targets. ### Other diff --git a/bazel/BUILD.bazel b/bazel/BUILD.bazel index e69de29bb..47b463a75 100644 --- a/bazel/BUILD.bazel +++ b/bazel/BUILD.bazel @@ -0,0 +1,4 @@ +package_group( + name = "generated", + includes = ["@periphery_generated//visibility:package_group"], +) diff --git a/bazel/generated.bzl b/bazel/generated.bzl index d7cb8665c..389703ea6 100644 --- a/bazel/generated.bzl +++ b/bazel/generated.bzl @@ -3,6 +3,14 @@ """ def _generated_repo_impl(repository_ctx): + repository_ctx.file( + "visibility/BUILD.bazel", + """package_group( + name = "package_group", + packages = ["//..."], +) +""", + ) repository_ctx.symlink( "/var/tmp/periphery_bazel/BUILD.bazel", "BUILD.bazel",