Phase 8 + Release prep: verification-focused CI additions, v0.2.0-alpha - #12
Merged
Merged
Conversation
Closes gaps identified from an external CI/tooling review: feature-powerset testing per crate, minimal-dependency-version testing, and doctest coverage were genuinely missing (the review's other suggestions either duplicated existing decisions - cargo-mutants, cargo-semver-checks - or had low value given the workspace's unsafe_code = "forbid" policy - Miri, sanitizers). - New `hack` CI job: cargo-hack feature-powerset testing per crate, since the `test` job's one fixed feature combination can miss interaction bugs. - New `minimal-versions` CI job: tests against the lowest dependency versions each Cargo.toml constraint allows, catching version bounds that are looser than what the code actually needs. - `core-tests`'s `no_std_support` module's "usable under `#![no_std]`" claim is now compiler-enforced via tests/no_std_check.rs, a genuinely `#![no_std]`-marked integration test, instead of true only by convention/review. - `coverage` job now passes `--doctests` to cargo-llvm-cov so `///` examples count toward the report; moved that job to nightly since doctest coverage needs rustdoc's unstable --persist-doctests. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
- CHANGELOG.md: converted the accumulated Unreleased section (Phases 5-8: docs/lint consolidation, tooling, advanced testing, and verification- focused CI additions) into a dated [0.2.0-alpha] entry, with a fresh empty Unreleased section above for future work. Minor bump rather than a beta/stable relabel - substantial new features landed since v0.1.0-alpha (loom, feature-powerset/minimal-versions CI, a real no_std check), not just fixes, and the project isn't claiming production-readiness yet. - Crate versions (Cargo.toml) intentionally left at 0.1.0, matching the v0.1.0-alpha release: every crate is publish = false, so the CHANGELOG/git-tag version and the Cargo.toml version are independent numbering schemes here - see the [0.1.0] initial-scaffold entry at the bottom of CHANGELOG.md, which predates any tag. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
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.
Summary
hackCI job: per-cratecargo-hack --feature-powersettesting, catching feature-interaction bugs thetestjob's one fixed feature combination can miss.minimal-versionsCI job:cargo minimal-versions test, catchingCargo.tomlversion bounds looser than what the code actually needs.core-tests'sno_std_support"usable under#![no_std]" claim is now compiler-enforced viatests/no_std_check.rs(a genuinely#![no_std]-marked integration test), not just true by convention.coveragejob now passes--docteststocargo llvm-covso///examples count toward the report; moved to nightly since that needs rustdoc's unstable--persist-doctests.Unreleasedsection into a datedv0.2.0-alphaentry.These close the genuine gaps from an external CI/tooling review — other suggestions from that review (Miri, sanitizers,
cargo-semver-checks,cargo-mutantsin CI) were already covered, already deliberately rejected with documented reasoning indocs/best-practices.md, or low-value given the workspace'sunsafe_code = "forbid"policy.Test plan
cargo test --workspace --features async,no_std,perf,fuzz,edge,snapshot— passes, including the newno_std_checkintegration testcargo clippy -p core-tests --all-targets --features no_std -- -D warnings— cleancargo fmt --all --check— clean🤖 Generated with Claude Code