Skip to content

perf: avoid repeated apt repository metadata - #270

Open
zbarsky-openai wants to merge 4 commits into
bazel-contrib:mainfrom
zbarsky-openai:zbarsky/apt-compact-metadata
Open

zbarsky-openai wants to merge 4 commits into
bazel-contrib:mainfrom
zbarsky-openai:zbarsky/apt-compact-metadata

Conversation

@zbarsky-openai

Copy link
Copy Markdown
Contributor

Store each package key alongside its installed paths in the leaf file
map. Reconstruct dependency keys from those maps in resolver order,
preserving the first dependency that provides a file.

Derive repository target names from the canonical repository name with
the existing helper. This removes repeated dependency lists and target
names from generated MODULE.bazel.lock repository specifications while
preserving the generated targets and dependency order.

Depends on #269. The branch includes that PR and its prerequisites; the
metadata change is commit a699927.

Use tar.bzl's pinned host binary during repository evaluation. Discover
the data archive instead of assuming XZ compression, so Zstandard debs
work without host tar or zstd. Remove directory exclusions that suppress
file discovery with BSD tar, and report inspection/extraction failures.
Keep indexes from different URLs separate even when suite, component,
and architecture match. Scope snapshot facts by source URL and retain
the selected package's URLs instead of reconstructing them from the
suite. Continue reading existing v2 locks and refresh their provenance
when packages are resolved. Cover mixed snapshot/rolling sources and
package URLs that differ from the suite's URLs.
Inspect the exact selected Debian archive only when a dependency file
map is needed. Avoid downloading and parsing distribution-wide Contents
indexes, which third-party apt repositories may not publish and which
do not identify the selected package version. Delete the temporary
archive after inspection and remove the unused Contents parser.
Store each package key in its leaf file map and reconstruct ordered
dependency keys from those maps. Derive the repository target name from
the canonical repository name using the existing helper. This avoids
duplicating dependency lists and names across generated repository
specifications in MODULE.bazel.lock without changing generated targets.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant