Repository navigation
chore(release): bump version to 0.22.0 with its ledger rows - #770
Merged
Merged
Conversation
Updates Cargo.toml, discipline's entry in Cargo.lock and fuzz/Cargo.lock, CITATION.cff version and date-released, install instructions, image and template pins, the pre-commit rev comment, the regenerated man pages, and relabels the unreleased ledger rows in docs/ROADMAP.md to v0.22.0 (RUN: discipline docs --write, scripts/release_notes_upgrade.py --test --version v0.22.0). no-issue: release bump to v0.22.0 Signed-off-by: Nicolas Brousse <nicolas@brousse.info>
Every zip release except 9.0.3 is yanked on crates.io, so cargo deny's advisories check fails on 0.6.6. zip 9 returns entry names as a Result, which walk_zip now propagates (an undecodable name stops the archive read and is reported as could-not-check) instead of decoding it lossily, and test fixtures use SimpleFileOptions. zip 9.0.3 needs Rust 1.88; the crate's rust-version is 1.90 (RUN: cargo deny check: advisories ok, bans ok, licenses ok, sources ok; cargo test --lib archive: 43 passed). Signed-off-by: Nicolas Brousse <nicolas@brousse.info>
… masking The consumer replay for v0.22.0 found php-judy #215 newly blocked: `ed() { edited "$1" && echo true || echo false; }` turns a predicate function's status into a value, and the syntax-tree masking analysis read it as `|| echo` masking a check. An `a || b` whose left side only tests a condition (`[`, `[[`, `test`, `((`, `command -v`, `type`, `hash`, a `case`, a literal `return`, a negation of those, or a call to a function whose body is made of those) is now a branch, not a mask. A function that runs a check (`t() { cargo test; }; t || echo ok`) is still reported. Mutation (RUN): dropping the condition test from the || rule fails a_branch_on_a_condition_is_not_masked_but_a_wrapped_check_is on `[ -f Cargo.lock ] || echo missing`; accepting every script function as a condition fails it on `t() { cargo test; }`. cargo test --lib guards:: 655 passed. Signed-off-by: Nicolas Brousse <nicolas@brousse.info>
…ion as a value The consumer replay for v0.22.0 found expanse #1411 newly blocked: `RMW_MERGE_BASE=$(git merge-base ... 2>/dev/null || echo "")` supplies a default the next line tests, and the masking analysis read it as `|| echo` masking a check. Inside a command substitution, an `|| echo` or `|| printf` right side is now a value; `$(cmd || true)` and `$(cmd || exit 0)` are still reported, as v0.21.2 reported `|| true`. Mutation (RUN): removing the substitution rule fails a_branch_on_a_condition_is_not_masked_but_a_wrapped_check_is on the merge-base line. cargo test --lib guards:: 655 passed; clippy clean. Signed-off-by: Nicolas Brousse <nicolas@brousse.info>
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.
Bumps the version to 0.22.0 and relabels the 29
unreleasedledger rows (27 Behaviour Changes, 2 Default Changes) from #768 tov0.22.0.Updates
Cargo.toml, discipline's entry inCargo.lockandfuzz/Cargo.lock,CITATION.cff(version,date-released), install instructions, image and template pins, the pre-commit rev comment and the regenerated man pages.RUN:
discipline docs --write(up to date afterwards),scripts/release_notes_upgrade.py --test --version v0.22.0(self-test passed) andscripts/release_notes_upgrade.py --version v0.22.0(renders both ledger sections).The repository's own hook pins (
.claude/hooks/discipline-bootstrap.sh,.github/workflows/copilot-setup-steps.yml) are unchanged; they move to v0.22.0 in a follow-up once the release is published.zipmoves from 0.6.6 to 9.0.3: every zip release except 9.0.3 is yanked on crates.io, socargo deny's advisories check failed (supply-chain).walk_zipnow propagates an undecodable entry name instead of decoding it lossily. RUN:cargo deny check(advisories ok, bans ok, licenses ok, sources ok),cargo test --lib archive(43 passed), local dogfood PASS.Consumer replay (RUN): v0.21.2 against the candidate, each with the repository's own
origin/main:discipline.toml, over the last 100 merged changes of php-judy, yaml-workflow, gws-connector and expansedb and the last 200 of expanse. The first candidate newly blocked two changes withci-integrity/exit-code-masked, both false positives of the syntax-tree masking analysis from fix: close the v0.19.0..v0.21.2 audit findings #768: php-judy feat(findings): every finding has a registered gate/code #215 (edited "$1" && echo true || echo false, a branch on a predicate function) and expanse #1411 (X=$(git merge-base a b || echo ""), a default value). Both are fixed here: ana || bwhose left side only tests a condition, and an|| echo/|| printfdefault inside$(...), are not reported, while a function that runs a check (t() { cargo test; }; t || echo ok) and$(cmd || true)still are. Each fix has a test whose mutant was watched failing. With the final candidate, every replayed change has the same verdict and the same finding codes as v0.21.2 (php-judy 73/27, yaml-workflow 68/32, gws-connector 56/33, expanse 199/1, expansedb 99/1 passed/blocked).RUN: full local
cargo test --no-fail-faston the final head: 141 test binaries, 4213 passed, 0 failed.no-issue: release bump to v0.22.0