Skip to content

chore(hub): re-bake python-numpy as a portable pack (rootfs sidecar)#248

Merged
WaylandYang merged 1 commit into
mainfrom
chore/hub-python-numpy-portable
Jun 14, 2026
Merged

chore(hub): re-bake python-numpy as a portable pack (rootfs sidecar)#248
WaylandYang merged 1 commit into
mainfrom
chore/hub-python-numpy-portable

Conversation

@WaylandYang

Copy link
Copy Markdown
Contributor

#242 follow-up (ops). Makes the first hub asset actually restorable off the packing host.

What changed

  • Re-baked python:3.12-slim + numpy with a current forkd (snapshot.json now records the rootfs path).
  • Re-packed → emits the content-addressed rootfs sidecar.
  • Uploaded both to the hub-python-numpy-v1 release:
    • python-numpy.forkd-snapshot.tar.zst (15.5 MiB, new sha 0084e2eb…)
    • f4ae4fc74992a9eb.rootfs.zst (48.3 MiB, zstd -19)
  • registry.json: python-numpy latest+v1 sha256/size_bytes updated. No schema change — pull derives the sidecar URL as the pack's sibling.

Verified end-to-end (clean host)

Privileged container with zero prior forkd state:

forkd pull https://github.com/deeplethe/forkd/releases/download/hub-python-numpy-v1/python-numpy.forkd-snapshot.tar.zst
  ✓ downloaded 15.5 MiB (pack)
  ✓ unpacked tag 'python-numpy'
  ==> downloading rootfs sidecar f4ae4fc74992a9eb.rootfs.zst
  ✓ rootfs ready at /var/cache/forkd/python-3-12-slim.ext4   (1.5 GiB placed)
forkd fork --tag python-numpy -n 2 --per-child-netns
  ✓ 2 / 2 children alive in 107 ms

Before #242, that pull-then-fork died with FC's Block: backing file: No such file.

Remaining ops work

The other 8 hub assets (langgraph-react, coding-agent-fork, postgres-fixture, playwright-browser, nodejs, jupyter-kernel, e2b-codeinterpreter, coding-agent) still need the same re-bake + re-pack + dual-upload. Heavier ones (playwright browser, postgres) need their recipe-specific warmup state reproduced.

Test plan

  • Clean-host pull → rootfs auto-placed → fork 2/2 (above)
  • After merge: forkd pull deeplethe/python-numpy (registry path) on a clean host

🤖 Generated with Claude Code

…#242 follow-up

The hub-python-numpy-v1 release now carries a portable pack: re-baked
with a current forkd so snapshot.json records the rootfs, re-packed
(emits the content-addressed sidecar), and both assets uploaded to the
release:
  - python-numpy.forkd-snapshot.tar.zst  (15.5 MiB, new sha)
  - f4ae4fc74992a9eb.rootfs.zst          (48.3 MiB sidecar, zstd -19)

registry.json's python-numpy latest+v1 sha256/size updated to the new
pack. Pull derives the sidecar URL as the pack's sibling, so no registry
schema change is needed.

Verified end-to-end on a clean host (privileged container, no prior
forkd state): `forkd pull` the release URL → pack downloaded → rootfs
sidecar auto-fetched + placed at /var/cache/forkd/python-3-12-slim.ext4
→ `forkd fork -n 2` → 2/2 children alive in 107 ms. Before #242 this
pull-then-fork died with FC's "Block: backing file: No such file".

Other hub assets (langgraph-react, coding-agent-fork, postgres-fixture,
playwright-browser, nodejs, jupyter-kernel, e2b-codeinterpreter,
coding-agent) still need the same re-bake + re-pack + dual-upload to
become portable — tracked as remaining ops work.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@WaylandYang WaylandYang merged commit 9041edb into main Jun 14, 2026
2 checks passed
@WaylandYang WaylandYang deleted the chore/hub-python-numpy-portable branch June 14, 2026 13:50
WaylandYang added a commit that referenced this pull request Jun 14, 2026
…ixture as portable packs (#249)

#242 follow-up — 4 more hub assets made restorable off the packing host.
Each re-baked with a current forkd (snapshot.json records the rootfs),
re-packed (content-addressed rootfs sidecar), and both assets uploaded
to their release:

  nodejs            pack 10.4 MiB  + sidecar 51.7 MiB
  langgraph-react   pack 14.5 MiB  + sidecar 42.5 MiB
  coding-agent      pack 15.1 MiB  + sidecar (gh/ruff/black/mypy/pytest)
  postgres-fixture  pack 37.8 MiB  + sidecar 116.2 MiB

registry.json latest+v1 sha256/size updated for all four. Pull derives
the sidecar URL as the pack's sibling — no schema change.

Together with python-numpy (#248), 5 of 9 hub assets are now portable.
Remaining: jupyter-kernel + playwright-browser (multi-GB base images),
e2b-codeinterpreter (exotic base), coding-agent-fork (no build.sh —
needs its workspace state reconstructed). Tracked as ongoing ops.

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
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