From 09b220eeee26d359d56c651532ae0d81ee9e267c Mon Sep 17 00:00:00 2001 From: Mark Paluch Date: Wed, 27 Apr 2022 09:46:08 +0200 Subject: [PATCH] Do not create maintenance branches upon release conclude for branch-only releases. Closes #213 --- .../data/release/cli/ReleaseCommands.java | 47 ++++++++++++------- 1 file changed, 29 insertions(+), 18 deletions(-) diff --git a/src/main/java/org/springframework/data/release/cli/ReleaseCommands.java b/src/main/java/org/springframework/data/release/cli/ReleaseCommands.java index 256e453..50b168e 100644 --- a/src/main/java/org/springframework/data/release/cli/ReleaseCommands.java +++ b/src/main/java/org/springframework/data/release/cli/ReleaseCommands.java @@ -143,35 +143,46 @@ class ReleaseCommands extends TimedCommand { Assert.notNull(iteration, "Train iteration must not be null!"); - build.prepareVersions(iteration, Phase.CLEANUP); - git.commit(iteration, "Prepare next development iteration."); - - // Prepare main branch - build.updateProjectDescriptors(iteration, Phase.CLEANUP); - git.commit(iteration, "After release cleanups."); - // Tag release git.tagRelease(iteration); - // Prepare maintenance branches - if (iteration.getIteration().isGAIteration()) { + if (iteration.getTrain().isAlwaysUseBranch()) { + setupMaintenanceVersions(iteration); + } else { - // Create bugfix branches - git.createMaintenanceBranches(iteration); - - // Set project version to maintenance once - build.prepareVersions(iteration, Phase.MAINTENANCE); + build.prepareVersions(iteration, Phase.CLEANUP); git.commit(iteration, "Prepare next development iteration."); - // Update inter-project dependencies and repositories - build.updateProjectDescriptors(iteration, Phase.MAINTENANCE); + // Prepare main branch + build.updateProjectDescriptors(iteration, Phase.CLEANUP); git.commit(iteration, "After release cleanups."); - // Back to main branch - git.checkout(iteration); + // Prepare maintenance branches + if (iteration.getIteration().isGAIteration()) { + + // Create bugfix branches + git.createMaintenanceBranches(iteration); + + // Set project version to maintenance once + setupMaintenanceVersions(iteration); + } } } + private void setupMaintenanceVersions(TrainIteration iteration) throws Exception { + + // Set project version to maintenance once + build.prepareVersions(iteration, Phase.MAINTENANCE); + git.commit(iteration, "Prepare next development iteration."); + + // Update inter-project dependencies and repositories + build.updateProjectDescriptors(iteration, Phase.MAINTENANCE); + git.commit(iteration, "After release cleanups."); + + // Back to main branch + git.checkout(iteration); + } + /** * Triggers the distribution of release artifacts for all projects. *