fix(ci): pin time to 0.3.51 to unbreak cookie 0.18.1 build#376
Merged
Conversation
This repo commits no Cargo.lock and CI does not pass `--locked`, so every CI run re-resolves dependencies from crates.io. `time 0.3.52` (published 2026-06-30) changed the `Parsable::parse` signature, and `cookie 0.18.1` — pulled in as a dev-dependency of room-contract via the `freenet` crate and compiled by `cargo test --package room-contract --features net` — calls it with the old arity, so the `build` job now fails for every PR and push with `error[E0061]: this method takes 2 arguments but 1 argument was supplied` in cookie-0.18.1/src/parse.rs. `time` cannot simply be held below the break: serde_with 3.21.0 (via freenet-stdlib 0.6.1) requires `time = "~0.3.47"`. 0.3.51 is the newest version that satisfies that floor while staying below the 0.3.52 break, so pin to it via the existing `cargo update --precise` mechanism already used for constant_time_eq, in both the `build` and `ui-playwright-tests` jobs. Reproduced locally: `cargo test --package room-contract --features net --no-run` fails on time 0.3.52 and compiles cleanly on 0.3.51. Remove this pin once cookie ships a time-0.3.52-compatible release. The durable fix is to commit a Cargo.lock (or build with `--locked`) so CI stops drifting with every upstream publish; filed separately as a follow-up consideration. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VmZ2TuM1ofhLTndJ1AUnMH
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.
Problem
CI's
buildjob is red for every PR and push as of 2026-06-30:This repo commits no
Cargo.lockand CI does not pass--locked, so every run re-resolves dependencies from crates.io.time 0.3.52(published today) changed theParsable::parsesignature;cookie 0.18.1— a dev-dependency ofroom-contractvia thefreenetcrate, compiled bycargo test --package room-contract --features net— still calls it with the old arity. Nothing in the source changed; the dependency graph drifted.Approach
timecan't just be held below the break —serde_with 3.21.0(viafreenet-stdlib 0.6.1) requirestime = "~0.3.47". The compatible window is0.3.47–0.3.51. Pin to 0.3.51 (newest that satisfies the floor and stays below the break) using the samecargo update --precisemechanism already used forconstant_time_eq, in both thebuildandui-playwright-testsjobs.Testing
Reproduced and verified locally:
cargo test --package room-contract --features net --no-runwithtime 0.3.52→ fails oncookie(E0061).cargo update -p time --precise 0.3.51→cookieand the room-contract test build compile cleanly.CI on this PR is the end-to-end confirmation.
Follow-up
This class of break recurs because CI re-resolves on every run. The durable fix is to commit a
Cargo.lock(or build with--locked) so CI stops drifting with each upstream publish. Pinning here is the minimal unblock; the lockfile question is worth a separate discussion. Thetimepin should be dropped oncecookieships atime 0.3.52-compatible release.[AI-assisted - Claude]