Make lychee::latest track the latest stable release, add nightly tag#2219
Conversation
|
I tested the Docker image creation with a throwaway workflow and everything seems to have worked as expected. If I didn't overlook anything, this should be good to go. Fingers crossed because historically I didn't have much luck with Docker changes. But overall, this aligns lychee's Docker image behavior with user's expectations. |
eedfaf2 to
dda262d
Compare
dda262d to
728aa82
Compare
|
@haines fyi |
There was a problem hiding this comment.
Thank you for the investigation & detailed docs! I couldn't spot any issues.
As a side-note I started investigating this issue too, but got sidetracked into simplifying the Docker images by not depending on the GitHub releases. I've started this work in https://github.com/thomas-zahner/lychee/tree/reproducible-docker-images. But this is only indirectly related to this PR, so lets merge this PR first.
Ah, great. Yes, looking forward to your independent work on the Dockerfile changes. As discussed, I will go ahead and merge this, which will resolve the issue #1981. Thanks for the review. 👍 |
The
latestandmasterDocker tags were identical:latestwas published onevery push to
master(type=raw,value=latest,enable={{is_default_branch}}) andthe master build bakes in the
nightlybinary. Solychee:latestwas effectivelya nightly build, not the latest stable release, which is surprising and violates
the usual Docker convention that
latestmeans "latest stable release."Note
The meaning of
lychee:latestchanges from "latestmasterbuild" to "lateststable release". Users who relied on
latestfor bleeding-edge should switchto
nightly.This PR changes the tagging policy as follows:
latestis published only on stable release tags (i.e.lychee-v*) and always points tothe most recent stable release.
nightlyis a new tag for the bleeding-edge build frommaster. (The existingmastertag is kept as an alias, so nothing breaks for users whoreference it. We could consider dropping the
masteralias in the future, butit doesn't hurt to keep it around for a while until users have updated.)
(
LYCHEE_VERSION=<tag>) instead of "whatever release is latest at build time",making
lychee:X.Y.Zreproducible and removing a publish-time race. :)All tags continue to ship an
-alpinevariant (e.g.latest-alpine).So, in summary:
latestX.Y.Z/X.Y0.20.0/0.20nightlymasterbranchmasternightly(removal t.b.d)sha-<sha>The README now contains a compact version of this table so that people can find
the right image for their use-case. And since the Docker workflow pushes
README.mdas the DockerHub description, it propagates to DockerHubautomatically.
Fixes #1981