Skip to content

fix: the README's first command pointed at an image that did not exist - #21

Merged
youhide merged 1 commit into
mainfrom
fix/demo-image
Aug 11, 2026
Merged

fix: the README's first command pointed at an image that did not exist#21
youhide merged 1 commit into
mainfrom
fix/demo-image

Conversation

@youhide

@youhide youhide commented Aug 11, 2026

Copy link
Copy Markdown
Owner

Reported by the first person to try it — which is the whole point of
writing a section for people who have not seen the project before, and an
unambiguous failure of the milestone that added it.

$ docker run --rm --name oxinit-demo -p 8080:8080 ghcr.io/youhide/oxinit:demo
docker: Error response from daemon: error from registry: denied

No tag had been pushed, so the release workflow that published that image
had never run.

The test passed the whole time

test-demo builds the image locally and checks that one. The test and
the README were talking about two different images, and nothing compared
them. A guard that cannot see the thing it is guarding is not a guard.

Three fixes, one of them obvious

The demo image is documentation, not a release artifact. It is now
published from main by CI. Tying it to a release meant the README
pointed at something that would not exist until a version number had been
declared — a separate decision, and not one anybody was about to make.
The release workflow adds a versioned tag and nothing else.

The README leads with what works with no registry at allcargo xtask fetch and cargo xtask demo — and offers the pull second.

CI checks that the image reference in the README is the one the publish
step pushes.
That is the half a locally-built-image test structurally
cannot cover, and it is the half that failed.

One thing nobody can automate

A package pushed by Actions is private by default, and an anonymous
pull against a private package fails with exactly the denied above.
After this merges and CI publishes the image once, the package has to be
made public on the repository's package settings page — that belongs to
whoever owns the account, not to CI, and I have not claimed the pull
command works until that is done and verified.

…not exist

Reported by the first person to try it, which is the whole point of
writing a section for people who have not seen the project before — and
an unambiguous failure of the milestone that added it.

The README said `docker run ghcr.io/…/oxinit:demo`. No tag had been
pushed, so the release workflow that published that image had never run.
`test-demo` passed the entire time: it builds the image locally and
checks that one, so the test and the README were talking about two
different images and nothing compared them.

The demo image is documentation, not a release artifact. It is published
from main by CI now, rather than from a tag by the release workflow —
tying it to a release meant the README pointed at something that would
not exist until a version number had been declared, which is a separate
decision and was not about to be made. The release workflow adds a
versioned tag and nothing else.

The README leads with the two commands that need no registry, and offers
the pull second.

And CI checks that the image reference in the README is the one the
publish step pushes. That is the half a test on a locally built image
structurally cannot cover, and it is the half that failed.

Not automatable, and stated in ROADMAP rather than left to be discovered
again: a package pushed by Actions is private by default, and an
anonymous pull against a private package fails with the same `denied`.
Making it public is a one-time setting on the repository's package page.
@youhide
youhide merged commit 47e8536 into main Aug 11, 2026
8 checks passed
@youhide
youhide deleted the fix/demo-image branch August 11, 2026 20:00
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