This issue lists the required tasks for automating the release. I've organized the release process (see RELEASE.adoc) into four stages:

  1. Prepare release - This stage updates dependencies. It could be performed up to a week prior to the release.
  2. Perform release - This stage pushes artifacts to Maven Central and creates a github release.
  3. Prepare next iteration - This stage performs milestone management.
  4. 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.