Skip to content

v0.6.0

Choose a tag to compare

@github-actions github-actions released this 17 Sep 00:25
· 136 commits to main since this release
Immutable release. Only release title and notes can be modified.
v0.6.0
84bc696
  • Raise compiled-output CI cache budgets to 1 GB uncompressed by default and 3 GB for ASan.

  • Add --summary-scope for combined-root, per-root, and comparison statistics. In comparison mode,
    scopes select ordered column groups in one table: compare expands to left-total,right-total,
    diff to left-only,right-only,different, and each explicit category gets its own statistics.
    left and right alias the side totals; output labels use canonical names. Ordinary summaries
    default to compare during comparison and all otherwise; explicit scopes override that default.
    Scope selection requires an active ordinary summary; a comparison-results summary alone does not suffice.

  • Support INI-only ${NAME}, ${NAME:-DEFAULT}, and ${NAME:?MESSAGE} environment substitution,
    with literal quoting, single-argument values, and unchanged validation of expanded safety roots.

  • Preserve targeted Bazel preparation traces for coverage and fuzz to diagnose remaining CI delays.

  • Start coverage and fuzz CI jobs immediately while preserving all final merge checks.

  • Run fuzz campaigns concurrently after preparing all targets, with CPU/memory bounds, isolated
    artifacts, per-target throughput statistics, and unchanged campaign time budgets.

  • Raise coverage's CI cache allowance to 1.5 GB uncompressed and 1 GB compressed to retain more build outputs.

  • Allow MSan caches up to 4 GB uncompressed and 1.2 GB compressed; report per-job cache sizes
    and repository-wide usage against the 10 GB budget in main's final CI job.

  • Retire older main build caches immediately after a verified replacement upload, reducing
    generation overlap while preserving previous caches when the replacement is missing or oversized.

  • Preserve more reusable CI compilation outputs by evicting large cache blobs before small ones
    with a 2.6 GB uncompressed allowance for sanitizer jobs; apply shared caching to deep fuzz and release reference generation.

  • Reject invalid summary precision, negative or malformed top limits, comparison selections without
    comparison, and unsupported summary formats. --top=0 consistently removes a prior limit;
    aligned summary output now works in comparison mode. Accept the implemented --summary=owner alias
    in CLI validation. Clarify summary/compare accounting and exports.

  • Refresh bounded CI compiled-output caches on main, reuse them in PR and release builds,
    and remove closed-PR, tag-scoped, and superseded caches. GCC now caches compiled outputs.

  • Add MBO Works artwork to the README and favicons to documentation and coverage Pages.

  • Keep main first in the coverage index, then interleave PRs and releases newest-first by
    their merge or tagged commit in main’s history.

  • Give Markdown summaries descriptive headings and bullet lists for labels and notes, separate
    each table’s note from the next summary,
    and align exact byte values with scaled sizes in console and Markdown tables.

  • Render ordinary and comparison summary tables as Markdown with --format=md or markdown.

  • Show count, count percentage, size, and size percentage in summary tables. Comparison results
    include directories and other matched entry types. Paired categories count each pair once and
    include both sides' bytes; side-total groups count their own entries and bytes. Each summary
    column group uses its own full pre---top totals for percentages.

Install

Run either or both install blocks: the lean binary is installed as xff, and the all-features
binary as xff_full. Ensure ${HOME}/.local/bin is in PATH; the generated manual pages are
installed below ${HOME}/.local/share/man.

Release files without an archive suffix, such as xff-linux-x86_64, are the actual stripped
platform executables and can be downloaded and installed directly. Each matching .tar.zst
contains that same stripped executable together with its separate debug-information file.

Install on Linux x86_64:

XFF_VERSION=v0.6.0
XFF_PATH_BIN="${HOME}/.local/bin"
XFF_PATH_MAN="${HOME}/.local/share/man/man1"
XFF_PATH_TEMP="$(mktemp -d "${TMPDIR:-/tmp}/xff-install.XXXXXX")"
trap 'rm -rf "${XFF_PATH_TEMP}"' EXIT
mkdir -p "${XFF_PATH_BIN}"
mkdir -p "${XFF_PATH_MAN}"
cd "${XFF_PATH_TEMP}"
curl -fLO "https://github.com/mboworks/xff/releases/download/${XFF_VERSION}/SHA256SUMS"

# Install xff.
curl -fLO "https://github.com/mboworks/xff/releases/download/${XFF_VERSION}/xff-linux-x86_64"
grep ' xff-linux-x86_64$' SHA256SUMS | sha256sum -c -
install -m 0755 xff-linux-x86_64 "${XFF_PATH_BIN}/xff"
"${XFF_PATH_BIN}/xff" --pager=never --man > "${XFF_PATH_MAN}/xff.1"

# Install xff_full.
curl -fLO "https://github.com/mboworks/xff/releases/download/${XFF_VERSION}/xff_full-linux-x86_64"
grep ' xff_full-linux-x86_64$' SHA256SUMS | sha256sum -c -
install -m 0755 xff_full-linux-x86_64 "${XFF_PATH_BIN}/xff_full"
"${XFF_PATH_BIN}/xff_full" --pager=never --man > "${XFF_PATH_MAN}/xff_full.1"

Install on macOS:

XFF_VERSION=v0.6.0
XFF_PATH_BIN="${HOME}/.local/bin"
XFF_PATH_MAN="${HOME}/.local/share/man/man1"
XFF_PATH_TEMP="$(mktemp -d "${TMPDIR:-/tmp}/xff-install.XXXXXX")"
trap 'rm -rf "${XFF_PATH_TEMP}"' EXIT
mkdir -p "${XFF_PATH_BIN}"
mkdir -p "${XFF_PATH_MAN}"
cd "${XFF_PATH_TEMP}"
curl -fLO "https://github.com/mboworks/xff/releases/download/${XFF_VERSION}/SHA256SUMS"

# Install xff.
curl -fLO "https://github.com/mboworks/xff/releases/download/${XFF_VERSION}/xff-macos-arm64"
grep ' xff-macos-arm64$' SHA256SUMS | shasum -a 256 -c -
install -m 0755 xff-macos-arm64 "${XFF_PATH_BIN}/xff"
"${XFF_PATH_BIN}/xff" --pager=never --man > "${XFF_PATH_MAN}/xff.1"

# Install xff_full.
curl -fLO "https://github.com/mboworks/xff/releases/download/${XFF_VERSION}/xff_full-macos-arm64"
grep ' xff_full-macos-arm64$' SHA256SUMS | shasum -a 256 -c -
install -m 0755 xff_full-macos-arm64 "${XFF_PATH_BIN}/xff_full"
"${XFF_PATH_BIN}/xff_full" --pager=never --man > "${XFF_PATH_MAN}/xff_full.1"

Release resources