* Explicitly store implicit parent directories in zip files
Tooling in the Java world (and likely elsewhere) has come to depend on
all directories implicilty present as parent directories of files to be
listed explicitly as a member of a ZIP file.
* Address review comments
* update version and changelog for release
* fix a brittle test that depended on rules python internals. It fails depending on which Bazel you use, even though the rule is doing the right thing.
Force merge so I can get the release to unblock last minute bazelcon demos.
* Create basic bzlmod setup for rules_pkg.
- Shows it working for one example
- Has only runtime deps
- rpm and git toolchains not done yet
- Still not sure how to get the external repo test working
- Make platforms and stardoc dependency deps.
* Fix config_setting visibility failure on bazel CI
See https://github.com/bazelbuild/bazel/issues/12933.
Repro: `$ USE_BAZEL_VERSION=a05276fea75d47370b363125a074c38cb2badc74 bazelisk build --nobuild --incompatible_config_setting_private_default_visibility //src/main/java/...`
Discovered in failing Bazel CI with `--incompatible_config_setting_private_default_visibility` flipped
When we merge generated docs into the final form, convert
@since(text) to emphasized (currently italic) text.
This is not intended to be perfect. It is just to get the concept out
there to start playing with it. Ideally, StarDoc will eventually support
@since natively and we can delete this.
* Adjust tar test to show #297
I tried to revert many pieces of code which should have fixed the problem, but could not reproduce 297. I'm fairly confident the root cause was eliminated a while ago.
* Properly format the deb Description field, fix format of changes file.
A combination of fixes and then tests for the behavior:
- Stop text wrapping the description. The "displayer" should do the wrapping.
- Create the changes "Description" field in the correct format.
- Do not allow newline in single line fields.
- Add leading space to continuation lines in multiline fields.
https://www.debian.org/doc/debian-policy/ch-controlfields.html
Fixes: #522
* do not test description on windows
This means that:
1. you'll get the same format no matter what version of Python you have.
At Python 3.8 the default changed from GNU to PAX.
2. The default will be suitable for building Debian packages containing
long file names.
A followup PR may add the capability to allow PAX tar writing, but I
do not know the urgency of that at this time, so that is a future
feature request.
Fixes #216
isexe checks that the file is r?xr?xr?x. That is, it just
tests for read and execute, without looking at the write bits.
The need is subtle. Some builds are local, and the executables
often come back as 0o755, while others are remote, returning
an immutable object with mode 0o555.
* Support for setting executable bits.
- mostly fix #96 by finding executables and setting mode==755 on them
This new feature can not detect all executables. Bazel does not have the right
capability to make that easy. This seems to get most binaries, except shell.
You will have to wrap those in pkg_files to set the mode bits.
This change adds logic and tests for substituting values from
`pkg_zip#package_variables` into `pkg_zip#package_dir`. This behavior
largely matches `pkg_tar` (`pkg_zip` does not have an equivalent to
`pkg_tar#package_dir_file`, but they are otherwise the same).
* Make the .bzl files available as input to a bzl_library, without having to resort to the invasivness of a shadow tree of just the .bzl files without the other distributable files.