You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@logging.apache.org by vy...@apache.org on 2023/09/20 11:12:13 UTC

[logging-parent] 02/04: Auto-generate release notes to `src/antora`

This is an automated email from the ASF dual-hosted git repository.

vy pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/logging-parent.git

commit e1ed9cf72985d3e6f2e8d7ef0579425662635ba4
Author: Volkan Yazıcı <vo...@yazi.ci>
AuthorDate: Tue Sep 19 18:09:54 2023 +0200

    Auto-generate release notes to `src/antora`
---
 .github/workflows/deploy-release-reusable.yaml     |   4 +-
 RELEASE-NOTES.adoc                                 |   2 +-
 antora-playbook.yaml                               |   4 +-
 pom.xml                                            | 120 +++++++++------------
 .../modules/ROOT/pages/release-notes/10.0.0.adoc   |  54 ++++++++++
 .../modules/ROOT/pages/release-notes/10.x.x.adoc   |  52 +++++++++
 .../modules/ROOT/pages/release-notes/index.adoc    |  34 ++++++
 src/changelog/.10.x.x/.release-notes.adoc.ftl      |  49 +++++----
 src/changelog/.index.adoc.ftl                      |  45 +++++---
 src/changelog/10.0.0/.release-notes.adoc.ftl       |  49 +++++----
 10 files changed, 285 insertions(+), 128 deletions(-)

diff --git a/.github/workflows/deploy-release-reusable.yaml b/.github/workflows/deploy-release-reusable.yaml
index e2f37b4..9320808 100644
--- a/.github/workflows/deploy-release-reusable.yaml
+++ b/.github/workflows/deploy-release-reusable.yaml
@@ -117,11 +117,11 @@ jobs:
           ./mvnw \
             --non-recursive --batch-mode --errors --no-transfer-progress \
             -P changelog-release
-          git add src/changelog
+          git add src/changelog src/antora
           if [ -n "$(git status --porcelain)" ]; then
             git config user.name "ASF Logging Services RM"
             git config user.email private@logging.apache.org
-            git commit -S src/changelog -m "Release changelog for version \`$PROJECT_VERSION\`"
+            git commit -S src/changelog src/antora -m "Release changelog for version \`$PROJECT_VERSION\`"
             git push origin
           fi
 
diff --git a/RELEASE-NOTES.adoc b/RELEASE-NOTES.adoc
index 2ab54bb..439caf0 100644
--- a/RELEASE-NOTES.adoc
+++ b/RELEASE-NOTES.adoc
@@ -18,4 +18,4 @@ limitations under the License.
 This project uses https://github.com/apache/logging-log4j-tools/tree/main/log4j-changelog-maven-plugin[`log4j-changelog-maven-plugin`] for keeping a changelog and generating release notes.
 
 Changelog files are located under xref:src/changelog[`src/changelog`].
-Release notes can be generated using `./mvnw -N -P changelog-export` command.
+Release notes are automatically exported during Maven `generate-sources` phase to xref:src/antora/modules/ROOT/release-notes[`src/antora/modules/ROOT/release-notes`].
diff --git a/antora-playbook.yaml b/antora-playbook.yaml
index a575df0..b714066 100644
--- a/antora-playbook.yaml
+++ b/antora-playbook.yaml
@@ -16,13 +16,13 @@
 #
 site:
   title: Logging Parent
-  url: "https://logging.apache.org/parent"
+  url: "https://logging.apache.org/logging-parent"
   start_page: "logging-parent::index.adoc"
 content:
   sources:
     - url: ./
       branches: HEAD
-      start_path: target/generated-sources/antora
+      start_path: src/antora
 ui:
   bundle:
     url: "https://gitlab.com/antora/antora-ui-default/-/jobs/artifacts/HEAD/raw/build/ui-bundle.zip?job=bundle-stable"
diff --git a/pom.xml b/pom.xml
index 5629ae4..f5059f1 100644
--- a/pom.xml
+++ b/pom.xml
@@ -157,28 +157,6 @@
           <groupId>org.apache.logging.log4j</groupId>
           <artifactId>log4j-changelog-maven-plugin</artifactId>
           <version>${log4j-changelog-maven-plugin.version}</version>
-          <executions>
-            <execution>
-              <id>export-changelog</id>
-              <goals>
-                <goal>export</goal>
-              </goals>
-              <configuration>
-                <outputDirectory>${project.build.directory}/generated-sources/antora/modules/ROOT/pages/release-notes</outputDirectory>
-                <indexTemplates>
-                  <template>
-                    <source>.index.adoc.ftl</source>
-                  </template>
-                </indexTemplates>
-                <changelogTemplates>
-                  <template>
-                    <source>.release-notes.adoc.ftl</source>
-                    <target>%v.adoc</target>
-                  </template>
-                </changelogTemplates>
-              </configuration>
-            </execution>
-          </executions>
         </plugin>
 
       </plugins>
@@ -546,14 +524,52 @@
       </build>
     </profile>
 
-    <!-- `changelog-export` profile to export changelogs.
-         It is not used by CI.
-         It is only here to complement `changelog-release` and for user convenience. -->
+    <!-- `changelog-export` profile to export changelogs -->
     <profile>
+
       <id>changelog-export</id>
+
+      <activation>
+        <file>
+          <exists>src/changelog</exists>
+        </file>
+      </activation>
+
       <build>
-        <defaultGoal>log4j-changelog:export@export-changelog</defaultGoal>
+        <plugins>
+
+          <!-- export release notes to `src/antora/modules/ROOT/pages/release-notes` -->
+          <plugin>
+            <groupId>org.apache.logging.log4j</groupId>
+            <artifactId>log4j-changelog-maven-plugin</artifactId>
+            <executions>
+              <execution>
+                <id>export-changelog</id>
+                <goals>
+                  <goal>export</goal>
+                </goals>
+                <phase>generate-sources</phase>
+                <configuration>
+                  <outputDirectory>src/antora/modules/ROOT/pages/release-notes</outputDirectory>
+                  <indexTemplates>
+                    <template>
+                      <source>.index.adoc.ftl</source>
+                    </template>
+                  </indexTemplates>
+                  <changelogTemplates>
+                    <template>
+                      <source>.release-notes.adoc.ftl</source>
+                      <target>%v.adoc</target>
+                    </template>
+                  </changelogTemplates>
+                </configuration>
+              </execution>
+            </executions>
+          </plugin>
+
+        </plugins>
       </build>
+
     </profile>
 
     <!-- `changelog-release` profile to move `src/changelog/.?.x.x` contents to their associated release directory.
@@ -561,7 +577,7 @@
     <profile>
       <id>changelog-release</id>
       <build>
-        <defaultGoal>log4j-changelog:release</defaultGoal>
+        <defaultGoal>log4j-changelog:release generate-sources</defaultGoal>
         <plugins>
           <plugin>
             <groupId>org.apache.logging.log4j</groupId>
@@ -589,7 +605,7 @@
 
       <build>
 
-        <defaultGoal>log4j-changelog:export@export-changelog enforcer:enforce bsh:run</defaultGoal>
+        <defaultGoal>enforcer:enforce bsh:run</defaultGoal>
 
         <plugins>
 
@@ -672,7 +688,7 @@
 
                 // Find auxiliary files that will go into the binary distribution
                 SortedMap pathByFile = new TreeMap();
-                pathByFile.put("RELEASE-NOTES.adoc", new File("target/release-notes/${project.version}.adoc").toPath());
+                pathByFile.put("RELEASE-NOTES.adoc", new File("src/antora/modules/ROOT/pages/release-notes/${project.version}.adoc").toPath());
                 pathByFile.put("README.adoc", new File("README.adoc").toPath());
                 pathByFile.put("NOTICE.txt", new File("NOTICE.txt").toPath());
                 pathByFile.put("LICENSE.txt", new File("LICENSE.txt").toPath());
@@ -829,7 +845,7 @@
 
     </profile>
 
-    <!-- Generates `src/antora/antora.yml` from `src/antora/antora.tmpl.yml` -->
+    <!-- `antora-tmpl-yml` profile to generate `src/antora/antora.yml` from `src/antora/antora.tmpl.yml` -->
     <profile>
 
       <id>antora-tmpl-yml</id>
@@ -854,7 +870,6 @@
                   <goal>run</goal>
                 </goals>
                 <phase>generate-sources</phase>
-                <inherited>false</inherited>
                 <configuration>
                   <target>
                     <copy overwrite="true" tofile="${project.build.directory}/antora-yml/antora.yml" verbose="true">
@@ -877,7 +892,6 @@
                   <goal>copy-resources</goal>
                 </goals>
                 <phase>process-sources</phase>
-                <inherited>false</inherited>
                 <configuration>
                   <outputDirectory>src/antora</outputDirectory>
                   <resources>
@@ -896,7 +910,7 @@
 
     </profile>
 
-    <!-- Generates `target/site` from `src/antora` -->
+    <!-- `antora` profile to generate `target/site` from `src/antora` -->
     <profile>
 
       <id>antora</id>
@@ -924,44 +938,7 @@
       <build>
         <plugins>
 
-          <!-- export release notes to `target/generated-sources/antora/modules/ROOT/pages/release-notes` -->
-          <plugin>
-            <groupId>org.apache.logging.log4j</groupId>
-            <artifactId>log4j-changelog-maven-plugin</artifactId>
-            <executions>
-              <execution>
-                <id>export-changelog</id>
-                <phase>pre-site</phase>
-              </execution>
-            </executions>
-          </plugin>
-
-          <!-- copy `src/antora` to `target/generated-sources/antora` -->
-          <plugin>
-            <groupId>org.apache.maven.plugins</groupId>
-            <artifactId>maven-resources-plugin</artifactId>
-            <executions>
-              <execution>
-                <id>copy-site</id>
-                <goals>
-                  <goal>copy-resources</goal>
-                </goals>
-                <phase>pre-site</phase>
-                <configuration>
-                  <outputDirectory>${project.build.directory}/generated-sources/antora</outputDirectory>
-                  <resources>
-                    <resource>
-                      <directory>src/antora</directory>
-                      <excludes>
-                        <exclude>*.tmpl.*</exclude>
-                      </excludes>
-                    </resource>
-                  </resources>
-                </configuration>
-              </execution>
-            </executions>
-          </plugin>
-
+          <!-- Install `node`, `npm`, `antora`, etc. -->
           <plugin>
             <groupId>com.github.eirslett</groupId>
             <artifactId>frontend-maven-plugin</artifactId>
@@ -991,6 +968,7 @@
             </executions>
           </plugin>
 
+          <!-- Run `antora` -->
           <plugin>
             <groupId>org.codehaus.mojo</groupId>
             <artifactId>exec-maven-plugin</artifactId>
diff --git a/src/antora/modules/ROOT/pages/release-notes/10.0.0.adoc b/src/antora/modules/ROOT/pages/release-notes/10.0.0.adoc
new file mode 100644
index 0000000..ea9842b
--- /dev/null
+++ b/src/antora/modules/ROOT/pages/release-notes/10.0.0.adoc
@@ -0,0 +1,54 @@
+////
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You 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.
+////
+
+////
+    ██     ██  █████  ██████  ███    ██ ██ ███    ██  ██████  ██
+    ██     ██ ██   ██ ██   ██ ████   ██ ██ ████   ██ ██       ██
+    ██  █  ██ ███████ ██████  ██ ██  ██ ██ ██ ██  ██ ██   ███ ██
+    ██ ███ ██ ██   ██ ██   ██ ██  ██ ██ ██ ██  ██ ██ ██    ██
+     ███ ███  ██   ██ ██   ██ ██   ████ ██ ██   ████  ██████  ██
+
+    IF THIS FILE DOESN'T HAVE A `.ftl` SUFFIX, IT IS AUTO-GENERATED, DO NOT EDIT!
+
+    Version-specific release notes (`7.8.0.adoc`, etc.) are generated from `src/changelog/.changelog.adoc.ftl`.
+    Auto-generation happens during `generate-sources` phase of Maven.
+////
+
+== 10.0.0 (2023-09-08)
+
+This minor release contains various improvements that we expect to relieve the load on `pom.xml` and GitHub Actions workflows of Maven-based projects we parent.
+This is of particular importance while managing and cutting releases from multiple repositories.
+See `README.adoc` for the complete list of features and their usage.
+
+See https://github.com/apache/logging-log4j-tools/actions/runs/6120297528[this `log4j-tools` GitHub Actions workflow run] demonstrating a successful release cut using a SNAPSHOT version of this `logging-parent` release.
+All preparations (release notes, source and binary distributions, vote & announcement emails, etc.) are staged to both Nexus and SVN and waiting the release manager to proceed.
+
+
+=== Added
+
+* Added `changelog-export` profile to easily export changelogs to Markdown files
+* Added `changelog-release` profile to easily move `src/changelog/.?.x.x` contents to their associated release directory
+* Added `deploy` profile to ease the Maven `deploy` goal
+* Added `asciidoc` profile to easily create a distribution file containing Git-tracked sources, release notes, binary attachments, `NOTICE.txt`, etc.
+* Documented release instructions (i.e., `RELEASING.md`)
+* Added `release` profile to share common release-specific Maven configuration
+* Added reusable GitHub Actions workflows to share CI boilerplate for other repositories
+* Switched to using `log4j-changelog-maven-plugin` for managing changelog and release notes
+
+=== Changed
+
+* Switched to semantic versioning (old version: `9`, new version: `10.0.0`)
diff --git a/src/antora/modules/ROOT/pages/release-notes/10.x.x.adoc b/src/antora/modules/ROOT/pages/release-notes/10.x.x.adoc
new file mode 100644
index 0000000..7332533
--- /dev/null
+++ b/src/antora/modules/ROOT/pages/release-notes/10.x.x.adoc
@@ -0,0 +1,52 @@
+////
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You 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.
+////
+
+////
+    ██     ██  █████  ██████  ███    ██ ██ ███    ██  ██████  ██
+    ██     ██ ██   ██ ██   ██ ████   ██ ██ ████   ██ ██       ██
+    ██  █  ██ ███████ ██████  ██ ██  ██ ██ ██ ██  ██ ██   ███ ██
+    ██ ███ ██ ██   ██ ██   ██ ██  ██ ██ ██ ██  ██ ██ ██    ██
+     ███ ███  ██   ██ ██   ██ ██   ████ ██ ██   ████  ██████  ██
+
+    IF THIS FILE DOESN'T HAVE A `.ftl` SUFFIX, IT IS AUTO-GENERATED, DO NOT EDIT!
+
+    Version-specific release notes (`7.8.0.adoc`, etc.) are generated from `src/changelog/.changelog.adoc.ftl`.
+    Auto-generation happens during `generate-sources` phase of Maven.
+////
+
+== 10.x.x
+
+This minor release contains various improvements that we expect to relieve the load on `pom.xml` and GitHub Actions workflows of Maven-based projects we parent.
+This is of particular importance while managing and cutting releases from multiple repositories.
+See `README.adoc` for the complete list of features and their usage.
+
+See [this `logging-log4j-tools` GitHub Actions workflow run](https://github.com/apache/logging-log4j-tools/actions/runs/6120297528) demonstrating a successful release cut using a SNAPSHOT version of this `logging-parent` release.
+All preparations (release notes, distribution ZIP, vote & announcement emails, etc.) are staged to both Nexus and SVN and waiting the release manager to proceed.
+
+
+=== Added
+
+* Added `antora` and `antora-tmpl-yml` profiles to generate Antora-based websites from `src/antora`
+* Added `bootstrap` profile to download support files from `logging-parent`
+
+=== Changed
+
+* Switched the default `log4j-changelog` configuration from Markdown (`.release-notes.md.ftl` and `.index.md.ftl`) to AsciiDoc (`.release-notes.adoc.ftl` and `.index.adoc.ftl`)
+
+=== Removed
+
+* Removed `project.build.outputTimestamp` override since it is already provided by the parent POM and its old value `0` was causing reproducibility issues for `spring-boot:repackage`
diff --git a/src/antora/modules/ROOT/pages/release-notes/index.adoc b/src/antora/modules/ROOT/pages/release-notes/index.adoc
new file mode 100644
index 0000000..d0a460f
--- /dev/null
+++ b/src/antora/modules/ROOT/pages/release-notes/index.adoc
@@ -0,0 +1,34 @@
+////
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You 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.
+////
+
+////
+    ██     ██  █████  ██████  ███    ██ ██ ███    ██  ██████  ██
+    ██     ██ ██   ██ ██   ██ ████   ██ ██ ████   ██ ██       ██
+    ██  █  ██ ███████ ██████  ██ ██  ██ ██ ██ ██  ██ ██   ███ ██
+    ██ ███ ██ ██   ██ ██   ██ ██  ██ ██ ██ ██  ██ ██ ██    ██
+     ███ ███  ██   ██ ██   ██ ██   ████ ██ ██   ████  ██████  ██
+
+    IF THIS FILE IS CALLED `index.adoc`, IT IS AUTO-GENERATED, DO NOT EDIT!
+
+    Release notes `index.adoc` is generated from `src/changelog/.index.adoc.ftl`.
+    Auto-generation happens during `generate-sources` phase of Maven.
+////
+
+= Release Notes
+
+include::10.x.x.adoc[10.x.x]
+include::10.0.0.adoc[10.0.0]
diff --git a/src/changelog/.10.x.x/.release-notes.adoc.ftl b/src/changelog/.10.x.x/.release-notes.adoc.ftl
index e4dbfbf..5cded5b 100644
--- a/src/changelog/.10.x.x/.release-notes.adoc.ftl
+++ b/src/changelog/.10.x.x/.release-notes.adoc.ftl
@@ -1,21 +1,34 @@
-<#--
-  ~ Licensed to the Apache Software Foundation (ASF) under one or more
-  ~ contributor license agreements.  See the NOTICE file distributed with
-  ~ this work for additional information regarding copyright ownership.
-  ~ The ASF licenses this file to you 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.
-  -->
-
-= ${release.version}<#if release.date?has_content> (${release.date})</#if>
+////
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You 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.
+////
+
+////
+    ██     ██  █████  ██████  ███    ██ ██ ███    ██  ██████  ██
+    ██     ██ ██   ██ ██   ██ ████   ██ ██ ████   ██ ██       ██
+    ██  █  ██ ███████ ██████  ██ ██  ██ ██ ██ ██  ██ ██   ███ ██
+    ██ ███ ██ ██   ██ ██   ██ ██  ██ ██ ██ ██  ██ ██ ██    ██
+     ███ ███  ██   ██ ██   ██ ██   ████ ██ ██   ████  ██████  ██
+
+    IF THIS FILE DOESN'T HAVE A `.ftl` SUFFIX, IT IS AUTO-GENERATED, DO NOT EDIT!
+
+    Version-specific release notes (`7.8.0.adoc`, etc.) are generated from `src/changelog/.changelog.adoc.ftl`.
+    Auto-generation happens during `generate-sources` phase of Maven.
+////
+
+== ${release.version}<#if release.date?has_content> (${release.date})</#if>
 
 This minor release contains various improvements that we expect to relieve the load on `pom.xml` and GitHub Actions workflows of Maven-based projects we parent.
 This is of particular importance while managing and cutting releases from multiple repositories.
diff --git a/src/changelog/.index.adoc.ftl b/src/changelog/.index.adoc.ftl
index 46b3907..97f5d7a 100644
--- a/src/changelog/.index.adoc.ftl
+++ b/src/changelog/.index.adoc.ftl
@@ -1,19 +1,32 @@
-<#--
-  ~ Licensed to the Apache Software Foundation (ASF) under one or more
-  ~ contributor license agreements.  See the NOTICE file distributed with
-  ~ this work for additional information regarding copyright ownership.
-  ~ The ASF licenses this file to you 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.
-  -->
+////
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You 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.
+////
+
+////
+    ██     ██  █████  ██████  ███    ██ ██ ███    ██  ██████  ██
+    ██     ██ ██   ██ ██   ██ ████   ██ ██ ████   ██ ██       ██
+    ██  █  ██ ███████ ██████  ██ ██  ██ ██ ██ ██  ██ ██   ███ ██
+    ██ ███ ██ ██   ██ ██   ██ ██  ██ ██ ██ ██  ██ ██ ██    ██
+     ███ ███  ██   ██ ██   ██ ██   ████ ██ ██   ████  ██████  ██
+
+    IF THIS FILE IS CALLED `index.adoc`, IT IS AUTO-GENERATED, DO NOT EDIT!
+
+    Release notes `index.adoc` is generated from `src/changelog/.index.adoc.ftl`.
+    Auto-generation happens during `generate-sources` phase of Maven.
+////
 
 = Release Notes
 
diff --git a/src/changelog/10.0.0/.release-notes.adoc.ftl b/src/changelog/10.0.0/.release-notes.adoc.ftl
index c85dfb3..897be4c 100644
--- a/src/changelog/10.0.0/.release-notes.adoc.ftl
+++ b/src/changelog/10.0.0/.release-notes.adoc.ftl
@@ -1,21 +1,34 @@
-<#--
-  ~ Licensed to the Apache Software Foundation (ASF) under one or more
-  ~ contributor license agreements.  See the NOTICE file distributed with
-  ~ this work for additional information regarding copyright ownership.
-  ~ The ASF licenses this file to you 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.
-  -->
-
-= ${release.version}<#if release.date?has_content> (${release.date})</#if>
+////
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You 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.
+////
+
+////
+    ██     ██  █████  ██████  ███    ██ ██ ███    ██  ██████  ██
+    ██     ██ ██   ██ ██   ██ ████   ██ ██ ████   ██ ██       ██
+    ██  █  ██ ███████ ██████  ██ ██  ██ ██ ██ ██  ██ ██   ███ ██
+    ██ ███ ██ ██   ██ ██   ██ ██  ██ ██ ██ ██  ██ ██ ██    ██
+     ███ ███  ██   ██ ██   ██ ██   ████ ██ ██   ████  ██████  ██
+
+    IF THIS FILE DOESN'T HAVE A `.ftl` SUFFIX, IT IS AUTO-GENERATED, DO NOT EDIT!
+
+    Version-specific release notes (`7.8.0.adoc`, etc.) are generated from `src/changelog/.changelog.adoc.ftl`.
+    Auto-generation happens during `generate-sources` phase of Maven.
+////
+
+== ${release.version}<#if release.date?has_content> (${release.date})</#if>
 
 This minor release contains various improvements that we expect to relieve the load on `pom.xml` and GitHub Actions workflows of Maven-based projects we parent.
 This is of particular importance while managing and cutting releases from multiple repositories.