Update issue tracker settings for projects after Jira to GitHub migration.

Closes #166
This commit is contained in:
Mark Paluch
2021-01-12 14:05:25 +01:00
parent ebe9863970
commit ebadf0a5ea
9 changed files with 35 additions and 98 deletions

View File

@@ -1,27 +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;
/**
* @author Mark Paluch
*/
public enum GitHubMigration {
;
// TODO: Flip this switch once the GitHub migration is done.
public static final boolean isDone = false;
}

View File

@@ -20,7 +20,6 @@ import lombok.RequiredArgsConstructor;
import java.util.Optional;
import org.springframework.data.release.GitHubMigration;
import org.springframework.data.release.issues.Ticket;
/**
@@ -43,27 +42,8 @@ public class Commit {
StringBuilder builder = new StringBuilder();
if (GitHubMigration.isDone) {
builder.append(summary);
if (!summary.endsWith(".")) {
builder.append(".");
}
details.ifPresent(it -> {
builder.append("\n");
builder.append("\n");
builder.append(it);
});
builder.append("\nSee ").append(ticket.getId());
return builder.toString();
}
builder.append(ticket.getId()).append(" - ").append(summary);
builder.append(summary);
if (!summary.endsWith(".")) {
builder.append(".");
@@ -75,6 +55,9 @@ public class Commit {
builder.append(it);
});
builder.append("\n\nSee ").append(ticket.getId());
return builder.toString();
}
}

View File

@@ -102,7 +102,8 @@ class GitCommands extends TimedCommand {
private Tickets toTickets(List<TicketReference> ticketRefs) {
return new Tickets(
ticketRefs.stream().map(it -> new Ticket(it.getId(), it.getMessage(), "", null)).collect(Collectors.toList()));
ticketRefs.stream().map(it -> new Ticket(it.getId(), it.getMessage(), "", null, null))
.collect(Collectors.toList()));
}
/**

View File

@@ -74,7 +74,7 @@ public class Ticket {
public boolean isReleaseTicketFor(ModuleIteration module) {
Assert.notNull(module, "Module must not be null!");
return summary.equals(Tracker.releaseTicketSummary(module));
return summary.startsWith(Tracker.releaseTicketSummary(module));
}
/**

View File

@@ -40,7 +40,6 @@ import org.springframework.data.release.issues.jira.JiraIssue.StatusCategory;
import org.springframework.data.release.model.ModuleIteration;
import org.springframework.data.release.model.Project;
import org.springframework.data.release.model.ProjectKey;
import org.springframework.data.release.model.Projects;
import org.springframework.data.release.model.Tracker;
import org.springframework.data.release.model.TrainIteration;
import org.springframework.data.release.utils.Logger;
@@ -232,7 +231,7 @@ class Jira implements JiraConnector {
Optional<JiraReleaseVersion> versionsForModuleIteration = findJiraReleaseVersion(moduleIteration);
if (versionsForModuleIteration.isPresent() || moduleIteration.getProject() == Projects.GEMFIRE) {
if (versionsForModuleIteration.isPresent()) {
return;
}
@@ -307,7 +306,7 @@ class Jira implements JiraConnector {
Tickets tickets = getTicketsFor(moduleIteration);
if (tickets.hasReleaseTicket(moduleIteration) || moduleIteration.getProject() == Projects.GEMFIRE) {
if (tickets.hasReleaseTicket(moduleIteration)) {
return;
}

View File

@@ -25,7 +25,6 @@ import java.util.Optional;
import java.util.Set;
import java.util.concurrent.ExecutorService;
import org.springframework.data.release.GitHubMigration;
import org.springframework.data.release.git.GitOperations;
import org.springframework.data.release.io.Workspace;
import org.springframework.data.release.issues.Changelog;
@@ -119,25 +118,17 @@ public class ReleaseOperations {
protected Changelog getChangelog(TrainIteration iteration, TrainIteration previousIteration, ModuleIteration module,
IssueTracker issueTracker) {
Changelog changelog;
List<TicketReference> ticketReferences = git.getTicketReferencesBetween(module.getProject(), previousIteration,
iteration);
if (GitHubMigration.isDone) {
// TODO: Use only associated tracker
List<Ticket> tickets = new ArrayList<>();
List<TicketReference> ticketReferences = git.getTicketReferencesBetween(module.getProject(), previousIteration,
iteration);
// TODO: Use only associated tracker
List<Ticket> tickets = new ArrayList<>();
for (IssueTracker tracker : trackers) {
tickets.addAll(tracker.findTickets(module, ticketReferences).getTickets());
}
changelog = Changelog.of(module, new Tickets(tickets));
} else {
changelog = issueTracker.getChangelogFor(module);
for (IssueTracker tracker : trackers) {
tickets.addAll(tracker.findTickets(module, ticketReferences).getTickets());
}
return changelog;
return Changelog.of(module, new Tickets(tickets));
}
public void updateResources(TrainIteration iteration) {

View File

@@ -28,7 +28,6 @@ import java.util.function.Consumer;
import java.util.stream.Collectors;
import java.util.stream.Stream;
import org.springframework.data.release.GitHubMigration;
import org.springframework.util.Assert;
/**
@@ -46,10 +45,6 @@ public class Project implements Comparable<Project> {
private final @With ArtifactCoordinates additionalArtifacts;
private final @With boolean skipTests;
Project(String key, String name) {
this(key, name, null, Tracker.JIRA);
}
Project(String key, String name, Tracker tracker) {
this(key, name, null, tracker);
}
@@ -63,11 +58,6 @@ public class Project implements Comparable<Project> {
private Project(ProjectKey key, String name, String fullName, Collection<Project> dependencies, Tracker tracker,
ArtifactCoordinates additionalArtifacts, boolean skipTests) {
if (GitHubMigration.isDone) {
if (tracker != Tracker.GITHUB) {
throw new IllegalStateException(String.format("Cannot have other trackers than GitHub (Project: %s)", name));
}
}
this.key = key;
this.name = name;
this.fullName = fullName;

View File

@@ -51,59 +51,59 @@ public class Projects {
.artifacts("spring-data-build-parent", "spring-data-build-resources")
.and(ArtifactCoordinate.of("org.springframework.data", "spring-data-releasetrain")));
COMMONS = new Project("DATACMNS", "Commons").withDependencies(BUILD);
COMMONS = new Project("DATACMNS", "Commons", Tracker.GITHUB).withDependencies(BUILD);
JPA = new Project("DATAJPA", "JPA").withDependencies(COMMONS);
JPA = new Project("DATAJPA", "JPA", Tracker.GITHUB).withDependencies(COMMONS);
MONGO_DB = new Project("DATAMONGO", "MongoDB") //
MONGO_DB = new Project("DATAMONGO", "MongoDB", Tracker.GITHUB) //
.withDependencies(COMMONS) //
.withAdditionalArtifacts(
ArtifactCoordinates.SPRING_DATA.artifacts("spring-data-mongodb-cross-store", "spring-data-mongodb-log4j"));
NEO4J = new Project("DATAGRAPH", "Neo4j").withDependencies(COMMONS);
NEO4J = new Project("DATAGRAPH", "Neo4j", Tracker.GITHUB).withDependencies(COMMONS);
SOLR = new Project("DATASOLR", "Solr") //
SOLR = new Project("DATASOLR", "Solr", Tracker.GITHUB) //
.withDependencies(COMMONS) //
.withFullName("Spring Data for Apache Solr");
COUCHBASE = new Project("DATACOUCH", "Couchbase").withDependencies(COMMONS);
COUCHBASE = new Project("DATACOUCH", "Couchbase", Tracker.GITHUB).withDependencies(COMMONS);
CASSANDRA = new Project("DATACASS", "Cassandra") //
CASSANDRA = new Project("DATACASS", "Cassandra", Tracker.GITHUB) //
.withDependencies(COMMONS) //
.withAdditionalArtifacts(ArtifactCoordinates.SPRING_DATA.artifacts("spring-cql"))
.withFullName("Spring Data for Apache Cassandra");
ELASTICSEARCH = new Project("DATAES", "Elasticsearch").withDependencies(COMMONS);
ELASTICSEARCH = new Project("DATAES", "Elasticsearch", Tracker.GITHUB).withDependencies(COMMONS);
KEY_VALUE = new Project("DATAKV", "KeyValue").withDependencies(COMMONS);
KEY_VALUE = new Project("DATAKV", "KeyValue", Tracker.GITHUB).withDependencies(COMMONS);
REDIS = new Project("DATAREDIS", "Redis").withDependencies(KEY_VALUE);
REDIS = new Project("DATAREDIS", "Redis", Tracker.GITHUB).withDependencies(KEY_VALUE);
JDBC = new Project("DATAJDBC", "JDBC")
JDBC = new Project("DATAJDBC", "JDBC", Tracker.GITHUB)
.withAdditionalArtifacts(ArtifactCoordinates.SPRING_DATA.artifacts("spring-data-relational"))
.withDependencies(COMMONS);
R2DBC = new Project("DATAR2DBC", "R2DBC", Tracker.GITHUB).withDependencies(COMMONS, JDBC);
GEMFIRE = new Project("DATAGEODE", "Gemfire") //
GEMFIRE = new Project("DATAGEODE", "Gemfire", Tracker.JIRA) //
.withDependencies(COMMONS)//
.withSkipTests(true);
GEODE = new Project("DATAGEODE", "Geode") //
GEODE = new Project("DATAGEODE", "Geode", Tracker.GITHUB) //
.withDependencies(COMMONS) //
.withAdditionalArtifacts(ArtifactCoordinates.SPRING_DATA.artifacts("spring-data-gemfire"))
.withFullName("Spring Data for Apache Geode") //
.withSkipTests(true);
REST = new Project("DATAREST", "REST") //
.withDependencies(JPA, MONGO_DB, NEO4J, GEODE, SOLR, CASSANDRA, KEY_VALUE) //
REST = new Project("DATAREST", "REST", Tracker.GITHUB) //
.withDependencies(JPA, MONGO_DB, NEO4J, GEODE, CASSANDRA, KEY_VALUE) //
.withAdditionalArtifacts(ArtifactCoordinates.SPRING_DATA //
.artifacts("spring-data-rest-core", "spring-data-rest-core", "spring-data-rest-hal-browser",
"spring-data-rest-hal-explorer"));
ENVERS = new Project("DATAENV", "Envers", Tracker.GITHUB).withDependencies(JPA);
LDAP = new Project("DATALDAP", "LDAP").withDependencies(COMMONS);
LDAP = new Project("DATALDAP", "LDAP", Tracker.GITHUB).withDependencies(COMMONS);
// Specify build order to avoid maven dependency errors during build.
List<Project> projects = Arrays.asList(BUILD, COMMONS, JPA, JDBC, MONGO_DB, NEO4J, SOLR, COUCHBASE, CASSANDRA,

View File

@@ -34,7 +34,7 @@ class CommitUnitTests {
void shouldRenderCommitMessage() {
assertThat(
new Commit(new Ticket("1234", "Hello", null, Mockito.mock(TicketStatus.class)), "Summary", Optional.empty()))
new Commit(new Ticket("1234", "Hello", Mockito.mock(TicketStatus.class)), "Summary", Optional.empty()))
.hasToString("1234 - Summary.");
}
@@ -42,7 +42,7 @@ class CommitUnitTests {
void shouldRenderCommitMessageWithDetail() {
assertThat(
new Commit(new Ticket("1234", "Hello", null, Mockito.mock(TicketStatus.class)), "Summary",
new Commit(new Ticket("1234", "Hello", Mockito.mock(TicketStatus.class)), "Summary",
Optional.of("detail")))
.hasToString("1234 - Summary.\n" + "\n" + "detail");
}