chore: bump pocket-ic to release-2026-04-30_04-26-base - #6088
Merged
Conversation
Same fix as PR #6009 applied to `gc-tests`. The `tests` matrix on `arm64-linux-16` runs `nix-build-uncached --max-jobs auto`, which schedules three parallel ~3 GB derivation builds and OOMs the runner ("Killed" → "The runner has received a shutdown signal"). Use the matrix `include:` pattern to override `max_jobs` per-OS and plumb it through to `test-blueprint` like `gc-tests` already does. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2 tasks
ggreif
force-pushed
the
gabor/bump-pocket-ic
branch
from
May 6, 2026 00:31
272a555 to
9f27f75
Compare
Contributor
ggreif
force-pushed
the
gabor/bump-pocket-ic
branch
2 times, most recently
from
May 6, 2026 01:11
c77c14a to
eefcb56
Compare
ggreif
added a commit
that referenced
this pull request
May 6, 2026
This reverts commit 6c766d8b0bf6d28cf2a0fc92c5b2d9d76eed9a05. PR #6088 with a fresh cache-buster (forcing a real cold rebuild of the GC-variant derivations) hit OOM at max-jobs=2: building 'test-drun-compacting-gc.drv'... building 'test-drun-generational-gc.drv'... Killed nix-build-uncached -build-flags "--max-jobs 2" Run: https://github.com/caffeinelabs/motoko/actions/runs/25411132891/job/74532926605 The GC variants are heavier than the regular test-* derivations (each RTS rebuild with different feature flags = ~3 GB), so two in parallel exceed the 16 GB runner. PR #6090's gc-tests at max-jobs=2 only appeared to pass because that branch's cache-busting populated cachix with a different content hash and the GC variants got pulled instead of rebuilt. For \`tests\` (release-systems-go) the constituent derivations are smaller and max-jobs=2 holds — keeping that bump. The matrix is asymmetric: gc-tests=1, tests=2. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
ggreif
added a commit
that referenced
this pull request
May 6, 2026
Asymmetric tuning (gc-tests=1, tests=2) is too brittle: PR #6090 showed tests-at-2 passing on a particular cache state, but the gc-tests OOM in PR #6088 demonstrated that the 2-vs-1 distinction depends on which derivations happen to rebuild simultaneously. Future test additions could shift the memory profile of release-systems-go and reintroduce OOMs silently. Going back to a uniform max-jobs=1 on arm64-linux-16. Slower but stable. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
ggreif
force-pushed
the
gabor/bump-pocket-ic
branch
2 times, most recently
from
May 6, 2026 01:51
fcce493 to
c571caf
Compare
Same shape as the `bump-rust-nightly` move (commit 93e5b09): promotes the skill from the user-local `.claude/skills/` to the repo-shared `.agents/skills/` location used by `build-and-test`, `migrating-motoko`, etc. Renames `skill.md` → `SKILL.md` for consistency. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Bumps the `pocket-ic-server` binary from `release-2026-04-16_04-20-base` to the 2026-04-30 base release. SHA256 hashes obtained via `nix-prefetch-url`. (The release does not ship a `SHA256SUMS` file: a `curl -sIL` of the URL returns 404, so the skill's recommended Option A is unusable for these releases.) Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Pins the `pocket-ic` crate in `test-runner/Cargo.toml` to the same release tag (`release-2026-04-30_04-26-base`) and refreshes `Cargo.lock`. The crate version is unchanged (13.0.0); only the git commit hash of the tag moves. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
The `pocket-ic` crate version stayed at 13.0.0, but the underlying git tag now points at a different commit, so `outputHashes` needs the new fixed-output hash. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Findings from the 2026-04-30 bump: 1. `SHA256SUMS` is no longer published by recent `release-*-base` tags (URL 404s). Demoted Option A to an optional cross-check; promoted `nix-prefetch-url` to the default. Nix already rejects tampered downloads, so the cross-check is belt-and-suspenders, not required. 2. The `nix-prefetch-url --print-path | head -1` recipe was overly ornate; plain `nix-prefetch-url <url>` returns the base32 hash on stdout already. 3. `cargo update` must run with plain `cargo`, not via `nix develop --command` — the dev shell is offline-sandboxed and the command fails with `you are in the offline mode (--offline)`. 4. Use `cargo update -p pocket-ic` to scope the change. 5. Across consecutive `release-*-base` tags the crate version normally stays the same; only the git commit hash moves. Reworded step 6 to reflect that "hash always changes, version usually doesn't". Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
ggreif
force-pushed
the
gabor/bump-pocket-ic
branch
from
May 6, 2026 05:53
c571caf to
41201d2
Compare
ggreif
disabled auto-merge
May 6, 2026 06:06
alexandru-uta
approved these changes
May 6, 2026
pull Bot
pushed a commit
to mikeyhodl/motoko
that referenced
this pull request
May 6, 2026
## Summary Extends the same `max_jobs=1` workaround used by `gc-tests` in caffeinelabs#6009 to the `tests` matrix on `arm64-linux-16`. `ubuntu-24-large` keeps `max-jobs=auto`. ## Why `tests (arm64-linux-16, release)` and `tests (arm64-linux-16, debug)` have been OOM-killed by the runner whenever `nix-build-uncached --max-jobs auto` schedules three parallel ~3 GB derivation builds. Most recent observation: https://github.com/caffeinelabs/motoko/actions/runs/25409615273/job/74528169567 (initial CI on the `pocket-ic` bump PR caffeinelabs#6088 — failure was unrelated to the bump itself). ## Why max-jobs=1 (not 2) We probed a higher ceiling but it's not stable enough to ship: - PR caffeinelabs#6090 ran `gc-tests` and `tests` at `max-jobs=2` against a cache-busted `test-runner` and **appeared** to pass. - PR caffeinelabs#6088 with a *different* cache-buster (forcing a different content hash than caffeinelabs#6090's, and therefore a real cold rebuild of the GC-variant derivations) hit OOM on `gc-tests (arm64-linux-16, 2)` after ~2.5 minutes: ``` building 'test-drun-compacting-gc.drv'... building 'test-drun-generational-gc.drv'... Killed nix-build-uncached -build-flags "--max-jobs 2" ``` Run: https://github.com/caffeinelabs/motoko/actions/runs/25411132891/job/74532926605 The result depends on which derivations happen to be cachix-cached vs cold-rebuilt at any given moment. An asymmetric `gc-tests=1, tests=2` configuration would also be brittle: a future test addition could shift the memory profile of `release-systems-go` and silently reintroduce OOMs. Going uniform `max-jobs=1` is slower but stable. ## Test plan - [x] CI green - [x] No `tests (arm64-linux-16, *)` OOM on the resulting run 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
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.
Summary
pocket-ic-server(and the matchingpocket-icRust crate) fromrelease-2026-04-16_04-20-basetorelease-2026-04-30_04-26-base.bump-pocket-icskill — also relocated from.claude/skills/to.agents/skills/(matching thebump-rust-nightlyprecedent in chore: bumprustc-nightlyto 2026-05-04 (May the fourth) #6079) and tweaked based on what we learned this run.Skill retro (folded back into the SKILL.md)
SHA256SUMSis no longer published by recentrelease-*-basetags (URL 404s). Option A demoted to an optional cross-check;nix-prefetch-urlis now the default. Nix rejects tampered downloads on its own, so the cross-check is belt-and-suspenders.nix-prefetch-url --print-path | head -1recipe was unnecessary; plainnix-prefetch-url <url>returns the base32 hash on stdout.cargo updatemust run with plaincargo, notnix develop --command cargo …— the dev shell is offline-sandboxed and fails with--offline.cargo update -p pocket-ic.outputHasheshash always changes but the key usually doesn't.Test plan
nix build .#pocket-ic-servernix build .#test-runner🤖 Generated with Claude Code