Skip to content

Fix CI: raise the MSRV to 1.71 and build intern32 without std - #69

Merged
droundy merged 4 commits into
masterfrom
msrv-1.71
Oct 18, 2026
Merged

droundy merged 4 commits into
masterfrom
msrv-1.71

Conversation

@droundy

@droundy droundy commented Oct 18, 2026

Copy link
Copy Markdown
Owner

CI on master has been failing since before #68 (the #67 merge failed the same way). This PR fixes it.

Rust 1.70 jobs: parking_lot_core (through dashmap) and zmij (through serde_json) now need Rust 1.71. This raises rust-version and both CI matrices to 1.71. cargo test on 1.71 still couldn't build, because the criterion dev-dependency needs 1.80. criterion now sits behind a new benchmarks feature, which only the get_container bench requires.

Check (stable): This job was being cancelled by fail-fast, which hid failures in its later steps:

  • --features intern32, intern and arena without std hit the crate's own compile_error! requiring std or spin. Those steps now add spin.
  • intern32 didn't build without std. It used std:: paths, a deepsize bound that wasn't feature-gated, and the container module and append-only-vec without enabling them.

Docs: Making criterion optional means --all-features would build it on nightly, where clap fails. docs.rs and the CI docs job now list their features explicitly instead.

Three of the four commits are cherry-picked from the scaling-0.9 branch (#66): a3d4fd8, 2a44d7a and 31ba3bb. The docs commit's message and comment were adjusted to fit master. The MSRV commit mirrors that branch's approach, but its benchmarks feature only enables criterion here. That should keep the later merge of scaling-0.9 simple.

Tested locally on 1.71.0 and stable:

  • Every Check step passes. The x86_64-unknown-none and thumbv6m-none-eabi steps were run on the host target, since those targets aren't installed here.
  • cargo test passes on 1.71.
  • cargo test --all-features -- --test-threads=1 passes.
  • The nightly docsrs cargo doc passes with -Dwarnings.

Not fixed here: benches/bench.rs was already failing to build on master, because the arc-interner dependency it uses isn't enabled by the bench feature. No CI job builds the benches.

🤖 Generated with Claude Code

droundy and others added 4 commits October 18, 2026 16:21
append-only-vec 0.1.9 is no_std unless its std feature is on, so depend
on it without default features and forward std and portable-atomic to
it.  That lets the no_std CI checks of intern and intern32 build.

They then showed that intern32 itself used std: two PhantomData paths
and a size_of_val now come from core, and a leftover debugging println
in deep_size_of_interned is gone.  intern32 also did not enable the
append-only-vec dependency or the container module it uses, so it could
not build without intern; it does now.

The CI checks of intern32, intern and arena on their own now add spin:
without std each needs spin for its mutex, and says so in a
compile_error, so they could never pass as written.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The 1.70 CI jobs no longer build: parking_lot_core 0.9.12 (through
dashmap, for the arc feature) and zmij (through serde_json) both need
Rust 1.71.

criterion 0.4 was a dev-dependency used only by the get_container bench,
and its dependencies need Rust 1.80, so cargo test could not build on
1.71 either.  It now sits behind a benchmarks feature, as on the
scaling-0.9 branch.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Without it, --features intern32 failed to compile with an unresolved
deepsize crate, which the benchmarks need.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
The benchmarks feature now enables criterion, whose dependencies do not
build on docs.rs's nightly.  docs.rs and the CI docs job used
all-features, so both failed; list the features instead.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@codecov

codecov Bot commented Oct 18, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 80.22%. Comparing base (213e597) to head (807abec).

Additional details and impacted files
@@            Coverage Diff             @@
##           master      #69      +/-   ##
==========================================
- Coverage   80.61%   80.22%   -0.39%     
==========================================
  Files          11       11              
  Lines        1852     1851       -1     
==========================================
- Hits         1493     1485       -8     
- Misses        359      366       +7     

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@droundy
droundy merged commit 1c13d11 into master Oct 18, 2026
15 of 16 checks passed
droundy added a commit that referenced this pull request Oct 22, 2026
Master gained the MSRV, optional-criterion, docs-features and
append-only-vec 0.1.9 changes (#69) and the Arena intern_with helper
(#68), which this branch had also made.  Keep master's versions of
those, and this branch's scaling, internment_old and benchmarks
feature on top; Arena::intern keeps its explicit lifetime.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant