Merge branch 'main' into prov2
diff --git a/MODULE.bazel b/MODULE.bazel index 84e1dc3..2c7fef4 100644 --- a/MODULE.bazel +++ b/MODULE.bazel
@@ -7,12 +7,12 @@ # Do not update to newer versions until you need a specific new feature. bazel_dep(name = "rules_license", version = "1.0.0") -bazel_dep(name = "rules_python", version = "1.0.0") +bazel_dep(name = "rules_python", version = "1.7.0") bazel_dep(name = "bazel_skylib", version = "1.9.0") # Only for development bazel_dep(name = "platforms", version = "1.0.0", dev_dependency = True) -bazel_dep(name = "rules_cc", version = "0.1.1", dev_dependency = True) +bazel_dep(name = "rules_cc", version = "0.2.16", dev_dependency = True) bazel_dep(name = "rules_shell", version = "0.6.1", dev_dependency = True) bazel_dep(name = "stardoc", version = "0.7.2", dev_dependency = True)
diff --git a/doc_build/BUILD b/doc_build/BUILD index 44d559c..55837af 100644 --- a/doc_build/BUILD +++ b/doc_build/BUILD
@@ -19,7 +19,6 @@ git commit -m 'update docs' docs/latest.md """ -load("@bazel_skylib//:bzl_library.bzl", "bzl_library") load("@rules_python//python:defs.bzl", "py_binary") load("@stardoc//stardoc:stardoc.bzl", "stardoc") load("//:version.bzl", "version") @@ -50,6 +49,11 @@ ("pkg_zip", "//pkg/private/zip:zip.bzl"), ("pkg_zip_impl", "//pkg/private/zip:zip.bzl"), ("mappings", None), + ("PackageArtifactInfo", "//providers:providers.bzl"), + ("PackageDirsInfo", "//providers:providers.bzl"), + ("PackageFilegroupInfo", "//providers:providers.bzl"), + ("PackageFilesInfo", "//providers:providers.bzl"), + ("PackageSymlinkInfo", "//providers:providers.bzl"), ("pkg_install", None), ("legacy_pkg_rpm", None), ] @@ -71,7 +75,7 @@ rule, ], deps = [ - ":rules_pkg_lib", + "//pkg:rules_pkg_lib", "//toolchains/rpm:standard_package", ], ) @@ -91,7 +95,7 @@ name = "docs_legacy_rpm", out = "legacy_pkg_rpm.md", input = "//pkg/legacy:rpm.bzl", - deps = [":rules_pkg_lib"], + deps = ["//pkg:rules_pkg_lib"], ) # Mappings has a lot of pure rules, so it is mostly in a good order. @@ -100,27 +104,16 @@ out = "mappings.md", input = "//pkg:mappings.bzl", deps = [ - ":rules_pkg_lib", + "//pkg:rules_pkg_lib", ], ) -# gather all rules that should be documented -bzl_library( - name = "rules_pkg_lib", - srcs = [ - "//:version.bzl", - "//pkg:bzl_srcs", - "@bazel_skylib//lib:paths", - ], - visibility = ["//visibility:public"], -) - stardoc( name = "pkg_install", out = "pkg_install.md", input = "//pkg:install.bzl", deps = [ - ":rules_pkg_lib", + "//pkg:rules_pkg_lib", "@bazel_skylib//rules:common_settings", "@rules_python//python:defs_bzl", ],
diff --git a/docs/latest.md b/docs/latest.md index 98d2334..4f10cf4 100755 --- a/docs/latest.md +++ b/docs/latest.md
@@ -759,6 +759,139 @@ <!-- Generated with Stardoc: http://skydoc.bazel.build --> +Packaging related providers. + +<a id="PackageArtifactInfo"></a> + +## PackageArtifactInfo + +<pre> +load("@rules_pkg//providers:providers.bzl", "PackageArtifactInfo") + +PackageArtifactInfo(<a href="#PackageArtifactInfo-file">file</a>, <a href="#PackageArtifactInfo-file_name">file_name</a>, <a href="#PackageArtifactInfo-label">label</a>) +</pre> + +Metadata about a package artifact. + +**FIELDS** + +| Name | Description | +| :------------- | :------------- | +| <a id="PackageArtifactInfo-file"></a>file | File object for said artifact | +| <a id="PackageArtifactInfo-file_name"></a>file_name | DEPRECATED (use fields of file instead): The file name of the artifact. | +| <a id="PackageArtifactInfo-label"></a>label | Label which produced it | + + + +<!-- Generated with Stardoc: http://skydoc.bazel.build --> + +Packaging related providers. + +<a id="PackageDirsInfo"></a> + +## PackageDirsInfo + +<pre> +load("@rules_pkg//providers:providers.bzl", "PackageDirsInfo") + +PackageDirsInfo(<a href="#PackageDirsInfo-attributes">attributes</a>, <a href="#PackageDirsInfo-dirs">dirs</a>) +</pre> + +Provider representing the creation of one or more directories in a package + +**FIELDS** + +| Name | Description | +| :------------- | :------------- | +| <a id="PackageDirsInfo-attributes"></a>attributes | See `attributes` in PackageFilesInfo. | +| <a id="PackageDirsInfo-dirs"></a>dirs | string list: installed directory names | + + + +<!-- Generated with Stardoc: http://skydoc.bazel.build --> + +Packaging related providers. + +<a id="PackageFilegroupInfo"></a> + +## PackageFilegroupInfo + +<pre> +load("@rules_pkg//providers:providers.bzl", "PackageFilegroupInfo") + +PackageFilegroupInfo(<a href="#PackageFilegroupInfo-pkg_files">pkg_files</a>, <a href="#PackageFilegroupInfo-pkg_dirs">pkg_dirs</a>, <a href="#PackageFilegroupInfo-pkg_symlinks">pkg_symlinks</a>) +</pre> + +Provider representing a collection of related packaging providers, + +In the "fields" documentation, "origin" refers to the label identifying the +where the provider was originally defined. This can be used by packaging +rules to provide better diagnostics related to where packaging rules were +created. + +**FIELDS** + +| Name | Description | +| :------------- | :------------- | +| <a id="PackageFilegroupInfo-pkg_files"></a>pkg_files | list of tuples of (PackageFilesInfo, origin) | +| <a id="PackageFilegroupInfo-pkg_dirs"></a>pkg_dirs | list of tuples of (PackageDirsInfo, origin) | +| <a id="PackageFilegroupInfo-pkg_symlinks"></a>pkg_symlinks | list of tuples of (PackageSymlinkInfo, origin) | + + + +<!-- Generated with Stardoc: http://skydoc.bazel.build --> + +Packaging related providers. + +<a id="PackageFilesInfo"></a> + +## PackageFilesInfo + +<pre> +load("@rules_pkg//providers:providers.bzl", "PackageFilesInfo") + +PackageFilesInfo(<a href="#PackageFilesInfo-attributes">attributes</a>, <a href="#PackageFilesInfo-dest_src_map">dest_src_map</a>) +</pre> + +Provider representing the installation of one or more files to destination with attributes + +**FIELDS** + +| Name | Description | +| :------------- | :------------- | +| <a id="PackageFilesInfo-attributes"></a>attributes | Attribute information, represented as a `dict`.<br><br>Keys are strings representing attribute identifiers, values are arbitrary data structures that represent the associated data. These are most often strings, but are not explicitly defined.<br><br>For known attributes and data type expectations, see the Common Attributes documentation in the `rules_pkg` reference. | +| <a id="PackageFilesInfo-dest_src_map"></a>dest_src_map | Map of file destinations to sources.<br><br>Sources are represented by bazel `File` structures. | + + + +<!-- Generated with Stardoc: http://skydoc.bazel.build --> + +Packaging related providers. + +<a id="PackageSymlinkInfo"></a> + +## PackageSymlinkInfo + +<pre> +load("@rules_pkg//providers:providers.bzl", "PackageSymlinkInfo") + +PackageSymlinkInfo(<a href="#PackageSymlinkInfo-attributes">attributes</a>, <a href="#PackageSymlinkInfo-destination">destination</a>, <a href="#PackageSymlinkInfo-target">target</a>) +</pre> + +Provider representing the creation of a single symbolic link in a package + +**FIELDS** + +| Name | Description | +| :------------- | :------------- | +| <a id="PackageSymlinkInfo-attributes"></a>attributes | See `attributes` in PackageFilesInfo. | +| <a id="PackageSymlinkInfo-destination"></a>destination | string: Filesystem link 'name' | +| <a id="PackageSymlinkInfo-target"></a>target | string or Label: Filesystem link 'target'.<br><br>TODO(nacl): Label sources not yet supported. | + + + +<!-- Generated with Stardoc: http://skydoc.bazel.build --> + Rules for creating install scripts from pkg_filegroups and friends. This module provides an interface (`pkg_install`) for creating a `bazel
diff --git a/pkg/BUILD b/pkg/BUILD index 01d9994..0de5b7b 100644 --- a/pkg/BUILD +++ b/pkg/BUILD
@@ -12,8 +12,6 @@ # See the License for the specific language governing permissions and # limitations under the License. -load("@rules_pkg//pkg/private:make_starlark_library.bzl", "starlark_library") - # -*- coding: utf-8 -*- load("@rules_python//python:defs.bzl", "py_binary", "py_library") @@ -51,10 +49,11 @@ ], ) -starlark_library( - name = "bzl_srcs", +filegroup( + name = "rules_pkg_lib", srcs = [ ":standard_package", + "//pkg:install.bzl", "//pkg:pkg.bzl", "//pkg:rpm_pfg.bzl", "//pkg/private:standard_package", @@ -62,6 +61,8 @@ "//pkg/private/tar:standard_package", "//pkg/private/zip:standard_package", "//pkg/releasing:standard_package", + "@bazel_skylib//lib:paths", + "@rules_python//python:defs.bzl", ], visibility = ["//visibility:public"], )
diff --git a/pkg/private/make_starlark_library.bzl b/pkg/private/make_starlark_library.bzl deleted file mode 100644 index c6b0dee..0000000 --- a/pkg/private/make_starlark_library.bzl +++ /dev/null
@@ -1,35 +0,0 @@ -"""Turn a label_list of mixed sources and bzl_library's into a bzl_library. - -The sources can be anything. Only the ones that end in ".bzl" will be added. -""" - -load("@bazel_skylib//:bzl_library.bzl", "StarlarkLibraryInfo") - -def _make_starlark_library(ctx): - direct = [] - transitive = [] - for src in ctx.attr.srcs: - if StarlarkLibraryInfo in src: - transitive.append(src[StarlarkLibraryInfo]) - else: - for file in src[DefaultInfo].files.to_list(): - if file.path.endswith(".bzl"): - # print(file.path) - direct.append(file) - all_files = depset(direct, transitive = transitive) - return [ - DefaultInfo(files = all_files, runfiles = ctx.runfiles(transitive_files = all_files)), - StarlarkLibraryInfo(srcs = direct, transitive_srcs = all_files), - ] - -starlark_library = rule( - implementation = _make_starlark_library, - attrs = { - "srcs": attr.label_list( - doc = "Any mix of source files. Only .bzl files will be used.", - allow_files = True, - cfg = "exec", - mandatory = True, - ), - }, -)