Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore: add latest docker tag #25322

Merged
merged 3 commits into from
Oct 18, 2023

Conversation

eschutho
Copy link
Member

@eschutho eschutho commented Sep 16, 2023

SUMMARY

This adds a new tag for docker with "latest" for all releases where the release tag is the most recent.
The next step would be to update docs and docker-compose files for new installs to point to the latest official release instead of master.

TESTING INSTRUCTIONS

ADDITIONAL INFORMATION

  • Has associated issue:
  • Required feature flags:
  • Changes UI
  • Includes DB Migration (follow approval process in SIP-59)
    • Migration is atomic, supports rollback & is backwards-compatible
    • Confirm DB migration upgrade and downgrade tested
    • Runtime estimates and downtime expectations provided
  • Introduces new feature or API
  • Removes existing feature or API

@villebro
Copy link
Member

Nice @eschutho !! ❤️ Lots of nice changes here, I need to be properly awake before reviewing this one 🙂

@eschutho
Copy link
Member Author

eschutho commented Sep 16, 2023

I’ve got a few test errors to take care of, by the looks of it. Kudos to @sfirke for heading up this initiative.

@sfirke
Copy link
Member

sfirke commented Sep 16, 2023

Thank you for making this happen! It will be such a nice improvement for the new user experience.

@eschutho eschutho force-pushed the elizabeth/docker-official-tag branch 5 times, most recently from 5f4c9af to 53da09c Compare September 19, 2023 23:33
@eschutho
Copy link
Member Author

/testenv up

@github-actions
Copy link
Contributor

@eschutho Ephemeral environment spinning up at http://34.217.102.204:8080. Credentials are admin/admin. Please allow several minutes for bootstrapping and startup.

@sebastianliebscher
Copy link
Contributor

sebastianliebscher commented Sep 30, 2023

Hi, I'm just curious. Why is a new tag introduced, which could possibly cause more confusion between latest and latest-official. latest-official is a rather rarely used tag and the mainstream already assumes that latest points to e.g. Superseet 3.0.0. Besides, latest and master would still be identical with this change. I think the latest tag should be used for this instead of the latet-official, as is common practice.

Current:

  • master tag -> master branch
  • latest tag -> master branch

This PR:

  • master tag -> master branch
  • latest tag -> master branch
  • latest-official -> latest release

Why not point latest to the actual latest release:

  • master tag -> master branch
  • latest tag -> latest release

Comment on lines 97 to 144

#
# Build the "lean39" image
#
DOCKER_BUILDKIT=1 docker build --target lean \
-t "${REPO_NAME}:${SHA}-py39" \
-t "${REPO_NAME}:${REFSPEC}-py39" \
-t "${REPO_NAME}:${LATEST_TAG}-py39" \
--build-arg PY_VER="3.9-slim-bullseye"\
--label "sha=${SHA}" \
--label "built_at=$(date)" \
--label "target=lean39" \
--label "build_actor=${GITHUB_ACTOR}" \
.
Copy link
Contributor

@sebastianliebscher sebastianliebscher Sep 30, 2023

Choose a reason for hiding this comment

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

Why a new image based on a different base image (bookworm vs bullseye)? I think instead of creating a new lean39 image based on bullseye, you could just add the -py39 tag to the already existing lean image.

Copy link
Member Author

@eschutho eschutho Oct 2, 2023

Choose a reason for hiding this comment

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

We also received feedback from the community that they would like to see an image based on bullseye, so we're considering supporting a few versions of Ubuntu instead of just one.

Copy link
Contributor

Choose a reason for hiding this comment

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

understood, thanks!

@eschutho
Copy link
Member Author

eschutho commented Oct 2, 2023

Hi, I'm just curious. Why is a new tag introduced, which could possibly cause more confusion between latest and latest-official. latest-official is a rather rarely used tag and the mainstream already assumes that latest points to e.g. Superseet 3.0.0. Besides, latest and master would still be identical with this change. I think the latest tag should be used for this instead of the latet-official, as is common practice.

Why not point latest to the actual latest release:

  • master tag -> master branch
  • latest tag -> latest release

Hi @sebastianliebscher. I agree that latest tag -> latest release makes the most sense, but this would be potentially a breaking change for people who are currently running on latest, as the upgrade to the now stable version of 3.0 in the future would be a regression from master to an earlier version. In my discussions with @sfirke earlier we thought that introducing a new tag made more sense, but if you and others feel that the impact of that change would be minimal, we can consider that as an alternative solution here.

@eschutho eschutho force-pushed the elizabeth/docker-official-tag branch from 2ec02b5 to c4ec9c1 Compare October 3, 2023 00:04
@eschutho eschutho force-pushed the elizabeth/docker-official-tag branch from 85db6ac to d98ea78 Compare October 3, 2023 00:15
Copy link
Member

@Antonio-RiveroMartnez Antonio-RiveroMartnez left a comment

Choose a reason for hiding this comment

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

lgtm

@nytai
Copy link
Member

nytai commented Oct 3, 2023

I agree with @eschutho that moving latest from what it currently is to 3.0 release will end up breaking lots of deployments out there, it'll be a difficult change and will results in lots of issues on github and slack since migrations will be broken. I think we should eventually strive to get there, the way to do that would probably be to stop publishing latest tag until we have a release that include the code currently in latest

@sebastianliebscher
Copy link
Contributor

@eschutho, understood - thank you for clarifying this. My thought was: Why introducing an uncommon tag as a "workaround" and not fix the latest tag instead. If you currently use the latest tag, any commit against master could be a breaking change. No one will use the master branch for their own prod environment without risking stability, so introducing a switch from master to 3.0.0 wouldn't affect any prod environment.

I now know the background and don't want to get in anyone's way here. Thank you both for your answers 👍

@sfirke
Copy link
Member

sfirke commented Oct 4, 2023

I think we should eventually strive to get there, the way to do that would probably be to stop publishing latest tag until we have a release that include the code currently in latest

I love this idea from @nytai as a way to get there while avoiding the breaking described by @eschutho. Should we stop publishing latest shortly, freezing that tag on some SHA? And then at 4.0 we could switch from latest-official to latest for official releases.

@eschutho
Copy link
Member Author

eschutho commented Oct 5, 2023

Thanks everyone for this feedback. It sounds like we have a path forward. I'll follow up with a PR to stop tagging latest and we can revisit merging this PR (with the change to latest) in for 4.0.

@eschutho eschutho closed this Oct 5, 2023
@github-actions
Copy link
Contributor

github-actions bot commented Oct 5, 2023

Ephemeral environment shutdown and build artifacts deleted.

@eschutho
Copy link
Member Author

eschutho commented Oct 6, 2023

@sfirke and @nytai I just checked the code, and we're currently pointing to latest-dev for both non-dev and dev. It looks like it may be safe for us to reintroduce the new latest now, wdyt?

@eschutho eschutho reopened this Oct 7, 2023
# for the dev image, it's ok to tag master as latest-dev
# for production, we only want to tag the latest release as latest
if [ "${LATEST_TAG}" = "master" ]; then
DEV_TAG="${REPO_NAME}:latest-dev"
Copy link
Member Author

Choose a reason for hiding this comment

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

I assume that for dev, people want to continue to use master.

@eschutho eschutho force-pushed the elizabeth/docker-official-tag branch from 2c5f324 to c54274c Compare October 7, 2023 00:33
Copy link
Member

@john-bodley john-bodley left a comment

Choose a reason for hiding this comment

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

LGTM.

@eschutho eschutho merged commit 26498fc into apache:master Oct 18, 2023
26 checks passed
@eschutho eschutho deleted the elizabeth/docker-official-tag branch October 18, 2023 23:59
eschutho added a commit that referenced this pull request Oct 20, 2023
eschutho added a commit that referenced this pull request Oct 21, 2023
@eschutho eschutho changed the title chore: add latest-official docker tag chore: add latest docker tag Nov 10, 2023
cccs-rc pushed a commit to CybercentreCanada/superset that referenced this pull request Mar 6, 2024
@mistercrunch mistercrunch added 🏷️ bot A label used by `supersetbot` to keep track of which PR where auto-tagged with release labels 🚢 3.1.0 labels Mar 8, 2024
sfirke pushed a commit to sfirke/superset that referenced this pull request Mar 22, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
2.1.2 🏷️ bot A label used by `supersetbot` to keep track of which PR where auto-tagged with release labels size/L v2.1 🚢 3.1.0
Projects
None yet
Development

Successfully merging this pull request may close these issues.

8 participants