Skip to content

Make lychee::latest track the latest stable release, add nightly tag#2219

Merged
mre merged 2 commits into
masterfrom
1981-docker-latest-tag
May 31, 2026
Merged

Make lychee::latest track the latest stable release, add nightly tag#2219
mre merged 2 commits into
masterfrom
1981-docker-latest-tag

Conversation

@mre

@mre mre commented May 30, 2026

Copy link
Copy Markdown
Member

The latest and master Docker tags were identical: latest was published on
every push to master (type=raw,value=latest,enable={{is_default_branch}}) and
the master build bakes in the nightly binary. So lychee:latest was effectively
a nightly build, not the latest stable release, which is surprising and violates
the usual Docker convention that latest means "latest stable release."

Note

The meaning of lychee:latest changes from "latest master build" to "latest
stable release". Users who relied on latest for bleeding-edge should switch
to nightly.

This PR changes the tagging policy as follows:

  • latest is published only on stable release tags (i.e. lychee-v*) and always points to
    the most recent stable release.
  • nightly is a new tag for the bleeding-edge build from master. (The existing
    master tag is kept as an alias, so nothing breaks for users who
    reference it. We could consider dropping the master alias in the future, but
    it doesn't hurt to keep it around for a while until users have updated.)
  • Release-tagged images now bake in the exact released binary
    (LYCHEE_VERSION=<tag>) instead of "whatever release is latest at build time",
    making lychee:X.Y.Z reproducible and removing a publish-time race. :)

All tags continue to ship an -alpine variant (e.g. latest-alpine).

So, in summary:

Tag Description
latest Most recent stable release (recommended)
X.Y.Z / X.Y A specific release, e.g. 0.20.0 / 0.20
nightly Bleeding-edge build from the master branch
master Alias of nightly (removal t.b.d)
sha-<sha> Build for a specific commit

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.md as the DockerHub description, it propagates to DockerHub
automatically.

Fixes #1981

@mre mre marked this pull request as ready for review May 30, 2026 23:56
@mre

mre commented May 30, 2026

Copy link
Copy Markdown
Member Author

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. latest is the latest released version, master is nightly.

@mre mre force-pushed the 1981-docker-latest-tag branch from eedfaf2 to dda262d Compare May 30, 2026 23:59
@mre mre force-pushed the 1981-docker-latest-tag branch from dda262d to 728aa82 Compare May 31, 2026 00:03
@mre mre requested review from katrinafyi and thomas-zahner May 31, 2026 00:33
@mre

mre commented May 31, 2026

Copy link
Copy Markdown
Member Author

@haines fyi

@thomas-zahner thomas-zahner left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

@mre

mre commented May 31, 2026

Copy link
Copy Markdown
Member Author

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. 👍

@mre mre merged commit 62f226e into master May 31, 2026
8 checks passed
@mre mre deleted the 1981-docker-latest-tag branch May 31, 2026 20:53
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.

Docker tag for latest stable release

2 participants