You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat(updates): dev takes the newest bundle, because only its number is behind
The compatibility gate compares a bundle's stated minimum against the core's
package version, and on `dev` that version is the one thing that lags: the
branch carries the endpoints of the next release while still calling itself
the last one. So a console built against those endpoints — which dev can
serve perfectly well, having the endpoints — was refused by a check that is,
on this branch alone, measuring the wrong thing.
It showed up immediately. With adminui 6.1.0 published asking for
4.0.0-beta.22, the next push to dev would have failed the dev image build at
`fetch:admin`, and a dev install pressing update in the console would have
been told to update a server that already had what it needed.
Dev is therefore exempt outright, at every point the gate exists: the
build-time fetch, the in-place update's preflight, the release resolver
(which takes the newest of its channel rather than walking for a compatible
one, saving a request per candidate), and the status the console reads. What
dev is for is trying a fix, and what that needs is the newest of everything.
`isDevBuild` is deliberately not `readBuildChannel() === 'dev'`. That
function answers `dev` for anything that does not claim otherwise, which is
the right way round for a warning and the wrong way round for a permission —
a server-dist tarball unpacked outside a repository declares nothing, and
must not inherit what dev may do. It has to be said: BUILD_CHANNEL, the
build stamp, or a checkout literally on the branch.
Said in three places because none of them can read the others. The dev job
sets it on the build step, since a CI checkout is on a detached HEAD with no
branch to read; the Dockerfile declares it in the builder stage, since ARGs
do not cross stages and `.git` is not copied into the image; and the branch
is the fallback for a developer building in their own working copy.
Release builds are untouched. A beta or stable build still fails when its
bundles ask for a core it is not — which, since a release bumps the version
in the same commit that tags it, only fires when that bump is missing.
0 commit comments