v0.3.0 was released without a container image, because the bill of materials could not be uploaded #251
Labels
No labels
accessibility
authentication
breaking change
bug
documentation
enhancement
interface
internationalisation
observability
security
tier
1
tier
2
tier
3
tier/4
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
Postulo/postulo#251
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
The release itself went out correctly on 2026-09-16: the tag, the sdist, the wheel and the
changelog as its notes. The container image did not, and nothing said so —
docker pull source.tiagoagueda.com/postulo/postulo:0.3.0has nothing to answer with, and neither do:0.3or:latest.What happened
image.ymlhad its steps in this order: build locally, scan, write the scan to the summary,upload the bill of materials, then build for amd64 and arm64 and push.
The upload step is
actions/upload-artifact@v4. This Forgejo answers the artifact API as aGitHub Enterprise Server that does not implement v2 of it, so the step ends with
It carried
if: always()but notcontinue-on-error, so it failed the job — and the push,which was the next step, never ran. Everything before it had succeeded: the image built, both
scanners ran, the verdict was clean.
This is the mirror image of the fault fixed in the plugin repositories the same day, where
upload-artifact@v3was disabled server-side and the fix was to move to v4. On this instancev4 is the one that does not work. Both versions failing means no artifact upload works here
at all, which is worth knowing before anything else depends on one.
Fixed, and what is left
The push now runs before the upload, and the upload is
continue-on-error: true. A releasewhere the bill of materials cannot be stored still publishes an image; one where the image
cannot be built still fails, which is the way round it should be.
Left open deliberately:
comment says why it exists — somebody self-hosting can scan the release later against a
database that does not exist yet — and that argument still holds, so it wants a home the
server will accept: attached to the release beside the sdist and the wheel, which
scripts/release_tools.py publishalready knows how to do.workflow are separate by design (#81), so a green release says nothing about the image. A
check that the tags exist in the registry afterwards would have caught this in a minute
rather than by somebody trying to pull.
postulo-firefoxwas changed from v3 to v4 on 2026-09-16 on the assumption that v4works here. It does not; that repository's artifact upload is now failing the other way and
wants the same treatment.