#144 - Adapt to new versioning scheme.
Remove Calver type as the version scheme can be already represented using the Version type. Adopt ticket/milestone creation, Sagan versioning and Git tags to new scheme.
This commit is contained in:
@@ -75,7 +75,6 @@ class MavenIntegrationTests extends AbstractIntegrationTests {
|
||||
"/project/profiles/profile[id=\"distribute\"]/dependencies/dependency[artifactId=\"spring-data-build-resources\"]/version");
|
||||
|
||||
assertThat(xPathEvaluator.asString()).isEqualToIgnoringCase("1.2.0.RELEASE");
|
||||
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -87,15 +86,11 @@ class MavenIntegrationTests extends AbstractIntegrationTests {
|
||||
|
||||
pom.setRepositoryId("spring-libs-snapshot", "spring-libs-release");
|
||||
pom.setRepositoryUrl("spring-libs-release", "https://repo.spring.io/libs-release");
|
||||
|
||||
// System.out.println(projection.asString(pom));
|
||||
}
|
||||
|
||||
@Test
|
||||
void findsSnapshotDependencies() throws Exception {
|
||||
|
||||
Pom pom = projection.io().file(workspace.getFile("bom/pom.xml", Projects.BUILD)).read(Pom.class);
|
||||
|
||||
System.out.println(pom.getSnapshotDependencies());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -84,14 +84,14 @@ class GitHubIssueTrackerIntegrationTests extends AbstractIntegrationTests {
|
||||
void ignoresUnknownTicketsByTicketId() {
|
||||
|
||||
Collection<Ticket> tickets = github.findTickets(Projects.BUILD, Collections.singletonList("123"));
|
||||
assertThat(tickets).hasSize(0);
|
||||
assertThat(tickets).isEmpty();
|
||||
}
|
||||
|
||||
@Test // #5
|
||||
void emptyResultWithEmptyTicketIds() {
|
||||
|
||||
Collection<Ticket> tickets = github.findTickets(Projects.COMMONS, Collections.emptyList());
|
||||
assertThat(tickets).hasSize(0);
|
||||
assertThat(tickets).isEmpty();
|
||||
}
|
||||
|
||||
@Test // #5
|
||||
@@ -110,7 +110,7 @@ class GitHubIssueTrackerIntegrationTests extends AbstractIntegrationTests {
|
||||
mockGetMilestonesWith("emptyMilestones.json");
|
||||
|
||||
assertThatIllegalArgumentException().isThrownBy(() -> github.getReleaseTicketFor(BUILD_HOPPER_RC1))
|
||||
.withMessageContaining("No milestone for Spring Data Build found containing 1.8 RC1!");
|
||||
.withMessageContaining("No milestone for Spring Data Build found containing 1.8 RC1 (Hopper)!");
|
||||
}
|
||||
|
||||
@Test // #5
|
||||
@@ -157,7 +157,7 @@ class GitHubIssueTrackerIntegrationTests extends AbstractIntegrationTests {
|
||||
mockGetMilestonesWith("emptyMilestones.json");
|
||||
|
||||
assertThatIllegalArgumentException().isThrownBy(() -> github.createReleaseTicket(moduleIteration))
|
||||
.withMessageContaining("No milestone for Spring Data Build found containing 1.8 RC1!");
|
||||
.withMessageContaining("No milestone for Spring Data Build found containing 1.8 RC1 (Hopper)!");
|
||||
}
|
||||
|
||||
@Test // #5
|
||||
|
||||
@@ -44,13 +44,25 @@ class GithubMilestoneUnitTests {
|
||||
assertIterationVersion(Iteration.SR4, "1.8.4 (Dijkstra SR4)");
|
||||
}
|
||||
|
||||
@Test
|
||||
void rendersGithubCalverCorrectly() {
|
||||
|
||||
ModuleIteration m1 = ReleaseTrains.OCKHAM.getModuleIteration(Projects.COMMONS, Iteration.M1);
|
||||
ModuleIteration rc1 = ReleaseTrains.OCKHAM.getModuleIteration(Projects.COMMONS, Iteration.RC1);
|
||||
ModuleIteration ga = ReleaseTrains.OCKHAM.getModuleIteration(Projects.COMMONS, Iteration.GA);
|
||||
|
||||
assertThat(new GithubMilestone(m1).getDescription()).isEqualTo("2020.0.0-M1");
|
||||
assertThat(new GithubMilestone(rc1).getDescription()).isEqualTo("2020.0.0-RC1");
|
||||
assertThat(new GithubMilestone(ga).getDescription()).isEqualTo("2020.0.0");
|
||||
}
|
||||
|
||||
@Test
|
||||
void usesCustomModuleIterationStartVersion() {
|
||||
|
||||
ModuleIteration module = ReleaseTrains.DIJKSTRA.getModuleIteration(Projects.ELASTICSEARCH, Iteration.M1);
|
||||
|
||||
GithubMilestone version = new GithubMilestone(module);
|
||||
assertThat(version.toString()).isEqualTo("1.0 M1 (Dijkstra)");
|
||||
assertThat(version).hasToString("1.0 M1 (Dijkstra)");
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -59,7 +71,7 @@ class GithubMilestoneUnitTests {
|
||||
ModuleIteration module = ReleaseTrains.DIJKSTRA.getModuleIteration(Projects.ELASTICSEARCH, Iteration.RC1);
|
||||
|
||||
GithubMilestone version = new GithubMilestone(module);
|
||||
assertThat(version.toString()).isEqualTo("1.0 RC1 (Dijkstra)");
|
||||
assertThat(version).hasToString("1.0 RC1 (Dijkstra)");
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -76,6 +88,6 @@ class GithubMilestoneUnitTests {
|
||||
ModuleIteration module = ReleaseTrains.DIJKSTRA.getModuleIteration(Projects.COMMONS, iteration);
|
||||
|
||||
GithubMilestone version = new GithubMilestone(module);
|
||||
assertThat(version.toString()).isEqualTo(expected);
|
||||
assertThat(version).hasToString(expected);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -22,6 +22,7 @@ import static org.assertj.core.api.Assumptions.*;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
import java.util.Optional;
|
||||
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
@@ -91,14 +92,15 @@ class JiraConnectorIntegrationTests extends AbstractIntegrationTests {
|
||||
mockSearchWith("emptyTickets.json");
|
||||
|
||||
Collection<Ticket> tickets = jira.findTickets(Projects.COMMONS, Arrays.asList("XYZ-1", "UNKOWN-1"));
|
||||
assertThat(tickets).hasSize(0);
|
||||
assertThat(tickets).isEmpty();
|
||||
}
|
||||
|
||||
@Test // #5
|
||||
void emptyResultWithEmptyTicketIds() {
|
||||
|
||||
Collection<Ticket> tickets = jira.findTickets(Projects.COMMONS, Arrays.asList());
|
||||
assertThat(tickets).hasSize(0);
|
||||
Collection<Ticket> tickets = jira.findTickets(Projects.COMMONS, Collections
|
||||
.emptyList());
|
||||
assertThat(tickets).isEmpty();
|
||||
}
|
||||
|
||||
@Test // #5
|
||||
@@ -126,7 +128,7 @@ class JiraConnectorIntegrationTests extends AbstractIntegrationTests {
|
||||
|
||||
Optional<JiraReleaseVersion> optional = jira.findJiraReleaseVersion(REST_HOPPER_RC1);
|
||||
|
||||
assertThat(optional.isPresent()).isTrue();
|
||||
assertThat(optional).isPresent();
|
||||
assertThat(optional.get().getName()).isEqualTo("2.5 RC1 (Hopper)");
|
||||
}
|
||||
|
||||
@@ -216,7 +218,7 @@ class JiraConnectorIntegrationTests extends AbstractIntegrationTests {
|
||||
mockGetProjectVersionsWith("emptyReleaseVersions.json", moduleIteration.getProjectKey());
|
||||
|
||||
assertThatIllegalStateException().isThrownBy(() -> jira.createReleaseTicket(moduleIteration))
|
||||
.withMessageContaining("Did not find a release version for Spring Data REST 2.5 RC1");
|
||||
.withMessageContaining("No release version for Spring Data REST found containing 2.5 RC1 (Hopper)!");
|
||||
}
|
||||
|
||||
@Test // #5
|
||||
|
||||
@@ -18,7 +18,6 @@ package org.springframework.data.release.issues.jira;
|
||||
import static org.assertj.core.api.Assertions.*;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import org.springframework.data.release.model.Iteration;
|
||||
import org.springframework.data.release.model.ModuleIteration;
|
||||
import org.springframework.data.release.model.Projects;
|
||||
@@ -28,6 +27,7 @@ import org.springframework.data.release.model.ReleaseTrains;
|
||||
* Unit tests for {@link JiraVersion}.
|
||||
*
|
||||
* @author Oliver Gierke
|
||||
* @author Mark Paluch
|
||||
*/
|
||||
class JiraVersionUnitTests {
|
||||
|
||||
@@ -44,13 +44,25 @@ class JiraVersionUnitTests {
|
||||
assertIterationVersion(Iteration.SR4, "1.8.4 (Dijkstra SR4)");
|
||||
}
|
||||
|
||||
@Test
|
||||
void rendersGithubCalverCorrectly() {
|
||||
|
||||
ModuleIteration m1 = ReleaseTrains.OCKHAM.getModuleIteration(Projects.COMMONS, Iteration.M1);
|
||||
ModuleIteration rc1 = ReleaseTrains.OCKHAM.getModuleIteration(Projects.COMMONS, Iteration.RC1);
|
||||
ModuleIteration ga = ReleaseTrains.OCKHAM.getModuleIteration(Projects.COMMONS, Iteration.GA);
|
||||
|
||||
assertThat(new JiraVersion(m1).getDescription()).isEqualTo("2020.0.0-M1");
|
||||
assertThat(new JiraVersion(rc1).getDescription()).isEqualTo("2020.0.0-RC1");
|
||||
assertThat(new JiraVersion(ga).getDescription()).isEqualTo("2020.0.0");
|
||||
}
|
||||
|
||||
@Test
|
||||
void usesCustomModuleIterationStartVersion() {
|
||||
|
||||
ModuleIteration module = ReleaseTrains.DIJKSTRA.getModuleIteration(Projects.ELASTICSEARCH, Iteration.M1);
|
||||
|
||||
JiraVersion version = new JiraVersion(module);
|
||||
assertThat(version.toString()).isEqualTo("1.0 M1 (Dijkstra)");
|
||||
assertThat(version).hasToString("1.0 M1 (Dijkstra)");
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -59,7 +71,7 @@ class JiraVersionUnitTests {
|
||||
ModuleIteration module = ReleaseTrains.DIJKSTRA.getModuleIteration(Projects.ELASTICSEARCH, Iteration.RC1);
|
||||
|
||||
JiraVersion version = new JiraVersion(module);
|
||||
assertThat(version.toString()).isEqualTo("1.0 RC1 (Dijkstra)");
|
||||
assertThat(version).hasToString("1.0 RC1 (Dijkstra)");
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -76,6 +88,6 @@ class JiraVersionUnitTests {
|
||||
ModuleIteration module = ReleaseTrains.DIJKSTRA.getModuleIteration(Projects.COMMONS, iteration);
|
||||
|
||||
JiraVersion version = new JiraVersion(module);
|
||||
assertThat(version.toString()).isEqualTo(expected);
|
||||
assertThat(version).hasToString(expected);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -65,6 +65,29 @@ class TicketsUnitTests {
|
||||
assertThat(releaseTicket).isEqualTo(ticket);
|
||||
}
|
||||
|
||||
@Test
|
||||
void getReleaseTicketReturnsCalverReleaseTicket() {
|
||||
|
||||
Tickets tickets = new Tickets(
|
||||
Collections.singletonList(new Ticket("1234", "Release 2.4 GA (2020.0.0)", JiraTicketStatus.of(false, "", ""))));
|
||||
|
||||
Ticket releaseTicket = tickets
|
||||
.getReleaseTicket(ReleaseTrains.OCKHAM.getModuleIteration(Projects.JPA, Iteration.GA));
|
||||
assertThat(releaseTicket).isNotNull();
|
||||
|
||||
tickets = new Tickets(
|
||||
Collections.singletonList(new Ticket("1234", "Release 2.4 M1 (2020.0.0)", JiraTicketStatus.of(false, "", ""))));
|
||||
|
||||
releaseTicket = tickets.getReleaseTicket(ReleaseTrains.OCKHAM.getModuleIteration(Projects.JPA, Iteration.M1));
|
||||
assertThat(releaseTicket).isNotNull();
|
||||
|
||||
tickets = new Tickets(
|
||||
Collections.singletonList(new Ticket("1234", "Release 2.4.1 (2020.0.1)", JiraTicketStatus.of(false, "", ""))));
|
||||
|
||||
releaseTicket = tickets.getReleaseTicket(ReleaseTrains.OCKHAM.getModuleIteration(Projects.JPA, Iteration.SR1));
|
||||
assertThat(releaseTicket).isNotNull();
|
||||
}
|
||||
|
||||
@Test
|
||||
void getReleaseTicketThrowsExceptionWithoutAReleaseTicket() {
|
||||
|
||||
|
||||
@@ -21,6 +21,8 @@ import org.assertj.core.api.Assertions;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
/**
|
||||
* Unit tests for {@link ArtifactVersion}.
|
||||
*
|
||||
* @author Oliver Gierke
|
||||
*/
|
||||
class ArtifactVersionUnitTests {
|
||||
@@ -33,19 +35,21 @@ class ArtifactVersionUnitTests {
|
||||
@Test
|
||||
void parsesReleaseVersionCorrectly() {
|
||||
|
||||
ArtifactVersion version = ArtifactVersion.of("1.4.5.RELEASE");
|
||||
assertThat(ArtifactVersion.of("1.4.5.RELEASE").isReleaseVersion()).isTrue();
|
||||
assertThat(ArtifactVersion.of("1.4.5.RELEASE").getNextDevelopmentVersion()).isEqualTo(ArtifactVersion.of("1.4.6.BUILD-SNAPSHOT"));
|
||||
|
||||
assertThat(version.isReleaseVersion()).isTrue();
|
||||
assertThat(version.getNextDevelopmentVersion()).isEqualTo(ArtifactVersion.of("1.4.6.BUILD-SNAPSHOT"));
|
||||
assertThat(ArtifactVersion.of("1.4.5").isReleaseVersion()).isTrue();
|
||||
assertThat(ArtifactVersion.of("1.4.5").getNextDevelopmentVersion()).isEqualTo(ArtifactVersion.of("1.4.6-SNAPSHOT"));
|
||||
}
|
||||
|
||||
@Test
|
||||
void createsMilestoneVersionCorrectly() {
|
||||
|
||||
ArtifactVersion version = ArtifactVersion.of("1.4.5.M1");
|
||||
assertThat(ArtifactVersion.of("1.4.5.M1").isReleaseVersion()).isFalse();
|
||||
assertThat(ArtifactVersion.of("1.4.5.M1").isMilestoneVersion()).isTrue();
|
||||
|
||||
assertThat(version.isReleaseVersion()).isFalse();
|
||||
assertThat(version.isMilestoneVersion()).isTrue();
|
||||
assertThat(ArtifactVersion.of("1.4.5-M1").isReleaseVersion()).isFalse();
|
||||
assertThat(ArtifactVersion.of("1.4.5-M1").isMilestoneVersion()).isTrue();
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -54,7 +58,7 @@ class ArtifactVersionUnitTests {
|
||||
ArtifactVersion version = ArtifactVersion.of(Version.of(1, 4, 5));
|
||||
|
||||
assertThat(version.isReleaseVersion()).isTrue();
|
||||
assertThat(version.toString()).isEqualTo("1.4.5.RELEASE");
|
||||
assertThat(version).hasToString("1.4.5.RELEASE");
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -64,7 +68,7 @@ class ArtifactVersionUnitTests {
|
||||
ArtifactVersion version = ArtifactVersion.of(oneFourMilestoneOne);
|
||||
|
||||
assertThat(version.isMilestoneVersion()).isTrue();
|
||||
assertThat(version.toString()).isEqualTo("1.4.0.M1");
|
||||
assertThat(version).hasToString("1.4.0.M1");
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -74,7 +78,7 @@ class ArtifactVersionUnitTests {
|
||||
ArtifactVersion version = ArtifactVersion.of(oneFourGA);
|
||||
|
||||
assertThat(version.isReleaseVersion()).isTrue();
|
||||
assertThat(version.toString()).isEqualTo("1.4.0.RELEASE");
|
||||
assertThat(version).hasToString("1.4.0.RELEASE");
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -84,7 +88,7 @@ class ArtifactVersionUnitTests {
|
||||
ArtifactVersion version = ArtifactVersion.of(oneFourServiceReleaseTwo);
|
||||
|
||||
assertThat(version.isReleaseVersion()).isTrue();
|
||||
assertThat(version.toString()).isEqualTo("1.4.2.RELEASE");
|
||||
assertThat(version).hasToString("1.4.2.RELEASE");
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
@@ -1,78 +0,0 @@
|
||||
/*
|
||||
* Copyright 2020 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package org.springframework.data.release.model;
|
||||
|
||||
import static org.assertj.core.api.Assertions.*;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
/**
|
||||
* Unit tests for {@link Calver}.
|
||||
*
|
||||
* @author Mark Paluch
|
||||
*/
|
||||
class CalverVersionUnitTests {
|
||||
|
||||
@Test
|
||||
void shouldParseRelease() {
|
||||
|
||||
Calver version = Calver.parse("2020.0.1");
|
||||
|
||||
assertThat(version.getYear()).isEqualTo(2020);
|
||||
assertThat(version.getMinor()).isEqualTo(0);
|
||||
assertThat(version.getMicro()).isEqualTo(1);
|
||||
}
|
||||
|
||||
@Test
|
||||
void shouldParseM1Release() {
|
||||
|
||||
Calver version = Calver.parse("2020.0.1-M1");
|
||||
|
||||
assertThat(version.getYear()).isEqualTo(2020);
|
||||
assertThat(version.getMinor()).isEqualTo(0);
|
||||
assertThat(version.getMicro()).isEqualTo(1);
|
||||
assertThat(version.getModifier()).isEqualTo(Iteration.M1);
|
||||
}
|
||||
|
||||
@Test
|
||||
void shouldCompareReleasesCorrectly() {
|
||||
|
||||
Calver version = Calver.parse("2020.0.1-RC2");
|
||||
|
||||
assertThat(version).isGreaterThan(Calver.parse("2020.0.0-RC2"));
|
||||
assertThat(version).isLessThan(Calver.parse("2020.0.2-RC2"));
|
||||
assertThat(version).isLessThan(Calver.parse("2020.1.0-RC2"));
|
||||
assertThat(version).isLessThan(Calver.parse("2021.0.0-RC2"));
|
||||
|
||||
assertThat(version).isGreaterThan(Calver.parse("2020.0.1-RC1"));
|
||||
assertThat(version).isLessThan(Calver.parse("2020.0.1"));
|
||||
|
||||
assertThat(Calver.parse("2020.0.1")).isEqualTo(Calver.parse("2020.0.1"));
|
||||
assertThat(Calver.parse("2020.0.1")).isLessThan(Calver.parse("2020.0.1-SR1"));
|
||||
assertThat(Calver.parse("2020.0.1")).isGreaterThan(Calver.parse("2020.0.1-M1"));
|
||||
}
|
||||
|
||||
@Test
|
||||
void shouldParseSnapshot() {
|
||||
|
||||
Calver version = Calver.parse("2020.0.1-SNAPSHOT");
|
||||
|
||||
assertThat(version.getYear()).isEqualTo(2020);
|
||||
assertThat(version.getMinor()).isEqualTo(0);
|
||||
assertThat(version.getMicro()).isEqualTo(1);
|
||||
assertThat(version.getModifier()).isEqualTo(new Iteration("SNAPSHOT", null));
|
||||
}
|
||||
}
|
||||
@@ -31,4 +31,13 @@ public class SimpleIterationVersion implements IterationVersion {
|
||||
public boolean isBranchVersion() {
|
||||
return iteration.isServiceIteration();
|
||||
}
|
||||
|
||||
/*
|
||||
* (non-Javadoc)
|
||||
* @see org.springframework.data.release.model.IterationVersion#usesModifierVersionFormat()
|
||||
*/
|
||||
@Override
|
||||
public boolean usesModifierVersionFormat() {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -37,7 +37,7 @@ class SaganOperationsIntegrationTests extends AbstractIntegrationTests {
|
||||
@Test
|
||||
void detectVersionsToUpdate() {
|
||||
|
||||
sagan.findVersions(ReleaseTrains.LOVELACE, ReleaseTrains.KAY, ReleaseTrains.INGALLS, ReleaseTrains.HOPPER)
|
||||
sagan.findVersions(ReleaseTrains.OCKHAM, ReleaseTrains.NEUMANN, ReleaseTrains.MOORE, ReleaseTrains.LOVELACE)
|
||||
.forEach((project, versions) -> {
|
||||
|
||||
System.out.println(project.getName());
|
||||
|
||||
Reference in New Issue
Block a user