Skip to content

fix(release): track local runtime metadata - #1768

Merged
joeykchen merged 1 commit into
goplus:devfrom
joeykchen:fix/buildctl-runtime-manifest-pins
Aug 21, 2026
Merged

fix(release): track local runtime metadata#1768
joeykchen merged 1 commit into
goplus:devfrom
joeykchen:fix/buildctl-runtime-manifest-pins

Conversation

@joeykchen

@joeykchen joeykchen commented Aug 21, 2026

Copy link
Copy Markdown
Contributor

Summary

  • include runtime manifest pin JSON files in the cached buildctl dependency set
  • ignore the generated root .spx runtime state directory

This keeps local runtime metadata out of commits and rebuilds buildctl when embedded pins change.

Verification

  • make buildctl
  • git diff --check

@fennoai fennoai 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.

The Makefile dependency list now tracks runtime manifest pins, and make buildctl, go test ./internal/release, and git diff --check pass. One other supported buildctl cache path remains out of sync.

Comment thread Makefile
RUNTIME_LOCK_SNAPSHOTS := $(wildcard internal/release/runtime_locks/*.json)
BUILDCTL_SOURCES := go.mod $(OPTIONAL_GO_SUM) $(MACOS_GO_TOOLCHAIN) internal/release/runtime.lock.json $(RUNTIME_LOCK_SNAPSHOTS) $(shell find cmd internal -type f -name '*.go' ! -name '*_test.go' | LC_ALL=C sort)
RUNTIME_MANIFEST_PINS := $(wildcard internal/release/runtime_manifest_pins/*.json)
BUILDCTL_SOURCES := go.mod $(OPTIONAL_GO_SUM) $(MACOS_GO_TOOLCHAIN) internal/release/runtime.lock.json $(RUNTIME_LOCK_SNAPSHOTS) $(RUNTIME_MANIFEST_PINS) $(shell find cmd internal -type f -name '*.go' ! -name '*_test.go' | LC_ALL=C sort)

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.

[P2] Track pins in the shell buildctl freshness check

internal/cmd/buildctl/buildctl.sh is another path that reuses .bin/buildctl, but its find expression still only considers Go files, runtime.lock.json, and runtime_locks/*.json. When a runtime_manifest_pins/*.json file changes, invoking build_docker.sh or build_bydocker.sh through this wrapper keeps the old binary and therefore the old embedded pin data, even though the Makefile path rebuilds correctly. Please add the manifest-pin glob to that freshness check as well so all cached buildctl entry points invalidate consistently.

@joeykchen
joeykchen force-pushed the fix/buildctl-runtime-manifest-pins branch from 3d60caf to 9204af4 Compare August 21, 2026 07:56
@joeykchen joeykchen changed the title fix(buildctl): track runtime manifest pins fix(release): track local runtime metadata Aug 21, 2026
@joeykchen
joeykchen merged commit 1d0f049 into goplus:dev Aug 21, 2026
11 checks passed
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