Create rules for emitting PackageFilesInfo, PackageDirsInfo (#273) Create rules for emitting PackageFilesInfo, PackageDirsInfo This change creates rules for emitting `PackageFilesInfo` (`pkg_files`) and `PackageDirsInfo` (`pkg_mkdirs`) providers. The implementations and tests of these rules are largely similar to the rules that currently exist in `experimental/pkg_filegroup.bzl`, with a few notable differences: - `pkg_filegroup` is replaced with `pkg_files`. `pkg_filegroup` will be re-implemented as a grouping provider in a future change. - `pkg_files` now checks for files that map to the same destination. The check was previously deferred to the packaging rules themselves. This behavior is now tested. - `attributes` (formerly `attrs`) checks for `pkg_files` and friends are now no longer strict. Only the "unix" attribute is verified. The logic for how to check this isn't yet complete, but it's enough to make forward progress. - `section` for `pkg_files` and `pkg_mkdirs` is removed. It will be replaced with more specific attributes as needed. - `make_strip_prefix` is removed in favor of the `strip_prefix` pseudo-module. - Prefix stripping failures will now cause build failures. The old `pkg_filegroup` rule would ignore them. `pkg_mkdirs` is effectively unchanged, other than differences in the providers, and `attributes`. The tests are also effectively unchanged, excepting those regarding `section` and the ones added above. Additionally: - The "common attributes" table pkg/docs/reference is now aligned, and describes the "attributes" attribute of `pkg_files` and `pkg_mkdirs`
diff --git a/pkg/tests/BUILD b/pkg/tests/BUILD index a7da3cb..f94f3ad 100644 --- a/pkg/tests/BUILD +++ b/pkg/tests/BUILD
@@ -20,6 +20,8 @@ load("@bazel_skylib//rules:copy_file.bzl", "copy_file") load(":my_package_name.bzl", "my_package_naming") +exports_files(glob(["testdata/**"])) + filegroup( name = "archive_testdata", srcs = glob(["testdata/**"]) + [