Skip to content

chore(tools): bump Docker toolchain to latest stable versions - #542

Open
arcbox-labs[bot] wants to merge 1 commit into
masterfrom
chore/bump-toolchain-20260803-30805178799
Open

chore(tools): bump Docker toolchain to latest stable versions#542
arcbox-labs[bot] wants to merge 1 commit into
masterfrom
chore/bump-toolchain-20260803-30805178799

Conversation

@arcbox-labs

@arcbox-labs arcbox-labs Bot commented Aug 3, 2026

Copy link
Copy Markdown
Contributor

Summary

  • docker: 29.6.2 -> 29.7.1
  • docker-buildx: 0.35.0 -> 0.36.0

Checksums verified by downloading binaries and computing SHA-256.

Auto-generated by cargo xtask release check-tool-updates.

@pullfrog pullfrog Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ℹ️ Pins verified correct — one version-skew question worth a look.

Reviewed changes — an automated check-tool-updates bump of two [[tools]] pins in assets.lock; I re-verified every checksum against upstream rather than taking the generated body's word for it.

  • docker 29.6.2 → 29.7.1 — host Docker CLI, installed from the download.docker.com static tarball.
  • docker-buildx 0.35.0 → 0.36.0 — buildx CLI plugin, installed as a bare binary from GitHub releases.
  • Nothing else moved[boot] (0.6.13), manifest_sha256, docker-compose, docker-credential-osxkeychain, pstramp, and kubectl are untouched.

Independent verification, so it does not have to be repeated:

  • All four sha256 values match the real artifacts byte-for-byte (streamed and hashed), and all four URLs return 200.
  • The URL templates in xtask/src/commands/release/check_tool_updates.rs match the runtime ones in app/arcbox-docker-tools/src/registry.rs, so the hashed artifact is the one HostToolManager will download. The docker sha correctly pins the archive, which is what is_cached / validate_all expect for ArtifactFormat::Tgz.
  • The 29.7.1 tarball still contains exactly docker/ + docker/docker, so the hardcoded registry::tgz_inner_path("docker") still resolves and extract_from_tgz will not start failing.
  • assets.lock is the only pin site in this repo — package_tarball.rs stages no docker/buildx binary or .sha256, and a stale .app-bundle sidecar degrades gracefully to a CDN download.
  • ArcBox's own docker invocations (rootfs_builder.rs, uninstall.rs) use --context, image inspect, build -t -f, and context rm/use — all unchanged in 29.7.x, which ships only additive features and bug fixes with no flag removals or Engine API minimum bump.

Pullfrog  | Fix all ➔Fix 👍s ➔View workflow run | Using Claude Opus𝕏

Comment thread assets.lock
version = "29.6.2"
arch.arm64.sha256 = "86f86ad4b2119ec55aa50224f15ceb4c94a198f8ae153bb32318d7da589749da"
arch.x86_64.sha256 = "9a72a1c1a331885aadf7948e3da8e3c5c88c5e813474bb82dce7cc72450487bf"
version = "29.7.1"

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This takes the host CLI to 29.7.1 while boot bundle 0.6.13 still ships dockerd 29.6.1, widening the gap from patch-level to minor-level. The header at lines 11-14 tolerates that divergence only "for the short window between a bundle release and the [boot] bump", but the weekly cron has no awareness of the [boot] half, so nothing closes the window automatically. Almost certainly fine in practice via API negotiation — worth confirming someone owns the follow-up bump.

Technical details
# Host Docker CLI pin now a minor version ahead of the guest dockerd

## Evidence
- Fetched `https://boot.arcboxcdn.com/asset/v0.6.13/manifest.json` (its sha256
  matches the `manifest_sha256` pin on line 19 exactly, so this is the bundle
  this repo actually boots). It pins `dockerd` and `docker-init` at `29.6.1`.
- Before this PR: CLI 29.6.2 vs dockerd 29.6.1 — same minor.
- After this PR: CLI 29.7.1 vs dockerd 29.6.1 — one minor ahead.

## Affected sites
- `assets.lock:24` — the CLI pin this PR moves.
- `assets.lock:11-14` — the rule this crosses: keep the `docker` tool on the
  same version as the boot bundle's dockerd, diverging only briefly.
- `app/arcbox-docker-tools/src/lockfile.rs:5-6` — doc comment asserts "A single
  lockfile ensures the Docker CLI and guest dockerd are always at the same
  version — no version-skew concerns on upgrade." That is not true and this PR
  makes it visibly wrong: dockerd comes from the boot manifest, not
  `[[tools]]`, exactly as `assets.lock`'s own header states.
- `docs/boot-assets.md:13,31` — states the bundle is built from the "Docker
  29.6.1 static package". Accurate for `0.6.13`, so it will need updating in
  the same change that moves `[boot]` to a 29.7.x bundle.

## Required outcome
- A decision on whether merging ahead of the bundle is acceptable here, and if
  so something tracking the follow-up `[boot]` + `manifest_sha256` bump once
  `boot-assets` publishes a 29.7.x-based release.
- Correct or delete the `lockfile.rs:5-6` version-skew claim so it stops
  contradicting `assets.lock`'s header.

## Open questions for the human
- Is the intended sequence "bump `[boot]` first, then let the cron move the
  CLI"? If so, this PR arrived out of order and may be worth holding.
- Should `check-tool-updates` warn when the `docker` tool pin's minor version
  diverges from the pinned bundle's dockerd, so this is caught at generation
  time rather than in review?

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.

0 participants