Update issue tracker settings for projects after Jira to GitHub migration.
Closes #166
This commit is contained in:
@@ -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;
|
||||
}
|
||||
@@ -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();
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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()));
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -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));
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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");
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user