bazelbuild / rules_pkg

Bazel rules for creating packages of many types (zip, tar, deb, rpm, ...)
Apache License 2.0
212 stars 166 forks source link

Append the workspace name to the runfiles directory name #856

Closed EdSchouten closed 2 months ago

EdSchouten commented 2 months ago

The runfiles directory is broken down by workspace name. This means that files belonging to the main workspace are placed at "${name}.runfiles/${ctx.workspace_name}/${short_path}". Files belonging to externals have a short_path starting with "../${external_name}".

Because we currently don't append ctx.workspace_name to the computed runfiles path, files belonging to the main workspace are placed at the top level of the runfiles directory, which is incorrect. Even worse is that files belonging to external repositories end up alongside the runfiles directory, instead of being contained within.

This makes the runfiles directory layout consistent with how Bazel creates it locally:

$ find bazel-bin/tests/an_executable.runfiles \! -type d 
bazel-bin/tests/an_executable.runfiles/MANIFEST
bazel-bin/tests/an_executable.runfiles/_repo_mapping
bazel-bin/tests/an_executable.runfiles/_main/tests/testdata/hello.txt
bazel-bin/tests/an_executable.runfiles/_main/tests/foo.cc
bazel-bin/tests/an_executable.runfiles/_main/tests/an_executable
cgrindel commented 2 months ago

I will wait to merge until @aiuto has had a chance to look at this.

aiuto commented 2 months ago

This is probably going to break people, but it is the right thing to do. We're going to have to bump the major version # on the next release.

korjek commented 1 month ago

is this supposed to be released soon?

aiuto commented 1 month ago

I can do a release by end of month.

korjek commented 1 month ago

@aiuto sorry for bothering you. Are there any updates on release that contains this change?

aiuto commented 1 month ago

We got a 1.0 release out today. I'm not sure if the BCR update went in.

On Mon, Jun 3, 2024 at 8:23 AM Ievhenii Korin @.***> wrote:

@aiuto https://github.com/aiuto sorry for bothering you. Are there any updates on release that contains this change?

— Reply to this email directly, view it on GitHub https://github.com/bazelbuild/rules_pkg/pull/856#issuecomment-2145065823, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAXHHHC6OSWXOW77MUQFI2TZFRN4FAVCNFSM6AAAAABGLCVTVCVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDCNBVGA3DKOBSGM . You are receiving this because you were mentioned.Message ID: @.***>