Skip to content

feat(docker): replace head tag with quickstart and sha-* tags#17505

Merged
devashish2203 merged 5 commits into
masterfrom
chore/remove-docker-head-tag
May 25, 2026
Merged

feat(docker): replace head tag with quickstart and sha-* tags#17505
devashish2203 merged 5 commits into
masterfrom
chore/remove-docker-head-tag

Conversation

@david-leifker
Copy link
Copy Markdown
Collaborator

@david-leifker david-leifker commented May 19, 2026

Summary

DataHub master builds used to publish a floating :head tag on every image. Each service was tagged as its own build finished, so a docker compose pull at any moment could pull a mixed set of commits across GMS, frontend, upgrade, and so on. That is awkward for local quickstart and unsafe for production-style deployments (Kubernetes, Helm), where every pod in a rollout should share one known build.

This PR replaces that model with two explicit tag types:

  • sha-<short_sha> — immutable, per-commit tags published during the build (for pinning in K8s/Helm and production).
  • quickstart — a coordinated floating tag applied only after the full image matrix passes smoke tests on master, so all services move together for Compose and datahub docker quickstart.

The legacy :head registry tag is removed. Bare short SHA tags (:abc1234) become :sha-abc1234 for clarity.

The CLI also gains confirmation before silent version fallbacks, so typos and stale cached manifests are less likely to pull the wrong images without the user noticing.

Why

Problem with :head What we do instead
Images tagged at different times → mismatched commits across services quickstart retagged once per green master build (post-smoke)
Floating tag unsuitable for K8s rollouts that can happen anytime Pin sha-* or release v* in clusters
Short SHA tags ambiguous (abc1234 vs other identifiers) Prefix commit tags as sha-abc1234
Unrecognized --version or deprecated head mapping applied silently Interactive y/n prompt (or explicit opt-in for scripts) before fallback

User-facing changes

Docker Compose / local quickstart

  • Compose defaults: DATAHUB_VERSION=quickstart (was head).
  • datahub docker quickstart --version head still works: the quickstart version manifest maps headdocker_tag: quickstart + composefile_git_ref: master, so older CLIs pick this up from GitHub without a new pip release (cached local manifest may still say head until refetched).
  • Explicit --version quickstart is supported via the manifest.
  • Pin a specific master build: DATAHUB_VERSION=sha-<7-char> (registry-only; not a git tag).
  • Omitting --version still uses the manifest default entry with no prompt.
  • Unrecognized non-release --version values (e.g. typos like hed) prompt before falling back to the suggested configuration (pinned default from the manifest, or master + quickstart for missing magic aliases like head).
  • Release-like tags (v1.2.0) and sha-* continue to pass through as git ref + docker tag without prompting.
  • --accept-version-default skips the prompt for scripts/CI (non-interactive runs without this flag abort with a clear error when confirmation would be required).

Kubernetes / Helm / production

  • Use release tags (v*) or immutable sha-* tags.
  • Do not use quickstart in cluster manifests; it changes on the next green master build.

Breaking change

Documented in docs/how/updating-datahub.md:

  • :head is no longer published.
  • :abc1234:sha-abc1234.
  • :quickstart added for coordinated local/Compose use only.

@github-actions github-actions Bot added ingestion PR or Issue related to the ingestion of metadata docs Issues and Improvements to docs devops PR or Issue related to DataHub backend & deployment labels May 19, 2026
@github-actions
Copy link
Copy Markdown
Contributor

Linear: PFP-3946

@codecov
Copy link
Copy Markdown

codecov Bot commented May 19, 2026

Codecov Report

❌ Patch coverage is 90.76923% with 6 lines in your changes missing coverage. Please review.
✅ All tests successful. No failed tests found.

Files with missing lines Patch % Lines
...ingestion/src/datahub/cli/quickstart_versioning.py 90.62% 6 Missing ⚠️

📢 Thoughts on this report? Let us know!

Copy link
Copy Markdown
Contributor

@craig-rueda craig-rueda left a comment

Choose a reason for hiding this comment

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

lgtm

Comment thread metadata-ingestion/src/datahub/cli/quickstart_versioning.py Outdated
@github-actions
Copy link
Copy Markdown
Contributor

Your PR has been assigned to @david-leifker (david.leifker) for review (PFP-3946).

david-leifker and others added 2 commits May 22, 2026 11:58
Remove the per-image :head floating tag that could mix commits across
services. Master builds publish immutable sha-<short_sha> tags in one
coordinated depot bake push; :quickstart is applied only after the full
matrix passes smoke tests. Update compose defaults, quickstart manifest/
CLI (--version head maps to quickstart), CI workflows, and document the
breaking change.

Co-authored-by: Cursor <cursoragent@cursor.com>
Add y/n confirmation when an explicit --version is unrecognized or maps
to a deprecated head tag, while keeping semver and sha-* passthrough silent.
Omitting --version still uses default without prompting. Add
--accept-version-default for non-interactive scripts.

Co-authored-by: Cursor <cursoragent@cursor.com>
The :quickstart tag is only published after a green master smoke run, so
PR quickstart-test cannot pull acryldata/*:quickstart yet. Use --version
default (pinned release) for PR smoke tests; head→quickstart mapping stays
in unit tests.

Co-authored-by: Cursor <cursoragent@cursor.com>
@datahub-connector-tests
Copy link
Copy Markdown

datahub-connector-tests Bot commented May 22, 2026

Connector Tests Results

Connector tests failed for commit 38129d8

View full test logs →

To skip connector tests, add the skip-connector-tests label (org members only).

Autogenerated by the connector-tests CI pipeline.

@alwaysmeticulous
Copy link
Copy Markdown

alwaysmeticulous Bot commented May 25, 2026

🔴 Meticulous spotted visual differences in 5 of 1327 screens tested: view and approve differences detected.

Meticulous evaluated ~10 hours of user flows against your PR.

Last updated for commit 85a6b43 Update version used in playwright-e2e-tests.yml. This comment will update as new commits are pushed.

@devashish2203 devashish2203 enabled auto-merge (squash) May 25, 2026 08:14
@devashish2203 devashish2203 merged commit dbb6023 into master May 25, 2026
92 of 93 checks passed
@devashish2203 devashish2203 deleted the chore/remove-docker-head-tag branch May 25, 2026 08:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

devops PR or Issue related to DataHub backend & deployment docs Issues and Improvements to docs ingestion PR or Issue related to the ingestion of metadata pending-submitter-merge

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants