Consider refining the use of branches, tag, and automation for METbaseimage #22
Labels
alert: NEED ACCOUNT KEY
Need to assign an account key to this issue
alert: NEED CYCLE ASSIGNMENT
Need to assign to a release development cycle
alert: NEED MORE DEFINITION
Not yet actionable, additional definition required
component: code cleanup
Code cleanup and maintenance issue
priority: medium
Medium Priority
requestor: METplus Team
METplus Development Team
type: enhancement
Improve something that it is currently doing
Milestone
Describe the Enhancement
While preparing for the beta3 METplus component releases for the METplus-6.0.0-Coorindated Release, @georgemccabe and @JohnHalleyGotway brainstormed how we might restructure the branching, tagging, and automation logic for this METbaseimage repository. This issue describes the perceived problems and proposes changes to be considered and further developed.
Currently, METbaseimage contains a single branch, named
main
, and tagged releases are created from that single branch. The MET repository references these tagged releases to specify what base image should be used, and generally speaking, as the compilation requirements change, the METbaseimage version number is increased.The problems with this approach include:
dtcenter/met-base
image is only rebuilt when a new tag is created and those releases are relatively infrequent. Versions of the underlying packages can change during the intervening months. When building an image for a new release, there may be multiple problems to be fixed that originated since the last release was created.dtcenter/met-base
images are created, they are never rebuilt. Instead they grow stale, and there is no mechanism for incorporating fixes for security issues.I do note that the MET Dockerfile does run
apt update
to pull in OS updates that have occurred since the base image was tagged, and that is good. But its still worth addressing the stale met-base images.I propose that we refine this approach to be more proactive about finding/fixing problems as soon as they arise. In addition, we should rebuild all active base images on a routine basis to incorporate fixes for vulnerabilities in the underlying packages. Also recommend making the branching/workflow logic for METbaseimage more consistent with the other METplus components for simplicity.
Proposed changes:
main
branch asdevelop
.vX.Y
releases from thedevelop
branch, but only actually use those tags to document the logical changes.vX.Y
release, create a correspondingmain_vX.Y
branch.dtcenter/met-base:vX.Y
withdtcenter/met-base:main_vX.Y
. So MET will use the contents of that dynamic main branch rather than the static tag. This insures that all downstream MET and METplus images won't contain packages that have grown too stale and contain security vulnerabilities.main_vX.Y
branches on some routine schedule (e.g. weekly, bi-weekly, or at least monthly). Recommend that we give some thought to what an active branch means.Let's discuss further and clarify these details.
Time Estimate
Estimate the amount of work required here.
Issues should represent approximately 1 to 3 days of work.
Sub-Issues
Consider breaking the enhancement down into sub-issues.
Relevant Deadlines
List relevant project deadlines here or state NONE.
Funding Source
Define the source of funding and account keys here or state NONE.
Define the Metadata
Assignee
Labels
Projects and Milestone
Define Related Issue(s)
Consider the impact to the other METplus components.
dtcenter/met-base
version used.Enhancement Checklist
See the METplus Workflow for details.
Branch name:
feature_<Issue Number>_<Description>
Pull request:
feature <Issue Number> <Description>
Select: Reviewer(s) and Development issues
Select: Repository level development cycle Project for the next official release
Select: Milestone as the next official version
The text was updated successfully, but these errors were encountered: