From 2b5ec1c08c35427650e9a3a0cf2124a9d6ddc840 Mon Sep 17 00:00:00 2001 From: Mark Paluch Date: Tue, 21 Jan 2025 09:00:57 +0100 Subject: [PATCH] Ship milestones to Maven Central. Closes #103 --- .../data/release/build/MavenBuildSystem.java | 20 +++++++------------ .../data/release/build/UpdateInformation.java | 10 ---------- .../DefaultDeploymentInformation.java | 1 - .../data/release/git/GitOperations.java | 3 ++- .../infra/DependencyUpgradePolicy.java | 2 +- .../data/release/model/Iteration.java | 4 ++-- .../build/UpdateInformationUnitTests.java | 4 ++-- ...DeploymentInformationIntegrationTests.java | 4 ++-- 8 files changed, 16 insertions(+), 32 deletions(-) diff --git a/src/main/java/org/springframework/data/release/build/MavenBuildSystem.java b/src/main/java/org/springframework/data/release/build/MavenBuildSystem.java index 3e3e9ee..ea05943 100644 --- a/src/main/java/org/springframework/data/release/build/MavenBuildSystem.java +++ b/src/main/java/org/springframework/data/release/build/MavenBuildSystem.java @@ -340,16 +340,12 @@ class MavenBuildSystem implements BuildSystem { Assert.notNull(module, "Module iteration must not be null!"); Assert.notNull(information, "Deployment information must not be null!"); - boolean isCommercialRelease = module.isCommercial(); - - if (!module.getIteration().isPreview() && !isCommercialRelease) { - logger.log(module, - "Not a preview version (milestone or release candidate) or commercial release. Skipping Artifactory deployment."); + if (!module.isCommercial()) { + logger.log(module, "Not a commercial release. Skipping Artifactory deployment."); return; } - logger.log(module, - String.format("Deploying artifacts to Spring %sArtifactory…", isCommercialRelease ? "Commercial " : "")); + logger.log(module, "Deploying artifacts to Spring Commercial Artifactory…"); Authentication authentication = properties.getAuthentication(module); @@ -386,8 +382,8 @@ class MavenBuildSystem implements BuildSystem { Assert.notNull(module, "Module iteration must not be null!"); Assert.notNull(deploymentInformation, "DeploymentInformation iteration must not be null!"); - if (!module.isPublic()) { - logger.log(module, "Skipping deployment to Maven Central as it's not a public version or a commercial release!"); + if (module.isCommercial()) { + logger.log(module, "Skipping deployment to Maven Central as it's a commercial release!"); return; } @@ -508,8 +504,7 @@ class MavenBuildSystem implements BuildSystem { arg("artifactory.server").withValue(authentication.getServer().getUri()), arg("artifactory.distribution-repository").withValue(authentication.getDistributionRepository()), arg("artifactory.username").withValue(authentication.getUsername()), - arg("artifactory.password").withValue(authentication.getApiKey())) - .andIf(deploymentInformation != null, () -> { + arg("artifactory.password").withValue(authentication.getApiKey())).andIf(deploymentInformation != null, () -> { return arg("artifactory.build-number").withValue(deploymentInformation.getBuildNumber()); }).andIf(!ObjectUtils.isEmpty(properties.getSettingsXml()), () -> settingsXml(properties.getSettingsXml()))); @@ -518,8 +513,7 @@ class MavenBuildSystem implements BuildSystem { arg("artifactory.server").withValue(authentication.getServer().getUri()), arg("artifactory.distribution-repository").withValue(authentication.getDistributionRepository()), arg("artifactory.username").withValue(authentication.getUsername()), - arg("artifactory.password").withValue(authentication.getApiKey())) - .andIf(deploymentInformation != null, () -> { + arg("artifactory.password").withValue(authentication.getApiKey())).andIf(deploymentInformation != null, () -> { return arg("artifactory.build-number").withValue(deploymentInformation.getBuildNumber()); }).andIf(!ObjectUtils.isEmpty(properties.getSettingsXml()), () -> settingsXml(properties.getSettingsXml()))); diff --git a/src/main/java/org/springframework/data/release/build/UpdateInformation.java b/src/main/java/org/springframework/data/release/build/UpdateInformation.java index e3651f0..7c59ace 100644 --- a/src/main/java/org/springframework/data/release/build/UpdateInformation.java +++ b/src/main/java/org/springframework/data/release/build/UpdateInformation.java @@ -26,7 +26,6 @@ import java.util.Collections; import java.util.List; import org.springframework.data.release.model.ArtifactVersion; -import org.springframework.data.release.model.Iteration; import org.springframework.data.release.model.Phase; import org.springframework.data.release.model.Project; import org.springframework.data.release.model.SupportedProject; @@ -91,15 +90,6 @@ public class UpdateInformation { public List getRepositories() { - if (phase == Phase.PREPARE) { - - Iteration iteration = train.getIteration(); - - if (iteration.isMilestone() || iteration.isReleaseCandidate()) { - return Collections.singletonList(Repository.MILESTONE); - } - } - if (phase == Phase.CLEANUP || phase == Phase.MAINTENANCE) { return train.isCommercial() ? Arrays.asList(Repository.COMMERCIAL_SNAPSHOT, Repository.COMMERCIAL_RELEASE) diff --git a/src/main/java/org/springframework/data/release/deployment/DefaultDeploymentInformation.java b/src/main/java/org/springframework/data/release/deployment/DefaultDeploymentInformation.java index 6e88715..84987b1 100644 --- a/src/main/java/org/springframework/data/release/deployment/DefaultDeploymentInformation.java +++ b/src/main/java/org/springframework/data/release/deployment/DefaultDeploymentInformation.java @@ -156,7 +156,6 @@ public class DefaultDeploymentInformation implements DeploymentInformation { */ @Override public boolean isMavenCentral() { - return !module.isCommercial() && module.getIteration().isPublic(); } } diff --git a/src/main/java/org/springframework/data/release/git/GitOperations.java b/src/main/java/org/springframework/data/release/git/GitOperations.java index 711040c..703570f 100644 --- a/src/main/java/org/springframework/data/release/git/GitOperations.java +++ b/src/main/java/org/springframework/data/release/git/GitOperations.java @@ -166,7 +166,8 @@ public class GitOperations { } - private Branch getBranch(Train train, Module module, SupportedProject project) { + private Branch getBranch(Train train, org.springframework.data.release.model.Module module, + SupportedProject project) { ModuleIteration gaIteration = train.getModuleIteration(project.getProject(), Iteration.GA); Optional gaTag = findTagFor(project, ArtifactVersion.of(gaIteration)); diff --git a/src/main/java/org/springframework/data/release/infra/DependencyUpgradePolicy.java b/src/main/java/org/springframework/data/release/infra/DependencyUpgradePolicy.java index 1975359..b24ad64 100644 --- a/src/main/java/org/springframework/data/release/infra/DependencyUpgradePolicy.java +++ b/src/main/java/org/springframework/data/release/infra/DependencyUpgradePolicy.java @@ -64,7 +64,7 @@ interface DependencyUpgradePolicy { @Override public boolean restrictToMinorVersion() { - return iteration.isPublic(); + return iteration.isGAIteration() || iteration.isServiceIteration(); } }; diff --git a/src/main/java/org/springframework/data/release/model/Iteration.java b/src/main/java/org/springframework/data/release/model/Iteration.java index aa7fd8b..afea22e 100644 --- a/src/main/java/org/springframework/data/release/model/Iteration.java +++ b/src/main/java/org/springframework/data/release/model/Iteration.java @@ -122,7 +122,7 @@ public class Iteration implements Comparable { * @return */ public boolean isPublic() { - return isServiceIteration() || this.equals(GA); + return isMilestone() || isServiceIteration() || this.equals(GA); } /** @@ -131,7 +131,7 @@ public class Iteration implements Comparable { * @return */ public boolean isPreview() { - return !isPublic(); + return isMilestone() || isReleaseCandidate(); } public boolean isServiceIteration() { diff --git a/src/test/java/org/springframework/data/release/build/UpdateInformationUnitTests.java b/src/test/java/org/springframework/data/release/build/UpdateInformationUnitTests.java index 14863bd..aac1f42 100644 --- a/src/test/java/org/springframework/data/release/build/UpdateInformationUnitTests.java +++ b/src/test/java/org/springframework/data/release/build/UpdateInformationUnitTests.java @@ -56,11 +56,11 @@ class UpdateInformationUnitTests { } @Test - void milestoneReposContainedForMilestoneRelease() { + void noReposContainedForMilestoneRelease() { UpdateInformation updateInformation = UpdateInformation.of(hopperM1, Phase.PREPARE); - assertThat(updateInformation.getRepositories()).containsOnly(Repository.MILESTONE); + assertThat(updateInformation.getRepositories().isEmpty()); } @Test diff --git a/src/test/java/org/springframework/data/release/deployment/DeploymentInformationIntegrationTests.java b/src/test/java/org/springframework/data/release/deployment/DeploymentInformationIntegrationTests.java index a439ab1..714b9ea 100644 --- a/src/test/java/org/springframework/data/release/deployment/DeploymentInformationIntegrationTests.java +++ b/src/test/java/org/springframework/data/release/deployment/DeploymentInformationIntegrationTests.java @@ -58,10 +58,10 @@ class DeploymentInformationIntegrationTests extends AbstractIntegrationTests { DeploymentInformation ossGA = new DefaultDeploymentInformation( ReleaseTrains.VAUGHAN.getIteration(Iteration.GA).getModule(Projects.BUILD), properties); - assertThat(ossGA.getBuildNumber()).startsWith("spring-data-build-main-release"); + assertThat(ossGA.getBuildNumber()).startsWith("spring-data-build-commercial-3.2.x-release"); DeploymentInformation ossSr1 = new DefaultDeploymentInformation( ReleaseTrains.VAUGHAN.getIteration(Iteration.SR1).getModule(Projects.BUILD), properties); - assertThat(ossSr1.getBuildNumber()).startsWith("spring-data-build-3.2.x-release"); + assertThat(ossSr1.getBuildNumber()).startsWith("spring-data-build-commercial-3.2.x"); } }