Skip to content

Add MSRV-pinned CI job at 1.95 - #34

Merged
Nathan-D-R merged 1 commit into
mainfrom
msrv-1.95-ci-job
Jul 30, 2026
Merged

Add MSRV-pinned CI job at 1.95#34
Nathan-D-R merged 1 commit into
mainfrom
msrv-1.95-ci-job

Conversation

@Nathan-D-R

Copy link
Copy Markdown
Contributor

Summary

  • Adds an msrv job (MSRV check (1.95)) to .github/workflows/ci.yml: dtolnay/rust-toolchain@master pinned to 1.95, Swatinem/rust-cache@v2, then cargo check --workspace --all-features.
  • Bumps [workspace.package].rust-version from 1.85 to 1.95 in the workspace Cargo.toml.

This repo previously had no MSRV-pinned CI job at all. As flagged in the issue, the org default MSRV (1.88 per versions.toml) would NOT work here: crates/opentimstdf/Cargo.toml depends on rusqlite = { version = "0.40", features = ["bundled"] } as a mandatory (non-optional) dependency, which resolves to libsqlite3-sys 0.38.1 per the current Cargo.lock. That crate's bundled-build path uses the cfg_select! macro, stabilized only in Rust 1.95. So the job is pinned to 1.95 from day one instead.

This is the same underlying break already fixed in Sigilweaver/OpenMassSpec@691a6ca - the difference is that here the rusqlite/bundled-sqlite dependency is unconditional rather than gated behind an optional feature, so it affects every build, not just a feature-flagged one.

No changes to the org's versions.toml policy.msrv - this is a per-repo pin only, matching the pattern from the reference commit.

Verification

Rust 1.95 was available to install locally (rustup toolchain install 1.95 succeeded, resolving to rustc 1.95.0 (59807616e 2026-04-14)). Ran the exact command the new CI job runs:

cargo +1.95 check --workspace --all-features

This completed clean (workspace + all-features, including the rusqlite/libsqlite3-sys 0.38.1 bundled-build path), confirming the MSRV job will pass on its first run.

Closes #32

opentimstdf's rusqlite ^0.40 dependency (mandatory, not optional here)
resolves to libsqlite3-sys 0.38.x, whose bundled-build path uses the
cfg_select! macro stabilized in Rust 1.95. Cargo.lock already resolves
to this version, so an MSRV job must pin 1.95 from day one rather than
the org default of 1.88, or it would be red on its first run. This is
the same break already fixed in Sigilweaver/OpenMassSpec@691a6ca; the
difference here is the dependency is unconditional, not gated behind
an optional feature.

Verified clean with cargo +1.95.0 check --workspace --all-features.

Closes #32
@cloudflare-workers-and-pages

Copy link
Copy Markdown

Deploying with  Cloudflare Workers  Cloudflare Workers

The latest updates on your project. Learn more about integrating Git with Workers.

Status Name Latest Commit Updated (UTC)
✅ Deployment successful!
View logs
opentimstdf-docs abb8bc1 Jul 30 2026, 04:47 AM

@Nathan-D-R
Nathan-D-R merged commit 9ee57df into main Jul 30, 2026
7 checks passed
@Nathan-D-R
Nathan-D-R deleted the msrv-1.95-ci-job branch July 30, 2026 04:58
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.

No MSRV-pinned CI job (and when added, it needs 1.95, not the 1.88 org default)

1 participant