Skip to content

Commit fdcd85f

Browse files
Update breaking changes release notes section automatically (#4060)
Co-authored-by: Sylvain Juge <[email protected]>
1 parent af1aade commit fdcd85f

File tree

1 file changed

+18
-1
lines changed

1 file changed

+18
-1
lines changed

.ci/ReleaseChangelog.java

+18-1
Original file line numberDiff line numberDiff line change
@@ -44,12 +44,14 @@ public static void main(String[] args) throws IOException {
4444
Path releaseNotesDir = Paths.get(args[1]);
4545
Path releaseNotesFile = releaseNotesDir.resolve("index.md");
4646
Path deprecationsFile = releaseNotesDir.resolve("deprecations.md");
47+
Path breakingChangesFile = releaseNotesDir.resolve("breaking-changes.md");
4748
VersionNumber version = VersionNumber.parse(args[2].trim());
4849

4950
Lines nextChangelogLines = new Lines(Files.readAllLines(nextChangelogFile, StandardCharsets.UTF_8));
5051
Lines fixes = nextChangelogLines.cutLinesBetween("<!--FIXES-START-->", "<!--FIXES-END-->");
5152
Lines enhancements = nextChangelogLines.cutLinesBetween("<!--ENHANCEMENTS-START-->", "<!--ENHANCEMENTS-END-->");
5253
Lines deprecations = nextChangelogLines.cutLinesBetween("<!--DEPRECATIONS-START-->", "<!--DEPRECATIONS-END-->");
54+
Lines breakingChanges = nextChangelogLines.cutLinesBetween("<!--BREAKING-CHANGES-START-->", "<!--BREAKING-CHANGES-END-->");
5355

5456

5557
var formatter = DateTimeFormatter.ofPattern("LLLL d, yyyy", Locale.ENGLISH);
@@ -65,6 +67,12 @@ public static void main(String[] args) throws IOException {
6567
allDeprecations.insert(generateDeprecations(version, releaseDateLine, deprecations), insertDepsBeforeLine);
6668
Files.writeString(deprecationsFile, allDeprecations + "\n", StandardCharsets.UTF_8);
6769
}
70+
if (!breakingChanges.isEmpty()) {
71+
Lines allBreakingChanges = new Lines(Files.readAllLines(breakingChangesFile, StandardCharsets.UTF_8));
72+
int insertBcBeforeLine = findHeadingOfPreviousVersion(allBreakingChanges, version);
73+
allBreakingChanges.insert(generateBreakingChanges(version, releaseDateLine, breakingChanges), insertBcBeforeLine);
74+
Files.writeString(breakingChangesFile, allBreakingChanges + "\n", StandardCharsets.UTF_8);
75+
}
6876
Files.writeString(releaseNotesFile, allReleaseNotes + "\n", StandardCharsets.UTF_8);
6977
Files.writeString(nextChangelogFile, nextChangelogLines + "\n", StandardCharsets.UTF_8);
7078
}
@@ -89,7 +97,6 @@ private static Lines generateReleaseNotes(VersionNumber version, String releaseD
8997
return result;
9098
}
9199

92-
93100
private static Lines generateDeprecations(VersionNumber version, String releaseDateLine, Lines deprecations) {
94101
return new Lines()
95102
.append("## " + version.dotStr() + " [elastic-apm-java-agent-" + version.dashStr() + "-deprecations]")
@@ -99,6 +106,16 @@ private static Lines generateDeprecations(VersionNumber version, String releaseD
99106
.append("");
100107
}
101108

109+
private static Lines generateBreakingChanges(VersionNumber version, String releaseDateLine, Lines breakingChanges) {
110+
return new Lines()
111+
.append("## " + version.dotStr() + " [" + version.dotStr() + "]")
112+
.append("")
113+
.append(releaseDateLine)
114+
.append("")
115+
.append(breakingChanges)
116+
.append("");
117+
}
118+
102119
static int findHeadingOfPreviousVersion(Lines lines, VersionNumber version) {
103120
Pattern headingPattern = Pattern.compile("## (\\d+\\.\\d+\\.\\d+) .*");
104121
Comparator<VersionNumber> comp = VersionNumber.comparator();

0 commit comments

Comments
 (0)