Conversation
`npx @pmndrs/docs build` does what the image did, so the image, the `Dockerfile` and the four publish steps that maintained them are gone — as are the `packages`, `attestations` and `id-token` permissions they alone needed. `build.yml` keeps every input, environment variable and Pages artifact it had; only the build step changes, and `docker_tag` gives way to `version` — an npm version or range. BREAKING CHANGE: `ghcr.io/pmndrs/docs` is no longer published. Its existing tags stay in the registry, frozen. The major is also what keeps the force-moved `vX` git tag off callers pinning `build.yml@v3`. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01HfCBpbazo3fr1n2EUXNyh5
`docs.yml` pins no version, so this repository's own Pages deploy is built by exactly what consumers install. A broken release shows up here before anyone downstream moves to it, and the deploy no longer waits on a version number this repository has to keep in step with itself. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01HfCBpbazo3fr1n2EUXNyh5
The permission left with the image attestation it served, but trusted publishing needs it too — it is the OIDC token that authenticates the release to npm. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01HfCBpbazo3fr1n2EUXNyh5
Merged
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.
Stacked on #574.
npx @pmndrs/docs builddoes what the image did, so the image and everything that maintained it goes.What goes
Dockerfile,.dockerignoreci.ymlsteps that logged in, built, pushed and attested the image — and thepackages,attestationsandid-tokenpermissions they alone needed-e VARlist inbuild.ymland inpreview.sh: the CLI runs in the same process, so it reads the environment directlyWhat stays the same
build.ymlkeeps every input, every environment variable and the same Pages artifact. Only the build step changes:docker_taggives way toversion— an npm version or range.Why major
Not the inputs. All the repositories calling this workflow were checked: every one pins
@v2or@v3, none uses@main, and none passesdocker_tag. Removing that input breaks nobody.The major is for the git tag. Releases run
git tag -fa v$MAJOR_VERSION --force, so a minor would slide zustand, react-three-fiber, drei and react-postprocessing — all pinned at@v3— straight onto the Docker-free workflow. Only a major leavesv3where it is and opensv4.The substantive removal is the published artifact:
ghcr.io/pmndrs/docsstops being pushed. Existing tags stay in the registry, frozen.This repository is the canary
docs.ymlnow passesversion: 'latest'instead of a number. Our own Pages deploy is then built by exactly what consumers install, so a broken release surfaces here before any downstream repository moves to@v4.Verified
The artifact layout is the one thing that genuinely moved (
docs/out$BASE_PATH→out), so it was built for real withBASE_PATH=/toto:out/index.htmlandout/guide/start.htmlat the artifact root, asset URLs carrying/toto— the same shape the Docker path produced.lint,tsc, 108 unit tests green. All three workflows parse.Sequencing
Merge only once #574 has merged and a release has actually published
@pmndrs/docsto npm — which needs theNPM_TOKENrepository secret.Consumer repositories move to
@v4afterwards, one at a time. Note that none of their docs workflows triggers onpull_request, so a migration PR carries no CI signal — hence the canary above.pmndrs/skyandpmndrs/denoiserrun the image inline rather than through this workflow and need their own conversation.🤖 Generated with Claude Code
https://claude.ai/code/session_01HfCBpbazo3fr1n2EUXNyh5