This issue lists the required tasks for automating the release. I've organized the release process (see RELEASE.adoc) into four stages:
- Prepare release - This stage updates dependencies. It could be performed up to a week prior to the release.
- Perform release - This stage pushes artifacts to Maven Central and creates a github release.
- Prepare next iteration - This stage performs milestone management.
- Announce release - This stage let's the team and/or community know the release is complete. Some of the steps may not be automated.
Prepare Release
inputs:
* nextVersion - Version being released
tasks:
* #11257
* #10453
* #10454 (./gradlew updateDependencies -PupdateMode=GITHUB_ISSUE -PnextVersion=$nextVersion)
* check: build success
Perform Release
inputs:
* previousVersion - Version to delete on https://spring.io/projects/spring-security#learn
* nextVersion - Version being released
tasks:
* check: ensure all issues are closed in current milestone (./gradlew gitHubCheckMilestoneHasNoOpenIssues -PnextVersion=$nextVersion)
* #10455
* #11020
* #11023
* #11022
* #10928 (./wait-for-done.sh $nextVersion)
* #10456
* generate changelog (./gradlew generateChangelog -PnextVersion=$nextVersion)
* #10457
* #11308
* https://github.com/spring-projects/spring-security/issues/11622
Prepare Next Iteration
inputs:
* previousVersion - Version just released
* nextVersion - Next milestone version
tasks: * #10458 * #10460 * #10461 * #11021
Announce Release
inputs:
* nextVersion - Version being released
tasks: * #11307
Comment From: sjohnr
Note: Need to handle milestones being released to repo.spring.io/milestone vs repo1.maven.org/maven2 during the "wait for release to appear on Maven Central" step.
Comment From: sjohnr
@eleftherias I added gh-11020 and gh-11021 for updating antora.yml, and gh-11022 as well as gh-11023 to handle triggering CI updates. These are the issues I encountered with the automation during the 6.0.0-M2 release.
Comment From: sjohnr
Note: I've moved the open issues associated with release automation into the 6.0.x bucket to manage them all together. I will be creating a single issue for each maintenance branch that the automation is being backported to when adding all of this work to each respective branch.
Comment From: sjohnr
Closing the epic as the currently planned work is completed. Some tasks remain undone and can be scheduled and worked as needed in the future.