Skip to content

chore: bump the pinned Perry to 0.5.1519, rusqlite to 0.39, and adopt Perry's nightly pin - #16

Merged
proggeramlug merged 1 commit into
mainfrom
chore/bump-perry-pin-1519
Aug 27, 2026
Merged

chore: bump the pinned Perry to 0.5.1519, rusqlite to 0.39, and adopt Perry's nightly pin#16
proggeramlug merged 1 commit into
mainfrom
chore/bump-perry-pin-1519

Conversation

@proggeramlug

Copy link
Copy Markdown
Contributor

Why now

perry#8546 (two Next.js apps in_process; the second dispatched one dies with a GC-rooting TypeError) was measured against Perry 0.5.1512. The from-space-protect hunt has to continue against current main, and #14 already established the pin cannot move without the rusqlite bump landing in the same commit — so this is that commit.

What changed, and why each piece cannot land alone

change reason
perry-main.lock0.5.1519 / 41e8479a5 (2026-08-27) 137+ Perry commits since fc6b3378, including #8528/#8552/#8562, the scanner-latch work #8546 sits on top of
coop-daemon rusqlite 0.37 → 0.39 (libsqlite3-sys 0.35 → 0.37) perry-stdlib on this pin links rusqlite = "0.39"; both bundle sqlite3, and cargo refuses two versions of a links = "sqlite3" crate in one graph — in either direction (verified in #14)
new rust-toolchain.toml pinning nightly-2026-08-20 perry#8550 added the same pin to Perry: perry-runtime now uses float_algebraic, nightly-only. .perry-main is excluded from this workspace, so Perry's toolchain file never applies to a cargo run made from here — on stable, cargo check --workspace fails with 4× E0658 in perry-runtime

The toolchain change is the one worth pausing on

Coop was on stable; it now tracks a dated nightly because its path dependency does. The alternative — leave the root on stable and prefix every Perry-dependent cargo invocation (two workflows, build-perry-libraries.sh, every cargo test in the proof) with +nightly-2026-08-20 — spreads the pin across a dozen call sites, and the first one that is missed fails the same way. One file that rustup reads automatically is the smaller surface. Perry's own toolchain-file comment makes the same argument for the same reason.

Cost: Coop's toolchain now has to move whenever Perry's does. Both workflows therefore assert the two rust-toolchain.toml channels agree before building, so a bump that moves one pin without the other fails on the assert, not an hour into the Linux proof. Perry's comment says the pin returns to stable once min-publish-age stabilises (targeted Rust 1.100, late September); this file follows it back then.

fast-check installs from the file (rustup toolchain install with no argument); the Linux proof previously installed nothing and used the runner's stable, which would now fail — it installs the pinned toolchain explicitly.

Verification

Local, on nightly-2026-08-20:

  • cargo check --workspace --all-targets — clean (the same command on stable: 4× E0658 in perry-runtime).
  • cargo fmt --all -- --check — clean.
  • cargo clippy -p coop-host-abi -p coop-worker -p coop-cli --all-targets -- -D warnings — clean.
  • cargo test -p coop-host-abi -p coop-cli -p coop-worker --no-fail-fast — all suites pass except binary_http_roundtrip::next_fixture_uses_required_http_abi, which hard-asserts that providers exist under var/coop/lib/ and they are not built on this machine. That is the suite fast-check excludes for exactly this reason; the Linux proof is where it runs against providers built from the new pin.

What CI has to prove that I could not locally: build-perry-libraries.sh and the provider identity guard against 41e8479a5. LLVM stays at 22 (llvm-sys = "221" on both pins), so no runner change there.

Docs: README, quickstart and the providers page's "after bumping the pin" checklist now name the toolchain step.

https://claude.ai/code/session_01UZJbhb2FTuakurTHPAKQgd

…9, toolchain to Perry's nightly

Three changes that only build together:

- perry-main.lock: fc6b3378 (0.5.1512) -> 41e8479a5 (0.5.1519), 2026-08-27.
- coop-daemon rusqlite 0.37 -> 0.39 (libsqlite3-sys 0.35 -> 0.37). perry-stdlib
  on this pin links rusqlite 0.39; both bundle sqlite3 and cargo refuses two
  `links = "sqlite3"` versions in one graph, in either direction.
- rust-toolchain.toml pinning nightly-2026-08-20. perry#8550 added the same
  pin to Perry because perry-runtime now uses float_algebraic. `.perry-main`
  is excluded from this workspace, so Perry's file never governs a cargo run
  made from this directory: on stable, coop-daemon and coop-worker fail with
  E0658 at perry-runtime.

Both workflows install the toolchain the file names and fail early if it
differs from `.perry-main/rust-toolchain.toml`, so the next bump that moves
one pin without the other fails on the assert, not an hour into the proof.

Claude-Session: https://claude.ai/code/session_01UZJbhb2FTuakurTHPAKQgd
@coderabbitai

coderabbitai Bot commented Aug 27, 2026

Copy link
Copy Markdown

Warning

Review limit reached

Next included review available in 51 minutes.

View limit details

Limit details: You’ve used the included review currently available.

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

Learn how review limits work.

Review configuration:

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Free

Run ID: ab1b4983-4615-4de2-82ef-1d5064030c4e

📥 Commits

Reviewing files that changed from the base of the PR and between ad9e03e and 492f871.

⛔ Files ignored due to path filters (2)
  • Cargo.lock is excluded by !**/*.lock
  • perry-main.lock is excluded by !**/*.lock
📒 Files selected for processing (7)
  • .github/workflows/fast-check.yml
  • .github/workflows/linux-shared-runtime.yml
  • README.md
  • crates/coop-daemon/Cargo.toml
  • docs/src/providers.md
  • docs/src/quickstart.md
  • rust-toolchain.toml

Note

🎁 Summarized by CodeRabbit Free

Your organization is on the Free plan. CodeRabbit will generate a high-level summary and a walkthrough for each pull request. For a comprehensive line-by-line review, please upgrade your subscription to CodeRabbit Pro by visiting https://app.coderabbit.ai/settings/billing.

Comment @coderabbitai help to get the list of available commands.

@proggeramlug
proggeramlug merged commit 0d6beed into main Aug 27, 2026
3 checks passed
@proggeramlug
proggeramlug deleted the chore/bump-perry-pin-1519 branch August 27, 2026 09:12
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