Skip to content

Use caret requirements for published dependencies instead of exact pins - #25

Merged
proggeramlug merged 1 commit into
mainfrom
fix/caret-dependency-requirements
Sep 15, 2026
Merged

proggeramlug merged 1 commit into
mainfrom
fix/caret-dependency-requirements

Conversation

@proggeramlug

Copy link
Copy Markdown
Contributor

Perry's P0 integration of turnloop 0.1.0-alpha.2 had to downgrade shared dependencies across Perry's whole workspace, because turnloop pinned them exactly with =:

  • libc 0.2.189 → 0.2.175;
  • tokio 1.53.1 → 1.50.0, via mio/rustix;
  • redis 1.6.0 → 1.2.4, which now raises a future-incompatibility warning;
  • wasm-bindgen 0.2.122 → 0.2.108, plus js-sys/web-sys and tempfile.

A library must not force its consumers' dependency graph.

  • Published manifests: caret requirements at the same minimum versions (libc, futures-io, postgres-protocol, mysql_common, bson, email-encoding, windows-sys, wasip2, wasip3, wasm-bindgen, js-sys, getrandom 0.3/0.4).
  • turnloop's own builds are unchanged: Cargo.lock still satisfies every manifest under --locked, and the lockfile-based 7-day soak still gates what CI builds.
  • Dev-only pins stay exact: loom, gungraun, and the publish = false contract crate's wasm-bindgen-test stack.

Should land before 0.1.0-alpha.3 is published.

Perry's P0 integration of turnloop 0.1.0-alpha.2 had to downgrade libc
(0.2.189 -> 0.2.175), tokio (via mio/rustix), redis (1.6.0 -> 1.2.4, now with
a future-incompatibility warning), wasm-bindgen/js-sys/web-sys and tempfile
across its whole workspace, because turnloop's manifests pinned libc,
windows-sys, wasm-bindgen, js-sys, wasip2/wasip3, getrandom, futures-io and
the protocol codecs with '='. A library must not force its consumers' graph.

Published crates now use caret requirements at the same minimum versions.
turnloop's own builds are unchanged: Cargo.lock still satisfies every
manifest under --locked, and the lockfile-based seven-day soak still gates
what CI builds. Dev-only pins (loom, gungraun, the publish = false contract
crate's wasm-bindgen-test stack) stay exact.
@coderabbitai

coderabbitai Bot commented Sep 15, 2026

Copy link
Copy Markdown

Warning

Review limit reached

Next included review available in 49 minutes.

Check out review usage here.

View limit details

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

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Learn how review limits work.

Review configuration:

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Advanced

Run ID: ae5bbce5-f3f6-494f-9020-b48c2b00616d

📥 Commits

Reviewing files that changed from the base of the PR and between f6fc128 and 3099263.

📒 Files selected for processing (4)
  • Cargo.toml
  • crates/turnloop-io/Cargo.toml
  • crates/turnloop-wasi-random/Cargo.toml
  • crates/turnloop/Cargo.toml

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

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

@proggeramlug
proggeramlug merged commit a2fb9b5 into main Sep 15, 2026
39 checks passed
proggeramlug pushed a commit to PerryTS/perry that referenced this pull request Sep 15, 2026
alpha.2 pinned its own dependencies with '=', which forced this workspace to
downgrade libc 0.2.189 -> 0.2.175 (and tokio, redis, wasm-bindgen, mio,
rustix, tempfile). On Linux that broke the build outright: libc 0.2.175 has
no backtrace_symbols_fd, which perry-runtime's quarantine and exception
reporters call on glibc, so only macOS builds passed.

turnloop 0.1.0-alpha.3 uses caret requirements (PerryTS/turnloop#25). The
lockfile is main's with turnloop added, so every other crate is back to the
version main already soaked. Checksum c3370511f37b90dc5ba694566cb941f0e89c205c84b798277f17a05f13e4a8ab,
resolved once with CARGO_RESOLVER_INCOMPATIBLE_PUBLISH_AGE=allow.
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