Skip to content

Standardize image tags across kptdev repos - latest = dev, stable = release #4732

Description

@aravindtga

A consistent container image tagging convention across all kptdev repos that publish images (kpt, porch, and any others) should be used, so users know what they're pulling.

Proposal:

  • latest -> the latest dev build. Updated on every merge to main.
  • stable -> the latest release. Updated on every non-prerelease GitHub Release.

Alongside those mutable tags we keep immutable vX.Y.Z tags for releases, so a released version can always be pinned. These are never re-pointed.

Pre-releases (alpha/beta/rc, or anything GitHub marks as a pre-release) publish their version tag but must NOT move stable.

Where we are today

Repo (images) latest stable Version tag Dev build on merge to main
kpt (ghcr.io/kptdev/kpt) no no yes no dedicated latest dev tag (release workflow runs on main + tags via GoReleaser)
porch (ghcr.io/kptdev/porch-*) yes no yes yes (latest on each merge)
krm-functions-catalog (ghcr.io/kptdev/*) yes no yes yes (latest on each merge)
krm-functions-sdk n/a n/a n/a n/a (library, no images)

Re-pointing stable

Normally stable just follows the latest release automatically. If we ever need to roll it back to an older release, that should be a manual, permission-gated action by a maintainer.

Docs

Define the convention in one authoritative place rather than per-repo READMEs. The governance repo's VERSIONING.md already owns tag semantics (Floating Tags, Latest Tag, Best Practices), so the agreed convention should be updated there.

Note that this proposal changes the current policy: VERSIONING.md today defines latest as "the most recent release" (for testing/dev, not production) and has no stable tag. It uses floating vX.Y/vX tags for the latest release. So this is an amendment to that policy, and we should decide how stable relates to the existing floating tags.

Notes

  • Older/existing images are left untouched - this only applies going forward.
  • Once the terms are agreed, each repository should be validated/updated to follow the terms.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions