Newer
Older
> A Bazel ruleset for hermetically working with tape archives (`tar`)
## Getting Started
Add the following to `MODULE.bazel`:
```py
bazel_dep(name="rules_tar", version="0.0.0")
Use the unpacking and extraction rules:
```py
load("@rules_tar//tar/unpack:defs.bzl", "tar_unpack")
load("@rules_tar//tar/extract:defs.bzl", "tar_extract")
tar_unpack(
name = "unpack",
src = "some.tar.bz2",
)
tar_extract(
name = "extract",
src = "some.tar.zst",
outs = [
"a/specific/member.txt",
"another/member.txt",
]
)
```
> Note: use [rules_pkg] to pack archives.
>
> This ruleset _may_ support hermetic packing without a Python toolchain in the future.
The module is entirely hermetic, using `@ape//ape/toolchain/info:tar` as the default toolchain.
## Release Registry
The project publishes the relevant files to GitLab releases for use when a version has not been added to the upstream [BCR][bcr].
This is often the case for pre-release versions.
Add the following to `.bazelrc`:
```
# `bzlmod` pre-release registries
common --registry https://bcr.bazel.build
common --registry=https://gitlab.arm.com/bazel/rules_tar/-/releases/v1.0.0-alpha.1/downloads
```
Then a GitLab release version can be used in `bazel_dep`.
[bcr]: https://registry.bazel.build/
[rules_pkg]: https://github.com/bazelbuild/rules_pkg