You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@logging.apache.org by ma...@apache.org on 2023/01/30 01:14:04 UTC

[logging-log4j-kotlin] 04/11: Migrate to same changelog and site config as log4j

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

mattsicker pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/logging-log4j-kotlin.git

commit ec3429c693115976ba112a9ad5a3a569a63ea6f5
Author: Matt Sicker <ma...@apache.org>
AuthorDate: Sun Jan 29 18:28:07 2023 -0600

    Migrate to same changelog and site config as log4j
---
 CHANGELOG.adoc                                     |  77 +++
 log4j-api-kotlin-benchmark/pom.xml                 |  14 +-
 log4j-api-kotlin-sample/pom.xml                    |  13 +-
 log4j-api-kotlin-sample/src/site/site.xml          |  52 --
 log4j-api-kotlin/pom.xml                           |  61 +-
 log4j-api-kotlin/src/site/site.xml                 |  52 --
 pom.xml                                            | 621 +++++++++++++--------
 src/assembly/site.xml                              |  30 +
 .../changelog/.1.x.x/.changelog.adoc.ftl           |  17 +-
 src/changelog/.1.x.x/28-Update_Log4j_baseline.xml  |  11 +
 .../29-Add_extension_property_for_logger.xml       |  10 +
 .../30-Add_facade_APIs_for_ThreadContext.xml       |  10 +
 src/changelog/.changelog-entries.adoc.ftl          |  37 ++
 .../index.adoc => src/changelog/.index.adoc.ftl    |  17 +-
 .../changelog/1.0.0/.changelog.adoc.ftl            |  21 +-
 src/changelog/1.0.0/.release.xml                   |  18 +
 .../1.0.0/LOG4J2-1705_Create_Kotlin_API.xml        |  11 +
 ...4J2-2432_Make_namedLogger_more_discoverable.xml |  11 +
 .../changelog/1.1.0/.changelog.adoc.ftl            |  17 +-
 src/changelog/1.1.0/.release.xml                   |  18 +
 .../LOG4J2-2433_Support_MDCs_with_coroutines.xml   |  10 +
 .../LOG4J2-2518_Support_suspend_functions.xml      |  10 +
 ...OG4J2-2843_Update_Kotlin_baseline_to_1.3.72.xml |  10 +
 .../changelog/1.2.0/.changelog.adoc.ftl            |  17 +-
 src/changelog/1.2.0/.release.xml                   |  18 +
 .../1.2.0/LOG4J2-3218_Update_Log4j_baseline.xml    |  10 +
 src/changes/announcement.vm                        |  90 ---
 src/changes/changes.xml                            |  70 ---
 src/site/asciidoc/build.adoc                       |   2 +-
 29 files changed, 745 insertions(+), 610 deletions(-)

diff --git a/CHANGELOG.adoc b/CHANGELOG.adoc
new file mode 100644
index 0000000..701f863
--- /dev/null
+++ b/CHANGELOG.adoc
@@ -0,0 +1,77 @@
+////
+    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
+
+         https://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.
+////
+
+:log4j-changelog-ref: https://github.com/apache/logging-log4j-tools/tree/master/log4j-changelog[log4j-changelog]
+
+== Where are changelogs stored?
+
+Changelogs are stored in xref:src/changelog[`src/changelog`] directory.
+
+{log4j-changelog-ref} is used to generate AsciiDoc-formatted changelog files during Maven `pre-site` phase and export them to xref:target/generated-sources/site/asciidoc/changelog[`target/generated-sources/site/asciidoc/changelog`] directory.
+These exported AsciiDoc files are not committed, since they are only relevant for the website, and they cause merge-conflicts between feature branches.
+`./mvnw site` command can be used to manually generate these files.
+
+See {log4j-changelog-ref} project for further details; how to use this changelog system, what steps are needed while making a new release, etc.
+
+== I am about to deploy a new release. What shall I do?
+
+Just before a release, three things need to happen in the changelog sources:
+
+. *changelog entry files needs to be moved* from the _upcoming_ release changelog directory `src/changelog/.<releaseVersionMajor>.x.x`  to the _new_ release changelog directory `src/changelog/<releaseVersion>`
+. *`.changelog.adoc.ftl` needs to be copied* from the _upcoming_ release changelog directory to the _new_ release changelog directory, unless it already exists in the target
+. *`.release.xml` needs to be created* in the _new_ release changelog directory
+
+Due to the nature of release candidates, above steps might need to be repeated multiple times.
+
+[TIP]
+====
+Log4j _releases_ and _release candidates_ all get deployed to the same https://repository.apache.org/#stagingRepositories[_staging repository_].
+Their `pom.xml` files all contain the same release version, e.g., `1.0.0`.
+There are no `-rc1`, `-rc2`, etc. suffixes in the version of a release candidate.
+Once a release candidate voting reaches to a consensus for release, associated artifacts simply get promoted from the _staging_ to the _public_ repository.
+Hence, there are no differences between releases and release candidates.
+====
+
+How to carry out aforementioned changes are explained below in steps:
+
+. Populate the `src/changelog/<releaseVersion>` directory (e.g., `src/changelog/1.0.0`) from the upcoming release changelog directory (e.g., `src/changelog/.1.x.x`):
++
+[source,bash]
+----
+./mvnw -N -P changelog-releaser
+----
++
+[IMPORTANT]
+====
+`changelog-releaser` Maven profile obtains the new release version from `Log4jReleaseVersion` property.
+If needed, you can override it to point to another release version:
+
+[source,bash]
+----
+./mvnw -N -P changelog-releaser -DLog4jReleaseVersion=6.6.6
+----
+====
+. Verify that all changelog entry files are moved from `src/changelog/.<releaseVersionMajor>.x.x` directory (e.g., `src/changelog/.1.x.x`)
+. Verify that `src/changelog/<releaseVersion>` directory (e.g., `src/changelog/1.0.0`) is created, and it contains `.changelog.adoc.ftl`, `.release.xml`, and changelog entry files
++
+[IMPORTANT]
+====
+If `src/changelog/<releaseVersion>` directory (e.g., `src/changelog/1.0.0`) already exists with certain content, `changelog-releaser` profile will only move new changelog entry files and override `.release.xml`; `.changelog.adoc.ftl` will not be touched, if it already exists.
+This allows one to run `changelog-releaser` profile multiple times, e.g., to incorporate changes added to a release candidate.
+====
+. Edit the populated `.changelog.adoc.ftl`
+. `git add` the changes in `src/changelog` and commit them
diff --git a/log4j-api-kotlin-benchmark/pom.xml b/log4j-api-kotlin-benchmark/pom.xml
index ff39951..bc15835 100644
--- a/log4j-api-kotlin-benchmark/pom.xml
+++ b/log4j-api-kotlin-benchmark/pom.xml
@@ -16,7 +16,9 @@
  limitations under the License.
 -->
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+
   <modelVersion>4.0.0</modelVersion>
+
   <parent>
     <groupId>org.apache.logging.log4j</groupId>
     <artifactId>log4j-api-kotlin-parent</artifactId>
@@ -26,9 +28,9 @@
   <artifactId>log4j-api-kotlin-benchmark</artifactId>
   <version>1.3.0-SNAPSHOT</version>
   <packaging>jar</packaging>
+
   <name>Apache Log4j Kotlin API Benchmark</name>
   <description>Benchmarking the Log4j Kotlin API</description>
-  <url>http://http://logging.apache.org/log4j/2.x/</url>
 
   <properties>
     <log4jParentDir>${basedir}/..</log4jParentDir>
@@ -40,35 +42,39 @@
   </properties>
 
   <dependencies>
+
     <dependency>
       <groupId>org.jetbrains.kotlin</groupId>
       <artifactId>kotlin-stdlib</artifactId>
-      <version>${kotlin.version}</version>
     </dependency>
+
     <dependency>
       <groupId>org.jetbrains.kotlin</groupId>
       <artifactId>kotlin-reflect</artifactId>
-      <version>${kotlin.version}</version>
     </dependency>
+
     <dependency>
       <groupId>org.jetbrains.kotlinx</groupId>
       <artifactId>kotlinx-coroutines-jdk8</artifactId>
-      <version>${kotlinx.coroutines.version}</version>
     </dependency>
+
     <dependency>
       <groupId>org.apache.logging.log4j</groupId>
       <artifactId>log4j-api-kotlin</artifactId>
     </dependency>
+
     <dependency>
       <groupId>org.apache.logging.log4j</groupId>
       <artifactId>log4j-core</artifactId>
       <scope>runtime</scope>
     </dependency>
+
     <dependency>
       <groupId>org.openjdk.jmh</groupId>
       <artifactId>jmh-core</artifactId>
       <version>${jmh.version}</version>
     </dependency>
+
   </dependencies>
 
   <build>
diff --git a/log4j-api-kotlin-sample/pom.xml b/log4j-api-kotlin-sample/pom.xml
index 974cd27..1679e84 100644
--- a/log4j-api-kotlin-sample/pom.xml
+++ b/log4j-api-kotlin-sample/pom.xml
@@ -16,7 +16,9 @@
  limitations under the License.
 -->
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+
   <modelVersion>4.0.0</modelVersion>
+
   <parent>
     <groupId>org.apache.logging.log4j</groupId>
     <artifactId>log4j-api-kotlin-parent</artifactId>
@@ -26,39 +28,42 @@
   <artifactId>log4j-api-kotlin-sample</artifactId>
   <version>1.3.0-SNAPSHOT</version>
   <packaging>jar</packaging>
+
   <name>Apache Log4j Kotlin API Samples</name>
   <description>Sample usage of the Log4j Kotlin API</description>
-  <url>http://http://logging.apache.org/log4j/2.x/</url>
 
   <properties>
     <log4jParentDir>${basedir}/..</log4jParentDir>
   </properties>
 
   <dependencies>
+
     <dependency>
       <groupId>org.jetbrains.kotlin</groupId>
       <artifactId>kotlin-stdlib</artifactId>
-      <version>${kotlin.version}</version>
     </dependency>
+
     <dependency>
       <groupId>org.jetbrains.kotlin</groupId>
       <artifactId>kotlin-reflect</artifactId>
-      <version>${kotlin.version}</version>
     </dependency>
+
     <dependency>
       <groupId>org.jetbrains.kotlinx</groupId>
       <artifactId>kotlinx-coroutines-jdk8</artifactId>
-      <version>${kotlinx.coroutines.version}</version>
     </dependency>
+
     <dependency>
       <groupId>org.apache.logging.log4j</groupId>
       <artifactId>log4j-api-kotlin</artifactId>
     </dependency>
+
     <dependency>
       <groupId>org.apache.logging.log4j</groupId>
       <artifactId>log4j-core</artifactId>
       <scope>runtime</scope>
     </dependency>
+
   </dependencies>
 
   <build>
diff --git a/log4j-api-kotlin-sample/src/site/site.xml b/log4j-api-kotlin-sample/src/site/site.xml
deleted file mode 100644
index c438475..0000000
--- a/log4j-api-kotlin-sample/src/site/site.xml
+++ /dev/null
@@ -1,52 +0,0 @@
-<!--
- 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.
-
--->
-<project name="Log4j Kotlin API Samples"
-         xmlns="http://maven.apache.org/DECORATION/1.4.0"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/DECORATION/1.4.0 http://maven.apache.org/xsd/decoration-1.4.0.xsd">
-  <body>
-    <links>
-      <item name="Logging Wiki" href="https://wiki.apache.org/logging"/>
-      <item name="Apache" href="https://www.apache.org/"/>
-      <item name="Logging Services" href="https://logging.apache.org/"/>
-      <item name="GitHub" href="https://github.com/apache/logging-log4j-audit"/>
-      <item name="Log4j Kotlin" href="../index.html"/>
-    </links>
-
-    <!-- Component-specific reports -->
-    <menu ref="reports"/>
-
-    <menu name="Project Information" img="icon-info-sign">
-      <item name="Dependencies" href="/dependencies.html" />
-      <item name="Dependency Convergence" href="/dependency-convergence.html" />
-      <item name="Dependency Management" href="/dependency-management.html" />
-      <item name="Mailing Lists" href="/mail-lists.html" />
-      <item name="Issue Tracking" href="/issue-tracking.html" />
-      <item name="Project License" href="/license.html" />
-      <item name="Source Repository" href="/source-repository.html" />
-      <item name="Project Summary" href="/project-summary.html" />
-    </menu>
-
-    <menu name="Project Reports" img="icon-cog">
-      <item name="Changes Report" href="/changes-report.html" />
-      <item name="JIRA Report" href="/jira-report.html" />
-      <item name="RAT Report" href="/rat-report.html" />
-    </menu>
-
-  </body>
-</project>
\ No newline at end of file
diff --git a/log4j-api-kotlin/pom.xml b/log4j-api-kotlin/pom.xml
index f349a79..3a06480 100644
--- a/log4j-api-kotlin/pom.xml
+++ b/log4j-api-kotlin/pom.xml
@@ -16,7 +16,9 @@
  limitations under the License.
 -->
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+
   <modelVersion>4.0.0</modelVersion>
+
   <parent>
     <groupId>org.apache.logging.log4j</groupId>
     <artifactId>log4j-api-kotlin-parent</artifactId>
@@ -26,6 +28,7 @@
   <artifactId>log4j-api-kotlin</artifactId>
   <version>1.3.0-SNAPSHOT</version>
   <packaging>jar</packaging>
+
   <name>Apache Log4j Kotlin API</name>
   <description>Kotlin wrapper for Log4j API</description>
 
@@ -34,82 +37,78 @@
   </properties>
 
   <dependencies>
+
     <dependency>
       <groupId>org.apache.logging.log4j</groupId>
       <artifactId>log4j-api</artifactId>
     </dependency>
+
     <dependency>
       <groupId>org.jetbrains.kotlin</groupId>
       <artifactId>kotlin-stdlib</artifactId>
-      <version>${kotlin.version}</version>
+      <!-- this is a minimum kotlin version only -->
       <scope>provided</scope>
     </dependency>
+
     <dependency>
       <groupId>org.jetbrains.kotlin</groupId>
       <artifactId>kotlin-reflect</artifactId>
-      <version>${kotlin.version}</version>
+      <!-- this is a minimum kotlin version only -->
       <scope>provided</scope>
     </dependency>
+
     <dependency>
       <groupId>org.jetbrains.kotlinx</groupId>
       <artifactId>kotlinx-coroutines-jdk8</artifactId>
-      <version>${kotlinx.coroutines.version}</version>
+      <!-- this is a minimum kotlin version only -->
       <scope>provided</scope>
     </dependency>
+
     <dependency>
       <groupId>org.apache.logging.log4j</groupId>
       <artifactId>log4j-api</artifactId>
       <type>test-jar</type>
       <scope>test</scope>
     </dependency>
+
     <dependency>
       <groupId>org.apache.logging.log4j</groupId>
       <artifactId>log4j-core</artifactId>
       <scope>test</scope>
     </dependency>
+
     <dependency>
       <groupId>org.apache.logging.log4j</groupId>
       <artifactId>log4j-core</artifactId>
       <type>test-jar</type>
       <scope>test</scope>
     </dependency>
+
     <dependency>
       <groupId>junit</groupId>
       <artifactId>junit</artifactId>
-      <version>4.13.1</version>
       <scope>test</scope>
     </dependency>
+
+    <dependency>
+      <groupId>org.jetbrains.kotlin</groupId>
+      <artifactId>kotlin-test-junit</artifactId>
+      <scope>test</scope>
+    </dependency>
+
     <dependency>
       <groupId>org.mockito.kotlin</groupId>
       <artifactId>mockito-kotlin</artifactId>
-      <version>4.0.0</version>
       <scope>test</scope>
     </dependency>
+
   </dependencies>
 
   <build>
     <sourceDirectory>src/main/kotlin</sourceDirectory>
     <testSourceDirectory>src/test/kotlin</testSourceDirectory>
     <plugins>
-      <plugin>
-        <artifactId>kotlin-maven-plugin</artifactId>
-        <groupId>org.jetbrains.kotlin</groupId>
-        <version>${kotlin.version}</version>
-        <executions>
-          <execution>
-            <id>compile</id>
-            <goals>
-              <goal>compile</goal>
-            </goals>
-          </execution>
-          <execution>
-            <id>test-compile</id>
-            <goals>
-              <goal>test-compile</goal>
-            </goals>
-          </execution>
-        </executions>
-      </plugin>
+
       <plugin>
         <groupId>org.jetbrains.dokka</groupId>
         <artifactId>dokka-maven-plugin</artifactId>
@@ -125,6 +124,7 @@
           <skip>false</skip>
         </configuration>
       </plugin>
+
       <plugin>
         <groupId>biz.aQute.bnd</groupId>
         <artifactId>bnd-maven-plugin</artifactId>
@@ -139,6 +139,7 @@
           </execution>
         </executions>
       </plugin>
+
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-jar-plugin</artifactId>
@@ -148,6 +149,7 @@
           </archive>
         </configuration>
       </plugin>
+
       <plugin>
         <artifactId>maven-assembly-plugin</artifactId>
         <executions>
@@ -163,16 +165,9 @@
           </execution>
         </executions>
       </plugin>
+
     </plugins>
+
   </build>
 
-  <reporting>
-    <plugins>
-      <plugin>
-        <groupId>org.jetbrains.kotlin</groupId>
-        <artifactId>kotlin-maven-plugin</artifactId>
-        <version>${kotlin.version}</version>
-      </plugin>
-    </plugins>
-  </reporting>
 </project>
diff --git a/log4j-api-kotlin/src/site/site.xml b/log4j-api-kotlin/src/site/site.xml
deleted file mode 100644
index 2aec388..0000000
--- a/log4j-api-kotlin/src/site/site.xml
+++ /dev/null
@@ -1,52 +0,0 @@
-<!--
- 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.
-
--->
-<project name="Log4j Kotlin API"
-         xmlns="http://maven.apache.org/DECORATION/1.4.0"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/DECORATION/1.4.0 http://maven.apache.org/xsd/decoration-1.4.0.xsd">
-  <body>
-    <links>
-      <item name="Logging Wiki" href="https://wiki.apache.org/logging"/>
-      <item name="Apache" href="https://www.apache.org/"/>
-      <item name="Logging Services" href="https://logging.apache.org/"/>
-      <item name="GitHub" href="https://github.com/apache/logging-log4j-audit"/>
-      <item name="Log4j Kotlin" href="../index.html"/>
-    </links>
-
-    <!-- Component-specific reports -->
-    <menu ref="reports"/>
-
-    <menu name="Project Information" img="icon-info-sign">
-      <item name="Dependencies" href="/dependencies.html" />
-      <item name="Dependency Convergence" href="/dependency-convergence.html" />
-      <item name="Dependency Management" href="/dependency-management.html" />
-      <item name="Mailing Lists" href="/mail-lists.html" />
-      <item name="Issue Tracking" href="/issue-tracking.html" />
-      <item name="Project License" href="/license.html" />
-      <item name="Source Repository" href="/source-repository.html" />
-      <item name="Project Summary" href="/project-summary.html" />
-    </menu>
-
-    <menu name="Project Reports" img="icon-cog">
-      <item name="Changes Report" href="/changes-report.html" />
-      <item name="JIRA Report" href="/jira-report.html" />
-      <item name="RAT Report" href="/rat-report.html" />
-    </menu>
-
-  </body>
-</project>
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index ea77ec7..b250782 100644
--- a/pom.xml
+++ b/pom.xml
@@ -16,7 +16,9 @@
   ~ limitations under the license.
   -->
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+
   <modelVersion>4.0.0</modelVersion>
+
   <parent>
     <groupId>org.apache.logging</groupId>
     <artifactId>logging-parent</artifactId>
@@ -26,12 +28,72 @@
 
   <groupId>org.apache.logging.log4j</groupId>
   <artifactId>log4j-api-kotlin-parent</artifactId>
-  <version>1.3.0-SNAPSHOT</version>
   <packaging>pom</packaging>
-  <name>Apache Log4j Kotlin API Parent</name>
-  <description>Apache Log4j Kotlin API parent project</description>
+  <version>1.3.0-SNAPSHOT</version>
 
+  <name>Apache Log4j Kotlin API</name>
+  <description>
+    Apache Log4j Kotlin API is a logging API library for Kotlin based on Log4j API. A logging backend such as
+    Log4j Core must also be used for configuring what happens to log messages.
+  </description>
   <url>https://logging.apache.org/log4j/kotlin/</url>
+  <issueManagement>
+    <system>GitHub Issues</system>
+    <url>https://github.com/apache/logging-log4j-kotlin/issues</url>
+  </issueManagement>
+
+  <ciManagement>
+    <system>Jenkins</system>
+    <url>https://builds.apache.org/job/Logging/job/log4j-kotlin/</url>
+  </ciManagement>
+
+  <!-- Developer IDs are used to map author IDs to names while exporting changelogs.
+     Hence, updates here need to be reflected to `.changelog-entries.adoc.ftl` too. -->
+  <developers>
+
+    <developer>
+      <id>rgupta</id>
+      <name>Raman Gupta</name>
+      <email>rocketraman@apache.org</email>
+      <roles>
+        <role>Committer</role>
+      </roles>
+    </developer>
+
+    <developer>
+      <id>mattsicker</id>
+      <name>Matt Sicker</name>
+      <email>mattsicker@apache.org</email>
+      <organization>Apple</organization>
+      <roles>
+        <role>PMC Member</role>
+        <role>Committer</role>
+      </roles>
+      <timezone>America/Chicago</timezone>
+    </developer>
+
+  </developers>
+
+  <mailingLists>
+
+    <mailingList>
+      <name>log4j-user</name>
+      <subscribe>log4j-user-subscribe@logging.apache.org</subscribe>
+      <unsubscribe>log4j-user-unsubscribe@logging.apache.org</unsubscribe>
+      <post>log4j-user@logging.apache.org</post>
+      <archive>https://lists.apache.org/list.html?log4j-user@logging.apache.org</archive>
+    </mailingList>
+
+    <mailingList>
+      <name>dev</name>
+      <subscribe>dev-subscribe@logging.apache.org</subscribe>
+      <unsubscribe>dev-unsubscribe@logging.apache.org</unsubscribe>
+      <post>dev@logging.apache.org</post>
+      <archive>https://lists.apache.org/list.html?dev@logging.apache.org</archive>
+    </mailingList>
+
+  </mailingLists>
+
   <scm>
     <connection>scm:git:https://gitbox.apache.org/repos/asf/logging-log4j-kotlin.git</connection>
     <developerConnection>scm:git:https://gitbox.apache.org/repos/asf/logging-log4j-kotlin.git</developerConnection>
@@ -39,96 +101,155 @@
     <tag>HEAD</tag>
   </scm>
 
-  <distributionManagement>
-    <site>
-      <id>apache.website</id>
-      <url>scp://people.apache.org/www/logging.apache.org/log4j-kotlin-api</url>
-    </site>
-  </distributionManagement>
-
-  <issueManagement>
-    <system>GitHub Issues</system>
-    <url>https://github.com/apache/logging-log4j-kotlin/issues</url>
-  </issueManagement>
-
   <properties>
+
+    <!-- ===========================
+         Release-specific properties
+         =========================== -->
+    <log4jParentDir>${basedir}</log4jParentDir>
     <Log4jKotlinVersion>1.3.0</Log4jKotlinVersion>
+    <Log4jReleaseVersion>${Log4jKotlinVersion}</Log4jReleaseVersion>
     <Log4jReleaseManager>Matt Sicker</Log4jReleaseManager>
     <Log4jReleaseKey>8378BFAAD82FE5AA602AC356031EE010CA15D1EE</Log4jReleaseKey>
-    <changes.plugin.version>2.12</changes.plugin.version>
-    <checkstyle.plugin.version>2.17</checkstyle.plugin.version>
-    <dokka.plugin.version>0.9.17</dokka.plugin.version>
-    <bnd.plugin.version>5.2.0</bnd.plugin.version>
-    <findbugs.plugin.version>3.0.5</findbugs.plugin.version>
-    <javadoc.plugin.version>3.4.0</javadoc.plugin.version>
-    <jxr.plugin.version>2.5</jxr.plugin.version>
+    <Log4jSigningUserName>mattsicker@apache.org</Log4jSigningUserName>
+
+    <!-- =================
+         Common properties
+         ================= -->
+    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+    <!-- Skipping `maven-site-plugin` globally.
+         It is manually enabled only for the parent module below. -->
+    <maven.site.skip>true</maven.site.skip>
+    <maven.site.deploy.skip>true</maven.site.deploy.skip>
+
+    <!-- ██     ██  █████  ██████  ███    ██ ██ ███    ██  ██████  ██
+     ██     ██ ██   ██ ██   ██ ████   ██ ██ ████   ██ ██       ██
+     ██  █  ██ ███████ ██████  ██ ██  ██ ██ ██ ██  ██ ██   ███ ██
+     ██ ███ ██ ██   ██ ██   ██ ██  ██ ██ ██ ██  ██ ██ ██    ██
+      ███ ███  ██   ██ ██   ██ ██   ████ ██ ██   ████  ██████  ██
+
+     Dependency and plugin version properties might have many implications beyond their simple appearance!
+     Walk through the following checklist before making a change in these properties!
+
+     1. Follow the `<artifactId>.version` naming convention
+     2. Make sure properties are sorted in alphabetical order
+     3. Check parent POMs for any associations.
+        For instance, Maven Surefire Plugin version property is such an exception.
+        It is named as `surefire.version` rather than `maven-surefire-plugin.version`, since `surefire.version` is already employed by `apache.org:apache` parent POM.
+     4. Think of consequences when users _import_ this POM along with, e.g., `spring-boot-dependencies` BOM -->
+
+    <!-- =================================================
+         Plugin version properties (in alphabetical order)
+         ================================================= -->
+    <apache-rat-plugin.version>0.12</apache-rat-plugin.version>
+    <asciidoctor-maven-plugin.version>2.2.2</asciidoctor-maven-plugin.version>
+    <bnd-maven-plugin.version>5.2.0</bnd-maven-plugin.version>
+    <dokka-maven-plugin.version>0.9.17</dokka-maven-plugin.version>
+    <exec-maven-plugin.version>3.1.0</exec-maven-plugin.version>
+    <findbugs-maven-plugin.version>3.0.5</findbugs-maven-plugin.version>
+    <log4j-tools.version>0.1.0</log4j-tools.version>
+    <maven-changes-plugin.version>2.12</maven-changes-plugin.version>
+    <maven-checkstyle-plugin.version>2.17</maven-checkstyle-plugin.version>
+    <maven-javadoc-plugin.version>3.4.0</maven-javadoc-plugin.version>
+    <maven-jxr-plugin.version>2.5</maven-jxr-plugin.version>
+    <maven-pmd-plugin.version>3.8</maven-pmd-plugin.version>
+    <maven-site-plugin.version>3.11.0</maven-site-plugin.version>
+    <!-- `surefire.version` property used in `apache.org:apache`: -->
+    <surefire.version>2.22.1</surefire.version>
+
+    <!-- =====================================================
+         Dependency version properties (in alphabetical order)
+         ===================================================== -->
+    <log4j.version>2.19.0</log4j.version>
     <kotlin.version>1.3.72</kotlin.version>
     <kotlinx.coroutines.version>1.3.6</kotlinx.coroutines.version>
-    <log4j.version>2.19.0</log4j.version>
-    <pmd.plugin.version>3.8</pmd.plugin.version>
-    <rat.plugin.version>0.12</rat.plugin.version>
-    <site.plugin.version>3.11.0</site.plugin.version>
-    <asciidoc.plugin.version>2.2.2</asciidoc.plugin.version>
-    <surefire.plugin.version>2.22.1</surefire.plugin.version>
-    <log4jParentDir>${basedir}</log4jParentDir>
+
   </properties>
 
   <dependencyManagement>
     <dependencies>
+
       <dependency>
         <groupId>org.apache.logging.log4j</groupId>
-        <artifactId>log4j-api-kotlin</artifactId>
-        <version>${project.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.logging.log4j</groupId>
-        <artifactId>log4j-api</artifactId>
+        <artifactId>log4j-bom</artifactId>
         <version>${log4j.version}</version>
+        <type>pom</type>
+        <scope>import</scope>
       </dependency>
+
       <dependency>
         <groupId>org.apache.logging.log4j</groupId>
-        <artifactId>log4j-core</artifactId>
-        <version>${log4j.version}</version>
+        <artifactId>log4j-api-kotlin</artifactId>
+        <version>${project.version}</version>
       </dependency>
+
       <dependency>
         <groupId>org.apache.logging.log4j</groupId>
         <artifactId>log4j-api</artifactId>
         <version>${log4j.version}</version>
         <type>test-jar</type>
-        <scope>test</scope>
       </dependency>
+
       <dependency>
         <groupId>org.apache.logging.log4j</groupId>
         <artifactId>log4j-core</artifactId>
         <version>${log4j.version}</version>
         <type>test-jar</type>
-        <scope>test</scope>
       </dependency>
+
+      <dependency>
+        <groupId>org.jetbrains.kotlin</groupId>
+        <artifactId>kotlin-stdlib</artifactId>
+        <version>${kotlin.version}</version>
+      </dependency>
+
+      <dependency>
+        <groupId>org.jetbrains.kotlin</groupId>
+        <artifactId>kotlin-reflect</artifactId>
+        <version>${kotlin.version}</version>
+      </dependency>
+
+      <dependency>
+        <groupId>org.jetbrains.kotlinx</groupId>
+        <artifactId>kotlinx-coroutines-jdk8</artifactId>
+        <version>${kotlinx.coroutines.version}</version>
+      </dependency>
+
+      <dependency>
+        <groupId>junit</groupId>
+        <artifactId>junit</artifactId>
+        <version>4.13.2</version>
+      </dependency>
+
+      <dependency>
+        <groupId>org.jetbrains.kotlin</groupId>
+        <artifactId>kotlin-test-junit</artifactId>
+        <version>${kotlin.version}</version>
+      </dependency>
+
+      <dependency>
+        <groupId>org.mockito.kotlin</groupId>
+        <artifactId>mockito-kotlin</artifactId>
+        <version>4.0.0</version>
+      </dependency>
+
     </dependencies>
-  </dependencyManagement>
 
-  <dependencies>
-    <dependency>
-      <groupId>org.jetbrains.kotlin</groupId>
-      <artifactId>kotlin-stdlib</artifactId>
-      <version>${kotlin.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>org.jetbrains.kotlin</groupId>
-      <artifactId>kotlin-test</artifactId>
-      <version>${kotlin.version}</version>
-      <scope>test</scope>
-    </dependency>
-  </dependencies>
+  </dependencyManagement>
 
   <build>
+    <defaultGoal>verify</defaultGoal>
+
     <pluginManagement>
+
       <plugins>
+
         <plugin>
-          <groupId>org.apache.maven.plugins</groupId>
-          <artifactId>maven-surefire-plugin</artifactId>
-          <version>${surefire.plugin.version}</version>
+          <groupId>org.jetbrains.kotlin</groupId>
+          <artifactId>kotlin-maven-plugin</artifactId>
+          <version>${kotlin.version}</version>
         </plugin>
+
         <plugin>
           <groupId>org.apache.maven.plugins</groupId>
           <artifactId>maven-source-plugin</artifactId>
@@ -141,19 +262,55 @@
             </execution>
           </executions>
         </plugin>
+
         <plugin>
           <groupId>org.jetbrains.dokka</groupId>
           <artifactId>dokka-maven-plugin</artifactId>
-          <version>${dokka.plugin.version}</version>
+          <version>${dokka-maven-plugin.version}</version>
         </plugin>
+
         <plugin>
           <groupId>biz.aQute.bnd</groupId>
           <artifactId>bnd-maven-plugin</artifactId>
-          <version>${bnd.plugin.version}</version>
+          <version>${bnd-maven-plugin.version}</version>
+        </plugin>
+
+        <plugin>
+          <groupId>org.asciidoctor</groupId>
+          <artifactId>asciidoctor-maven-plugin</artifactId>
+          <version>${asciidoctor-maven-plugin.version}</version>
+        </plugin>
+
+        <plugin>
+          <groupId>org.apache.maven.plugins</groupId>
+          <artifactId>maven-site-plugin</artifactId>
+          <version>${maven-site-plugin.version}</version>
+          <dependencies>
+            <dependency>
+              <groupId>org.apache.maven.wagon</groupId>
+              <artifactId>wagon-ssh</artifactId>
+              <version>2.9</version>
+            </dependency>
+            <dependency>
+              <groupId>org.asciidoctor</groupId>
+              <artifactId>asciidoctor-maven-plugin</artifactId>
+              <version>${asciidoctor-maven-plugin.version}</version>
+            </dependency>
+          </dependencies>
+        </plugin>
+
+        <plugin>
+          <groupId>org.codehaus.mojo</groupId>
+          <artifactId>exec-maven-plugin</artifactId>
+          <version>${exec-maven-plugin.version}</version>
         </plugin>
+
       </plugins>
+
     </pluginManagement>
+
     <plugins>
+
       <plugin>
         <groupId>org.jetbrains.kotlin</groupId>
         <artifactId>kotlin-maven-plugin</artifactId>
@@ -175,59 +332,122 @@
           </execution>
         </executions>
       </plugin>
+
+      <!-- ███████ ████████  █████  ██████  ████████        ███████ ██ ████████ ███████
+           ██         ██    ██   ██ ██   ██    ██    ██     ██      ██    ██    ██
+           ███████    ██    ███████ ██████     ██           ███████ ██    ██    █████
+                ██    ██    ██   ██ ██   ██    ██    ██          ██ ██    ██    ██
+           ███████    ██    ██   ██ ██   ██    ██           ███████ ██    ██    ███████
+
+           This section consists of plugins responsible for generating the site.
+           Note that only parent is supposed to have a `site` goal, it is skipped for modules! -->
+
+      <!-- export AsciiDoc-formatted sources to `target/generated-sources/site/asciidoc/changelog` -->
       <plugin>
-        <groupId>org.asciidoctor</groupId>
-        <artifactId>asciidoctor-maven-plugin</artifactId>
-        <version>${asciidoc.plugin.version}</version>
+        <groupId>org.codehaus.mojo</groupId>
+        <artifactId>exec-maven-plugin</artifactId>
+        <inherited>false</inherited>
         <executions>
           <execution>
-            <id>output-html</id>
-            <phase>generate-resources</phase>
+            <id>changelog-export</id>
+            <phase>pre-site</phase>
             <goals>
-              <goal>process-asciidoc</goal>
+              <goal>java</goal>
             </goals>
           </execution>
         </executions>
         <configuration>
-          <backend>html5</backend>
+          <includeProjectDependencies>false</includeProjectDependencies>
+          <includePluginDependencies>true</includePluginDependencies>
+          <executableDependency>
+            <groupId>org.apache.logging.log4j</groupId>
+            <artifactId>log4j-changelog</artifactId>
+          </executableDependency>
+          <mainClass>org.apache.logging.log4j.changelog.exporter.ChangelogExporter</mainClass>
+          <systemProperties>
+            <systemProperty>
+              <key>log4j.changelog.directory</key>
+              <value>${project.basedir}/src/changelog</value>
+            </systemProperty>
+            <systemProperty>
+              <key>log4j.changelog.exporter.outputDirectory</key>
+              <value>${project.build.directory}/generated-sources/site/asciidoc/changelog</value>
+            </systemProperty>
+          </systemProperties>
         </configuration>
-      </plugin>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-site-plugin</artifactId>
-        <version>${site.plugin.version}</version>
         <dependencies>
           <dependency>
-            <groupId>org.apache.maven.wagon</groupId>
-            <artifactId>wagon-ssh</artifactId>
-            <version>2.9</version>
-          </dependency>
-          <dependency>
-            <groupId>org.asciidoctor</groupId>
-            <artifactId>asciidoctor-maven-plugin</artifactId>
-            <version>${asciidoc.plugin.version}</version>
+            <groupId>org.apache.logging.log4j</groupId>
+            <artifactId>log4j-changelog</artifactId>
+            <version>${log4j-tools.version}</version>
           </dependency>
         </dependencies>
-        <configuration>
+      </plugin>
+
+      <!-- copy `src/site` to `target/generated-sources/site` -->
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-resources-plugin</artifactId>
+        <inherited>false</inherited>
+        <executions>
+          <!-- copy `src/site` to `target/generated-sources/site` -->
+          <execution>
+            <id>copy-site</id>
+            <phase>pre-site</phase>
+            <goals>
+              <goal>copy-resources</goal>
+            </goals>
+            <configuration>
+              <outputDirectory>${project.build.directory}/generated-sources/site</outputDirectory>
+              <resources>
+                <resource>
+                  <directory>${log4jParentDir}/src/site</directory>
+                  <excludes>
+                    <exclude>/resources/glyphicons-halflings-2-1.zip</exclude>
+                    <exclude>/resources/logo/**/*</exclude>
+                  </excludes>
+                </resource>
+              </resources>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-site-plugin</artifactId>
+        <inherited>false</inherited>
+        <configuration combine.self="override">
+          <skip>false</skip>
+          <generateProjectInfo>false</generateProjectInfo>
+          <generateReports>false</generateReports>
+          <siteDirectory>${project.build.directory}/generated-sources/site</siteDirectory>
           <!-- only build English site even on other language OS -->
           <locales>en</locales>
           <!-- Exclude the navigation file for Maven 1 sites
-               and the changes file used by the changes-plugin,
-               as they interfere with the site generation. -->
+               as it interfere with the site generation. -->
           <moduleExcludes>
-            <xdoc>navigation.xml,changes.xml</xdoc>
+            <xdoc>navigation.xml</xdoc>
           </moduleExcludes>
-
           <asciidoc>
             <attributes>
               <!-- copy any site properties wanted in asciidoc files -->
-              <Log4jReleaseVersion>${Log4jReleaseVersion}</Log4jReleaseVersion>
+              <Log4jKotlinVersion>${Log4jKotlinVersion}</Log4jKotlinVersion>
+              <Log4jReleaseVersion>${Log4jKotlinVersion}</Log4jReleaseVersion>
               <Log4jReleaseManager>${Log4jReleaseManager}</Log4jReleaseManager>
               <Log4jReleaseKey>${Log4jReleaseKey}</Log4jReleaseKey>
             </attributes>
           </asciidoc>
         </configuration>
+        <dependencies>
+          <dependency>
+            <groupId>org.asciidoctor</groupId>
+            <artifactId>asciidoctor-maven-plugin</artifactId>
+            <version>${asciidoctor-maven-plugin.version}</version>
+          </dependency>
+        </dependencies>
       </plugin>
+
       <plugin>
         <groupId>org.jetbrains.dokka</groupId>
         <artifactId>dokka-maven-plugin</artifactId>
@@ -235,171 +455,86 @@
           <skip>true</skip>
         </configuration>
       </plugin>
+
+      <!-- ███████ ███    ██ ██████         ███████ ██ ████████ ███████
+           ██      ████   ██ ██   ██ ██     ██      ██    ██    ██
+           █████   ██ ██  ██ ██   ██        ███████ ██    ██    █████
+           ██      ██  ██ ██ ██   ██ ██          ██ ██    ██    ██
+           ███████ ██   ████ ██████         ███████ ██    ██    ███████ -->
+
     </plugins>
+
   </build>
-  <reporting>
-    <plugins>
-      <!-- Changes report -->
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-changes-plugin</artifactId>
-        <version>${changes.plugin.version}</version>
-        <reportSets>
-          <reportSet>
-            <reports>
-              <report>changes-report</report>
-              <report>jira-report</report>
-            </reports>
-          </reportSet>
-        </reportSets>
-        <configuration>
-          <statusIds>Resolved, Closed</statusIds>
-          <columnNames>Type,Key,Summary,Assignee,Status,Resolution,Fix Version</columnNames>
-          <component>Kotlin API</component>
-          <useJql>true</useJql>
-        </configuration>
-      </plugin>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-project-info-reports-plugin</artifactId>
-        <version>2.8.1</version>
-        <reportSets>
-          <reportSet>
-            <reports>
-              <report>index</report>
-              <report>dependencies</report>
-              <report>dependency-info</report>
-              <report>dependency-convergence</report>
-              <report>dependency-management</report>
-              <report>mailing-list</report>
-              <report>issue-tracking</report>
-              <report>license</report>
-              <report>scm</report>
-              <report>summary</report>
-            </reports>
-          </reportSet>
-        </reportSets>
-        <configuration>
-          <!-- you'd think these would be the defaults, right? -->
-          <customBundle>${project.basedir}/src/site/custom/project-info-report.properties</customBundle>
-          <webAccessUrl>${project.scm.url}</webAccessUrl>
-          <anonymousConnection>${project.scm.connection}</anonymousConnection>
-          <developerConnection>${project.scm.developerConnection}</developerConnection>
-          <dependencyLocationsEnabled>false</dependencyLocationsEnabled>
-        </configuration>
-      </plugin>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-javadoc-plugin</artifactId>
-        <version>${javadoc.plugin.version}</version>
-        <configuration>
-          <aggregate>true</aggregate>
-          <bottom><![CDATA[<p align="center">Copyright &#169; {inceptionYear}-{currentYear} {organizationName}. All Rights Reserved.<br />
-            Apache Logging, Apache Log4j, Apache Log4j Audit, Log4j, Log4j Audit, Apache, the Apache feather logo, the Apache Logging project logo,
-            and the Apache Log4j logo are trademarks of The Apache Software Foundation.</p>]]></bottom>
-        </configuration>
-      </plugin>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-checkstyle-plugin</artifactId>
-        <version>${checkstyle.plugin.version}</version>
-        <configuration>
-          <!--<propertiesLocation>${vfs.parent.dir}/checkstyle.properties</propertiesLocation> -->
-          <configLocation>${log4jParentDir}/checkstyle.xml</configLocation>
-          <suppressionsLocation>${log4jParentDir}/checkstyle-suppressions.xml</suppressionsLocation>
-          <enableRulesSummary>false</enableRulesSummary>
-          <propertyExpansion>basedir=${basedir}</propertyExpansion>
-          <propertyExpansion>licensedir=${log4jParentDir}/checkstyle-header.txt</propertyExpansion>
-        </configuration>
-      </plugin>
-      <!-- Surefire report -->
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-surefire-report-plugin</artifactId>
-        <version>${surefire.plugin.version}</version>
-        <reportSets>
-          <reportSet>
-            <id>integration-tests</id>
-            <reports>
-              <report>failsafe-report-only</report>
-            </reports>
-          </reportSet>
-        </reportSets>
-      </plugin>
-      <!-- RAT report -->
-      <plugin>
-        <groupId>org.apache.rat</groupId>
-        <artifactId>apache-rat-plugin</artifactId>
-        <version>${rat.plugin.version}</version>
-        <configuration>
-          <excludes>
-            <exclude>**/*.asc</exclude>
-            <exclude>.idea/**/*</exclude>
-            <exclude>src/site/resources/js/jquery.js</exclude>
-            <exclude>src/site/resources/js/jquery.min.js</exclude>
-            <!-- Generated files -->
-            <exclude>log4j-api-kotlin-distribution/target/**/*</exclude>
-            <exclude>log4j-api-kotlin-distribution/.project</exclude>
-            <exclude>log4j-api-kotlin-distribution/.settings/**</exclude>
-            <exclude>RELEASE-NOTES.md</exclude>
-          </excludes>
-        </configuration>
-      </plugin>
-      <plugin>
-        <groupId>org.codehaus.mojo</groupId>
-        <artifactId>findbugs-maven-plugin</artifactId>
-        <version>${findbugs.plugin.version}</version>
-        <configuration>
-          <fork>true</fork>
-          <jvmArgs>-Duser.language=en</jvmArgs>
-          <threshold>Normal</threshold>
-          <effort>Default</effort>
-          <excludeFilterFile>${log4jParentDir}/findbugs-exclude-filter.xml</excludeFilterFile>
-        </configuration>
-      </plugin>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-jxr-plugin</artifactId>
-        <version>${jxr.plugin.version}</version>
-        <reportSets>
-          <reportSet>
-            <id>non-aggregate</id>
-            <reports>
-              <report>jxr</report>
-            </reports>
-          </reportSet>
-          <reportSet>
-            <id>aggregate</id>
-            <reports>
-              <report>aggregate</report>
-            </reports>
-          </reportSet>
-        </reportSets>
-      </plugin>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-pmd-plugin</artifactId>
-        <version>${pmd.plugin.version}</version>
-        <configuration>
-          <targetJdk>${maven.compiler.target}</targetJdk>
-        </configuration>
-      </plugin>
-    </plugins>
-  </reporting>
-  <repositories>
-    <repository>
-      <id>apache.snapshots</id>
-      <name>Apache Snapshot Repository</name>
-      <url>https://repository.apache.org/snapshots</url>
-      <releases>
-        <enabled>false</enabled>
-      </releases>
-    </repository>
-  </repositories>
+
+  <distributionManagement>
+    <downloadUrl>https://logging.apache.org/log4j/kotlin/download.html</downloadUrl>
+    <!-- `site` is only included to make `maven-site-plugin` stop complaining: -->
+    <site>
+      <id>www.example.com</id>
+      <url>scp://www.example.com/www/docs/project/</url>
+    </site>
+    <!-- `repository` from ASF parent POM (id: apache.releases.https) -->
+    <!-- `snapshotRepository` from ASF parent POM (id: apache.snapshots.https) -->
+  </distributionManagement>
 
   <modules>
     <module>log4j-api-kotlin</module>
     <module>log4j-api-kotlin-sample</module>
     <module>log4j-api-kotlin-benchmark</module>
   </modules>
+
+  <profiles>
+
+    <!-- Shortcut to populate `src/changelog/<releaseVersion>` from `src/changelog/.<releaseVersionMajor>.x.x` -->
+    <profile>
+      <id>changelog-releaser</id>
+      <build>
+        <defaultGoal>validate</defaultGoal>
+        <plugins>
+          <plugin>
+            <groupId>org.codehaus.mojo</groupId>
+            <artifactId>exec-maven-plugin</artifactId>
+            <executions>
+              <execution>
+                <id>changelog-releaser</id>
+                <!-- Choosing the earlier possible phase, since `ChangelogReleaser` execution doesn't depend on anything: -->
+                <phase>validate</phase>
+                <goals>
+                  <goal>java</goal>
+                </goals>
+              </execution>
+            </executions>
+            <configuration>
+              <includeProjectDependencies>false</includeProjectDependencies>
+              <includePluginDependencies>true</includePluginDependencies>
+              <executableDependency>
+                <groupId>org.apache.logging.log4j</groupId>
+                <artifactId>log4j-changelog</artifactId>
+              </executableDependency>
+              <mainClass>org.apache.logging.log4j.changelog.releaser.ChangelogReleaser</mainClass>
+              <systemProperties>
+                <systemProperty>
+                  <key>log4j.changelog.directory</key>
+                  <value>${project.basedir}/src/changelog</value>
+                </systemProperty>
+                <systemProperty>
+                  <key>log4j.changelog.releaseVersion</key>
+                  <value>${Log4jKotlinVersion}</value>
+                </systemProperty>
+              </systemProperties>
+            </configuration>
+            <dependencies>
+              <dependency>
+                <groupId>org.apache.logging.log4j</groupId>
+                <artifactId>log4j-changelog</artifactId>
+                <version>${log4j-tools.version}</version>
+              </dependency>
+            </dependencies>
+          </plugin>
+        </plugins>
+      </build>
+    </profile>
+
+  </profiles>
+
 </project>
diff --git a/src/assembly/site.xml b/src/assembly/site.xml
new file mode 100644
index 0000000..e143555
--- /dev/null
+++ b/src/assembly/site.xml
@@ -0,0 +1,30 @@
+<!--
+    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.
+-->
+<assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0"
+          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+          xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0 http://maven.apache.org/xsd/assembly-1.1.0.xsd">
+  <id>site</id>
+  <formats>
+    <format>zip</format>
+  </formats>
+  <fileSets>
+    <fileSet>
+      <directory>${stagingSiteURL}</directory>
+      <outputDirectory>${stagingSiteURL}</outputDirectory>
+    </fileSet>
+  </fileSets>
+</assembly>
diff --git a/log4j-api-kotlin-sample/src/site/asciidoc/index.adoc b/src/changelog/.1.x.x/.changelog.adoc.ftl
similarity index 73%
copy from log4j-api-kotlin-sample/src/site/asciidoc/index.adoc
copy to src/changelog/.1.x.x/.changelog.adoc.ftl
index 8679a19..b916a36 100644
--- a/log4j-api-kotlin-sample/src/site/asciidoc/index.adoc
+++ b/src/changelog/.1.x.x/.changelog.adoc.ftl
@@ -6,7 +6,7 @@
     (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
+         https://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,
@@ -14,14 +14,9 @@
     See the License for the specific language governing permissions and
     limitations under the License.
 ////
-= Apache Log4j Kotlin API Samples
-:toc: left
 
-Log4j Kotlin API Samples provides samples that illustrate how to use the Log4j API for Kotlin.
-////
-TODO:
-* Apache logo
-* License report
-* Project links
-* Dependency report
-////
+= ${release.version}<#if release.date?has_content> (${release.date})</#if>
+
+Changes staged for the next 1.x.x version that is yet to be released.
+
+<#include "../.changelog-entries.adoc.ftl">
diff --git a/src/changelog/.1.x.x/28-Update_Log4j_baseline.xml b/src/changelog/.1.x.x/28-Update_Log4j_baseline.xml
new file mode 100644
index 0000000..6c7f443
--- /dev/null
+++ b/src/changelog/.1.x.x/28-Update_Log4j_baseline.xml
@@ -0,0 +1,11 @@
+<entry xmlns="http://logging.apache.org/log4j/changelog"
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+       xsi:schemaLocation="http://logging.apache.org/log4j/changelog https://logging.apache.org/log4j/changelog-0.1.0.xsd"
+       type="changed">
+  <issue id="28" link="https://github.com/apache/logging-log4j-kotlin/pull/28"/>
+  <author name="u-ways"/>
+  <author id="mattsicker"/>
+  <description format="asciidoc">
+    Update Log4j dependency to 2.19.0.
+  </description>
+</entry>
diff --git a/src/changelog/.1.x.x/29-Add_extension_property_for_logger.xml b/src/changelog/.1.x.x/29-Add_extension_property_for_logger.xml
new file mode 100644
index 0000000..0d6f547
--- /dev/null
+++ b/src/changelog/.1.x.x/29-Add_extension_property_for_logger.xml
@@ -0,0 +1,10 @@
+<entry xmlns="http://logging.apache.org/log4j/changelog"
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+       xsi:schemaLocation="http://logging.apache.org/log4j/changelog https://logging.apache.org/log4j/changelog-0.1.0.xsd"
+       type="added">
+  <issue id="29" link="https://github.com/apache/logging-log4j-kotlin/issues/29"/>
+  <author id="mattsicker"/>
+  <description format="asciidoc">
+    Add an extension property for storing a cached logger.
+  </description>
+</entry>
diff --git a/src/changelog/.1.x.x/30-Add_facade_APIs_for_ThreadContext.xml b/src/changelog/.1.x.x/30-Add_facade_APIs_for_ThreadContext.xml
new file mode 100644
index 0000000..57a7fb8
--- /dev/null
+++ b/src/changelog/.1.x.x/30-Add_facade_APIs_for_ThreadContext.xml
@@ -0,0 +1,10 @@
+<entry xmlns="http://logging.apache.org/log4j/changelog"
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+       xsi:schemaLocation="http://logging.apache.org/log4j/changelog https://logging.apache.org/log4j/changelog-0.1.0.xsd"
+       type="added">
+  <issue id="30" link="https://github.com/apache/logging-log4j-kotlin/issues/30"/>
+  <author id="mattsicker"/>
+  <description format="asciidoc">
+    Add facade APIs for manipulating the context map and stack.
+  </description>
+</entry>
diff --git a/src/changelog/.changelog-entries.adoc.ftl b/src/changelog/.changelog-entries.adoc.ftl
new file mode 100644
index 0000000..7fd48fb
--- /dev/null
+++ b/src/changelog/.changelog-entries.adoc.ftl
@@ -0,0 +1,37 @@
+<#--
+   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 entriesByType?size gt 0>== Changes
+<#list entriesByType as entryType, entries>
+
+== ${entryType?capitalize}
+
+<#list entries as entry>
+* ${entry.description.text?replace("\\s+", " ", "r")} (for <@compress single_line=true>
+<#list entry.issues as issue>${issue.link}[${issue.id}]<#if issue?has_next>, </#if></#list> by
+<#list entry.authors as author>
+<@compress single_line=true>
+<#if !author.id?has_content>${author.name}
+<#elseif author.id == "rgupta">Raman Gupta
+<#elseif author.id == "mattsicker">Matt Sicker
+<#else>`${author.id}`
+</#if>
+</...@compress><#if author?has_next>, </#if>
+</#list>
+</...@compress>)
+</#list>
+</#list>
+</#if>
diff --git a/log4j-api-kotlin-sample/src/site/asciidoc/index.adoc b/src/changelog/.index.adoc.ftl
similarity index 73%
copy from log4j-api-kotlin-sample/src/site/asciidoc/index.adoc
copy to src/changelog/.index.adoc.ftl
index 8679a19..e6e82ba 100644
--- a/log4j-api-kotlin-sample/src/site/asciidoc/index.adoc
+++ b/src/changelog/.index.adoc.ftl
@@ -6,7 +6,7 @@
     (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
+         https://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,
@@ -14,14 +14,9 @@
     See the License for the specific language governing permissions and
     limitations under the License.
 ////
-= Apache Log4j Kotlin API Samples
-:toc: left
 
-Log4j Kotlin API Samples provides samples that illustrate how to use the Log4j API for Kotlin.
-////
-TODO:
-* Apache logo
-* License report
-* Project links
-* Dependency report
-////
+= Release changelogs
+
+<#list releases as release>
+* xref:${release.changelogFileName}[${release.version}]<#if release.date?has_content> (${release.date})</#if>
+</#list>
diff --git a/log4j-api-kotlin/src/site/asciidoc/index.adoc b/src/changelog/1.0.0/.changelog.adoc.ftl
similarity index 52%
rename from log4j-api-kotlin/src/site/asciidoc/index.adoc
rename to src/changelog/1.0.0/.changelog.adoc.ftl
index 147d52e..b916a36 100644
--- a/log4j-api-kotlin/src/site/asciidoc/index.adoc
+++ b/src/changelog/1.0.0/.changelog.adoc.ftl
@@ -6,7 +6,7 @@
     (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
+         https://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,
@@ -14,22 +14,9 @@
     See the License for the specific language governing permissions and
     limitations under the License.
 ////
-= Apache Log4j Kotlin API
-:toc: left
 
-Log4j Kotlin API is a https://kotlinlang.org/[Kotlin] logging facade based on https://logging.apache.org/log4j/2.x/[Log4j 2].
+= ${release.version}<#if release.date?has_content> (${release.date})</#if>
 
-Log4j Kotlin API uses Log4j 2.x as its logging backend.
+Changes staged for the next 1.x.x version that is yet to be released.
 
-Log4j Kotlin API uses Log4j 2.x as its logging backend by default, but this can also be replaced with compatible libraries (e.g., https://logback.qos.ch/[Logback]).
-
-While this library is not required to use Log4j API in Kotlin, it does provide idiomatic Kotlin APIs which are friendlier to use in Kotlin programs than the Java APIs.
-
-
-////
-TODO:
-* Apache logo
-* License report
-* Project links
-* Dependency report
-////
+<#include "../.changelog-entries.adoc.ftl">
diff --git a/src/changelog/1.0.0/.release.xml b/src/changelog/1.0.0/.release.xml
new file mode 100644
index 0000000..c2c84d7
--- /dev/null
+++ b/src/changelog/1.0.0/.release.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+   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 date="2018-11-03" version="1.0.0"/>
diff --git a/src/changelog/1.0.0/LOG4J2-1705_Create_Kotlin_API.xml b/src/changelog/1.0.0/LOG4J2-1705_Create_Kotlin_API.xml
new file mode 100644
index 0000000..016b4cb
--- /dev/null
+++ b/src/changelog/1.0.0/LOG4J2-1705_Create_Kotlin_API.xml
@@ -0,0 +1,11 @@
+<entry xmlns="http://logging.apache.org/log4j/changelog"
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+       xsi:schemaLocation="http://logging.apache.org/log4j/changelog https://logging.apache.org/log4j/changelog-0.1.0.xsd"
+       type="added">
+  <issue id="LOG4J2-3556" link="https://issues.apache.org/jira/browse/LOG4J2-1705"/>
+  <author id="mattsicker"/>
+  <author id="rgupta"/>
+  <description format="asciidoc">
+    Create Kotlin wrapper API for Log4j.
+  </description>
+</entry>
diff --git a/src/changelog/1.0.0/LOG4J2-2432_Make_namedLogger_more_discoverable.xml b/src/changelog/1.0.0/LOG4J2-2432_Make_namedLogger_more_discoverable.xml
new file mode 100644
index 0000000..1cf2279
--- /dev/null
+++ b/src/changelog/1.0.0/LOG4J2-2432_Make_namedLogger_more_discoverable.xml
@@ -0,0 +1,11 @@
+<entry xmlns="http://logging.apache.org/log4j/changelog"
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+       xsi:schemaLocation="http://logging.apache.org/log4j/changelog https://logging.apache.org/log4j/changelog-0.1.0.xsd"
+       type="changed">
+  <issue id="LOG4J2-2432" link="https://issues.apache.org/jira/browse/LOG4J2-2432"/>
+  <author id="mattsicker"/>
+  <author id="rgupta"/>
+  <description format="asciidoc">
+    Make `namedLogger` more discoverable.
+  </description>
+</entry>
diff --git a/log4j-api-kotlin-sample/src/site/asciidoc/index.adoc b/src/changelog/1.1.0/.changelog.adoc.ftl
similarity index 73%
copy from log4j-api-kotlin-sample/src/site/asciidoc/index.adoc
copy to src/changelog/1.1.0/.changelog.adoc.ftl
index 8679a19..b916a36 100644
--- a/log4j-api-kotlin-sample/src/site/asciidoc/index.adoc
+++ b/src/changelog/1.1.0/.changelog.adoc.ftl
@@ -6,7 +6,7 @@
     (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
+         https://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,
@@ -14,14 +14,9 @@
     See the License for the specific language governing permissions and
     limitations under the License.
 ////
-= Apache Log4j Kotlin API Samples
-:toc: left
 
-Log4j Kotlin API Samples provides samples that illustrate how to use the Log4j API for Kotlin.
-////
-TODO:
-* Apache logo
-* License report
-* Project links
-* Dependency report
-////
+= ${release.version}<#if release.date?has_content> (${release.date})</#if>
+
+Changes staged for the next 1.x.x version that is yet to be released.
+
+<#include "../.changelog-entries.adoc.ftl">
diff --git a/src/changelog/1.1.0/.release.xml b/src/changelog/1.1.0/.release.xml
new file mode 100644
index 0000000..1cfd6a2
--- /dev/null
+++ b/src/changelog/1.1.0/.release.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+   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 date="2021-08-28" version="1.1.0"/>
diff --git a/src/changelog/1.1.0/LOG4J2-2433_Support_MDCs_with_coroutines.xml b/src/changelog/1.1.0/LOG4J2-2433_Support_MDCs_with_coroutines.xml
new file mode 100644
index 0000000..14e3136
--- /dev/null
+++ b/src/changelog/1.1.0/LOG4J2-2433_Support_MDCs_with_coroutines.xml
@@ -0,0 +1,10 @@
+<entry xmlns="http://logging.apache.org/log4j/changelog"
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+       xsi:schemaLocation="http://logging.apache.org/log4j/changelog https://logging.apache.org/log4j/changelog-0.1.0.xsd"
+       type="added">
+  <issue id="LOG4J2-2433" link="https://issues.apache.org/jira/browse/LOG4J2-2433"/>
+  <author id="rgupta"/>
+  <description format="asciidoc">
+    Support MDCs with Kotlin coroutines.
+  </description>
+</entry>
diff --git a/src/changelog/1.1.0/LOG4J2-2518_Support_suspend_functions.xml b/src/changelog/1.1.0/LOG4J2-2518_Support_suspend_functions.xml
new file mode 100644
index 0000000..b23ce88
--- /dev/null
+++ b/src/changelog/1.1.0/LOG4J2-2518_Support_suspend_functions.xml
@@ -0,0 +1,10 @@
+<entry xmlns="http://logging.apache.org/log4j/changelog"
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+       xsi:schemaLocation="http://logging.apache.org/log4j/changelog https://logging.apache.org/log4j/changelog-0.1.0.xsd"
+       type="added">
+  <issue id="LOG4J2-2518" link="https://issues.apache.org/jira/browse/LOG4J2-2518"/>
+  <author id="rgupta"/>
+  <description format="asciidoc">
+    Support suspend functions in supplier lambdas.
+  </description>
+</entry>
diff --git a/src/changelog/1.1.0/LOG4J2-2843_Update_Kotlin_baseline_to_1.3.72.xml b/src/changelog/1.1.0/LOG4J2-2843_Update_Kotlin_baseline_to_1.3.72.xml
new file mode 100644
index 0000000..698af04
--- /dev/null
+++ b/src/changelog/1.1.0/LOG4J2-2843_Update_Kotlin_baseline_to_1.3.72.xml
@@ -0,0 +1,10 @@
+<entry xmlns="http://logging.apache.org/log4j/changelog"
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+       xsi:schemaLocation="http://logging.apache.org/log4j/changelog https://logging.apache.org/log4j/changelog-0.1.0.xsd"
+       type="changed">
+  <issue id="LOG4J2-2843" link="https://issues.apache.org/jira/browse/LOG4J2-2843"/>
+  <author id="rgupta"/>
+  <description format="asciidoc">
+    Update Kotlin baseline version to 1.3.72.
+  </description>
+</entry>
diff --git a/log4j-api-kotlin-sample/src/site/asciidoc/index.adoc b/src/changelog/1.2.0/.changelog.adoc.ftl
similarity index 73%
rename from log4j-api-kotlin-sample/src/site/asciidoc/index.adoc
rename to src/changelog/1.2.0/.changelog.adoc.ftl
index 8679a19..b916a36 100644
--- a/log4j-api-kotlin-sample/src/site/asciidoc/index.adoc
+++ b/src/changelog/1.2.0/.changelog.adoc.ftl
@@ -6,7 +6,7 @@
     (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
+         https://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,
@@ -14,14 +14,9 @@
     See the License for the specific language governing permissions and
     limitations under the License.
 ////
-= Apache Log4j Kotlin API Samples
-:toc: left
 
-Log4j Kotlin API Samples provides samples that illustrate how to use the Log4j API for Kotlin.
-////
-TODO:
-* Apache logo
-* License report
-* Project links
-* Dependency report
-////
+= ${release.version}<#if release.date?has_content> (${release.date})</#if>
+
+Changes staged for the next 1.x.x version that is yet to be released.
+
+<#include "../.changelog-entries.adoc.ftl">
diff --git a/src/changelog/1.2.0/.release.xml b/src/changelog/1.2.0/.release.xml
new file mode 100644
index 0000000..4afac69
--- /dev/null
+++ b/src/changelog/1.2.0/.release.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+   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 date="2021-12-20" version="1.2.0"/>
diff --git a/src/changelog/1.2.0/LOG4J2-3218_Update_Log4j_baseline.xml b/src/changelog/1.2.0/LOG4J2-3218_Update_Log4j_baseline.xml
new file mode 100644
index 0000000..3753114
--- /dev/null
+++ b/src/changelog/1.2.0/LOG4J2-3218_Update_Log4j_baseline.xml
@@ -0,0 +1,10 @@
+<entry xmlns="http://logging.apache.org/log4j/changelog"
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+       xsi:schemaLocation="http://logging.apache.org/log4j/changelog https://logging.apache.org/log4j/changelog-0.1.0.xsd"
+       type="changed">
+  <issue id="LOG4J2-3218" link="https://issues.apache.org/jira/browse/LOG4J2-3218"/>
+  <author id="rgupta"/>
+  <description format="asciidoc">
+    Update Kotlin baseline version to 1.3.72.
+  </description>
+</entry>
diff --git a/src/changes/announcement.vm b/src/changes/announcement.vm
deleted file mode 100644
index 5a14cdf..0000000
--- a/src/changes/announcement.vm
+++ /dev/null
@@ -1,90 +0,0 @@
-## 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.
-#set($h1='#')
-#set($h2='##')
-#set($h3='###')
-#set($relVersion=$announceParameters.releaseVersion)
-#set($relCount=$announceParameters.releaseCount)
-#macro(formatAction $item)
-## Use replaceAll to fix up LF-only line ends on Windows.
-## Also replace < and > with entity versions to avoid HTML being misinterpreted.
-    #set($action=$item.action.replaceAll("\n","
-").replaceAll("<", "&lt;").replaceAll(">", "&gt;"))
-    #if($item.issue)
-        #set($issue = $item.issue)
-        #set($url = "https://issues.apache.org/jira/browse/$issue")
-    #else
-        #set($issue = "")
-    #end
-* #if($issue)[$issue]($url):#end
-
-    ${action}#if($item.dueTo) Thanks to ${item.dueTo}.#end
-
-#end
-## -----------------------------------------
-$h1 Apache Log4j ${relVersion} Release Notes
-
-The ${developmentTeam} is pleased to announce the Log4j Audit ${relVersion} release!
-
-Apache Log4j Audit is a framework for performing
-
-## Hack to improve layout: replace all pairs of spaces with a single new-line
-$h2 $release.description.replaceAll("  ", "
-")
-
-#if ($release.actions.size() == 0)
-No changes defined in this version.
-#else
-Changes in this version include:
-
-    #if ($release.getActions('add').size() !=0)
-        $h3 New Features
-        #foreach($actionItem in $release.getActions('add'))
-            #formatAction($actionItem)
-        #end
-    #end
-
-    #if ($release.getActions('fix').size() !=0)
-        $h3 Fixed Bugs
-        #foreach($actionItem in $release.getActions('fix'))
-            #formatAction($actionItem)
-        #end
-    #end
-
-    #if ($release.getActions('update').size() !=0)
-        $h3 Changes
-        #foreach($actionItem in $release.getActions('update'))
-            #formatAction($actionItem)
-        #end
-    #end
-
-    #if ($release.getActions('remove').size() !=0)
-        $h3 Removed
-        #foreach($actionItem in $release.getActions('remove'))
-            #formatAction($actionItem)
-        #end
-    #end
-## End of main loop
-#end
----
-
-Apache Log4j Kotlin API ${relVersion} requires a minimum of Java 8 to build and run.
-
-For complete information on ${project.name}, including instructions on how to submit bug
-reports, patches, or suggestions for improvement, see the Apache ${project.name} website:
-
-${project.url}
diff --git a/src/changes/changes.xml b/src/changes/changes.xml
deleted file mode 100644
index 4f7afa3..0000000
--- a/src/changes/changes.xml
+++ /dev/null
@@ -1,70 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- vi: set sw=2: -->
-<!--
-   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.
--->
-<document xmlns="http://maven.apache.org/changes/1.0.0"
-          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-          xsi:schemaLocation="http://maven.apache.org/changes/1.0.0 http://maven.apache.org/xsd/changes-1.0.0.xsd">
-  <properties>
-    <title>Changes</title>
-  </properties>
-  <body>
-    <!-- NOTE: the text node in an action element is interpreted as Markdown in the release notes! -->
-    <!-- The "type" attribute can have the following values:
-         - "add" - New Feature
-         - "fix" - Fixed Bug
-         - "update" - Change
-         - "remove" - Removed
-    -->
-    <release version="1.3.0" date="2023-??-??" description="Release 1.3.0">
-      <action issue="GH-30" dev="mattsicker" type="add">
-        Add facade APIs for manipulating the context map and stack.
-      </action>
-      <action issue="GH-29" dev="mattsicker" type="add">
-        Add an extension property for storing a cached logger.
-      </action>
-      <action issue="GH-28" dev="mattsicker" type="update" due-to="u-ways">
-        Update Log4j dependency to 2.19.0.
-      </action>
-    </release>
-    <release version="1.2.0" date="2021-12-20" description="Release 1.2.0">
-      <action issue="LOG4J2-3218" dev="rgupta" type="update">
-        Update Log4j dependency to 2.17.0. Includes dependency updates to resolve
-        CVE-2021-44228, CVE-2021-45046, and CVE-2021-45105.
-      </action>
-    </release>
-    <release version="1.1.0" date="2021-08-28" description="Release 1.1.0">
-      <action issue="LOG4J2-2433" dev="rgupta" type="add">
-        Support MDCs with Kotlin coroutines.
-      </action>
-      <action issue="LOG4J2-2518" dev="rgupta" type="add">
-        Support suspend functions in supplier lambdas.
-      </action>
-      <action issue="LOG4J2-2843" dev="rgupta" type="update">
-        Update Kotlin baseline version to 1.3.72.
-      </action>
-    </release>
-    <release version="1.0.0" date="2018-11-03" description="Release 1.0.0">
-      <action issue="LOG4J2-1705" dev="mattsicker" type="add" due-to="Raman Gupta">
-        Create Kotlin wrapper API for Log4j.
-      </action>
-      <action issue="LOG4J2-2432" dev="mattsicker" type="update" due-to="Raman Gupta">
-        Make `namedLogger` more discoverable.
-      </action>
-    </release>
-  </body>
-</document>
diff --git a/src/site/asciidoc/build.adoc b/src/site/asciidoc/build.adoc
index cf7eca5..6f34b90 100644
--- a/src/site/asciidoc/build.adoc
+++ b/src/site/asciidoc/build.adoc
@@ -22,5 +22,5 @@ If your goal is to add logging to your application, then you can use the link:bu
 .Building
 [source,bash]
 ----
-mvn package
+mvn
 ----