# Release CI Improvements
## Goal:
* gather issues noticing during releases
* prioritize what to do first
* differentiate between "fix/first/fast" [F] and "change-proposal/soon" [RFE]
## Meeting Template
```
## MMM DD
### Previously (copy from prev-mtg-next-steps)
### Notes
### Next Steps
* post minutes to [Discourse thread](https://discourse.pulpproject.org/t/discussion-pulp-release-process-improvements/860/2)
```
## June 29
* Wrapping up working group
* Last two action items
* Automating update CI branches for Y releases
* Automating Pulp-OCI-images release steps
## June 22
* Review PLEASE:
* https://github.com/pulp/plugin_template/pull/751 [DONE]
* Last two items removing manual steps:
* Remove need to manually update CI branches for Y releases [AI: gerrod]
* need to have a programatically-reliable location of “list of supported branches”
* change “…and latest-Y to just-released Y”
* Automating Pulp-oci-images release steps
* What next?
* working-group is set to end at end of June
* we have only the auto-ci-branches Thing to do
* looks like we can declare working-group Done at that point?
* pulp-oci-images work should be done as well
* discussion around pulp-oci-image status
* work w/ decko on our needs here?
* Some proposed tasks (in proposed order):
* get p-o-i to always have a branch for each pulpcore-y-branch
* https://github.com/pulp/pulp-oci-images/issues/503 [dkliban]
* pull apart p-o-i action so that the individual Things are separate actions
* https://github.com/pulp/pulp-oci-images/issues/504
* automate the p-o-i branch-creation in a way that makes it possible to invoke from pulpcore-release-workflow
* https://github.com/pulp/pulp-oci-images/issues/505
* automate p-o-i release in a way that it can also be invoked from core-release
* Action Items:
* Remove need to manually update CI branches for Y releases [AI: gerrod]
* https://github.com/pulp/pulp-oci-images/issues/503 [dkliban]
## Jun 15
* try to reserve brain-space to pick up items below as we can this week
* [F] Fix conflicting auto-on-release PRs: Update Changelog vs Cherrypick Changelog
* Possible fix - remove the cherrypick changelog, on bump minor version PR delete the changelog entries, solely have the update changelog job
* https://github.com/pulp/plugin_template/issues/754
* [F] Remove Tests from Release process
* https://github.com/pulp/plugin_template/pull/751
* [F] create new backport-label for Y-releases
* https://github.com/pulp/plugin_template/pull/745
* Should be converted to a separate workflow that only runs when plugin_template is modified
* Should update the backport labels to reflect ci_update_branches
* [F] Check if this job is necessary:
* https://github.com/pulp/pulp-ci/actions/workflows/supported.yml
* It updates a file in pulp-ci that is used in the docs header to tell if a user is looking at the latest version
* Should change the logic to have the header look at that plugin's repository and then remove this job
* Also the supported versions docs header should probably list the ci_update_branches
## Jun 8
* Removed tests from release workflow
* https://github.com/pulp/plugin_template/pull/751
* and there was Much Rejoicing!
* eyes/review please
* Simplify (separate out) OCI release automation
* All of the CI seems to be in one workflow file...
* https://github.com/pulp/pulp-oci-images/blob/latest/.github/workflows/pulp_images.yml
* From what I can tell this workflow is called in three scenarios:
* on pull-requests
* daily cron-job
* from api-request (usually called by the daily cron-job)
* The logic of what the workflow does is dependent on how it is called (99% sure it is doing lots of redundant work, even within a single call)
* Pulpcore <3.23 branches have their own special logic and use a different workflow file...
* https://github.com/pulp/pulp-oci-images/blob/latest/.ci/scripts/update_ci_branches.py#L25-L28
* https://github.com/pulp/pulp-oci-images/blob/3.21/.github/workflows/publish_images.yaml
* Interestingly this special workflow isn't on the 3.22 branch, so the special logic check is wrong...
* There might be a bug somewhere for the logic to release & tag updated Z-streams to not work if the corresponding Y image was never released
* I think this is what happened to 3.25
* Some proposed tasks:
* pull apart p-o-i action so that the individual Things are separate actions
* get p-o-i to always have a branch for each pulpcore-y-branch
* automate the p-o-i branch-creation in a way that makes it possible to invoke from pulpcore-release-workflow
* automate p-o-i release in a way that it can also be invoked from core-release
* Is there a technical issue that gets in the way of separating our one-large-workflow into more tightly-focused files?
* possibly? needs some investigation
## Jun 01
### Previously (copy from prev-mtg-next-steps)
* ~~focus on core/3.25-compat releases **first**~~
* when does the oci-image get published?
* not out yet - AI: decko - hit up Mike to figure out what's up
* try to reserve brain-space to pick up items below as we can this week
* [F] Fix conflicting auto-on-release PRs: Update Changelog vs Cherrypick Changelog
* [F] Remove Tests from Release process
* [F] create new backport-label for Y-releases
* https://github.com/pulp/plugin_template/pull/745
* [F] Check if this job is necessary:
* https://github.com/pulp/pulp-ci/actions/workflows/supported.yml
* [F] disable deprecations-test from release-branches "automagically"
* yes please
### Notes
* Check release script:
* https://github.com/pulp/plugin_template/pull/750
* looks thru CHANGES directory, does Cool Stuff in response
* Note: we don't appear to currently have git-python as a requirement anywhere
* is there a "release_requirements.txt" somewhere? should there be?
* release_requirements.txt is under a DEPRECATED_FILES in `plugin_template`
* ci_requirements? (no - stuff that needs to be installed before tests, not release)
* we should separate this-script, from "we should have a releasae_requirements.txt file" - that will be its own PR
* gerrod is picking up "remove tests from release" ASAP
* backport-releases took up A LOT of time
* the one-off/transient test-failures are A Pain
* high-level goal: document what the CI is "actually doing", so ppl have a place to go to try and figure out problems
* a to-do for "after everything else is stable/quiescent"
### Next Steps
* AI: decko - hit up Mike to figure out what's up w/ oci-images and 3.25
* try to reserve brain-space to pick up items below as we can this week
* [F] Fix conflicting auto-on-release PRs: Update Changelog vs Cherrypick Changelog
* [F] Remove Tests from Release process
* [F] create new backport-label for Y-releases
* https://github.com/pulp/plugin_template/pull/745
* [F] Check if this job is necessary:
* https://github.com/pulp/pulp-ci/actions/workflows/supported.yml
* [F] disable deprecations-test from release-branches "automagically"
* yes please
* post minutes to [Discourse thread](https://discourse.pulpproject.org/t/discussion-pulp-release-process-improvements/860/2)
## May 25
### Previously
* "just do" things labelled [F] below
* [F] Fix conflicting auto-on-release PRs: Update Changelog vs Cherrypick Changelog
* [F] Remove Tests from Release process
* [F] create new backport-label for Y-releases
* https://github.com/pulp/plugin_template/pull/745
* [F] Check if this job is necessary:
* https://github.com/pulp/pulp-ci/actions/workflows/supported.yml
* ~~bring list to larger team for review/thoughts/observations~~
* ~~https://discourse.pulpproject.org/t/discussion-pulp-release-process-improvements/860/3~~
* meeting weekly (Thurs 0900 GMT-5)
### Notes
* Finish releasing plugin pulpcore>=3.25 releases
* file/rpm/python/maven/deb/certguard are done! /cheers wildly
* container, ostree, ansible (actually release)
* talk w/ lubos
* AI [gerrod] ansible
* cookbook, gem, npm for nightly (main branch only)
* AI [decko] cookbook
* to be removed -> https://github.com/pulp/pulp-oci-images/pull/486
* AI [gerrod x9c4] gem, ansible
* AI [x9c4] npm
* potentially remove from images for now
* [F] disable deprecations-test from release-branches "automagically"
* yes please
* Working on check-release script (gerrod)
* Multiple branches are missing changelog updates
* seems to have been failures in changlog/remove-changefiles/update-dev?
* needs investigation
* seems not to affect any branches "we care about"
* discussion around "auto actions at create-release-branch action (Y branches)"
* create new backport label (PR#745)
* should prob take over from Michal since he's in finals for a few weeks
* update ci-branches automatically
* re-sync backport labels to to ci-branches
### Next Steps
* focus on core/3.25-compat releases **first**
* try to reserve brain-space to pick up items below as we can this week
* [F] Fix conflicting auto-on-release PRs: Update Changelog vs Cherrypick Changelog
* [F] Remove Tests from Release process
* [F] create new backport-label for Y-releases
* https://github.com/pulp/plugin_template/pull/745
* [F] Check if this job is necessary:
* https://github.com/pulp/pulp-ci/actions/workflows/supported.yml
* [F] disable deprecations-test from release-branches "automagically"
* yes please
* post minutes to [Discourse thread](https://discourse.pulpproject.org/t/discussion-pulp-release-process-improvements/860/2)
## May 18
### Next Steps
* "just do" things labelled [F] below
* bring list to larger team for review/thoughts/observations
* AI: [ggainey] open a discourse thread
* put on agenda for Monday's team mtg
* meeting weekly (Thurs 0900 GMT-5)
### Issues
* [F] Fix conflicting auto-on-release PRs: Update Changelog vs Cherrypick Changelog
* why are there two?
* which one is doing The Right Thing?
* remove at least one
* maybe it's a collision between Y-release/Z-release processes?
* [F] Remove Tests from Release process
* yes please
* Remove manual CI steps for OCI-images
* https://github.com/pulp/pulp-oci-images/blob/latest/docs/developer-instructions.md
* should be automatable in pulp-bot
* can use args on the manual steps
* or we can use args to programaticaly build the images
* Remove need to manually update CI branches for Y releases
* need to have a programatically-reliable location of "list of supported branches"
* change "...and latest-Y to just-released Y"
* [F] create new backport-label for Y-releases
* [RFE] and remove unneeded ones?
* see "reliable location of list of supported branches"
* [F] Check if this job is necessary:
* https://github.com/pulp/pulp-ci/actions/workflows/supported.yml
* is this "latest docs don't warn, prev docs say 'not most recent version'"?
* The magic is happening here? https://github.com/pulp/pulp-ci/actions/runs/5010048693/jobs/8979570319#step:6:1
* Create script to determine if releases are needed
* Checks the release branches for presences of changelog additions
* can determine Y- vs Z- based on CHANGES extension
* x9c4 has a git-log cmd
* "some day", we could get to a completely-automated process
* Create script to auto-generate an announcement message
* autopost to discourse?
* autopost to twitter?
* or mastodon?
* y-release only? or all?
* matrix channel $TOPICs?
* slack too?