Review: bazel-aspect-bazel-lib 2.22.5-1
Package Information
| Description | Common Starlark helpers and rules for Bazel aspect_bazel_lib (bazel-lib) provides common low-level Starlark functions, macros, and rules for writing Bazel rulesets and BUILD files. It includes rules such as copy_file, copy_to_bin, copy_directory, copy_to_directory, expand_template, run_binary, write_source_files, diff_test, and Starlark helper utilities for paths, strings, lists, base64, and stamping. The upstream has moved to bazel-lib. This package is just a bridge to bazel-lib. Provides aspect_bazel_lib for backward compatibility. |
|---|---|
| Maintainer | Debian Bazel Team <team+bazel@tracker.debian.org> |
| Changed By | Ying-Chun Liu (PaulLiu) <paulliu@debian.org> |
| Sponsor | paulliu@debian.org |
| Distribution | unstable |
| Architecture | all |
| VCS | git: https://salsa.debian.org/bazel-team/bazel-aspect-bazel-lib.git (browse) |
| Closes | #1150799 |
| Tracker | https://tracker.debian.org/pkg/bazel-aspect-bazel-lib |
| Uploaded | 9 days ago |
New Package Report
.changes
| Architecture | source all |
|---|---|
| Distribution | unstable |
| Date | Tue, 13 Oct 2026 13:59:33 +0100 |
| Source | bazel-aspect-bazel-lib |
| Version | 2.22.5-1 |
| Changed-By | Ying-Chun Liu (PaulLiu) <paulliu@debian.org> |
Changelog
bazel-aspect-bazel-lib (2.22.5-1) unstable; urgency=low . * Initial release (Closes: #1150799)
.dsc
| Section | devel |
|---|---|
| Priority | optional |
| Component | main |
| Package-List | bazel-aspect-bazel-lib deb devel optional arch=all |
debian/copyright
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ Upstream-Name: bazel-lib Source: https://github.com/bazel-contrib/bazel-lib Files: * Copyright: 2017-2024 The Bazel Authors License: Apache-2.0 Files: debian/* Copyright: 2026 Ying-Chun Liu (PaulLiu) <paulliu@debian.org> License: Apache-2.0 License: Apache-2.0 Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at . https://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. Comment: On Debian systems, the complete text of the Apache version 2.0 license can be found in "/usr/share/common-licenses/Apache-2.0".
DFSG Assistant LLM REVIEW 0 blocker, 2 important, 2 minor
This is an LLM based review using a Debian Inference based workflow. It was not written by a member of the DFSG team and has not been checked by one. It is not a decision on the package: it may be wrong, and it may have missed things.
Reviewed 8 days ago.
Proposes a replacement debian/watch:
debian/watch in version 5 format
Report
DFSG NEW review for bazel-aspect-bazel-lib version 2.22.5-1
Summary
- Licensing is DFSG-compliant and
debian/copyrightis accurate: Yes - Packaging is of good quality: No
- Issues: 0 blocker, 2 important, 2 minor
- debian/watch: old format (version 4)
- debian/copyright: machine-readable
Licensing
The whole upstream tree is Apache-2.0: the single root LICENSE is the Apache 2.0 text, a whole-tree, case-insensitive scan found no other licence text (no GPL/LGPL/BSD/MIT/ISC/MPL/CC/"public domain"), and the only copyright holders named by file headers anywhere are "The Bazel Authors" (years 2017-2024), matching debian/copyright. No embedded/vendored third-party code with its own licence, no non-free clauses, and no minified/compiled files are shipped (prebuilt toolchain binaries are only fetched at build time by upstream rules, never part of the source or the .deb). debian/copyright is DEP-5 machine-readable with the exact 1.0 Format URL, a Files: * catch-all stanza and a separate debian/* stanza, both Apache-2.0 with the text correctly deferred to /usr/share/common-licenses/Apache-2.0. Accurate and complete.
Packaging
The packaging skeleton is sound (compat 13, empty override_dh_auto_{build,install}, reproducible mtime touches, Architecture: all / Multi-Arch: foreign, offline autopkgtest, all binary Depends exist in the archive). But the single quilt patch removes the jq.bzl/yq.bzl/tar.bzl module dependencies from MODULE.bazel while leaving lib/yq.bzl and lib/tar.bzl loading @yq.bzl/@tar.bzl, so the shipped transitional shims cannot be loaded; only lib/jq.bzl was stubbed, inconsistently. debian/README.source misdescribes what the patch does, and the autopkgtest command line supplies no offline source for the bazel_features/bazel_skylib/platforms modules the installed MODULE.bazel requires, so bazel test //... cannot resolve them.
Issues
1. [important] [packaging] Installed lib/yq.bzl and lib/tar.bzl load modules the patch removed
- Files:
lib/yq.bzl:6,lib/tar.bzl:6-7,lib/BUILD.bazel:125,135,214,debian/patches/0001-debian-offline-and-self-contained.patch - Evidence:
lib/yq.bzl:6load("@yq.bzl//yq:yq.bzl", _yq = "yq");lib/tar.bzl:6-7load("@tar.bzl//tar:mtree.bzl", ...). The patch deletesbazel_dep(name = "jq.bzl"),yq.bzl,tar.bzlfrom MODULE.bazel but only rewrites lib/jq.bzl (tojq = None), leaving yq/tar untouched. - Problem: The yq.bzl and tar.bzl modules are not declared by the installed MODULE.bazel and in the offline Debian setup exist nowhere (bazel_lib 3.x no longer depends on them). Any
load("@aspect_bazel_lib//lib:yq.bzl", ...)or...lib:tar.bzltherefore fails at analysis. The shipped files are internally inconsistent with the patch: jq was stubbed to fail softly, yq/tar were left hard-broken, and the bzl_library deps still reference@yq.bzl//yq,@tar.bzl//tar,@jq.bzl//jq. - Fix: Treat all three back-compat shims the same way (e.g. stub jq/yq/tar to None as done for jq.bzl, or drop the files and their bzl_library deps), so the installed tree either loads or clearly signals the move to bazel-lib 3.x.
2. [important] [packaging] autopkgtest cannot resolve bazel_features/bazel_skylib/platforms modules
- Files:
debian/tests/test-001,debian/tests/test-001-artifacts/MODULE.bazel,MODULE.bazel - Evidence: test-001 sets
--registry=file://"$MOCK_DIR"(mock contains only apple_support, buildozer, protobuf, zlib) and overrides only aspect_bazel_lib, bazel_lib, stardoc, rules_shell. The installed MODULE.bazel still declares non-devbazel_dep(name = "bazel_features" ...),bazel_skylib,platforms, and kills the network viahttp_proxy=127.0.0.1:9. - Problem: With the registry replaced by the mock (all network blocked), the module-graph resolution of
bazel test //...has no source for bazel_features 1.9.0, bazel_skylib 1.8.1 and platforms 0.0.10, which are not overridden and not mocked. The test as written cannot run offline. Other Debian bazel-* packages install these modules under /usr/share/bazel, but nothing in this test points at them. - Fix: Add
--override_moduleentries (or the three modules to the mock registry) for bazel_features, bazel_skylib and platforms, or otherwise document and provide their offline source; then verify the autopkgtest passes in debci.
3. [minor] [packaging] debian/README.source misdescribes what the quilt patch does
- Files:
debian/README.source - Evidence: "quilt patches restore the self-contained v2 Starlark rule implementations and replace network downloads in toolchains with local Python/shell scripts and system binaries so that builds work completely offline across all Debian architectures."
- Problem: The only patch (0001) edits MODULE.bazel (module version, dev_dependency flags, removal of the jq/yq/tar back-compat deps and toolchain registrations) and stubs lib/jq.bzl. It restores no v2 rule implementations and replaces no network download; the installed v2 files remain thin re-export bridges to @bazel_lib 3.x. The description misleads the reviewer and future maintainers about the offline mechanism (offline works via the bazel-lib package, not via this patch).
- Fix: Reword README.source to state that the patch removes network-dependent toolchain registrations and the unpackaged jq/yq/tar bridge modules, relying on the installed bazel-lib (3.x) package for the rules and their toolchains.
4. [minor] [packaging] debian/watch is in the old version 4 format
- Files:
debian/watch - Evidence:
version=4 - Problem: Version 5 is the current format of
debian/watch. - Fix: Convert it to version 5; a mechanical conversion is under Proposed changes.
Verified
- Read all of debian/: control, rules, changelog, copyright, install, README.Debian, README.source, gbp.conf, source/format, patches/series and 0001 patch, tests/control, tests/test-001 and its artifacts, upstream/metadata.
- Whole-tree grep (excluding .pc/ and debian/) for
Copyright,(C),(c)(viacopyright),©,SPDX,Licensed under, and for MIT/BSD/ISC/Mozilla/LGPL/GPL/CC/public domain/non-commercial: only the Apache-2.0 root LICENSE and "Copyright The Bazel Authors" headers (2017, 2018, 2019, 2024) in a subset of lib/ files. No other licence text anywhere. - Globbed tree structure (root, lib, lib/private, tools, platforms, shlib, docs, e2e, .aspect, .bcr, .github, debian); only one LICENSE file, no NOTICE/AUTHORS/COPYING in any subdirectory, no vendored third-party tree.
- Read MODULE.bazel, lib/jq.bzl, lib/yq.bzl, lib/tar.bzl, lib/testing.bzl, lib/copy_file.bzl, lib/copy_to_bin.bzl, lib/diff_test.bzl, lib/copy_directory.bzl, lib/private/copy_to_directory.bzl, lib/private/copy_to_directory_toolchain.bzl, lib/BUILD.bazel, root LICENSE/README.md.
- Checked every file named in debian/install exists in the tree; every Depends in the binary (bazel-features 1.11.0, bazel-lib 3.7.2, bazel-platforms, bazel-rules-shell, bazel-skylib, bazel-stardoc) and bazel-bootstrap exist in the archive via apt-cache.
- Debian Policy current Standards-Version is 4.7.4.1 (package declares 4.7.2); A10.2/A10.3 changes (source Priority prose, Git-Tag-* fields, linker scripts, non-free-firmware) do not affect this package.
- dh_install compat 13 confirmed to support
${env:VAR}substitution. - uscan found upstream releases with
debian/watch; a newer upstream version is available (upstream3.7.3, packaged2.22.5), which is not a fault of the package.
Not confirmed
- Could not run the autopkgtest (bazel-bootstrap/bazel not installed on this system); the claim in the issue is derived from the module graph vs. the test's override/mock/registry set.
- Did not open binary fixtures (e2e/coreutils/test.bin, e2e/copy_to_directory expected/*) - recorded by name; none are installed by the package and none carry code.
- Could not confirm whether the Debian test environment supplies an offline module registry or /etc/bazel/bazelrc that the autopkgtest relies on (this system has no /etc/bazel).
- debian/watch not reviewed (out of scope).
- Why the model asked for what a review has no use for. During this review it asked once for something outside the package and the reviewing system (another file of the sandbox, or a URL), or was given part of the review tooling's own configuration, and that was refused or withheld. A model does this when something it has read tells it to, so look in the package for text addressed to a reviewing program, and treat this report with suspicion. Refused:
read: "xd://" is not a file of the package or of the reviewing system.
Proposed: debian/watch in version 5 format
debian/watch is in an old format. This is the conversion made by uscan --update-watchfile, which has not been run against the upstream site: some defaults differ in version 5, so test it with uscan --report before use.
Version: 5
Template: Github
Dist: https://github.com/bazel-contrib/bazel-lib
Review Information
accepted — allocated to awm 7 days ago, started 7 days ago, completed 7 days ago.
Final Comment
Hi,
The LLM-based review found some minor issues which may (or may not) be correct. Take a look at the full review and decide for yourself whether these "issues" it found need addressing in the next upload.
Thanks!