Conversation
The default target now runs every check the release process expects: formatting, clippy, the test suite with a 90% line-coverage floor, doctests, and a release build. fmt checks and fmt-fix formats; lint runs the fast format-and-clippy loop; help lists all targets. Update README and DEVELOPMENT to match.
Run cargo fmt --check, clippy with warnings denied, the full test suite, a coverage check enforcing a 90% line floor, and a release build on Linux and Windows for every push and pull request against main. Replaces the Ruby-era workflow that was removed with the v2 rewrite, and gives CodeQL's GitHub Actions analysis workflow sources to scan. Pin the Rust toolchain to 1.98 so local builds and CI run the same compiler, rustfmt, and clippy.
gmiliaras
force-pushed
the
2.0.x
branch
5 times, most recently
from
September 8, 2026 10:14
68704c1 to
3426e6c
Compare
gmiliaras
marked this pull request as ready for review
September 8, 2026 13:12
filipdanic
previously approved these changes
Sep 8, 2026
iskandarair
previously approved these changes
Sep 8, 2026
Remove the grcov exclusion marker comments; coverage is now measured with cargo-llvm-cov, which does not read them, so they were inert. Replace DeadlineJoiner::join's Result<T, ()> with a DeadlineExceeded error type to satisfy clippy::result_unit_err. Also fix test-suite portability issues surfaced by CI, and reject 0-byte tar bundles before invoking system tar: bsdtar (the system tar on Windows) accepts an empty file as a valid archive, unlike GNU tar. Also make the suite robust in environments beyond the CI runners: tests that chmod a file or directory to force a denial skip under root, which bypasses DAC checks entirely (the common case for containerized runs); the SUID-strip extraction test skips under root, where GNU tar deliberately honors setuid bits from archive headers; the process-group cleanup test skips when PID 1 is a non-reaping process (containers without an init), since unreaped zombies keep the group alive from kill(0)'s perspective; and the IFS check retries briefly on ETXTBSY, a fork/exec descriptor-inheritance race between parallel test threads.
gmiliaras
dismissed stale reviews from iskandarair and filipdanic
via
September 9, 2026 06:59
5da2946
gmiliaras
force-pushed
the
2.0.x
branch
2 times, most recently
from
September 9, 2026 06:59
3426e6c to
5da2946
Compare
filipdanic
approved these changes
Sep 9, 2026
iskandarair
approved these changes
Sep 9, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds CI for the repo, which has had no workflows since the v2 rewrite.
.github/workflows/ci.yml: fmt, clippy (warnings denied), tests and doctests on Linux and Windows, a 90% line-coverage floor, and a release build on every PR and push to main. Also fixes the CodeQL "no source code seen" failure by giving it workflow sources to scan.rust-toolchain.tomlpins Rust 1.98 so local and CI results match.makenow runs the same checks as CI;make helplists all targets.result_unit_err).cfg(unix), a blocking-script test works under dash as well as bash, and 0-byte tar bundles are rejected before invoking system tar — bsdtar (the system tar on Windows) accepts an empty file as a valid archive, so a corrupt bundle previously "deployed" an empty directory instead of failing.Note for reviewers: Windows tests must run from an elevated shell, the agent's secure files carry a SYSTEM+Administrators-only DACL, so a non-elevated test process locks itself out. CI runners are elevated.
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.