Skip to content

v0.3.0

Choose a tag to compare

@jlebon jlebon released this 11 Mar 17:13
· 68 commits to main since this release
v0.3.0

v0.3.0

Major changes

  • Reduced memory usage by streaming file reads instead of buffering entire files and tar layers into memory, cutting peak RSS to ~75 MB (from ~6.5 GB of allocations for an FCOS image) (#72)
  • Added support for multi-threading during tar layer creation, which should reduce total build time (e.g. for an FCOS image I saw a 40% reduction locally). Configurable via -T/--threads or CHUNKAH_THREADS. (#77)
  • Added digest-based matching to allow detecting RPM files moved to another location. For example, on rpm-ostree-based composes, the SELinux policy is moved to /etc/selinux. This would cause chunkah to label all ~1700 of those files as "unclaimed". Now, they're correctly assigned to the selinux-policy component. (On that note, there is an even cleaner fix for that incoming in fedora-bootc images.) (#84)
  • Added support and CI testing for UBI 9 and UBI 10-based images. This required reworking how the rpmdb is queried to be compatible with older rpm. MSRV now tracks el9. (#47)

Minor changes

  • Added a new uncompressed fast path to ocidir-rs for layer creation, which avoids having to compute SHA-256 digests twice. This gives a nice speed boost of around 5-10%. (#79)
  • Made re-splitting an existing image reproducible even when SOURCE_DATE_EPOCH is not set by using the image's Created timestamp as a fallback if available (#71)
  • Fixed reproducibility bug related to xattr ordering (#62)
  • Fixed reproducibility bug related to packages installed from different versions of the same SRPM (#83)
  • Added size information to log output for easier debugging (#70)
  • Documented support for rechunking OSTree-based bootc images in the README (#76)
  • Added CONTRIBUTING.md for new contributors (#61)

Internal changes

  • Consolidated diffing tooling by dropping split-and-diff.sh and teaching just diff to also diff OCI metadata (#63)
  • Overhauled the analyze-layer-reuse.py CLI and output; inspect-layers.sh now prints total image size (#69)
  • Added image date information to the layer reuse update analysis (#73)

Packaging changes

  • Enabled fast-forward merges in Packit configuration (#60)
  • Added automatic COPR builds for PRs (#78)

Full Changelog: v0.2.0...v0.3.0