fix: correct the pi-studio claim — CI publishes v0.9.59, not the v0.9.60-rc.0 label
Lint / actionlint (push) Successful in 17s
Lint / hadolint (push) Successful in 14s
Publish Docker Image / resolve-versions (push) Successful in 10s
Publish Docker Image / base-decide (push) Successful in 12s
Publish Docker Image / build-base (push) Has been skipped
Publish Docker Image / smoke (push) Successful in 4m44s
Publish Docker Image / smoke-studio (push) Successful in 5m8s
Publish Docker Image / build-variant (push) Successful in 15m52s
Publish Docker Image / update-description (push) Successful in 6s
Publish Docker Image / promote-base-latest (push) Successful in 9s
Publish Docker Image / build-variant-studio (push) Successful in 21m22s
Lint / actionlint (push) Successful in 17s
Lint / hadolint (push) Successful in 14s
Publish Docker Image / resolve-versions (push) Successful in 10s
Publish Docker Image / base-decide (push) Successful in 12s
Publish Docker Image / build-base (push) Has been skipped
Publish Docker Image / smoke (push) Successful in 4m44s
Publish Docker Image / smoke-studio (push) Successful in 5m8s
Publish Docker Image / build-variant (push) Successful in 15m52s
Publish Docker Image / update-description (push) Successful in 6s
Publish Docker Image / promote-base-latest (push) Successful in 9s
Publish Docker Image / build-variant-studio (push) Successful in 21m22s
Measured at the wrong layer during the v1.8.13 audit. I read `ARG
PI_STUDIO_REF=main` in Dockerfile.variant, concluded the release would adopt
main (= v0.9.60-rc.0), set PI_STUDIO_VERSION to that, and wrote a comment plus a
CHANGELOG entry describing deliberate RC adoption. A Dockerfile default cannot
answer "what will CI publish?" when CI overrides it, and it does: build-variant
passes PI_STUDIO_REF=studio_ref and PI_STUDIO_VERSION=studio_tag (lines 598-599
and 787-788), and resolve-versions picks the newest STABLE semver tag via
`^v?[0-9]+\.[0-9]+\.[0-9]+$`, which excludes pre-releases.
Caught by reading run 639's own resolve-versions output rather than the
Dockerfile: studio_tag=v0.9.59, studio_ref=9eed84f = refs/tags/v0.9.59^{}, while
main/v0.9.60-rc.0 is 658536f and never gets built. So published v1.8.13 studio
images carry pi-studio v0.9.59.
ARG restored to `none` rather than pinned to v0.9.59: the local-build default
should not hardcode a tag that goes stale as soon as main moves, which is how the
previous value came to lie. The comment now leads with the override so the next
reader starts at the layer that decides. Upstream's tag-over-main policy is
deliberate (Releases stopped at v0.5.55, main receives half-finished commits), so
adopting an RC from CI would mean changing that filter, not this ARG.
Consequence kept on purpose: the RC's opt-in Studio network binding is in NO
published v1.8.13 image, so it needs no audit this release.
Doc/label-only: base_tag hashes Dockerfile.base + rootfs/** + both entrypoints +
mempalace_toolkit_ref, none of which this touches, so the in-flight base build
(base-ad9faf00f2b2) stays valid and the tag run will reuse it. Verified with CI's
pinned linters: hadolint 2.14.0 exit 0 on both Dockerfiles, actionlint 1.7.7 exit
0, shellcheck 0.10.0 -S error exit 0.
This commit is contained in:
+21
-6
@@ -14,12 +14,27 @@ Pre-v1.0.0 tags followed the pi npm version (`v{pi_version}[letter]`).
|
||||
## v1.8.13 — 2026-09-06
|
||||
|
||||
**Version audit + three pins moved, one deliberately not moved.** `pi`
|
||||
0.84.4 -> 0.85.1, `mempalace` 3.8.0 -> 3.9.0, `pi-atelier` v0.10.0 -> v0.10.1,
|
||||
and `PI_STUDIO_VERSION` relabelled `none` -> `v0.9.60-rc.0` to record what the
|
||||
floating `main` ref actually resolves to. `PI_FORK_REF=master` stays floating
|
||||
and therefore adopts e69725c. Each rationale is written at the ARG itself
|
||||
rather than only here, because that is where the next person doing the audit
|
||||
will be standing.
|
||||
0.84.4 -> 0.85.1, `mempalace` 3.8.0 -> 3.9.0, `pi-atelier` v0.10.0 -> v0.10.1.
|
||||
`PI_FORK_REF=master` stays floating and therefore adopts e69725c. Each rationale
|
||||
is written at the ARG itself rather than only here, because that is where the
|
||||
next person doing the audit will be standing.
|
||||
|
||||
**Correction, made mid-release while run 639 was building:** the audit
|
||||
originally recorded a fourth change — "`PI_STUDIO_VERSION` relabelled `none` ->
|
||||
`v0.9.60-rc.0`, RC adopted deliberately" — and that was wrong. It was measured
|
||||
at the wrong layer. `resolve-versions` passes BOTH `PI_STUDIO_REF` and
|
||||
`PI_STUDIO_VERSION` as build-args and selects the newest **stable** semver tag
|
||||
(its filter `^v?[0-9]+\.[0-9]+\.[0-9]+$` excludes pre-releases), so a Dockerfile
|
||||
default cannot answer "what will CI publish?". Measured from the run itself:
|
||||
`studio_tag=v0.9.59`, `studio_ref=9eed84f` (= `refs/tags/v0.9.59^{}`), while
|
||||
`main`/`v0.9.60-rc.0` is 658536f and is not built. **Published v1.8.13 studio
|
||||
images therefore contain pi-studio v0.9.59, not the RC**, and the ARG is back at
|
||||
`none` rather than pinned to a pre-release that goes stale the moment main
|
||||
moves. Consequence kept deliberately: the RC's opt-in Studio network binding is
|
||||
absent from every published v1.8.13 image, so it needs no audit for this
|
||||
release. Adopting an RC from CI would require changing that tag filter, which
|
||||
exists on purpose — upstream stopped publishing Releases at v0.5.55 but keeps
|
||||
tagging and pushing to main, so pinning main risked baking half-finished commits.
|
||||
|
||||
0.85.0 is SKIPPED on purpose: it shipped internal experimental code and extra
|
||||
subpaths that broke SDK imports (upstream #9132), and 0.85.1 exists to undo
|
||||
|
||||
Reference in New Issue
Block a user