bazelbuild / bazelbuild/rules_pkg

pkg_zip: treeartifact input with REMOVE_BASE_DIRECTORY leads to extra "/" zip entry

Open
#927 0 comments 1 reaction 1 assignee Claimed by @rbeasley-avgo View on GitHub
bug P2
Dominant language
Starlark
Stars
253
Forks
221
Avg merge
10h 33m
Merged PRs (30d)
1

Description

Suppose the following (loosely ripped from `tests/zip/BUILD`):

```starlark
load("@rules_pkg//pkg:mappings.bzl", "pkg_files", "REMOVE_BASE_DIRECTORY")
load("@rules_pkg//pkg:zip.bzl", "pkg_zip")
# load("...:directory.bzl", "directory") # something that creates a directory/treeartifact

pkg_zip(
name = "test_zip_tree_remove_base_directory",
srcs = [":generate_tree_remove_base_directory"],
)

pkg_files(
name = "generate_tree_remove_base_directory",
srcs = [":generate_tree"],
renames = {":generate_tree": REMOVE_BASE_DIRECTORY},
)

directory(
name = "generate_tree",
...
)
```

When built, the resulting archive contains a "/" entry:

```console
$ zipinfo -1 bazel-bin/tests/zip/test_zip_tree_remove_base_directory.zip
/
a/
a/a
a/b/
a/b/c
b/
b/c/
b/c/d
b/d
b/e
```

I believe this is a minor regression from #640 .

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.