diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
index 53d4a04..227bcf1 100644
--- a/.pre-commit-config.yaml
+++ b/.pre-commit-config.yaml
@@ -19,7 +19,8 @@
         - id: end-of-file-fixer
           exclude: |
             (?x)^(
-              tests/testdata/
+              tests/testdata/|
+              docs/
             )
         - id: trailing-whitespace
     - repo: https://github.com/crate-ci/typos
diff --git a/MODULE.bazel b/MODULE.bazel
index c20d98f..55d4c87 100644
--- a/MODULE.bazel
+++ b/MODULE.bazel
@@ -1,6 +1,6 @@
 module(
     name = "rules_pkg",
-    version = "1.0.1",  # Must sync with version.bzl.
+    version = "1.1.0",  # Must sync with version.bzl.
     compatibility_level = 1,
     repo_name = "rules_pkg",
 )
diff --git a/docs/1.1.0/reference.md b/docs/1.1.0/reference.md
new file mode 100755
index 0000000..c11eb7c
--- /dev/null
+++ b/docs/1.1.0/reference.md
@@ -0,0 +1,801 @@
+# rules_pkg - 1.1.0
+
+<div class="toc">
+  <h2>Common Attributes</h2>
+  <ul>
+    <li><a href="#common">Package attributes</a></li>
+    <li><a href="#mapping-attrs">File attributes</a></li>
+  </ul>
+
+  <h2>Packaging Rules</h2>
+  <ul>
+    <li><a href="#pkg_deb">//pkg:deb.bzl%pkg_deb</a></li>
+    <li><a href="#pkg_rpm">//pkg:rpm.bzl%pkg_rpm</a></li>
+    <li><a href="#pkg_tar">//pkg:tar.bzl%pkg_tar</a></li>
+    <li><a href="#pkg_zip">//pkg:zip.bzl%pkg_zip</a></li>
+  </ul>
+
+  <h2>File Tree Creation Rules</h2>
+  <ul>
+    <li><a href="#filter_directory">//pkg:mappings.bzl%filter_directory</a></li>
+    <li><a href="#pkg_filegroup">//pkg:mappings.bzl%pkg_filegroup</a></li>
+    <li><a href="#pkg_files">//pkg:mappings.bzl%pkg_files</a></li>
+    <li><a href="#pkg_mkdirs">//pkg:mappings.bzl%pkg_mkdirs</a></li>
+    <li><a href="#pkg_mklink">//pkg:mappings.bzl%pkg_mklink</a></li>
+    <li><a href="#pkg_attributes">//pkg:mappings.bzl%pkg_attributes</a></li>
+    <li><a href="#strip_prefix.files_only">//pkg:mappings.bzl%strip_prefix</a></li>
+  </ul>
+</div>
+
+<a name="common"></a>
+
+### Common Attributes
+
+These attributes are used in several rules within this module.
+
+**ATTRIBUTES**
+
+| Name              | Description                                                                                                                                                                     | Type                                                               | Mandatory       | Default                                   |
+| :-------------    | :-------------                                                                                                                                                                  | :-------------:                                                    | :-------------: | :-------------                            |
+| <a name="out">out</a>               | Name of the output file. This file will always be created and used to access the package content. If `package_file_name` is also specified, `out` will be a symlink.            | String                                                             | required        |                                           |
+| <a name="package_file_name">package_file_name</a> | The name of the file which will contain the package. The name may contain variables in the forms `{var}` and $(var)`. The values for substitution are specified through `package_variables` or taken from [ctx.var](https://bazel.build/rules/lib/ctx#var). | String | optional | package type specific |
+| <a name="package_variables">package_variables</a> | A target that provides `PackageVariablesInfo` to substitute into `package_file_name`. `pkg_zip` and `pkg_tar` also support this in `package_dir`                                | <a href="https://bazel.build/docs/build-ref.html#labels">Label</a> | optional        | None                                      |
+| attributes        | Attributes to set on entities created within packages.  Not to be confused with bazel rule attributes.  See 'Mapping "Attributes"' below                                        | Undefined.                                                         | optional        | Varies.  Consult individual rule documentation for details. |
+
+See
+[examples/naming_package_files](https://github.com/bazelbuild/rules_pkg/tree/main/examples/naming_package_files)
+for examples of how `out`, `package_file_name`, and `package_variables`
+interact.
+
+<div class="since"><i>Since 0.8.0</i></div>: File name substitution now supports the $(var) syntax.
+<div class="since"><i>Since 0.8.0</i></div>: File name substitution now supports direct use of [ctx.var](https://bazel.build/rules/lib/ctx#var).
+
+
+<a name="mapping-attrs"></a>
+### Mapping "Attributes"
+
+The "attributes" attribute specifies properties of package contents as used in
+rules such as `pkg_files`, and `pkg_mkdirs`.  These allow fine-grained control
+of the contents of your package.  For example:
+
+```python
+attributes = pkg_attributes(
+    mode = "0644",
+    user = "root",
+    group = "wheel",
+    my_custom_attribute = "some custom value",
+)
+```
+
+`mode`, `user`, and `group` correspond to common UNIX-style filesystem
+permissions.  Attributes should always be specified using the `pkg_attributes`
+helper macro.
+
+Each mapping rule has some default mapping attributes.  At this time, the only
+default is "mode", which will be set if it is not otherwise overridden by the user.
+
+If `user` and `group` are not specified, then defaults for them will be chosen
+by the underlying package builder.  Any specific behavior from package builders
+should not be relied upon.
+
+Any other attributes should be specified as additional arguments to
+`pkg_attributes`.
+
+<!-- Generated with Stardoc: http://skydoc.bazel.build -->
+
+Rule for creating Debian packages.
+
+<a id="pkg_deb"></a>
+
+## pkg_deb
+
+<pre>
+load("@rules_pkg//pkg/private/deb:deb.bzl", "pkg_deb")
+
+pkg_deb(<a href="#pkg_deb-name">name</a>, <a href="#pkg_deb-data">data</a>, <a href="#pkg_deb-out">out</a>, <a href="#pkg_deb-architecture">architecture</a>, <a href="#pkg_deb-architecture_file">architecture_file</a>, <a href="#pkg_deb-breaks">breaks</a>, <a href="#pkg_deb-built_using">built_using</a>,
+             <a href="#pkg_deb-built_using_file">built_using_file</a>, <a href="#pkg_deb-changelog">changelog</a>, <a href="#pkg_deb-conffiles">conffiles</a>, <a href="#pkg_deb-conffiles_file">conffiles_file</a>, <a href="#pkg_deb-config">config</a>, <a href="#pkg_deb-conflicts">conflicts</a>, <a href="#pkg_deb-depends">depends</a>,
+             <a href="#pkg_deb-depends_file">depends_file</a>, <a href="#pkg_deb-description">description</a>, <a href="#pkg_deb-description_file">description_file</a>, <a href="#pkg_deb-distribution">distribution</a>, <a href="#pkg_deb-enhances">enhances</a>, <a href="#pkg_deb-homepage">homepage</a>, <a href="#pkg_deb-license">license</a>,
+             <a href="#pkg_deb-maintainer">maintainer</a>, <a href="#pkg_deb-package">package</a>, <a href="#pkg_deb-package_file_name">package_file_name</a>, <a href="#pkg_deb-package_variables">package_variables</a>, <a href="#pkg_deb-postinst">postinst</a>, <a href="#pkg_deb-postrm">postrm</a>, <a href="#pkg_deb-predepends">predepends</a>,
+             <a href="#pkg_deb-preinst">preinst</a>, <a href="#pkg_deb-prerm">prerm</a>, <a href="#pkg_deb-priority">priority</a>, <a href="#pkg_deb-provides">provides</a>, <a href="#pkg_deb-recommends">recommends</a>, <a href="#pkg_deb-replaces">replaces</a>, <a href="#pkg_deb-section">section</a>, <a href="#pkg_deb-suggests">suggests</a>, <a href="#pkg_deb-templates">templates</a>,
+             <a href="#pkg_deb-triggers">triggers</a>, <a href="#pkg_deb-urgency">urgency</a>, <a href="#pkg_deb-version">version</a>, <a href="#pkg_deb-version_file">version_file</a>)
+</pre>
+
+Create a Debian package.
+
+This rule produces 2 artifacts: a .deb and a .changes file. The DefaultInfo will
+include both. If you need downstream rule to specifically depend on only the .deb or
+.changes file then you can use `filegroup` to select distinct output groups.
+
+**OutputGroupInfo**
+- `out` the Debian package or a symlink to the actual package.
+- `deb` the package with any precise file name created with `package_file_name`.
+- `changes` the .changes file.
+
+**ATTRIBUTES**
+
+
+| Name  | Description | Type | Mandatory | Default |
+| :------------- | :------------- | :------------- | :------------- | :------------- |
+| <a id="pkg_deb-name"></a>name |  A unique name for this target.   | <a href="https://bazel.build/concepts/labels#target-names">Name</a> | required |  |
+| <a id="pkg_deb-data"></a>data |  A tar file that contains the data for the debian package.   | <a href="https://bazel.build/concepts/labels">Label</a> | required |  |
+| <a id="pkg_deb-out"></a>out |  See [Common Attributes](#out)   | <a href="https://bazel.build/concepts/labels">Label</a> | required |  |
+| <a id="pkg_deb-architecture"></a>architecture |  Package architecture. Must not be used with architecture_file.   | String | optional |  `"all"`  |
+| <a id="pkg_deb-architecture_file"></a>architecture_file |  File that contains the package architecture. Must not be used with architecture.   | <a href="https://bazel.build/concepts/labels">Label</a> | optional |  `None`  |
+| <a id="pkg_deb-breaks"></a>breaks |  See http://www.debian.org/doc/debian-policy/ch-relationships.html#s-binarydeps.   | List of strings | optional |  `[]`  |
+| <a id="pkg_deb-built_using"></a>built_using |  The tool that were used to build this package provided either inline (with built_using) or from a file (with built_using_file).   | String | optional |  `""`  |
+| <a id="pkg_deb-built_using_file"></a>built_using_file |  The tool that were used to build this package provided either inline (with built_using) or from a file (with built_using_file).   | <a href="https://bazel.build/concepts/labels">Label</a> | optional |  `None`  |
+| <a id="pkg_deb-changelog"></a>changelog |  The package changelog. See https://www.debian.org/doc/debian-policy/ch-source.html#s-dpkgchangelog.   | <a href="https://bazel.build/concepts/labels">Label</a> | optional |  `None`  |
+| <a id="pkg_deb-conffiles"></a>conffiles |  The list of conffiles or a file containing one conffile per line. Each item is an absolute path on the target system where the deb is installed. See https://www.debian.org/doc/debian-policy/ch-files.html#s-config-files.   | List of strings | optional |  `[]`  |
+| <a id="pkg_deb-conffiles_file"></a>conffiles_file |  The list of conffiles or a file containing one conffile per line. Each item is an absolute path on the target system where the deb is installed. See https://www.debian.org/doc/debian-policy/ch-files.html#s-config-files.   | <a href="https://bazel.build/concepts/labels">Label</a> | optional |  `None`  |
+| <a id="pkg_deb-config"></a>config |  config file used for debconf integration. See https://www.debian.org/doc/debian-policy/ch-binary.html#prompting-in-maintainer-scripts.   | <a href="https://bazel.build/concepts/labels">Label</a> | optional |  `None`  |
+| <a id="pkg_deb-conflicts"></a>conflicts |  See http://www.debian.org/doc/debian-policy/ch-relationships.html#s-binarydeps.   | List of strings | optional |  `[]`  |
+| <a id="pkg_deb-depends"></a>depends |  See http://www.debian.org/doc/debian-policy/ch-relationships.html#s-binarydeps.   | List of strings | optional |  `[]`  |
+| <a id="pkg_deb-depends_file"></a>depends_file |  File that contains a list of package dependencies. Must not be used with `depends`. See http://www.debian.org/doc/debian-policy/ch-relationships.html#s-binarydeps.   | <a href="https://bazel.build/concepts/labels">Label</a> | optional |  `None`  |
+| <a id="pkg_deb-description"></a>description |  The package description. Must not be used with `description_file`.   | String | optional |  `""`  |
+| <a id="pkg_deb-description_file"></a>description_file |  The package description. Must not be used with `description`.   | <a href="https://bazel.build/concepts/labels">Label</a> | optional |  `None`  |
+| <a id="pkg_deb-distribution"></a>distribution |  "distribution: See http://www.debian.org/doc/debian-policy.   | String | optional |  `"unstable"`  |
+| <a id="pkg_deb-enhances"></a>enhances |  See http://www.debian.org/doc/debian-policy/ch-relationships.html#s-binarydeps.   | List of strings | optional |  `[]`  |
+| <a id="pkg_deb-homepage"></a>homepage |  The homepage of the project.   | String | optional |  `""`  |
+| <a id="pkg_deb-license"></a>license |  The license of the project.   | String | optional |  `""`  |
+| <a id="pkg_deb-maintainer"></a>maintainer |  The maintainer of the package.   | String | required |  |
+| <a id="pkg_deb-package"></a>package |  The name of the package   | String | required |  |
+| <a id="pkg_deb-package_file_name"></a>package_file_name |  See [Common Attributes](#package_file_name). Default: "{package}-{version}-{architecture}.deb   | String | optional |  `""`  |
+| <a id="pkg_deb-package_variables"></a>package_variables |  See [Common Attributes](#package_variables)   | <a href="https://bazel.build/concepts/labels">Label</a> | optional |  `None`  |
+| <a id="pkg_deb-postinst"></a>postinst |  The post-install script for the package. See http://www.debian.org/doc/debian-policy/ch-maintainerscripts.html.   | <a href="https://bazel.build/concepts/labels">Label</a> | optional |  `None`  |
+| <a id="pkg_deb-postrm"></a>postrm |  The post-remove script for the package. See http://www.debian.org/doc/debian-policy/ch-maintainerscripts.html.   | <a href="https://bazel.build/concepts/labels">Label</a> | optional |  `None`  |
+| <a id="pkg_deb-predepends"></a>predepends |  See http://www.debian.org/doc/debian-policy/ch-relationships.html#s-binarydeps.   | List of strings | optional |  `[]`  |
+| <a id="pkg_deb-preinst"></a>preinst |  "The pre-install script for the package. See http://www.debian.org/doc/debian-policy/ch-maintainerscripts.html.   | <a href="https://bazel.build/concepts/labels">Label</a> | optional |  `None`  |
+| <a id="pkg_deb-prerm"></a>prerm |  The pre-remove script for the package. See http://www.debian.org/doc/debian-policy/ch-maintainerscripts.html.   | <a href="https://bazel.build/concepts/labels">Label</a> | optional |  `None`  |
+| <a id="pkg_deb-priority"></a>priority |  The priority of the package. See http://www.debian.org/doc/debian-policy/ch-archive.html#s-priorities.   | String | optional |  `""`  |
+| <a id="pkg_deb-provides"></a>provides |  See http://www.debian.org/doc/debian-policy/ch-relationships.html#s-binarydeps.   | List of strings | optional |  `[]`  |
+| <a id="pkg_deb-recommends"></a>recommends |  See http://www.debian.org/doc/debian-policy/ch-relationships.html#s-binarydeps.   | List of strings | optional |  `[]`  |
+| <a id="pkg_deb-replaces"></a>replaces |  See http://www.debian.org/doc/debian-policy/ch-relationships.html#s-binarydeps.   | List of strings | optional |  `[]`  |
+| <a id="pkg_deb-section"></a>section |  The section of the package. See http://www.debian.org/doc/debian-policy/ch-archive.html#s-subsections.   | String | optional |  `""`  |
+| <a id="pkg_deb-suggests"></a>suggests |  See http://www.debian.org/doc/debian-policy/ch-relationships.html#s-binarydeps.   | List of strings | optional |  `[]`  |
+| <a id="pkg_deb-templates"></a>templates |  templates file used for debconf integration. See https://www.debian.org/doc/debian-policy/ch-binary.html#prompting-in-maintainer-scripts.   | <a href="https://bazel.build/concepts/labels">Label</a> | optional |  `None`  |
+| <a id="pkg_deb-triggers"></a>triggers |  triggers file for configuring installation events exchanged by packages. See https://wiki.debian.org/DpkgTriggers.   | <a href="https://bazel.build/concepts/labels">Label</a> | optional |  `None`  |
+| <a id="pkg_deb-urgency"></a>urgency |  "urgency: See http://www.debian.org/doc/debian-policy.   | String | optional |  `"medium"`  |
+| <a id="pkg_deb-version"></a>version |  Package version. Must not be used with `version_file`.   | String | optional |  `""`  |
+| <a id="pkg_deb-version_file"></a>version_file |  File that contains the package version. Must not be used with `version`.   | <a href="https://bazel.build/concepts/labels">Label</a> | optional |  `None`  |
+
+
+
+<!-- Generated with Stardoc: http://skydoc.bazel.build -->
+
+Provides rules for creating RPM packages via pkg_filegroup and friends.
+
+pkg_rpm() depends on the existence of an rpmbuild toolchain. Many users will
+find to convenient to use the one provided with their system. To enable that
+toolchain add the following stanza to WORKSPACE:
+
+```
+# Find rpmbuild if it exists.
+load("@rules_pkg//toolchains/rpm:rpmbuild_configure.bzl", "find_system_rpmbuild")
+find_system_rpmbuild(name="rules_pkg_rpmbuild")
+```
+
+<a id="pkg_sub_rpm"></a>
+
+## pkg_sub_rpm
+
+<pre>
+load("@rules_pkg//pkg:rpm_pfg.bzl", "pkg_sub_rpm")
+
+pkg_sub_rpm(<a href="#pkg_sub_rpm-name">name</a>, <a href="#pkg_sub_rpm-srcs">srcs</a>, <a href="#pkg_sub_rpm-architecture">architecture</a>, <a href="#pkg_sub_rpm-conflicts">conflicts</a>, <a href="#pkg_sub_rpm-description">description</a>, <a href="#pkg_sub_rpm-epoch">epoch</a>, <a href="#pkg_sub_rpm-group">group</a>, <a href="#pkg_sub_rpm-obsoletes">obsoletes</a>, <a href="#pkg_sub_rpm-package_name">package_name</a>,
+            <a href="#pkg_sub_rpm-post_scriptlet">post_scriptlet</a>, <a href="#pkg_sub_rpm-postun_scriptlet">postun_scriptlet</a>, <a href="#pkg_sub_rpm-provides">provides</a>, <a href="#pkg_sub_rpm-requires">requires</a>, <a href="#pkg_sub_rpm-summary">summary</a>, <a href="#pkg_sub_rpm-version">version</a>)
+</pre>
+
+Define a sub RPM to be built as part of a parent RPM
+
+This rule uses the outputs of the rules in `mappings.bzl` to define an sub
+RPM that will be built as part of a larger RPM defined by a `pkg_rpm` instance.
+
+**ATTRIBUTES**
+
+
+| Name  | Description | Type | Mandatory | Default |
+| :------------- | :------------- | :------------- | :------------- | :------------- |
+| <a id="pkg_sub_rpm-name"></a>name |  A unique name for this target.   | <a href="https://bazel.build/concepts/labels#target-names">Name</a> | required |  |
+| <a id="pkg_sub_rpm-srcs"></a>srcs |  Mapping groups to include in this RPM   | <a href="https://bazel.build/concepts/labels">List of labels</a> | required |  |
+| <a id="pkg_sub_rpm-architecture"></a>architecture |  Sub RPM architecture   | String | optional |  `""`  |
+| <a id="pkg_sub_rpm-conflicts"></a>conflicts |  List of RPM capability expressions that conflict with this package   | List of strings | optional |  `[]`  |
+| <a id="pkg_sub_rpm-description"></a>description |  Multi-line description of this subrpm   | String | optional |  `""`  |
+| <a id="pkg_sub_rpm-epoch"></a>epoch |  RPM `Epoch` tag for this subrpm   | String | optional |  `""`  |
+| <a id="pkg_sub_rpm-group"></a>group |  Optional; RPM "Group" tag.<br><br>NOTE: some distributions (as of writing, Fedora > 17 and CentOS/RHEL > 5) have deprecated this tag.  Other distributions may require it, but it is harmless in any case.   | String | optional |  `""`  |
+| <a id="pkg_sub_rpm-obsoletes"></a>obsoletes |  List of RPM capability expressions that this package obsoletes   | List of strings | optional |  `[]`  |
+| <a id="pkg_sub_rpm-package_name"></a>package_name |  name of the subrpm   | String | optional |  `""`  |
+| <a id="pkg_sub_rpm-post_scriptlet"></a>post_scriptlet |  RPM `%post` scriplet for this subrpm   | String | optional |  `""`  |
+| <a id="pkg_sub_rpm-postun_scriptlet"></a>postun_scriptlet |  RPM `%postun` scriplet for this subrpm   | String | optional |  `""`  |
+| <a id="pkg_sub_rpm-provides"></a>provides |  List of RPM capability expressions that this package provides   | List of strings | optional |  `[]`  |
+| <a id="pkg_sub_rpm-requires"></a>requires |  List of RPM capability expressions that this package requires   | List of strings | optional |  `[]`  |
+| <a id="pkg_sub_rpm-summary"></a>summary |  Sub RPM `Summary` tag   | String | optional |  `""`  |
+| <a id="pkg_sub_rpm-version"></a>version |  RPM `Version` tag for this subrpm   | String | optional |  `""`  |
+
+
+
+<!-- Generated with Stardoc: http://skydoc.bazel.build -->
+
+Provides rules for creating RPM packages via pkg_filegroup and friends.
+
+pkg_rpm() depends on the existence of an rpmbuild toolchain. Many users will
+find to convenient to use the one provided with their system. To enable that
+toolchain add the following stanza to WORKSPACE:
+
+```
+# Find rpmbuild if it exists.
+load("@rules_pkg//toolchains/rpm:rpmbuild_configure.bzl", "find_system_rpmbuild")
+find_system_rpmbuild(name="rules_pkg_rpmbuild")
+```
+
+<a id="pkg_rpm"></a>
+
+## pkg_rpm
+
+<pre>
+load("@rules_pkg//pkg:rpm_pfg.bzl", "pkg_rpm")
+
+pkg_rpm(<a href="#pkg_rpm-name">name</a>, <a href="#pkg_rpm-srcs">srcs</a>, <a href="#pkg_rpm-architecture">architecture</a>, <a href="#pkg_rpm-binary_payload_compression">binary_payload_compression</a>, <a href="#pkg_rpm-changelog">changelog</a>, <a href="#pkg_rpm-conflicts">conflicts</a>, <a href="#pkg_rpm-debug">debug</a>,
+        <a href="#pkg_rpm-debuginfo">debuginfo</a>, <a href="#pkg_rpm-defines">defines</a>, <a href="#pkg_rpm-description">description</a>, <a href="#pkg_rpm-description_file">description_file</a>, <a href="#pkg_rpm-epoch">epoch</a>, <a href="#pkg_rpm-group">group</a>, <a href="#pkg_rpm-license">license</a>, <a href="#pkg_rpm-obsoletes">obsoletes</a>,
+        <a href="#pkg_rpm-package_file_name">package_file_name</a>, <a href="#pkg_rpm-package_name">package_name</a>, <a href="#pkg_rpm-package_variables">package_variables</a>, <a href="#pkg_rpm-post_scriptlet">post_scriptlet</a>, <a href="#pkg_rpm-post_scriptlet_file">post_scriptlet_file</a>,
+        <a href="#pkg_rpm-posttrans_scriptlet">posttrans_scriptlet</a>, <a href="#pkg_rpm-posttrans_scriptlet_file">posttrans_scriptlet_file</a>, <a href="#pkg_rpm-postun_scriptlet">postun_scriptlet</a>, <a href="#pkg_rpm-postun_scriptlet_file">postun_scriptlet_file</a>,
+        <a href="#pkg_rpm-pre_scriptlet">pre_scriptlet</a>, <a href="#pkg_rpm-pre_scriptlet_file">pre_scriptlet_file</a>, <a href="#pkg_rpm-preun_scriptlet">preun_scriptlet</a>, <a href="#pkg_rpm-preun_scriptlet_file">preun_scriptlet_file</a>, <a href="#pkg_rpm-provides">provides</a>, <a href="#pkg_rpm-release">release</a>,
+        <a href="#pkg_rpm-release_file">release_file</a>, <a href="#pkg_rpm-requires">requires</a>, <a href="#pkg_rpm-requires_contextual">requires_contextual</a>, <a href="#pkg_rpm-rpmbuild_path">rpmbuild_path</a>, <a href="#pkg_rpm-source_date_epoch">source_date_epoch</a>,
+        <a href="#pkg_rpm-source_date_epoch_file">source_date_epoch_file</a>, <a href="#pkg_rpm-spec_template">spec_template</a>, <a href="#pkg_rpm-subrpms">subrpms</a>, <a href="#pkg_rpm-summary">summary</a>, <a href="#pkg_rpm-url">url</a>, <a href="#pkg_rpm-version">version</a>, <a href="#pkg_rpm-version_file">version_file</a>)
+</pre>
+
+Creates an RPM format package via `pkg_filegroup` and friends.
+
+The uses the outputs of the rules in `mappings.bzl` to construct arbitrary
+RPM packages.  Attributes of this rule provide preamble information and
+scriptlets, which are then used to compose a valid RPM spec file.
+
+This rule will fail at analysis time if:
+
+- Any `srcs` input creates the same destination, regardless of other
+  attributes.
+
+This rule only functions on UNIXy platforms. The following tools must be
+available on your system for this to function properly:
+
+- `rpmbuild` (as specified in `rpmbuild_path`, or available in `$PATH`)
+
+- GNU coreutils.  BSD coreutils may work, but are not tested.
+
+To set RPM file attributes (like `%config` and friends), set the
+`rpm_filetag` in corresponding packaging rule (`pkg_files`, etc).  The value
+is prepended with "%" and added to the `%files` list, for example:
+
+```
+attrs = {"rpm_filetag": ("config(missingok, noreplace)",)},
+```
+
+Is the equivalent to `%config(missingok, noreplace)` in the `%files` list.
+
+This rule produces 2 artifacts: an .rpm and a .changes file. The DefaultInfo will
+include both. If you need downstream rule to specifically depend on only the .rpm or
+.changes file then you can use `filegroup` to select distinct output groups.
+
+**OutputGroupInfo**
+- `out` the RPM or a symlink to the actual package.
+- `rpm` the package with any precise file name created with `package_file_name`.
+- `changes` the .changes file.
+
+**ATTRIBUTES**
+
+
+| Name  | Description | Type | Mandatory | Default |
+| :------------- | :------------- | :------------- | :------------- | :------------- |
+| <a id="pkg_rpm-name"></a>name |  A unique name for this target.   | <a href="https://bazel.build/concepts/labels#target-names">Name</a> | required |  |
+| <a id="pkg_rpm-srcs"></a>srcs |  Mapping groups to include in this RPM.<br><br>These are typically brought into life as `pkg_filegroup`s.   | <a href="https://bazel.build/concepts/labels">List of labels</a> | required |  |
+| <a id="pkg_rpm-architecture"></a>architecture |  Package architecture.<br><br>This currently sets the `BuildArch` tag, which influences the output architecture of the package.<br><br>Typically, `BuildArch` only needs to be set when the package is known to be cross-platform (e.g. written in an interpreted language), or, less common, when it is known that the application is only valid for specific architectures.<br><br>When no attribute is provided, this will default to your host's architecture.  This is usually what you want.   | String | optional |  `""`  |
+| <a id="pkg_rpm-binary_payload_compression"></a>binary_payload_compression |  Compression mode used for this RPM<br><br>Must be a form that `rpmbuild(8)` knows how to process, which will depend on the version of `rpmbuild` in use.  The value corresponds to the `%_binary_payload` macro and is set on the `rpmbuild(8)` command line if provided.<br><br>Some examples of valid values (which may not be supported on your system) can be found [here](https://git.io/JU9Wg).  On CentOS systems (also likely Red Hat and Fedora), you can find some supported values by looking for `%_binary_payload` in `/usr/lib/rpm/macros`.  Other systems have similar files and configurations.<br><br>If not provided, the compression mode will be computed by `rpmbuild` itself.  Defaults may vary per distribution or build of `rpm`; consult the relevant documentation for more details.<br><br>WARNING: Bazel is currently not aware of action threading requirements for non-test actions.  Using threaded compression may result in overcommitting your system.   | String | optional |  `""`  |
+| <a id="pkg_rpm-changelog"></a>changelog |  -   | <a href="https://bazel.build/concepts/labels">Label</a> | optional |  `None`  |
+| <a id="pkg_rpm-conflicts"></a>conflicts |  List of capabilities that conflict with this package when it is installed.<br><br>Corresponds to the "Conflicts" preamble tag.<br><br>See also: https://rpm-software-management.github.io/rpm/manual/dependencies.html   | List of strings | optional |  `[]`  |
+| <a id="pkg_rpm-debug"></a>debug |  Debug the RPM helper script and RPM generation   | Boolean | optional |  `False`  |
+| <a id="pkg_rpm-debuginfo"></a>debuginfo |  Enable generation of debuginfo RPMs<br><br>For supported platforms this will enable the generation of debuginfo RPMs adjacent to the regular RPMs.  Currently this is supported by Fedora 40, CentOS7 and CentOS Stream 9.   | Boolean | optional |  `False`  |
+| <a id="pkg_rpm-defines"></a>defines |  Additional definitions to pass to rpmbuild   | <a href="https://bazel.build/rules/lib/dict">Dictionary: String -> String</a> | optional |  `{}`  |
+| <a id="pkg_rpm-description"></a>description |  Multi-line description of this package, corresponds to RPM %description.<br><br>Exactly one of `description` or `description_file` must be provided.   | String | optional |  `""`  |
+| <a id="pkg_rpm-description_file"></a>description_file |  File containing a multi-line description of this package, corresponds to RPM %description.   | <a href="https://bazel.build/concepts/labels">Label</a> | optional |  `None`  |
+| <a id="pkg_rpm-epoch"></a>epoch |  Optional; RPM "Epoch" tag.   | String | optional |  `""`  |
+| <a id="pkg_rpm-group"></a>group |  Optional; RPM "Group" tag.<br><br>NOTE: some distributions (as of writing, Fedora > 17 and CentOS/RHEL > 5) have deprecated this tag.  Other distributions may require it, but it is harmless in any case.   | String | optional |  `""`  |
+| <a id="pkg_rpm-license"></a>license |  RPM "License" tag.<br><br>The software license for the code distributed in this package.<br><br>The underlying RPM builder requires you to put something here; if your package is not going to be distributed, feel free to set this to something like "Internal".   | String | required |  |
+| <a id="pkg_rpm-obsoletes"></a>obsoletes |  List of rpm capability expressions that this package obsoletes.<br><br>Corresponds to the "Obsoletes" preamble tag.<br><br>See also: https://rpm-software-management.github.io/rpm/manual/dependencies.html   | List of strings | optional |  `[]`  |
+| <a id="pkg_rpm-package_file_name"></a>package_file_name |  See 'Common Attributes' in the rules_pkg reference.<br><br>If this is not provided, the package file given a NVRA-style (name-version-release.arch) output, which is preferred by most RPM repositories.   | String | optional |  `""`  |
+| <a id="pkg_rpm-package_name"></a>package_name |  Optional; RPM name override.<br><br>If not provided, the `name` attribute of this rule will be used instead.<br><br>This influences values like the spec file name.   | String | optional |  `""`  |
+| <a id="pkg_rpm-package_variables"></a>package_variables |  See 'Common Attributes' in the rules_pkg reference   | <a href="https://bazel.build/concepts/labels">Label</a> | optional |  `None`  |
+| <a id="pkg_rpm-post_scriptlet"></a>post_scriptlet |  RPM `%post` scriptlet.  Currently only allowed to be a shell script.<br><br>`post_scriptlet` and `post_scriptlet_file` are mutually exclusive.   | String | optional |  `""`  |
+| <a id="pkg_rpm-post_scriptlet_file"></a>post_scriptlet_file |  File containing the RPM `%post` scriptlet   | <a href="https://bazel.build/concepts/labels">Label</a> | optional |  `None`  |
+| <a id="pkg_rpm-posttrans_scriptlet"></a>posttrans_scriptlet |  RPM `%posttrans` scriptlet.  Currently only allowed to be a shell script.<br><br>`posttrans_scriptlet` and `posttrans_scriptlet_file` are mutually exclusive.   | String | optional |  `""`  |
+| <a id="pkg_rpm-posttrans_scriptlet_file"></a>posttrans_scriptlet_file |  File containing the RPM `%posttrans` scriptlet   | <a href="https://bazel.build/concepts/labels">Label</a> | optional |  `None`  |
+| <a id="pkg_rpm-postun_scriptlet"></a>postun_scriptlet |  RPM `%postun` scriptlet.  Currently only allowed to be a shell script.<br><br>`postun_scriptlet` and `postun_scriptlet_file` are mutually exclusive.   | String | optional |  `""`  |
+| <a id="pkg_rpm-postun_scriptlet_file"></a>postun_scriptlet_file |  File containing the RPM `%postun` scriptlet   | <a href="https://bazel.build/concepts/labels">Label</a> | optional |  `None`  |
+| <a id="pkg_rpm-pre_scriptlet"></a>pre_scriptlet |  RPM `%pre` scriptlet.  Currently only allowed to be a shell script.<br><br>`pre_scriptlet` and `pre_scriptlet_file` are mutually exclusive.   | String | optional |  `""`  |
+| <a id="pkg_rpm-pre_scriptlet_file"></a>pre_scriptlet_file |  File containing the RPM `%pre` scriptlet   | <a href="https://bazel.build/concepts/labels">Label</a> | optional |  `None`  |
+| <a id="pkg_rpm-preun_scriptlet"></a>preun_scriptlet |  RPM `%preun` scriptlet.  Currently only allowed to be a shell script.<br><br>`preun_scriptlet` and `preun_scriptlet_file` are mutually exclusive.   | String | optional |  `""`  |
+| <a id="pkg_rpm-preun_scriptlet_file"></a>preun_scriptlet_file |  File containing the RPM `%preun` scriptlet   | <a href="https://bazel.build/concepts/labels">Label</a> | optional |  `None`  |
+| <a id="pkg_rpm-provides"></a>provides |  List of rpm capabilities that this package provides.<br><br>Corresponds to the "Provides" preamble tag.<br><br>See also: https://rpm-software-management.github.io/rpm/manual/dependencies.html   | List of strings | optional |  `[]`  |
+| <a id="pkg_rpm-release"></a>release |  RPM "Release" tag<br><br>Exactly one of `release` or `release_file` must be provided.   | String | optional |  `""`  |
+| <a id="pkg_rpm-release_file"></a>release_file |  File containing RPM "Release" tag.   | <a href="https://bazel.build/concepts/labels">Label</a> | optional |  `None`  |
+| <a id="pkg_rpm-requires"></a>requires |  List of rpm capability expressions that this package requires.<br><br>Corresponds to the "Requires" preamble tag.<br><br>See also: https://rpm-software-management.github.io/rpm/manual/dependencies.html   | List of strings | optional |  `[]`  |
+| <a id="pkg_rpm-requires_contextual"></a>requires_contextual |  Contextualized requirement specifications<br><br>This is a map of various properties (often scriptlet types) to capability name specifications, e.g.:<br><br><pre><code class="language-python">{"pre": ["GConf2"],"post": ["GConf2"], "postun": ["GConf2"]}</code></pre><br><br>Which causes the below to be added to the spec file's preamble:<br><br><pre><code>Requires(pre): GConf2&#10;Requires(post): GConf2&#10;Requires(postun): GConf2</code></pre><br><br>This is most useful for ensuring that required tools exist when scriptlets are run, although there may be other valid use cases. Valid keys for this attribute may include, but are not limited to:<br><br>- `pre` - `post` - `preun` - `postun` - `pretrans` - `posttrans`<br><br>For capabilities that are always required by packages at runtime, use the `requires` attribute instead.<br><br>See also: https://rpm-software-management.github.io/rpm/manual/more_dependencies.html<br><br>NOTE: `pkg_rpm` does not check if the keys of this dictionary are acceptable to `rpm(8)`.   | <a href="https://bazel.build/rules/lib/dict">Dictionary: String -> List of strings</a> | optional |  `{}`  |
+| <a id="pkg_rpm-rpmbuild_path"></a>rpmbuild_path |  Path to a `rpmbuild` binary.  Deprecated in favor of the rpmbuild toolchain   | String | optional |  `""`  |
+| <a id="pkg_rpm-source_date_epoch"></a>source_date_epoch |  Value to export as SOURCE_DATE_EPOCH to facilitate reproducible builds<br><br>Implicitly sets the `%clamp_mtime_to_source_date_epoch` in the subordinate call to `rpmbuild` to facilitate more consistent in-RPM file timestamps.<br><br>Negative values (like the default) disable this feature.   | Integer | optional |  `-1`  |
+| <a id="pkg_rpm-source_date_epoch_file"></a>source_date_epoch_file |  File containing the SOURCE_DATE_EPOCH value.<br><br>Implicitly sets the `%clamp_mtime_to_source_date_epoch` in the subordinate call to `rpmbuild` to facilitate more consistent in-RPM file timestamps.   | <a href="https://bazel.build/concepts/labels">Label</a> | optional |  `None`  |
+| <a id="pkg_rpm-spec_template"></a>spec_template |  Spec file template.<br><br>Use this if you need to add additional logic to your spec files that is not available by default.<br><br>In most cases, you should not need to override this attribute.   | <a href="https://bazel.build/concepts/labels">Label</a> | optional |  `"@rules_pkg//pkg/rpm:template.spec.tpl"`  |
+| <a id="pkg_rpm-subrpms"></a>subrpms |  Sub RPMs to build with this RPM<br><br>A list of `pkg_sub_rpm` instances that can be used to create sub RPMs as part of the overall package build.<br><br>NOTE: use of `subrpms` is incompatible with the legacy `spec_file` mode   | <a href="https://bazel.build/concepts/labels">List of labels</a> | optional |  `[]`  |
+| <a id="pkg_rpm-summary"></a>summary |  RPM "Summary" tag.<br><br>One-line summary of this package.  Must not contain newlines.   | String | required |  |
+| <a id="pkg_rpm-url"></a>url |  RPM "URL" tag; this project/vendor's home on the Internet.   | String | optional |  `""`  |
+| <a id="pkg_rpm-version"></a>version |  RPM "Version" tag.<br><br>Exactly one of `version` or `version_file` must be provided.   | String | optional |  `""`  |
+| <a id="pkg_rpm-version_file"></a>version_file |  File containing RPM "Version" tag.   | <a href="https://bazel.build/concepts/labels">Label</a> | optional |  `None`  |
+
+
+
+<!-- Generated with Stardoc: http://skydoc.bazel.build -->
+
+Rules for making .tar files.
+
+<a id="pkg_tar"></a>
+
+## pkg_tar
+
+<pre>
+load("@rules_pkg//pkg/private/tar:tar.bzl", "pkg_tar")
+
+pkg_tar(<a href="#pkg_tar-name">name</a>, <a href="#pkg_tar-deps">deps</a>, <a href="#pkg_tar-srcs">srcs</a>, <a href="#pkg_tar-out">out</a>, <a href="#pkg_tar-allow_duplicates_from_deps">allow_duplicates_from_deps</a>,
+             <a href="#pkg_tar-allow_duplicates_with_different_content">allow_duplicates_with_different_content</a>, <a href="#pkg_tar-compression_level">compression_level</a>, <a href="#pkg_tar-compressor">compressor</a>, <a href="#pkg_tar-compressor_args">compressor_args</a>,
+             <a href="#pkg_tar-create_parents">create_parents</a>, <a href="#pkg_tar-empty_dirs">empty_dirs</a>, <a href="#pkg_tar-empty_files">empty_files</a>, <a href="#pkg_tar-extension">extension</a>, <a href="#pkg_tar-files">files</a>, <a href="#pkg_tar-include_runfiles">include_runfiles</a>, <a href="#pkg_tar-mode">mode</a>, <a href="#pkg_tar-modes">modes</a>,
+             <a href="#pkg_tar-mtime">mtime</a>, <a href="#pkg_tar-owner">owner</a>, <a href="#pkg_tar-ownername">ownername</a>, <a href="#pkg_tar-ownernames">ownernames</a>, <a href="#pkg_tar-owners">owners</a>, <a href="#pkg_tar-package_dir">package_dir</a>, <a href="#pkg_tar-package_dir_file">package_dir_file</a>,
+             <a href="#pkg_tar-package_file_name">package_file_name</a>, <a href="#pkg_tar-package_variables">package_variables</a>, <a href="#pkg_tar-portable_mtime">portable_mtime</a>, <a href="#pkg_tar-private_stamp_detect">private_stamp_detect</a>, <a href="#pkg_tar-remap_paths">remap_paths</a>,
+             <a href="#pkg_tar-stamp">stamp</a>, <a href="#pkg_tar-strip_prefix">strip_prefix</a>, <a href="#pkg_tar-symlinks">symlinks</a>)
+</pre>
+
+
+
+**ATTRIBUTES**
+
+
+| Name  | Description | Type | Mandatory | Default |
+| :------------- | :------------- | :------------- | :------------- | :------------- |
+| <a id="pkg_tar-name"></a>name |  A unique name for this target.   | <a href="https://bazel.build/concepts/labels#target-names">Name</a> | required |  |
+| <a id="pkg_tar-deps"></a>deps |  tar files which will be unpacked and repacked into the archive.   | <a href="https://bazel.build/concepts/labels">List of labels</a> | optional |  `[]`  |
+| <a id="pkg_tar-srcs"></a>srcs |  Inputs which will become part of the tar archive.   | <a href="https://bazel.build/concepts/labels">List of labels</a> | optional |  `[]`  |
+| <a id="pkg_tar-out"></a>out |  -   | <a href="https://bazel.build/concepts/labels">Label</a> | required |  |
+| <a id="pkg_tar-allow_duplicates_from_deps"></a>allow_duplicates_from_deps |  -   | Boolean | optional |  `False`  |
+| <a id="pkg_tar-allow_duplicates_with_different_content"></a>allow_duplicates_with_different_content |  If true, will allow you to reference multiple pkg_* which conflict (writing different content or metadata to the same destination). Such behaviour is always incorrect, but we provide a flag to support it in case old builds were accidentally doing it. Never explicitly set this to true for new code.   | Boolean | optional |  `True`  |
+| <a id="pkg_tar-compression_level"></a>compression_level |  Specify the numeric compression level in gzip mode; may be 0-9 or -1 (default to 6).   | Integer | optional |  `-1`  |
+| <a id="pkg_tar-compressor"></a>compressor |  External tool which can compress the archive.   | <a href="https://bazel.build/concepts/labels">Label</a> | optional |  `None`  |
+| <a id="pkg_tar-compressor_args"></a>compressor_args |  Arg list for `compressor`.   | String | optional |  `""`  |
+| <a id="pkg_tar-create_parents"></a>create_parents |  -   | Boolean | optional |  `True`  |
+| <a id="pkg_tar-empty_dirs"></a>empty_dirs |  -   | List of strings | optional |  `[]`  |
+| <a id="pkg_tar-empty_files"></a>empty_files |  -   | List of strings | optional |  `[]`  |
+| <a id="pkg_tar-extension"></a>extension |  -   | String | optional |  `"tar"`  |
+| <a id="pkg_tar-files"></a>files |  Obsolete. Do not use.   | <a href="https://bazel.build/rules/lib/dict">Dictionary: Label -> String</a> | optional |  `{}`  |
+| <a id="pkg_tar-include_runfiles"></a>include_runfiles |  Include runfiles for executables. These appear as they would in bazel-bin.For example: 'path/to/myprog.runfiles/path/to/my_data.txt'.   | Boolean | optional |  `False`  |
+| <a id="pkg_tar-mode"></a>mode |  -   | String | optional |  `"0555"`  |
+| <a id="pkg_tar-modes"></a>modes |  -   | <a href="https://bazel.build/rules/lib/dict">Dictionary: String -> String</a> | optional |  `{}`  |
+| <a id="pkg_tar-mtime"></a>mtime |  -   | Integer | optional |  `-1`  |
+| <a id="pkg_tar-owner"></a>owner |  Default numeric owner.group to apply to files when not set via pkg_attributes.   | String | optional |  `"0.0"`  |
+| <a id="pkg_tar-ownername"></a>ownername |  -   | String | optional |  `"."`  |
+| <a id="pkg_tar-ownernames"></a>ownernames |  -   | <a href="https://bazel.build/rules/lib/dict">Dictionary: String -> String</a> | optional |  `{}`  |
+| <a id="pkg_tar-owners"></a>owners |  -   | <a href="https://bazel.build/rules/lib/dict">Dictionary: String -> String</a> | optional |  `{}`  |
+| <a id="pkg_tar-package_dir"></a>package_dir |  Prefix to be prepend to all paths written.<br><br>This is applied as a final step, while writing to the archive. Any other attributes (e.g. symlinks) which specify a path, must do so relative to package_dir. The value may contain variables. See [package_file_name](#package_file_name) for examples.   | String | optional |  `""`  |
+| <a id="pkg_tar-package_dir_file"></a>package_dir_file |  -   | <a href="https://bazel.build/concepts/labels">Label</a> | optional |  `None`  |
+| <a id="pkg_tar-package_file_name"></a>package_file_name |  See [Common Attributes](#package_file_name)   | String | optional |  `""`  |
+| <a id="pkg_tar-package_variables"></a>package_variables |  See [Common Attributes](#package_variables)   | <a href="https://bazel.build/concepts/labels">Label</a> | optional |  `None`  |
+| <a id="pkg_tar-portable_mtime"></a>portable_mtime |  -   | Boolean | optional |  `True`  |
+| <a id="pkg_tar-private_stamp_detect"></a>private_stamp_detect |  -   | Boolean | optional |  `False`  |
+| <a id="pkg_tar-remap_paths"></a>remap_paths |  -   | <a href="https://bazel.build/rules/lib/dict">Dictionary: String -> String</a> | optional |  `{}`  |
+| <a id="pkg_tar-stamp"></a>stamp |  Enable file time stamping.  Possible values: <li>stamp = 1: Use the time of the build as the modification time of each file in the archive. <li>stamp = 0: Use an "epoch" time for the modification time of each file. This gives good build result caching. <li>stamp = -1: Control the chosen modification time using the --[no]stamp flag. <div class="since"><i>Since 0.5.0</i></div>   | Integer | optional |  `0`  |
+| <a id="pkg_tar-strip_prefix"></a>strip_prefix |  (note: Use strip_prefix = "." to strip path to the package but preserve relative paths of sub directories beneath the package.)   | String | optional |  `""`  |
+| <a id="pkg_tar-symlinks"></a>symlinks |  -   | <a href="https://bazel.build/rules/lib/dict">Dictionary: String -> String</a> | optional |  `{}`  |
+
+
+
+<!-- Generated with Stardoc: http://skydoc.bazel.build -->
+
+Zip archive creation rule and associated logic.
+
+<a id="pkg_zip"></a>
+
+## pkg_zip
+
+<pre>
+load("@rules_pkg//pkg/private/zip:zip.bzl", "pkg_zip")
+
+pkg_zip(<a href="#pkg_zip-name">name</a>, <a href="#pkg_zip-srcs">srcs</a>, <a href="#pkg_zip-out">out</a>, <a href="#pkg_zip-allow_duplicates_with_different_content">allow_duplicates_with_different_content</a>, <a href="#pkg_zip-compression_level">compression_level</a>,
+             <a href="#pkg_zip-compression_type">compression_type</a>, <a href="#pkg_zip-include_runfiles">include_runfiles</a>, <a href="#pkg_zip-mode">mode</a>, <a href="#pkg_zip-package_dir">package_dir</a>, <a href="#pkg_zip-package_file_name">package_file_name</a>,
+             <a href="#pkg_zip-package_variables">package_variables</a>, <a href="#pkg_zip-private_stamp_detect">private_stamp_detect</a>, <a href="#pkg_zip-stamp">stamp</a>, <a href="#pkg_zip-strip_prefix">strip_prefix</a>, <a href="#pkg_zip-timestamp">timestamp</a>)
+</pre>
+
+
+
+**ATTRIBUTES**
+
+
+| Name  | Description | Type | Mandatory | Default |
+| :------------- | :------------- | :------------- | :------------- | :------------- |
+| <a id="pkg_zip-name"></a>name |  A unique name for this target.   | <a href="https://bazel.build/concepts/labels#target-names">Name</a> | required |  |
+| <a id="pkg_zip-srcs"></a>srcs |  List of files that should be included in the archive.   | <a href="https://bazel.build/concepts/labels">List of labels</a> | optional |  `[]`  |
+| <a id="pkg_zip-out"></a>out |  output file name. Default: name + ".zip".   | <a href="https://bazel.build/concepts/labels">Label</a> | required |  |
+| <a id="pkg_zip-allow_duplicates_with_different_content"></a>allow_duplicates_with_different_content |  If true, will allow you to reference multiple pkg_* which conflict (writing different content or metadata to the same destination). Such behaviour is always incorrect, but we provide a flag to support it in case old builds were accidentally doing it. Never explicitly set this to true for new code.   | Boolean | optional |  `True`  |
+| <a id="pkg_zip-compression_level"></a>compression_level |  The compression level to use, 1 is the fastest, 9 gives the smallest results. 0 skips compression, depending on the method used   | Integer | optional |  `6`  |
+| <a id="pkg_zip-compression_type"></a>compression_type |  The compression to use. Note that lzma and bzip2 might not be supported by all readers. The list of compressions is the same as Python's ZipFile: https://docs.python.org/3/library/zipfile.html#zipfile.ZIP_STORED   | String | optional |  `"deflated"`  |
+| <a id="pkg_zip-include_runfiles"></a>include_runfiles |  See standard attributes.   | Boolean | optional |  `False`  |
+| <a id="pkg_zip-mode"></a>mode |  The default mode for all files in the archive.   | String | optional |  `"0555"`  |
+| <a id="pkg_zip-package_dir"></a>package_dir |  Prefix to be prepend to all paths written. The name may contain variables, same as [package_file_name](#package_file_name)   | String | optional |  `"/"`  |
+| <a id="pkg_zip-package_file_name"></a>package_file_name |  See [Common Attributes](#package_file_name)   | String | optional |  `""`  |
+| <a id="pkg_zip-package_variables"></a>package_variables |  See [Common Attributes](#package_variables)   | <a href="https://bazel.build/concepts/labels">Label</a> | optional |  `None`  |
+| <a id="pkg_zip-private_stamp_detect"></a>private_stamp_detect |  -   | Boolean | optional |  `False`  |
+| <a id="pkg_zip-stamp"></a>stamp |  Enable file time stamping.  Possible values: <li>stamp = 1: Use the time of the build as the modification time of each file in the archive. <li>stamp = 0: Use an "epoch" time for the modification time of each file. This gives good build result caching. <li>stamp = -1: Control the chosen modification time using the --[no]stamp flag.   | Integer | optional |  `0`  |
+| <a id="pkg_zip-strip_prefix"></a>strip_prefix |  -   | String | optional |  `""`  |
+| <a id="pkg_zip-timestamp"></a>timestamp |  Time stamp to place on all files in the archive, expressed as seconds since the Unix Epoch, as per RFC 3339.  The default is January 01, 1980, 00:00 UTC.<br><br>Due to limitations in the format of zip files, values before Jan 1, 1980 will be rounded up and the precision in the zip file is limited to a granularity of 2 seconds.   | Integer | optional |  `315532800`  |
+
+
+
+<!-- Generated with Stardoc: http://skydoc.bazel.build -->
+
+Package creation helper mapping rules.
+
+This module declares Provider interfaces and rules for specifying the contents
+of packages in a package-type-agnostic way.  The main rules supported here are
+the following:
+
+- `pkg_files` describes destinations for rule outputs
+- `pkg_mkdirs` describes directory structures
+- `pkg_mklink` describes symbolic links
+- `pkg_filegroup` creates groupings of above to add to packages
+
+Rules that actually make use of the outputs of the above rules are not specified
+here.
+
+<a id="filter_directory"></a>
+
+## filter_directory
+
+<pre>
+load("@rules_pkg//pkg:mappings.bzl", "filter_directory")
+
+filter_directory(<a href="#filter_directory-name">name</a>, <a href="#filter_directory-src">src</a>, <a href="#filter_directory-excludes">excludes</a>, <a href="#filter_directory-outdir_name">outdir_name</a>, <a href="#filter_directory-prefix">prefix</a>, <a href="#filter_directory-renames">renames</a>, <a href="#filter_directory-strip_prefix">strip_prefix</a>)
+</pre>
+
+Transform directories (TreeArtifacts) using pkg_filegroup-like semantics.
+
+Effective order of operations:
+
+1) Files are `exclude`d
+2) `renames` _or_ `strip_prefix` is applied.
+3) `prefix` is applied
+
+In particular, if a `rename` applies to an individual file, `strip_prefix`
+will not be applied to that particular file.
+
+Each non-`rename``d path will look like this:
+
+```
+$OUTPUT_DIR/$PREFIX/$FILE_WITHOUT_STRIP_PREFIX
+```
+
+Each `rename`d path will look like this:
+
+```
+$OUTPUT_DIR/$PREFIX/$FILE_RENAMED
+```
+
+If an operation cannot be applied (`strip_prefix`) to any component in the
+directory, or if one is unused (`exclude`, `rename`), the underlying command
+will fail.  See the individual attributes for details.
+
+**ATTRIBUTES**
+
+
+| Name  | Description | Type | Mandatory | Default |
+| :------------- | :------------- | :------------- | :------------- | :------------- |
+| <a id="filter_directory-name"></a>name |  A unique name for this target.   | <a href="https://bazel.build/concepts/labels#target-names">Name</a> | required |  |
+| <a id="filter_directory-src"></a>src |  Directory (TreeArtifact) to process.   | <a href="https://bazel.build/concepts/labels">Label</a> | required |  |
+| <a id="filter_directory-excludes"></a>excludes |  Files to exclude from the output directory.<br><br>Each element must refer to an individual file in `src`.<br><br>All exclusions must be used.   | List of strings | optional |  `[]`  |
+| <a id="filter_directory-outdir_name"></a>outdir_name |  Name of output directory (otherwise defaults to the rule's name)   | String | optional |  `""`  |
+| <a id="filter_directory-prefix"></a>prefix |  Prefix to add to all paths in the output directory.<br><br>This does not include the output directory name, which will be added regardless.   | String | optional |  `""`  |
+| <a id="filter_directory-renames"></a>renames |  Files to rename in the output directory.<br><br>Keys are destinations, values are sources prior to any path modifications (e.g. via `prefix` or `strip_prefix`).  Files that are `exclude`d must not be renamed.<br><br>This currently only operates on individual files.  `strip_prefix` does not apply to them.<br><br>All renames must be used.   | <a href="https://bazel.build/rules/lib/dict">Dictionary: String -> String</a> | optional |  `{}`  |
+| <a id="filter_directory-strip_prefix"></a>strip_prefix |  Prefix to remove from all paths in the output directory.<br><br>Must apply to all paths in the directory, even those rename'd.   | String | optional |  `""`  |
+
+
+<a id="pkg_filegroup"></a>
+
+## pkg_filegroup
+
+<pre>
+load("@rules_pkg//pkg:mappings.bzl", "pkg_filegroup")
+
+pkg_filegroup(<a href="#pkg_filegroup-name">name</a>, <a href="#pkg_filegroup-srcs">srcs</a>, <a href="#pkg_filegroup-prefix">prefix</a>)
+</pre>
+
+Package contents grouping rule.
+
+This rule represents a collection of packaging specifications (e.g. those
+created by `pkg_files`, `pkg_mklink`, etc.) that have something in common,
+such as a prefix or a human-readable category.
+
+**ATTRIBUTES**
+
+
+| Name  | Description | Type | Mandatory | Default |
+| :------------- | :------------- | :------------- | :------------- | :------------- |
+| <a id="pkg_filegroup-name"></a>name |  A unique name for this target.   | <a href="https://bazel.build/concepts/labels#target-names">Name</a> | required |  |
+| <a id="pkg_filegroup-srcs"></a>srcs |  A list of packaging specifications to be grouped together.   | <a href="https://bazel.build/concepts/labels">List of labels</a> | required |  |
+| <a id="pkg_filegroup-prefix"></a>prefix |  A prefix to prepend to provided paths, applied like so:<br><br>- For files and directories, this is simply prepended to the destination - For symbolic links, this is prepended to the "destination" part.   | String | optional |  `""`  |
+
+
+<a id="pkg_files"></a>
+
+## pkg_files
+
+<pre>
+load("@rules_pkg//pkg:mappings.bzl", "pkg_files")
+
+pkg_files(<a href="#pkg_files-name">name</a>, <a href="#pkg_files-srcs">srcs</a>, <a href="#pkg_files-attributes">attributes</a>, <a href="#pkg_files-excludes">excludes</a>, <a href="#pkg_files-include_runfiles">include_runfiles</a>, <a href="#pkg_files-prefix">prefix</a>, <a href="#pkg_files-renames">renames</a>, <a href="#pkg_files-strip_prefix">strip_prefix</a>)
+</pre>
+
+General-purpose package target-to-destination mapping rule.
+
+This rule provides a specification for the locations and attributes of
+targets when they are packaged. No outputs are created other than Providers
+that are intended to be consumed by other packaging rules, such as
+`pkg_rpm`. `pkg_files` targets may be consumed by other `pkg_files` or
+`pkg_filegroup` to build up complex layouts, or directly by top level
+packaging rules such as `pkg_files`.
+
+Consumers of `pkg_files`s will, where possible, create the necessary
+directory structure for your files so you do not have to unless you have
+special requirements.  Consult `pkg_mkdirs` for more details.
+
+**ATTRIBUTES**
+
+
+| Name  | Description | Type | Mandatory | Default |
+| :------------- | :------------- | :------------- | :------------- | :------------- |
+| <a id="pkg_files-name"></a>name |  A unique name for this target.   | <a href="https://bazel.build/concepts/labels#target-names">Name</a> | required |  |
+| <a id="pkg_files-srcs"></a>srcs |  Files/Labels to include in the outputs of these rules   | <a href="https://bazel.build/concepts/labels">List of labels</a> | required |  |
+| <a id="pkg_files-attributes"></a>attributes |  Attributes to set on packaged files.<br><br>Always use `pkg_attributes()` to set this rule attribute.<br><br>If not otherwise overridden, the file's mode will be set to UNIX "0644", or the target platform's equivalent.<br><br>Consult the "Mapping Attributes" documentation in the rules_pkg reference for more details.   | String | optional |  `"{}"`  |
+| <a id="pkg_files-excludes"></a>excludes |  List of files or labels to exclude from the inputs to this rule.<br><br>Mostly useful for removing files from generated outputs or preexisting `filegroup`s.   | <a href="https://bazel.build/concepts/labels">List of labels</a> | optional |  `[]`  |
+| <a id="pkg_files-include_runfiles"></a>include_runfiles |  Add runfiles for all srcs.<br><br>The runfiles are in the paths that Bazel uses. For example, for the target `//my_prog:foo`, we would see files under paths like `foo.runfiles/<repo name>/my_prog/<file>`   | Boolean | optional |  `False`  |
+| <a id="pkg_files-prefix"></a>prefix |  Installation prefix.<br><br>This may be an arbitrary string, but it should be understandable by the packaging system you are using to have the desired outcome.  For example, RPM macros like `%{_libdir}` may work correctly in paths for RPM packages, not, say, Debian packages.<br><br>If any part of the directory structure of the computed destination of a file provided to `pkg_filegroup` or any similar rule does not already exist within a package, the package builder will create it for you with a reasonable set of default permissions (typically `0755 root.root`).<br><br>It is possible to establish directory structures with arbitrary permissions using `pkg_mkdirs`.   | String | optional |  `""`  |
+| <a id="pkg_files-renames"></a>renames |  Destination override map.<br><br>This attribute allows the user to override destinations of files in `pkg_file`s relative to the `prefix` attribute.  Keys to the dict are source files/labels, values are destinations relative to the `prefix`, ignoring whatever value was provided for `strip_prefix`.<br><br>If the key refers to a TreeArtifact (directory output), you may specify the constant `REMOVE_BASE_DIRECTORY` as the value, which will result in all containing files and directories being installed relative to the otherwise specified install prefix (via the `prefix` and `strip_prefix` attributes), not the directory name.<br><br>The following keys are rejected:<br><br>- Any label that expands to more than one file (mappings must be   one-to-one).<br><br>- Any label or file that was either not provided or explicitly   `exclude`d.<br><br>The following values result in undefined behavior:<br><br>- "" (the empty string)<br><br>- "."<br><br>- Anything containing ".."   | <a href="https://bazel.build/rules/lib/dict">Dictionary: Label -> String</a> | optional |  `{}`  |
+| <a id="pkg_files-strip_prefix"></a>strip_prefix |  What prefix of a file's path to discard prior to installation.<br><br>This specifies what prefix of an incoming file's path should not be included in the output package at after being appended to the install prefix (the `prefix` attribute).  Note that this is only applied to full directory names, see `strip_prefix` for more details.<br><br>Use the `strip_prefix` struct to define this attribute.  If this attribute is not specified, all directories will be stripped from all files prior to being included in packages (`strip_prefix.files_only()`).<br><br>If prefix stripping fails on any file provided in `srcs`, the build will fail.<br><br>Note that this only functions on paths that are known at analysis time.  Specifically, this will not consider directories within TreeArtifacts (directory outputs), or the directories themselves. See also #269.   | String | optional |  `"."`  |
+
+
+<a id="pkg_mkdirs"></a>
+
+## pkg_mkdirs
+
+<pre>
+load("@rules_pkg//pkg:mappings.bzl", "pkg_mkdirs")
+
+pkg_mkdirs(<a href="#pkg_mkdirs-name">name</a>, <a href="#pkg_mkdirs-attributes">attributes</a>, <a href="#pkg_mkdirs-dirs">dirs</a>)
+</pre>
+
+Defines creation and ownership of directories in packages
+
+Use this if:
+
+1) You need to create an empty directory in your package.
+
+2) Your package needs to explicitly own a directory, even if it already owns
+   files in those directories.
+
+3) You need nonstandard permissions (typically, not "0755") on a directory
+   in your package.
+
+For some package management systems (e.g. RPM), directory ownership (2) may
+imply additional semantics.  Consult your package manager's and target
+distribution's documentation for more details.
+
+**ATTRIBUTES**
+
+
+| Name  | Description | Type | Mandatory | Default |
+| :------------- | :------------- | :------------- | :------------- | :------------- |
+| <a id="pkg_mkdirs-name"></a>name |  A unique name for this target.   | <a href="https://bazel.build/concepts/labels#target-names">Name</a> | required |  |
+| <a id="pkg_mkdirs-attributes"></a>attributes |  Attributes to set on packaged directories.<br><br>Always use `pkg_attributes()` to set this rule attribute.<br><br>If not otherwise overridden, the directory's mode will be set to UNIX "0755", or the target platform's equivalent.<br><br>Consult the "Mapping Attributes" documentation in the rules_pkg reference for more details.   | String | optional |  `"{}"`  |
+| <a id="pkg_mkdirs-dirs"></a>dirs |  Directory names to make within the package<br><br>If any part of the requested directory structure does not already exist within a package, the package builder will create it for you with a reasonable set of default permissions (typically `0755 root.root`).   | List of strings | required |  |
+
+
+<a id="pkg_mklink_impl"></a>
+
+## pkg_mklink_impl
+
+<pre>
+load("@rules_pkg//pkg:mappings.bzl", "pkg_mklink_impl")
+
+pkg_mklink_impl(<a href="#pkg_mklink_impl-name">name</a>, <a href="#pkg_mklink_impl-attributes">attributes</a>, <a href="#pkg_mklink_impl-link_name">link_name</a>, <a href="#pkg_mklink_impl-target">target</a>)
+</pre>
+
+Define a symlink  within packages
+
+This rule results in the creation of a single link within a package.
+
+Symbolic links specified by this rule may point at files/directories outside of the
+package, or otherwise left dangling.
+
+**ATTRIBUTES**
+
+
+| Name  | Description | Type | Mandatory | Default |
+| :------------- | :------------- | :------------- | :------------- | :------------- |
+| <a id="pkg_mklink_impl-name"></a>name |  A unique name for this target.   | <a href="https://bazel.build/concepts/labels#target-names">Name</a> | required |  |
+| <a id="pkg_mklink_impl-attributes"></a>attributes |  Attributes to set on packaged symbolic links.<br><br>Always use `pkg_attributes()` to set this rule attribute.<br><br>Symlink permissions may have different meanings depending on your host operating system; consult its documentation for more details.<br><br>If not otherwise overridden, the link's mode will be set to UNIX "0777", or the target platform's equivalent.<br><br>Consult the "Mapping Attributes" documentation in the rules_pkg reference for more details.   | String | optional |  `"{}"`  |
+| <a id="pkg_mklink_impl-link_name"></a>link_name |  Link "destination", a path within the package.<br><br>This is the actual created symbolic link.<br><br>If the directory structure provided by this attribute is not otherwise created when exist within the package when it is built, it will be created implicitly, much like with `pkg_files`.<br><br>This path may be prefixed or rooted by grouping or packaging rules.   | String | required |  |
+| <a id="pkg_mklink_impl-target"></a>target |  Link "target", a path on the filesystem.<br><br>This is what the link "points" to, and may point to an arbitrary filesystem path, even relative paths.   | String | required |  |
+
+
+<a id="pkg_attributes"></a>
+
+## pkg_attributes
+
+<pre>
+load("@rules_pkg//pkg:mappings.bzl", "pkg_attributes")
+
+pkg_attributes(<a href="#pkg_attributes-mode">mode</a>, <a href="#pkg_attributes-user">user</a>, <a href="#pkg_attributes-group">group</a>, <a href="#pkg_attributes-uid">uid</a>, <a href="#pkg_attributes-gid">gid</a>, <a href="#pkg_attributes-kwargs">**kwargs</a>)
+</pre>
+
+Format attributes for use in package mapping rules.
+
+If "mode" is not provided, it will default to the mapping rule's default
+mode.  These vary per mapping rule; consult the respective documentation for
+more details.
+
+Not providing any of "user", "group", "uid", or "gid" will result in the package
+builder choosing one for you.  The chosen value should not be relied upon.
+
+Well-known attributes outside of the above are documented in the rules_pkg
+reference.
+
+This is the only supported means of passing in attributes to package mapping
+rules (e.g. `pkg_files`).
+
+
+**PARAMETERS**
+
+
+| Name  | Description | Default Value |
+| :------------- | :------------- | :------------- |
+| <a id="pkg_attributes-mode"></a>mode |  string: UNIXy octal permissions, as a string.   |  `None` |
+| <a id="pkg_attributes-user"></a>user |  string: Filesystem owning user name.   |  `None` |
+| <a id="pkg_attributes-group"></a>group |  string: Filesystem owning group name.   |  `None` |
+| <a id="pkg_attributes-uid"></a>uid |  int: Filesystem owning user id.   |  `None` |
+| <a id="pkg_attributes-gid"></a>gid |  int: Filesystem owning group id.   |  `None` |
+| <a id="pkg_attributes-kwargs"></a>kwargs |  any other desired attributes.   |  none |
+
+**RETURNS**
+
+A value usable in the "attributes" attribute in package mapping rules.
+
+
+<a id="pkg_mklink"></a>
+
+## pkg_mklink
+
+<pre>
+load("@rules_pkg//pkg:mappings.bzl", "pkg_mklink")
+
+pkg_mklink(<a href="#pkg_mklink-name">name</a>, <a href="#pkg_mklink-link_name">link_name</a>, <a href="#pkg_mklink-target">target</a>, <a href="#pkg_mklink-attributes">attributes</a>, <a href="#pkg_mklink-src">src</a>, <a href="#pkg_mklink-kwargs">**kwargs</a>)
+</pre>
+
+Create a symlink.
+
+Wraps [pkg_mklink_impl](#pkg_mklink_impl)
+
+
+**PARAMETERS**
+
+
+| Name  | Description | Default Value |
+| :------------- | :------------- | :------------- |
+| <a id="pkg_mklink-name"></a>name |  target name   |  none |
+| <a id="pkg_mklink-link_name"></a>link_name |  the path in the package that should point to the target.   |  none |
+| <a id="pkg_mklink-target"></a>target |  target path that the link should point to.   |  none |
+| <a id="pkg_mklink-attributes"></a>attributes |  file attributes.   |  `None` |
+| <a id="pkg_mklink-src"></a>src |   -    |  `None` |
+| <a id="pkg_mklink-kwargs"></a>kwargs |   -    |  none |
+
+
+<a id="strip_prefix.files_only"></a>
+
+## strip_prefix.files_only
+
+<pre>
+load("@rules_pkg//pkg:mappings.bzl", "strip_prefix")
+
+strip_prefix.files_only()
+</pre>
+
+
+
+
+
+<a id="strip_prefix.from_pkg"></a>
+
+## strip_prefix.from_pkg
+
+<pre>
+load("@rules_pkg//pkg:mappings.bzl", "strip_prefix")
+
+strip_prefix.from_pkg(<a href="#strip_prefix.from_pkg-path">path</a>)
+</pre>
+
+
+
+**PARAMETERS**
+
+
+| Name  | Description | Default Value |
+| :------------- | :------------- | :------------- |
+| <a id="strip_prefix.from_pkg-path"></a>path |   -    |  `""` |
+
+
+<a id="strip_prefix.from_root"></a>
+
+## strip_prefix.from_root
+
+<pre>
+load("@rules_pkg//pkg:mappings.bzl", "strip_prefix")
+
+strip_prefix.from_root(<a href="#strip_prefix.from_root-path">path</a>)
+</pre>
+
+
+
+**PARAMETERS**
+
+
+| Name  | Description | Default Value |
+| :------------- | :------------- | :------------- |
+| <a id="strip_prefix.from_root-path"></a>path |   -    |  `""` |
+
+
+
+<!-- Generated with Stardoc: http://skydoc.bazel.build -->
+
+Rules to create RPM archives.
+
+NOTE: this module is deprecated in favor of pkg/rpm_pfg.bzl. For more
+information on the `pkg_filegroup` framework it uses, see pkg/mappings.bzl.
+
+pkg_rpm() depends on the existence of an rpmbuild toolchain. Many users will
+find to convenient to use the one provided with their system. To enable that
+toolchain add the following stanza to WORKSPACE:
+
+    # Find rpmbuild if it exists.
+    load("@rules_pkg//toolchains/rpm:rpmbuild_configure.bzl", "find_system_rpmbuild")
+    find_system_rpmbuild(name="rules_pkg_rpmbuild")
+
+<a id="pkg_rpm"></a>
+
+## pkg_rpm
+
+<pre>
+load("@rules_pkg//pkg/legacy:rpm.bzl", "pkg_rpm")
+
+pkg_rpm(<a href="#pkg_rpm-name">name</a>, <a href="#pkg_rpm-data">data</a>, <a href="#pkg_rpm-architecture">architecture</a>, <a href="#pkg_rpm-changelog">changelog</a>, <a href="#pkg_rpm-debug">debug</a>, <a href="#pkg_rpm-release">release</a>, <a href="#pkg_rpm-release_file">release_file</a>, <a href="#pkg_rpm-rpmbuild_path">rpmbuild_path</a>,
+        <a href="#pkg_rpm-source_date_epoch">source_date_epoch</a>, <a href="#pkg_rpm-source_date_epoch_file">source_date_epoch_file</a>, <a href="#pkg_rpm-spec_file">spec_file</a>, <a href="#pkg_rpm-version">version</a>, <a href="#pkg_rpm-version_file">version_file</a>)
+</pre>
+
+Legacy version
+
+**ATTRIBUTES**
+
+
+| Name  | Description | Type | Mandatory | Default |
+| :------------- | :------------- | :------------- | :------------- | :------------- |
+| <a id="pkg_rpm-name"></a>name |  A unique name for this target.   | <a href="https://bazel.build/concepts/labels#target-names">Name</a> | required |  |
+| <a id="pkg_rpm-data"></a>data |  -   | <a href="https://bazel.build/concepts/labels">List of labels</a> | required |  |
+| <a id="pkg_rpm-architecture"></a>architecture |  -   | String | optional |  `"all"`  |
+| <a id="pkg_rpm-changelog"></a>changelog |  -   | <a href="https://bazel.build/concepts/labels">Label</a> | optional |  `None`  |
+| <a id="pkg_rpm-debug"></a>debug |  -   | Boolean | optional |  `False`  |
+| <a id="pkg_rpm-release"></a>release |  -   | String | optional |  `""`  |
+| <a id="pkg_rpm-release_file"></a>release_file |  -   | <a href="https://bazel.build/concepts/labels">Label</a> | optional |  `None`  |
+| <a id="pkg_rpm-rpmbuild_path"></a>rpmbuild_path |  -   | String | optional |  `""`  |
+| <a id="pkg_rpm-source_date_epoch"></a>source_date_epoch |  -   | Integer | optional |  `0`  |
+| <a id="pkg_rpm-source_date_epoch_file"></a>source_date_epoch_file |  -   | <a href="https://bazel.build/concepts/labels">Label</a> | optional |  `None`  |
+| <a id="pkg_rpm-spec_file"></a>spec_file |  -   | <a href="https://bazel.build/concepts/labels">Label</a> | required |  |
+| <a id="pkg_rpm-version"></a>version |  -   | String | optional |  `""`  |
+| <a id="pkg_rpm-version_file"></a>version_file |  -   | <a href="https://bazel.build/concepts/labels">Label</a> | optional |  `None`  |
diff --git a/docs/index.md b/docs/index.md
index 89e83f6..b05174e 100644
--- a/docs/index.md
+++ b/docs/index.md
@@ -16,7 +16,8 @@
 consult more than one place to get a complete picture.
 
 *   [Latest Snapshot at head](latest.md)
-*   [Version 1.0.0](1.0.0/reference.md)
+*   [Version 1.1.0](1.1.0/reference.md)
+*   [Version 1.0.1](1.0.1/reference.md)
 *   [Version 0.10.0](0.10.0/reference.md)
 *   [Version 0.9.1](0.9.1/reference.md)
 *   [Version 0.8.0](0.8.0/reference.md)
diff --git a/docs/latest.md b/docs/latest.md
index 167c721..edced5d 100755
--- a/docs/latest.md
+++ b/docs/latest.md
@@ -1,4 +1,4 @@
-# rules_pkg - 1.0.1
+# rules_pkg - 1.1.0
 
 <div class="toc">
   <h2>Common Attributes</h2>
@@ -90,6 +90,8 @@
 ## pkg_deb
 
 <pre>
+load("@rules_pkg//pkg/private/deb:deb.bzl", "pkg_deb")
+
 pkg_deb(<a href="#pkg_deb-name">name</a>, <a href="#pkg_deb-data">data</a>, <a href="#pkg_deb-out">out</a>, <a href="#pkg_deb-architecture">architecture</a>, <a href="#pkg_deb-architecture_file">architecture_file</a>, <a href="#pkg_deb-breaks">breaks</a>, <a href="#pkg_deb-built_using">built_using</a>,
              <a href="#pkg_deb-built_using_file">built_using_file</a>, <a href="#pkg_deb-changelog">changelog</a>, <a href="#pkg_deb-conffiles">conffiles</a>, <a href="#pkg_deb-conffiles_file">conffiles_file</a>, <a href="#pkg_deb-config">config</a>, <a href="#pkg_deb-conflicts">conflicts</a>, <a href="#pkg_deb-depends">depends</a>,
              <a href="#pkg_deb-depends_file">depends_file</a>, <a href="#pkg_deb-description">description</a>, <a href="#pkg_deb-description_file">description_file</a>, <a href="#pkg_deb-distribution">distribution</a>, <a href="#pkg_deb-enhances">enhances</a>, <a href="#pkg_deb-homepage">homepage</a>, <a href="#pkg_deb-license">license</a>,
@@ -177,8 +179,10 @@
 ## pkg_sub_rpm
 
 <pre>
+load("@rules_pkg//pkg:rpm_pfg.bzl", "pkg_sub_rpm")
+
 pkg_sub_rpm(<a href="#pkg_sub_rpm-name">name</a>, <a href="#pkg_sub_rpm-srcs">srcs</a>, <a href="#pkg_sub_rpm-architecture">architecture</a>, <a href="#pkg_sub_rpm-conflicts">conflicts</a>, <a href="#pkg_sub_rpm-description">description</a>, <a href="#pkg_sub_rpm-epoch">epoch</a>, <a href="#pkg_sub_rpm-group">group</a>, <a href="#pkg_sub_rpm-obsoletes">obsoletes</a>, <a href="#pkg_sub_rpm-package_name">package_name</a>,
-            <a href="#pkg_sub_rpm-post_scriptlet">post_scriptlet</a>, <a href="#pkg_sub_rpm-provides">provides</a>, <a href="#pkg_sub_rpm-requires">requires</a>, <a href="#pkg_sub_rpm-summary">summary</a>, <a href="#pkg_sub_rpm-version">version</a>)
+            <a href="#pkg_sub_rpm-post_scriptlet">post_scriptlet</a>, <a href="#pkg_sub_rpm-postun_scriptlet">postun_scriptlet</a>, <a href="#pkg_sub_rpm-provides">provides</a>, <a href="#pkg_sub_rpm-requires">requires</a>, <a href="#pkg_sub_rpm-summary">summary</a>, <a href="#pkg_sub_rpm-version">version</a>)
 </pre>
 
 Define a sub RPM to be built as part of a parent RPM
@@ -201,6 +205,7 @@
 | <a id="pkg_sub_rpm-obsoletes"></a>obsoletes |  List of RPM capability expressions that this package obsoletes   | List of strings | optional |  `[]`  |
 | <a id="pkg_sub_rpm-package_name"></a>package_name |  name of the subrpm   | String | optional |  `""`  |
 | <a id="pkg_sub_rpm-post_scriptlet"></a>post_scriptlet |  RPM `%post` scriplet for this subrpm   | String | optional |  `""`  |
+| <a id="pkg_sub_rpm-postun_scriptlet"></a>postun_scriptlet |  RPM `%postun` scriplet for this subrpm   | String | optional |  `""`  |
 | <a id="pkg_sub_rpm-provides"></a>provides |  List of RPM capability expressions that this package provides   | List of strings | optional |  `[]`  |
 | <a id="pkg_sub_rpm-requires"></a>requires |  List of RPM capability expressions that this package requires   | List of strings | optional |  `[]`  |
 | <a id="pkg_sub_rpm-summary"></a>summary |  Sub RPM `Summary` tag   | String | optional |  `""`  |
@@ -227,6 +232,8 @@
 ## pkg_rpm
 
 <pre>
+load("@rules_pkg//pkg:rpm_pfg.bzl", "pkg_rpm")
+
 pkg_rpm(<a href="#pkg_rpm-name">name</a>, <a href="#pkg_rpm-srcs">srcs</a>, <a href="#pkg_rpm-architecture">architecture</a>, <a href="#pkg_rpm-binary_payload_compression">binary_payload_compression</a>, <a href="#pkg_rpm-changelog">changelog</a>, <a href="#pkg_rpm-conflicts">conflicts</a>, <a href="#pkg_rpm-debug">debug</a>,
         <a href="#pkg_rpm-debuginfo">debuginfo</a>, <a href="#pkg_rpm-defines">defines</a>, <a href="#pkg_rpm-description">description</a>, <a href="#pkg_rpm-description_file">description_file</a>, <a href="#pkg_rpm-epoch">epoch</a>, <a href="#pkg_rpm-group">group</a>, <a href="#pkg_rpm-license">license</a>, <a href="#pkg_rpm-obsoletes">obsoletes</a>,
         <a href="#pkg_rpm-package_file_name">package_file_name</a>, <a href="#pkg_rpm-package_name">package_name</a>, <a href="#pkg_rpm-package_variables">package_variables</a>, <a href="#pkg_rpm-post_scriptlet">post_scriptlet</a>, <a href="#pkg_rpm-post_scriptlet_file">post_scriptlet_file</a>,
@@ -332,12 +339,14 @@
 ## pkg_tar
 
 <pre>
+load("@rules_pkg//pkg/private/tar:tar.bzl", "pkg_tar")
+
 pkg_tar(<a href="#pkg_tar-name">name</a>, <a href="#pkg_tar-deps">deps</a>, <a href="#pkg_tar-srcs">srcs</a>, <a href="#pkg_tar-out">out</a>, <a href="#pkg_tar-allow_duplicates_from_deps">allow_duplicates_from_deps</a>,
-             <a href="#pkg_tar-allow_duplicates_with_different_content">allow_duplicates_with_different_content</a>, <a href="#pkg_tar-compressor">compressor</a>, <a href="#pkg_tar-compressor_args">compressor_args</a>, <a href="#pkg_tar-create_parents">create_parents</a>,
-             <a href="#pkg_tar-empty_dirs">empty_dirs</a>, <a href="#pkg_tar-empty_files">empty_files</a>, <a href="#pkg_tar-extension">extension</a>, <a href="#pkg_tar-files">files</a>, <a href="#pkg_tar-include_runfiles">include_runfiles</a>, <a href="#pkg_tar-mode">mode</a>, <a href="#pkg_tar-modes">modes</a>, <a href="#pkg_tar-mtime">mtime</a>, <a href="#pkg_tar-owner">owner</a>,
-             <a href="#pkg_tar-ownername">ownername</a>, <a href="#pkg_tar-ownernames">ownernames</a>, <a href="#pkg_tar-owners">owners</a>, <a href="#pkg_tar-package_dir">package_dir</a>, <a href="#pkg_tar-package_dir_file">package_dir_file</a>, <a href="#pkg_tar-package_file_name">package_file_name</a>,
-             <a href="#pkg_tar-package_variables">package_variables</a>, <a href="#pkg_tar-portable_mtime">portable_mtime</a>, <a href="#pkg_tar-private_stamp_detect">private_stamp_detect</a>, <a href="#pkg_tar-remap_paths">remap_paths</a>, <a href="#pkg_tar-stamp">stamp</a>,
-             <a href="#pkg_tar-strip_prefix">strip_prefix</a>, <a href="#pkg_tar-symlinks">symlinks</a>)
+             <a href="#pkg_tar-allow_duplicates_with_different_content">allow_duplicates_with_different_content</a>, <a href="#pkg_tar-compression_level">compression_level</a>, <a href="#pkg_tar-compressor">compressor</a>, <a href="#pkg_tar-compressor_args">compressor_args</a>,
+             <a href="#pkg_tar-create_parents">create_parents</a>, <a href="#pkg_tar-empty_dirs">empty_dirs</a>, <a href="#pkg_tar-empty_files">empty_files</a>, <a href="#pkg_tar-extension">extension</a>, <a href="#pkg_tar-files">files</a>, <a href="#pkg_tar-include_runfiles">include_runfiles</a>, <a href="#pkg_tar-mode">mode</a>, <a href="#pkg_tar-modes">modes</a>,
+             <a href="#pkg_tar-mtime">mtime</a>, <a href="#pkg_tar-owner">owner</a>, <a href="#pkg_tar-ownername">ownername</a>, <a href="#pkg_tar-ownernames">ownernames</a>, <a href="#pkg_tar-owners">owners</a>, <a href="#pkg_tar-package_dir">package_dir</a>, <a href="#pkg_tar-package_dir_file">package_dir_file</a>,
+             <a href="#pkg_tar-package_file_name">package_file_name</a>, <a href="#pkg_tar-package_variables">package_variables</a>, <a href="#pkg_tar-portable_mtime">portable_mtime</a>, <a href="#pkg_tar-private_stamp_detect">private_stamp_detect</a>, <a href="#pkg_tar-remap_paths">remap_paths</a>,
+             <a href="#pkg_tar-stamp">stamp</a>, <a href="#pkg_tar-strip_prefix">strip_prefix</a>, <a href="#pkg_tar-symlinks">symlinks</a>)
 </pre>
 
 
@@ -353,6 +362,7 @@
 | <a id="pkg_tar-out"></a>out |  -   | <a href="https://bazel.build/concepts/labels">Label</a> | required |  |
 | <a id="pkg_tar-allow_duplicates_from_deps"></a>allow_duplicates_from_deps |  -   | Boolean | optional |  `False`  |
 | <a id="pkg_tar-allow_duplicates_with_different_content"></a>allow_duplicates_with_different_content |  If true, will allow you to reference multiple pkg_* which conflict (writing different content or metadata to the same destination). Such behaviour is always incorrect, but we provide a flag to support it in case old builds were accidentally doing it. Never explicitly set this to true for new code.   | Boolean | optional |  `True`  |
+| <a id="pkg_tar-compression_level"></a>compression_level |  Specify the numeric compression level in gzip mode; may be 0-9 or -1 (default to 6).   | Integer | optional |  `-1`  |
 | <a id="pkg_tar-compressor"></a>compressor |  External tool which can compress the archive.   | <a href="https://bazel.build/concepts/labels">Label</a> | optional |  `None`  |
 | <a id="pkg_tar-compressor_args"></a>compressor_args |  Arg list for `compressor`.   | String | optional |  `""`  |
 | <a id="pkg_tar-create_parents"></a>create_parents |  -   | Boolean | optional |  `True`  |
@@ -390,6 +400,8 @@
 ## pkg_zip
 
 <pre>
+load("@rules_pkg//pkg/private/zip:zip.bzl", "pkg_zip")
+
 pkg_zip(<a href="#pkg_zip-name">name</a>, <a href="#pkg_zip-srcs">srcs</a>, <a href="#pkg_zip-out">out</a>, <a href="#pkg_zip-allow_duplicates_with_different_content">allow_duplicates_with_different_content</a>, <a href="#pkg_zip-compression_level">compression_level</a>,
              <a href="#pkg_zip-compression_type">compression_type</a>, <a href="#pkg_zip-include_runfiles">include_runfiles</a>, <a href="#pkg_zip-mode">mode</a>, <a href="#pkg_zip-package_dir">package_dir</a>, <a href="#pkg_zip-package_file_name">package_file_name</a>,
              <a href="#pkg_zip-package_variables">package_variables</a>, <a href="#pkg_zip-private_stamp_detect">private_stamp_detect</a>, <a href="#pkg_zip-stamp">stamp</a>, <a href="#pkg_zip-strip_prefix">strip_prefix</a>, <a href="#pkg_zip-timestamp">timestamp</a>)
@@ -441,6 +453,8 @@
 ## filter_directory
 
 <pre>
+load("@rules_pkg//pkg:mappings.bzl", "filter_directory")
+
 filter_directory(<a href="#filter_directory-name">name</a>, <a href="#filter_directory-src">src</a>, <a href="#filter_directory-excludes">excludes</a>, <a href="#filter_directory-outdir_name">outdir_name</a>, <a href="#filter_directory-prefix">prefix</a>, <a href="#filter_directory-renames">renames</a>, <a href="#filter_directory-strip_prefix">strip_prefix</a>)
 </pre>
 
@@ -490,6 +504,8 @@
 ## pkg_filegroup
 
 <pre>
+load("@rules_pkg//pkg:mappings.bzl", "pkg_filegroup")
+
 pkg_filegroup(<a href="#pkg_filegroup-name">name</a>, <a href="#pkg_filegroup-srcs">srcs</a>, <a href="#pkg_filegroup-prefix">prefix</a>)
 </pre>
 
@@ -514,6 +530,8 @@
 ## pkg_files
 
 <pre>
+load("@rules_pkg//pkg:mappings.bzl", "pkg_files")
+
 pkg_files(<a href="#pkg_files-name">name</a>, <a href="#pkg_files-srcs">srcs</a>, <a href="#pkg_files-attributes">attributes</a>, <a href="#pkg_files-excludes">excludes</a>, <a href="#pkg_files-include_runfiles">include_runfiles</a>, <a href="#pkg_files-prefix">prefix</a>, <a href="#pkg_files-renames">renames</a>, <a href="#pkg_files-strip_prefix">strip_prefix</a>)
 </pre>
 
@@ -550,6 +568,8 @@
 ## pkg_mkdirs
 
 <pre>
+load("@rules_pkg//pkg:mappings.bzl", "pkg_mkdirs")
+
 pkg_mkdirs(<a href="#pkg_mkdirs-name">name</a>, <a href="#pkg_mkdirs-attributes">attributes</a>, <a href="#pkg_mkdirs-dirs">dirs</a>)
 </pre>
 
@@ -584,6 +604,8 @@
 ## pkg_mklink_impl
 
 <pre>
+load("@rules_pkg//pkg:mappings.bzl", "pkg_mklink_impl")
+
 pkg_mklink_impl(<a href="#pkg_mklink_impl-name">name</a>, <a href="#pkg_mklink_impl-attributes">attributes</a>, <a href="#pkg_mklink_impl-link_name">link_name</a>, <a href="#pkg_mklink_impl-target">target</a>)
 </pre>
 
@@ -610,7 +632,9 @@
 ## pkg_attributes
 
 <pre>
-pkg_attributes(<a href="#pkg_attributes-mode">mode</a>, <a href="#pkg_attributes-user">user</a>, <a href="#pkg_attributes-group">group</a>, <a href="#pkg_attributes-uid">uid</a>, <a href="#pkg_attributes-gid">gid</a>, <a href="#pkg_attributes-kwargs">kwargs</a>)
+load("@rules_pkg//pkg:mappings.bzl", "pkg_attributes")
+
+pkg_attributes(<a href="#pkg_attributes-mode">mode</a>, <a href="#pkg_attributes-user">user</a>, <a href="#pkg_attributes-group">group</a>, <a href="#pkg_attributes-uid">uid</a>, <a href="#pkg_attributes-gid">gid</a>, <a href="#pkg_attributes-kwargs">**kwargs</a>)
 </pre>
 
 Format attributes for use in package mapping rules.
@@ -651,7 +675,9 @@
 ## pkg_mklink
 
 <pre>
-pkg_mklink(<a href="#pkg_mklink-name">name</a>, <a href="#pkg_mklink-link_name">link_name</a>, <a href="#pkg_mklink-target">target</a>, <a href="#pkg_mklink-attributes">attributes</a>, <a href="#pkg_mklink-src">src</a>, <a href="#pkg_mklink-kwargs">kwargs</a>)
+load("@rules_pkg//pkg:mappings.bzl", "pkg_mklink")
+
+pkg_mklink(<a href="#pkg_mklink-name">name</a>, <a href="#pkg_mklink-link_name">link_name</a>, <a href="#pkg_mklink-target">target</a>, <a href="#pkg_mklink-attributes">attributes</a>, <a href="#pkg_mklink-src">src</a>, <a href="#pkg_mklink-kwargs">**kwargs</a>)
 </pre>
 
 Create a symlink.
@@ -677,6 +703,8 @@
 ## strip_prefix.files_only
 
 <pre>
+load("@rules_pkg//pkg:mappings.bzl", "strip_prefix")
+
 strip_prefix.files_only()
 </pre>
 
@@ -689,6 +717,8 @@
 ## strip_prefix.from_pkg
 
 <pre>
+load("@rules_pkg//pkg:mappings.bzl", "strip_prefix")
+
 strip_prefix.from_pkg(<a href="#strip_prefix.from_pkg-path">path</a>)
 </pre>
 
@@ -707,6 +737,8 @@
 ## strip_prefix.from_root
 
 <pre>
+load("@rules_pkg//pkg:mappings.bzl", "strip_prefix")
+
 strip_prefix.from_root(<a href="#strip_prefix.from_root-path">path</a>)
 </pre>
 
@@ -741,6 +773,8 @@
 ## pkg_rpm
 
 <pre>
+load("@rules_pkg//pkg/legacy:rpm.bzl", "pkg_rpm")
+
 pkg_rpm(<a href="#pkg_rpm-name">name</a>, <a href="#pkg_rpm-data">data</a>, <a href="#pkg_rpm-architecture">architecture</a>, <a href="#pkg_rpm-changelog">changelog</a>, <a href="#pkg_rpm-debug">debug</a>, <a href="#pkg_rpm-release">release</a>, <a href="#pkg_rpm-release_file">release_file</a>, <a href="#pkg_rpm-rpmbuild_path">rpmbuild_path</a>,
         <a href="#pkg_rpm-source_date_epoch">source_date_epoch</a>, <a href="#pkg_rpm-source_date_epoch_file">source_date_epoch_file</a>, <a href="#pkg_rpm-spec_file">spec_file</a>, <a href="#pkg_rpm-version">version</a>, <a href="#pkg_rpm-version_file">version_file</a>)
 </pre>
@@ -765,3 +799,6 @@
 | <a id="pkg_rpm-spec_file"></a>spec_file |  -   | <a href="https://bazel.build/concepts/labels">Label</a> | required |  |
 | <a id="pkg_rpm-version"></a>version |  -   | String | optional |  `""`  |
 | <a id="pkg_rpm-version_file"></a>version_file |  -   | <a href="https://bazel.build/concepts/labels">Label</a> | optional |  `None`  |
+
+
+
diff --git a/version.bzl b/version.bzl
index 62b7ee1..d15d342 100644
--- a/version.bzl
+++ b/version.bzl
@@ -13,4 +13,4 @@
 # limitations under the License.
 """The version of rules_pkg."""
 
-version = "1.0.1"
+version = "1.1.0"
