|
@@ -56,11 +56,13 @@ public class GenerateReleaseNotesTask extends DefaultTask {
|
|
|
private final RegularFileProperty releaseNotesTemplate;
|
|
|
private final RegularFileProperty releaseHighlightsTemplate;
|
|
|
private final RegularFileProperty breakingChangesTemplate;
|
|
|
+ private final RegularFileProperty migrationIndexTemplate;
|
|
|
|
|
|
private final RegularFileProperty releaseNotesIndexFile;
|
|
|
private final RegularFileProperty releaseNotesFile;
|
|
|
private final RegularFileProperty releaseHighlightsFile;
|
|
|
private final RegularFileProperty breakingChangesMigrationFile;
|
|
|
+ private final RegularFileProperty migrationIndexFile;
|
|
|
|
|
|
private final GitWrapper gitWrapper;
|
|
|
|
|
@@ -72,11 +74,13 @@ public class GenerateReleaseNotesTask extends DefaultTask {
|
|
|
releaseNotesTemplate = objectFactory.fileProperty();
|
|
|
releaseHighlightsTemplate = objectFactory.fileProperty();
|
|
|
breakingChangesTemplate = objectFactory.fileProperty();
|
|
|
+ migrationIndexTemplate = objectFactory.fileProperty();
|
|
|
|
|
|
releaseNotesIndexFile = objectFactory.fileProperty();
|
|
|
releaseNotesFile = objectFactory.fileProperty();
|
|
|
releaseHighlightsFile = objectFactory.fileProperty();
|
|
|
breakingChangesMigrationFile = objectFactory.fileProperty();
|
|
|
+ migrationIndexFile = objectFactory.fileProperty();
|
|
|
|
|
|
gitWrapper = new GitWrapper(execOperations);
|
|
|
}
|
|
@@ -137,6 +141,13 @@ public class GenerateReleaseNotesTask extends DefaultTask {
|
|
|
this.breakingChangesMigrationFile.get().getAsFile(),
|
|
|
entries
|
|
|
);
|
|
|
+
|
|
|
+ LOGGER.info("Updating migration/index...");
|
|
|
+ MigrationIndexGenerator.update(
|
|
|
+ getMinorVersions(versions),
|
|
|
+ this.migrationIndexTemplate.get().getAsFile(),
|
|
|
+ this.migrationIndexFile.get().getAsFile()
|
|
|
+ );
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -154,6 +165,14 @@ public class GenerateReleaseNotesTask extends DefaultTask {
|
|
|
.collect(toSet());
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * Convert set of QualifiedVersion to MinorVersion by deleting all but the major and minor components.
|
|
|
+ */
|
|
|
+ @VisibleForTesting
|
|
|
+ static Set<MinorVersion> getMinorVersions(Set<QualifiedVersion> versions) {
|
|
|
+ return versions.stream().map(MinorVersion::of).collect(toSet());
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* Group a set of files by the version in which they first appeared, up until the supplied version. Any files not
|
|
|
* present in an earlier version are assumed to have been introduced in the specified version.
|
|
@@ -320,6 +339,15 @@ public class GenerateReleaseNotesTask extends DefaultTask {
|
|
|
this.breakingChangesTemplate.set(file);
|
|
|
}
|
|
|
|
|
|
+ @InputFile
|
|
|
+ public RegularFileProperty getMigrationIndexTemplate() {
|
|
|
+ return migrationIndexTemplate;
|
|
|
+ }
|
|
|
+
|
|
|
+ public void setMigrationIndexTemplate(RegularFile file) {
|
|
|
+ this.migrationIndexTemplate.set(file);
|
|
|
+ }
|
|
|
+
|
|
|
@OutputFile
|
|
|
public RegularFileProperty getReleaseNotesIndexFile() {
|
|
|
return releaseNotesIndexFile;
|
|
@@ -355,4 +383,13 @@ public class GenerateReleaseNotesTask extends DefaultTask {
|
|
|
public void setBreakingChangesMigrationFile(RegularFile file) {
|
|
|
this.breakingChangesMigrationFile.set(file);
|
|
|
}
|
|
|
+
|
|
|
+ @OutputFile
|
|
|
+ public RegularFileProperty getMigrationIndexFile() {
|
|
|
+ return migrationIndexFile;
|
|
|
+ }
|
|
|
+
|
|
|
+ public void setMigrationIndexFile(RegularFile file) {
|
|
|
+ this.migrationIndexFile.set(file);
|
|
|
+ }
|
|
|
}
|