From aac1c2a196f180de77574e029156422ce3b09604 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Volkan=20Yaz=C4=B1c=C4=B1?= Date: Wed, 27 Sep 2023 17:06:38 +0200 Subject: [PATCH] Shebang for updating `logging-parent` to version `10.1.0-SNAPSHOT` --- .asf.yaml | 11 -- .github/generate-email.sh | 17 +- .github/workflows/build.yaml | 29 ++-- .github/workflows/merge-dependabot.yaml | 42 +++++ .mvn/jvm.config | 2 + README.adoc | 44 +---- RELEASE-NOTES.md | 22 --- RELEASING.adoc | 156 ------------------ log4j-tools-parent/pom.xml | 7 - pom.xml | 2 +- spotless-license-header.txt | 16 -- src/changelog/.0.x.x/.release-notes.adoc.ftl | 43 +++++ src/changelog/.0.x.x/.release-notes.md.ftl | 22 --- src/changelog/.0.x.x/add-website.xml | 8 + .../.0.x.x/set_changelog_schema_0_1_1.xml | 2 +- ...{.changelog.md.ftl => .changelog.adoc.ftl} | 6 +- src/changelog/.index.adoc.ftl | 41 +++++ src/changelog/.index.md.ftl | 22 --- src/changelog/0.1.0/.release-notes.adoc.ftl | 43 +++++ src/changelog/0.1.0/.release-notes.md.ftl | 22 --- ...28_add_tools_bom_and_changelog_modules.xml | 2 +- src/changelog/0.2.0/.release-notes.adoc.ftl | 43 +++++ src/changelog/0.2.0/.release-notes.md.ftl | 22 --- src/changelog/0.2.0/13_add_changelog_xsd.xml | 2 +- .../14_remove_changelog_security_type.xml | 2 +- .../17_fix_unreleased_directory_order.xml | 2 +- src/changelog/0.2.0/19_fix_Windows_compat.xml | 2 +- .../0.2.0/20_add_changelog_maven_plugin.xml | 2 +- ...name_exporter_outputDirectory_property.xml | 2 +- src/changelog/0.3.0/.release-notes.adoc.ftl | 43 +++++ src/changelog/0.3.0/.release-notes.md.ftl | 22 --- .../0.3.0/37_add_changelogEntryCount.xml | 2 +- .../44_make_changelog_format_agnostic.xml | 2 +- src/changelog/0.3.0/java_17.xml | 2 +- src/changelog/0.4.0/.release-notes.adoc.ftl | 44 +++++ src/changelog/0.4.0/.release-notes.md.ftl | 23 --- .../63_add_versionPattern_to_ReleaseMojo.xml | 2 +- .../change_ExportMojo_outputDirectory.xml | 2 +- src/changelog/0.4.0/changelog_migration.xml | 2 +- .../0.4.0/fix_repetitive_release.xml | 2 +- src/site/_constants.adoc | 41 +++++ src/site/_constants.tmpl.adoc | 41 +++++ .../site/_log4j-changelog-maven-plugin.adoc | 48 ++++-- .../site/_log4j-changelog.adoc | 79 +++++---- src/site/_release-notes.adoc | 43 +++++ src/site/_release-notes/_0.1.0.adoc | 46 ++++++ src/site/_release-notes/_0.2.0.adoc | 60 +++++++ src/site/_release-notes/_0.3.0.adoc | 51 ++++++ src/site/_release-notes/_0.4.0.adoc | 56 +++++++ src/site/_release-notes/_0.x.x.adoc | 50 ++++++ src/site/index.adoc | 91 ++++++++++ 51 files changed, 913 insertions(+), 475 deletions(-) create mode 100644 .github/workflows/merge-dependabot.yaml delete mode 100644 RELEASE-NOTES.md delete mode 100644 RELEASING.adoc delete mode 100644 spotless-license-header.txt create mode 100644 src/changelog/.0.x.x/.release-notes.adoc.ftl delete mode 100644 src/changelog/.0.x.x/.release-notes.md.ftl create mode 100644 src/changelog/.0.x.x/add-website.xml rename src/changelog/{.changelog.md.ftl => .changelog.adoc.ftl} (77%) create mode 100644 src/changelog/.index.adoc.ftl delete mode 100644 src/changelog/.index.md.ftl create mode 100644 src/changelog/0.1.0/.release-notes.adoc.ftl delete mode 100644 src/changelog/0.1.0/.release-notes.md.ftl create mode 100644 src/changelog/0.2.0/.release-notes.adoc.ftl delete mode 100644 src/changelog/0.2.0/.release-notes.md.ftl create mode 100644 src/changelog/0.3.0/.release-notes.adoc.ftl delete mode 100644 src/changelog/0.3.0/.release-notes.md.ftl create mode 100644 src/changelog/0.4.0/.release-notes.adoc.ftl delete mode 100644 src/changelog/0.4.0/.release-notes.md.ftl create mode 100644 src/site/_constants.adoc create mode 100644 src/site/_constants.tmpl.adoc rename log4j-changelog-maven-plugin/README.adoc => src/site/_log4j-changelog-maven-plugin.adoc (72%) rename log4j-changelog/README.adoc => src/site/_log4j-changelog.adoc (87%) create mode 100644 src/site/_release-notes.adoc create mode 100644 src/site/_release-notes/_0.1.0.adoc create mode 100644 src/site/_release-notes/_0.2.0.adoc create mode 100644 src/site/_release-notes/_0.3.0.adoc create mode 100644 src/site/_release-notes/_0.4.0.adoc create mode 100644 src/site/_release-notes/_0.x.x.adoc create mode 100644 src/site/index.adoc diff --git a/.asf.yaml b/.asf.yaml index 3a42da0e..70d2b06a 100644 --- a/.asf.yaml +++ b/.asf.yaml @@ -35,14 +35,3 @@ github: protected_branches: main: required_signatures: true - # Attempt to make the auto-generated github emails more easily readable in email clients. - custom_subjects: - new_pr: "[PR] {title} ({repository})" - close_pr: "Re: [PR] {title} ({repository})" - comment_pr: "Re: [PR] {title} ({repository})" - diffcomment: "Re: [PR] {title} ({repository})" - merge_pr: "Re: [PR] {title} ({repository})" - new_issue: "[I] {title} ({repository})" - comment_issue: "Re: [I] {title} ({repository})" - close_issue: "Re: [I] {title} ({repository})" - catchall: "[GH] {title} ({repository})" diff --git a/.github/generate-email.sh b/.github/generate-email.sh index eb209a0a..d10aeec2 100755 --- a/.github/generate-email.sh +++ b/.github/generate-email.sh @@ -33,19 +33,21 @@ fail_for_invalid_args() { # Constants PROJECT_NAME="Apache Log4j Tools" +PROJECT_SITE="https://logging.apache.org/log4j/tools" PROJECT_REPO="https://github.com/apache/logging-log4j-tools" +PROJECT_DIST_DIR="https://dist.apache.org/repos/dist/dev/logging/log4j-tools" PROJECT_VERSION="$2" COMMIT_ID="$3" # Check release notes file -RELEASE_NOTES_FILE="$SCRIPT_DIR/../target/release-notes/$PROJECT_VERSION.md" +RELEASE_NOTES_FILE="$SCRIPT_DIR/../src/site/_release-notes/_$PROJECT_VERSION.adoc" [ -f "$RELEASE_NOTES_FILE" ] || { stderr "Couldn't find release notes file: $RELEASE_NOTES_FILE" exit 1 } dump_release_notes() { - awk "f{print} /^# $PROJECT_VERSION/{f=1}" "$RELEASE_NOTES_FILE" + awk "f{print} /^Release date::/{f=1}" "$RELEASE_NOTES_FILE" } case $1 in @@ -59,7 +61,7 @@ This is a vote to release the $PROJECT_NAME $PROJECT_VERSION. Source repository: $PROJECT_REPO Commit: $COMMIT_ID -Distribution: https://dist.apache.org/repos/dist/dev/logging/log4j +Distribution: $PROJECT_DIST_DIR Nexus: https://repository.apache.org/content/repositories/orgapachelogging-1113 Signing key: 0x077e8893a6dcc33dd4a4d5b256e73ba9a0b592d0 @@ -84,13 +86,12 @@ announce) To: log4j-user@logging.apache.org, dev@logging.apache.org Title: [ANNOUNCE] $PROJECT_NAME $PROJECT_VERSION released -${PROJECT_NAME}[1] team is pleased to announce the $PROJECT_VERSION +${PROJECT_NAME} team is pleased to announce the $PROJECT_VERSION release. This project provides tooling internally used by the -Apache Log4j[2] project. For further information (support, -download, etc.) see the project website[1]. +Apache Log4j project. For further information (support, download, +etc.) see the project website[1]. -[1] $PROJECT_REPO -[2] https://logging.apache.org/log4j +[1] $PROJECT_SITE # Release Notes EOF diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 7bcff461..1e097097 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -19,10 +19,6 @@ name: build on: push: - # Avoid workflow run for _merged_ `dependabot` PRs. - # They were (hopefully!) already tested in PR-triggered workflow. - branches-ignore: - - "dependabot/**" paths-ignore: - "**.adoc" - "**.md" @@ -38,26 +34,33 @@ permissions: read-all jobs: build: + if: github.actor != 'dependabot[bot]' uses: apache/logging-parent/.github/workflows/build-reusable.yaml@main - # Write permissions to allow merge of `dependabot` PRs - permissions: - contents: write - pull-requests: write deploy-snapshot: needs: build - if: github.repository == 'apache/logging-log4j-tools' && github.ref == 'refs/heads/main' + if: github.repository == 'apache/logging-log4j-tools' && github.ref_name == 'main' uses: apache/logging-parent/.github/workflows/deploy-snapshot-reusable.yaml@main - secrets: inherit + # Secrets for deployments + secrets: + NEXUS_USER: ${{ secrets.NEXUS_USER }} + NEXUS_PW: ${{ secrets.NEXUS_PW }} deploy-release: needs: build - if: github.repository == 'apache/logging-log4j-tools' && startsWith(github.ref, 'refs/heads/release/') + if: github.repository == 'apache/logging-log4j-tools' && startsWith(github.ref_name, 'release/') uses: apache/logging-parent/.github/workflows/deploy-release-reusable.yaml@main - secrets: inherit + # Secrets for deployments + secrets: + GPG_SECRET_KEY: ${{ secrets.GPG_SECRET_KEY }} + LOGGING_STAGE_DEPLOYER_USER: ${{ secrets.LOGGING_STAGE_DEPLOYER_USER }} + LOGGING_STAGE_DEPLOYER_PW: ${{ secrets.LOGGING_STAGE_DEPLOYER_PW }} + SVN_USERNAME: ${{ secrets.SVN_USERNAME }} + SVN_PASSWORD: ${{ secrets.SVN_PASSWORD }} # Write permissions to allow the Maven `revision` property update, changelog release, etc. permissions: contents: write with: - project-name: log4j-tools + project-id: log4j-tools distribution-attachment-count: 2 + site-enabled: true diff --git a/.github/workflows/merge-dependabot.yaml b/.github/workflows/merge-dependabot.yaml new file mode 100644 index 00000000..27b63fc3 --- /dev/null +++ b/.github/workflows/merge-dependabot.yaml @@ -0,0 +1,42 @@ +# +# 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. +# + +name: merge-dependabot + +on: + pull_request_target: + paths-ignore: + - "**.adoc" + - "**.md" + - "**.txt" + +permissions: read-all + +jobs: + + build: + if: github.repository == 'apache/logging-log4j-tools' && github.event_name == 'pull_request_target' && github.actor == 'dependabot[bot]' + uses: apache/logging-parent/.github/workflows/build-reusable.yaml@main + + merge-dependabot: + needs: build + uses: apache/logging-parent/.github/workflows/merge-dependabot-reusable.yaml@main + permissions: + contents: write # to push changelog commits + pull-requests: write # to close the PR + secrets: + GPG_SECRET_KEY: ${{ secrets.GPG_SECRET_KEY }} # to sign commits diff --git a/.mvn/jvm.config b/.mvn/jvm.config index 6f7d1c8d..45a03401 100644 --- a/.mvn/jvm.config +++ b/.mvn/jvm.config @@ -9,3 +9,5 @@ --add-exports jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED --add-opens jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED --add-opens jdk.compiler/com.sun.tools.javac.comp=ALL-UNNAMED +--add-opens java.base/sun.nio.ch=ALL-UNNAMED +--add-opens java.base/java.io=ALL-UNNAMED diff --git a/README.adoc b/README.adoc index 2ee1a9d5..1d2fc2f5 100644 --- a/README.adoc +++ b/README.adoc @@ -19,45 +19,5 @@ https://github.com/apache/logging-log4j-tools/actions[image:https://github.com/a https://search.maven.org/search?q=g:org.apache.logging.log4j%20a:log4j-tools-bom[image:https://img.shields.io/maven-central/v/org.apache.logging.log4j/log4j-tools-bom.svg[Maven Central]] https://www.apache.org/licenses/LICENSE-2.0.txt[image:https://img.shields.io/github/license/apache/logging-log4j-tools.svg[License]] -Tooling **internally** used by https://logging.apache.org/log4j/2.x/[the Apache Log4j project] infrastructure. - -xref:log4j-changelog/README.adoc[`log4j-changelog`]:: -Tools to maintain changelogs. - -xref:log4j-changelog-maven-plugin/README.adoc[`log4j-changelog-maven-plugin`]:: -Maven plugin for xref:log4j-changelog/README.adoc[`log4j-changelog`]. - -== Build - -This project generates Java 8 bytecode, though requires Java 17 for compilation. -You can build and test sources using `./mvnw verify` command. - -== Distribution - -In accordance with the Apache Software Foundation's release https://infra.apache.org/release-distribution.html[distribution policy] and https://infra.apache.org/release-publishing.html[creation process], project artifacts are _officially_ accessible from the following locations: - -* ASF https://repository.apache.org/content/repositories/releases[Release] and https://repository.apache.org/content/repositories/snapshots[snapshot] repositories (mirrored to https://central.sonatype.dev/[the Maven Central Repository]) -* ASF https://downloads.apache.org/logging/log4j-tools[Distribution directory] - -See xref:RELEASING.adoc[release instructions] for further details. - -== Support - -Please keep in mind that this project is intended for internal usage only. -You can use GitHub Issues for feature requests and bug reports – not questions! -See https://logging.apache.org/log4j/2.x/support.html[the Log4j support policy] for details. - -== Security - -If you have encountered an unlisted security vulnerability or other unexpected behaviour that has security impact, please report them privately to mailto:security@logging.apache.org[the Log4j security mailing list]. -See https://logging.apache.org/log4j/2.x/security.html[the Log4j Security page] for further details. - -== License - -Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. -See xref:NOTICE.txt[] 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. +Tooling **internally** used by https://logging.apache.org/log4j[the Apache Log4j project]. +See https://logging.apache.org/log4j/tools[the project website] for further information. diff --git a/RELEASE-NOTES.md b/RELEASE-NOTES.md deleted file mode 100644 index a37d6938..00000000 --- a/RELEASE-NOTES.md +++ /dev/null @@ -1,22 +0,0 @@ - - -This project uses itself, i.e., `log4j-changelog-maven-plugin`, for keeping a changelog and generating release notes. - -Changelog files are located under [`src/changelog`](src/changelog). -Release notes can be generated using `./mvnw -N -P changelog-export` command. -See [`log4j-changelog-maven-plugin`](log4j-changelog-maven-plugin) for details on how it all works. diff --git a/RELEASING.adoc b/RELEASING.adoc deleted file mode 100644 index 1e085662..00000000 --- a/RELEASING.adoc +++ /dev/null @@ -1,156 +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 - - 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. -//// - -// ██ ██ █████ ██████ ███ ██ ██ ███ ██ ██████ ██ -// ██ ██ ██ ██ ██ ██ ████ ██ ██ ████ ██ ██ ██ -// ██ █ ██ ███████ ██████ ██ ██ ██ ██ ██ ██ ██ ██ ███ ██ -// ██ ███ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ -// ███ ███ ██ ██ ██ ██ ██ ████ ██ ██ ████ ██████ ██ -// -// Below instructions are shared by all Maven-based Apache Logging Services projects. -// Be extremely cautious while making changes! - -// Configuration /////////////////////////////////////////////////////////////// - -// Name of the GitHub repository; `logging-parent`, `logging-log4j2`, `logging-log4j-tools`, etc. -:repository-name: logging-log4j-tools - -// Name of the project; `logging-parent`, `log4j`, `log4j-tools` -:project-name: log4j-tools - -// Instructions //////////////////////////////////////////////////////////////// - -= Release instructions - -[WARNING] -==== -In the code examples below, assuming the version to be released is `7.8.0`. -==== - -== Stage the release - -. Create and push the release branch: -+ -[source,bash] ----- -git fetch -p -git checkout -B release/7.8.0 origin/main -git push origin release/7.8.0 ----- -. Verify that the associated https://github.com/apache/{repository-name}/actions[GitHub Actions workflow] succeeds: -.. `revision` property in `pom.xml` is updated -.. Changelog is released (i.e., `src/changelog/7.8.0` folder is populated) -.. *Signed artifacts* are uploaded to the _Staging Repositories_ in https://repository.apache.org/[repository.apache.org] -.. *Signed distribution and its checksum* (e.g., `apache-{project-name}-7.8.0-{bin,src}.{zip,.zip.asc,.zip.sha512}`) are uploaded to https://dist.apache.org/repos/dist/dev/logging/log4j[dist.apache.org/repos/dist/**dev**/logging/log4j] Subversion repository (along with auxiliary files; email texts, etc.) - -+ -If not, commit necessary fixes, push, and repeat. - -+ -[TIP] -==== -GitHub Actions workflow is idempotent. -You can iterate on the `release/7.8.0` branch to perfect it. -==== -. _Close_ the repository in https://repository.apache.org/[repository.apache.org] - -== Vote the release - -. Send the vote email uploaded to the https://dist.apache.org/repos/dist/dev/logging/log4j[dist.apache.org/repos/dist/**dev**/logging/log4j] Subversion repository -+ -[WARNING] -==== -**Fix the cited https://repository.apache.org[repository.apache.org] URL** in the generated email! -It changes after every Nexus deployment. -==== -+ -[WARNING] -==== -Make sure your email is sent in plain text, that is, https://infra.apache.org/contrib-email-tips#nohtml[no HTML]! -If you are using GMail, simply enable the _"Plain text mode"_ while composing your message. -==== - -. Once the consensus is reached within the set time frame, respond to the first post in the thread as follows: -+ -[source] ----- -Adding my +1. - -With that, the release passes with 3 binding +1 votes from , ..., , and me. -I will continue the release process. ----- - -== Publish the release - -=== In the git repository - -. Pull the most recent changes and tags -+ -[source,bash] ----- -git fetch -p ----- -. Tag the release (e.g., `rel/7.8.0`) and push it -+ -[source,bash] ----- -git tag -a rel/7.8.0 -m 7.8.0 # <1> -git push origin rel/7.8.0 ----- -+ -<1> You can find the `COMMIT-ID` in the generated vote email. -+ -[IMPORTANT] -==== -The ASF infrastructure treats ``rel/``-prefixed git tags special and ensures they are immutable for provenance reasons. -==== -. Merge `release/7.8.0` to `main` -+ -[source,bash] ----- -git checkout main -git merge release/7.8.0 ----- -. Set the revision property to the next development version (e.g., `7.9.0-SNAPSHOT`) in xref:pom.xml[`pom.xml`] -. Commit changes and push the `main` branch -. Delete the local and remote copies of the `release/7.8.0` branch - -=== In the ASF infrastructure - -. _Release_ the repository in https://reporter.apache.org/addrelease.html?logging[repository.apache.org] -. In https://dist.apache.org/repos/dist/release/logging/{project-name}[dist.apache.org/repos/dist] Subversion repository, -.. create the `*release*/logging/{project-name}/7.8.0` folder, and copy the signed sources and their checksum from `*dev*/logging/{project-name}` to there -.. delete the folder from an earlier release in `*release*/logging/{project-name}` (stash the generated announcement email somewhere, you will need it later on) -.. commit changes -. Report the release at https://reporter.apache.org/addrelease.html?logging[reporter.apache.org] - -=== In GitHub - -Once the artifacts are visible in https://central.sonatype.dev/[central.sonatype.dev], https://github.com/apache/{repository-name}/releases/new[create a new release in GitHub] - -. Use the `rel/7.8.0` tag -. Copy release notes from the generated emails - -== Announce the release - -. Send the announcement email uploaded to the https://dist.apache.org/repos/dist/dev/logging/{project-name}[dist.apache.org/repos/dist/**dev**/logging/{project-name}] Subversion repository -+ -[WARNING] -==== -Make sure your email is sent in plain text, that is, https://infra.apache.org/contrib-email-tips#nohtml[no HTML]! -If you are using GMail, simply enable the _"Plain text mode"_ while composing your message. -==== diff --git a/log4j-tools-parent/pom.xml b/log4j-tools-parent/pom.xml index 7c3cf3f3..4e2d1f8c 100644 --- a/log4j-tools-parent/pom.xml +++ b/log4j-tools-parent/pom.xml @@ -38,7 +38,6 @@ 5.9.3 3.8.2 3.6.3 - 4.7.3 @@ -89,12 +88,6 @@ provided - - com.github.spotbugs - spotbugs-annotations - ${spotbugs.version} - - diff --git a/pom.xml b/pom.xml index 3a36bf4b..803a57e7 100644 --- a/pom.xml +++ b/pom.xml @@ -31,7 +31,7 @@ org.apache.logging logging-parent - 10.0.0 + 10.1.0-SNAPSHOT org.apache.logging.log4j diff --git a/spotless-license-header.txt b/spotless-license-header.txt deleted file mode 100644 index 4f332362..00000000 --- a/spotless-license-header.txt +++ /dev/null @@ -1,16 +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. - */ diff --git a/src/changelog/.0.x.x/.release-notes.adoc.ftl b/src/changelog/.0.x.x/.release-notes.adoc.ftl new file mode 100644 index 00000000..8ffd7474 --- /dev/null +++ b/src/changelog/.0.x.x/.release-notes.adoc.ftl @@ -0,0 +1,43 @@ +//// + 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 IT! + + Version-specific release notes (`7.8.0.adoc`, etc.) are generated from `src/changelog/*/.release-notes.adoc.ftl`. + Auto-generation happens during `generate-sources` phase of Maven. + Hence, you must always + + 1. Find and edit the associated `.release-notes.adoc.ftl` + 2. Run `./mvnw generate-sources` + 3. Commit both `.release-notes.adoc.ftl` and the generated `7.8.0.adoc` +//// + +[#release-notes-${release.version?replace("[^a-zA-Z0-9]", "-", "r")}] +=== ${release.version} + +<#if release.date?has_content>Release date:: ${release.date} + +This minor release contains various bug fixes and improvements. + +<#include "../.changelog.adoc.ftl"> diff --git a/src/changelog/.0.x.x/.release-notes.md.ftl b/src/changelog/.0.x.x/.release-notes.md.ftl deleted file mode 100644 index d93cd35e..00000000 --- a/src/changelog/.0.x.x/.release-notes.md.ftl +++ /dev/null @@ -1,22 +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. - --> - -# ${release.version}<#if release.date?has_content> (${release.date}) - -This minor release contains various bug fixes and improvements. - -<#include "../.changelog.md.ftl"> diff --git a/src/changelog/.0.x.x/add-website.xml b/src/changelog/.0.x.x/add-website.xml new file mode 100644 index 00000000..0cf8cb48 --- /dev/null +++ b/src/changelog/.0.x.x/add-website.xml @@ -0,0 +1,8 @@ + + + + Started publishing https://logging.apache.org/log4j/tools[the project website] + diff --git a/src/changelog/.0.x.x/set_changelog_schema_0_1_1.xml b/src/changelog/.0.x.x/set_changelog_schema_0_1_1.xml index 74d756cc..f66ef703 100644 --- a/src/changelog/.0.x.x/set_changelog_schema_0_1_1.xml +++ b/src/changelog/.0.x.x/set_changelog_schema_0_1_1.xml @@ -20,5 +20,5 @@ xsi:schemaLocation="http://logging.apache.org/log4j/changelog https://logging.apache.org/log4j/changelog-0.1.1.xsd" type="changed"> - Bump the default `log4j-changelog` XML schema version to `0.1.1` + Bump the default `log4j-changelog` XML schema version to `0.1.1` diff --git a/src/changelog/.changelog.md.ftl b/src/changelog/.changelog.adoc.ftl similarity index 77% rename from src/changelog/.changelog.md.ftl rename to src/changelog/.changelog.adoc.ftl index d840fe37..ebd41f02 100644 --- a/src/changelog/.changelog.md.ftl +++ b/src/changelog/.changelog.adoc.ftl @@ -14,13 +14,13 @@ ~ See the License for the specific language governing permissions and ~ limitations under the License. --> -<#if entriesByType?size gt 0>## Changes +<#if entriesByType?size gt 0> <#list entriesByType as entryType, entries> -### ${entryType?capitalize} +==== ${entryType?capitalize} <#list entries as entry> -* ${entry.description.text?replace("\\s+", " ", "r")}<#if entry.issues?has_content> (<#list entry.issues as issue><#if issue.link?starts_with("https://github.com/apache/logging-log4j-tools")>#${issue.id}<#else>[${issue.id}](${issue.link})<#if issue?has_next>, ) +* ${entry.description.text?replace("\\s+", " ", "r")}<#if entry.issues?has_content> (<#list entry.issues as issue>${issue.link}[${issue.id}]<#if issue?has_next>, ) diff --git a/src/changelog/.index.adoc.ftl b/src/changelog/.index.adoc.ftl new file mode 100644 index 00000000..8c4ff214 --- /dev/null +++ b/src/changelog/.index.adoc.ftl @@ -0,0 +1,41 @@ +//// + 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 IT! + + Release notes `index.adoc` is generated from `src/changelog/.index.adoc.ftl`. + Auto-generation happens during `generate-sources` phase of Maven. + Hence, you must always + + 1. Edit `.index.adoc.ftl` + 2. Run `./mvnw generate-sources` + 3. Commit both `.index.adoc.ftl` and the generated `.index.adoc` +//// + +[#release-notes] +== Release Notes + +<#list releases as release><#if release.changelogEntryCount gt 0> +include::_release-notes/_${release.version}.adoc[] + diff --git a/src/changelog/.index.md.ftl b/src/changelog/.index.md.ftl deleted file mode 100644 index 693f1f88..00000000 --- a/src/changelog/.index.md.ftl +++ /dev/null @@ -1,22 +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. - --> - -# Release Notes - -<#list releases as release> -* [${release.version}](${release.version}.md)<#if release.date?has_content> (${release.date}) - diff --git a/src/changelog/0.1.0/.release-notes.adoc.ftl b/src/changelog/0.1.0/.release-notes.adoc.ftl new file mode 100644 index 00000000..d7c75033 --- /dev/null +++ b/src/changelog/0.1.0/.release-notes.adoc.ftl @@ -0,0 +1,43 @@ +//// + 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 IT! + + Version-specific release notes (`7.8.0.adoc`, etc.) are generated from `src/changelog/*/.release-notes.adoc.ftl`. + Auto-generation happens during `generate-sources` phase of Maven. + Hence, you must always + + 1. Find and edit the associated `.release-notes.adoc.ftl` + 2. Run `./mvnw generate-sources` + 3. Commit both `.release-notes.adoc.ftl` and the generated `7.8.0.adoc` +//// + +[#release-notes-${release.version?replace("[^a-zA-Z0-9]", "-", "r")}] +=== ${release.version} + +<#if release.date?has_content>Release date:: ${release.date} + +This is the first release, aimed to assist [the Apache Log4j 2](http://logging.apache.org/log4j/2.x/) on generating release notes. + +<#include "../.changelog.adoc.ftl"> diff --git a/src/changelog/0.1.0/.release-notes.md.ftl b/src/changelog/0.1.0/.release-notes.md.ftl deleted file mode 100644 index 81782acb..00000000 --- a/src/changelog/0.1.0/.release-notes.md.ftl +++ /dev/null @@ -1,22 +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. - --> - -# ${release.version}<#if release.date?has_content> (${release.date}) - -This is the first release, aimed to assist [the Apache Log4j 2](http://logging.apache.org/log4j/2.x/) on generating release notes. - -<#include "../.changelog.md.ftl"> diff --git a/src/changelog/0.1.0/LOG4J2-3628_add_tools_bom_and_changelog_modules.xml b/src/changelog/0.1.0/LOG4J2-3628_add_tools_bom_and_changelog_modules.xml index 703f72ec..67cba747 100644 --- a/src/changelog/0.1.0/LOG4J2-3628_add_tools_bom_and_changelog_modules.xml +++ b/src/changelog/0.1.0/LOG4J2-3628_add_tools_bom_and_changelog_modules.xml @@ -21,5 +21,5 @@ type="added"> - Add `log4j-tools-bom` and `log4j-changelog` modules + Add `log4j-tools-bom` and `log4j-changelog` modules diff --git a/src/changelog/0.2.0/.release-notes.adoc.ftl b/src/changelog/0.2.0/.release-notes.adoc.ftl new file mode 100644 index 00000000..8ffd7474 --- /dev/null +++ b/src/changelog/0.2.0/.release-notes.adoc.ftl @@ -0,0 +1,43 @@ +//// + 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 IT! + + Version-specific release notes (`7.8.0.adoc`, etc.) are generated from `src/changelog/*/.release-notes.adoc.ftl`. + Auto-generation happens during `generate-sources` phase of Maven. + Hence, you must always + + 1. Find and edit the associated `.release-notes.adoc.ftl` + 2. Run `./mvnw generate-sources` + 3. Commit both `.release-notes.adoc.ftl` and the generated `7.8.0.adoc` +//// + +[#release-notes-${release.version?replace("[^a-zA-Z0-9]", "-", "r")}] +=== ${release.version} + +<#if release.date?has_content>Release date:: ${release.date} + +This minor release contains various bug fixes and improvements. + +<#include "../.changelog.adoc.ftl"> diff --git a/src/changelog/0.2.0/.release-notes.md.ftl b/src/changelog/0.2.0/.release-notes.md.ftl deleted file mode 100644 index d93cd35e..00000000 --- a/src/changelog/0.2.0/.release-notes.md.ftl +++ /dev/null @@ -1,22 +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. - --> - -# ${release.version}<#if release.date?has_content> (${release.date}) - -This minor release contains various bug fixes and improvements. - -<#include "../.changelog.md.ftl"> diff --git a/src/changelog/0.2.0/13_add_changelog_xsd.xml b/src/changelog/0.2.0/13_add_changelog_xsd.xml index 50ce6b34..73d07762 100644 --- a/src/changelog/0.2.0/13_add_changelog_xsd.xml +++ b/src/changelog/0.2.0/13_add_changelog_xsd.xml @@ -22,5 +22,5 @@ - Add XSD for `log4j-changelog` XML files + Add XSD for `log4j-changelog` XML files diff --git a/src/changelog/0.2.0/14_remove_changelog_security_type.xml b/src/changelog/0.2.0/14_remove_changelog_security_type.xml index 1b0cefbe..68f6b5bd 100644 --- a/src/changelog/0.2.0/14_remove_changelog_security_type.xml +++ b/src/changelog/0.2.0/14_remove_changelog_security_type.xml @@ -22,5 +22,5 @@ - Remove `security` as a change type from `log4j-changelog` + Remove `security` as a change type from `log4j-changelog` diff --git a/src/changelog/0.2.0/17_fix_unreleased_directory_order.xml b/src/changelog/0.2.0/17_fix_unreleased_directory_order.xml index edb52a30..f969059d 100644 --- a/src/changelog/0.2.0/17_fix_unreleased_directory_order.xml +++ b/src/changelog/0.2.0/17_fix_unreleased_directory_order.xml @@ -21,5 +21,5 @@ type="fixed"> - Fix unreleased directory order in `ChangelogExporter` + Fix unreleased directory order in `ChangelogExporter` diff --git a/src/changelog/0.2.0/19_fix_Windows_compat.xml b/src/changelog/0.2.0/19_fix_Windows_compat.xml index 03d4202c..9c31d2e5 100644 --- a/src/changelog/0.2.0/19_fix_Windows_compat.xml +++ b/src/changelog/0.2.0/19_fix_Windows_compat.xml @@ -22,5 +22,5 @@ - Fix Windows compatibility + Fix Windows compatibility diff --git a/src/changelog/0.2.0/20_add_changelog_maven_plugin.xml b/src/changelog/0.2.0/20_add_changelog_maven_plugin.xml index bf076f83..b66d1b0c 100644 --- a/src/changelog/0.2.0/20_add_changelog_maven_plugin.xml +++ b/src/changelog/0.2.0/20_add_changelog_maven_plugin.xml @@ -22,5 +22,5 @@ - Add `log4j-changelog-maven-plugin` module + Add `log4j-changelog-maven-plugin` module diff --git a/src/changelog/0.2.0/20_rename_exporter_outputDirectory_property.xml b/src/changelog/0.2.0/20_rename_exporter_outputDirectory_property.xml index c9fe1622..83540539 100644 --- a/src/changelog/0.2.0/20_rename_exporter_outputDirectory_property.xml +++ b/src/changelog/0.2.0/20_rename_exporter_outputDirectory_property.xml @@ -22,5 +22,5 @@ - Rename `log4j.changelog.exporter.outputDirectory` property to `log4j.changelog.outputDirectory` + Rename `log4j.changelog.exporter.outputDirectory` property to `log4j.changelog.outputDirectory` diff --git a/src/changelog/0.3.0/.release-notes.adoc.ftl b/src/changelog/0.3.0/.release-notes.adoc.ftl new file mode 100644 index 00000000..8ffd7474 --- /dev/null +++ b/src/changelog/0.3.0/.release-notes.adoc.ftl @@ -0,0 +1,43 @@ +//// + 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 IT! + + Version-specific release notes (`7.8.0.adoc`, etc.) are generated from `src/changelog/*/.release-notes.adoc.ftl`. + Auto-generation happens during `generate-sources` phase of Maven. + Hence, you must always + + 1. Find and edit the associated `.release-notes.adoc.ftl` + 2. Run `./mvnw generate-sources` + 3. Commit both `.release-notes.adoc.ftl` and the generated `7.8.0.adoc` +//// + +[#release-notes-${release.version?replace("[^a-zA-Z0-9]", "-", "r")}] +=== ${release.version} + +<#if release.date?has_content>Release date:: ${release.date} + +This minor release contains various bug fixes and improvements. + +<#include "../.changelog.adoc.ftl"> diff --git a/src/changelog/0.3.0/.release-notes.md.ftl b/src/changelog/0.3.0/.release-notes.md.ftl deleted file mode 100644 index d93cd35e..00000000 --- a/src/changelog/0.3.0/.release-notes.md.ftl +++ /dev/null @@ -1,22 +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. - --> - -# ${release.version}<#if release.date?has_content> (${release.date}) - -This minor release contains various bug fixes and improvements. - -<#include "../.changelog.md.ftl"> diff --git a/src/changelog/0.3.0/37_add_changelogEntryCount.xml b/src/changelog/0.3.0/37_add_changelogEntryCount.xml index 4479fea6..fc8c3e5e 100644 --- a/src/changelog/0.3.0/37_add_changelogEntryCount.xml +++ b/src/changelog/0.3.0/37_add_changelogEntryCount.xml @@ -22,5 +22,5 @@ - The changelog release models passed to the index template file (`.index.adoc.ftl`) is enriched with `changelogEntryCount` fields + The changelog release models passed to the index template file (`.index.adoc.ftl`) is enriched with `changelogEntryCount` fields diff --git a/src/changelog/0.3.0/44_make_changelog_format_agnostic.xml b/src/changelog/0.3.0/44_make_changelog_format_agnostic.xml index d030342d..a52f4471 100644 --- a/src/changelog/0.3.0/44_make_changelog_format_agnostic.xml +++ b/src/changelog/0.3.0/44_make_changelog_format_agnostic.xml @@ -21,5 +21,5 @@ type="added"> - Support multiple and formatting-agnostic template files + Support multiple and formatting-agnostic template files diff --git a/src/changelog/0.3.0/java_17.xml b/src/changelog/0.3.0/java_17.xml index f5031ec3..82659a81 100644 --- a/src/changelog/0.3.0/java_17.xml +++ b/src/changelog/0.3.0/java_17.xml @@ -20,5 +20,5 @@ xsi:schemaLocation="http://logging.apache.org/log4j/changelog https://logging.apache.org/log4j/changelog-0.1.1.xsd" type="changed"> - Upgrade the compiler version to Java 17, yet still target Java 8 + Upgrade the compiler version to Java 17, yet still target Java 8 diff --git a/src/changelog/0.4.0/.release-notes.adoc.ftl b/src/changelog/0.4.0/.release-notes.adoc.ftl new file mode 100644 index 00000000..a3948718 --- /dev/null +++ b/src/changelog/0.4.0/.release-notes.adoc.ftl @@ -0,0 +1,44 @@ +//// + 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 IT! + + Version-specific release notes (`7.8.0.adoc`, etc.) are generated from `src/changelog/*/.release-notes.adoc.ftl`. + Auto-generation happens during `generate-sources` phase of Maven. + Hence, you must always + + 1. Find and edit the associated `.release-notes.adoc.ftl` + 2. Run `./mvnw generate-sources` + 3. Commit both `.release-notes.adoc.ftl` and the generated `7.8.0.adoc` +//// + +[#release-notes-${release.version?replace("[^a-zA-Z0-9]", "-", "r")}] +=== ${release.version} + +<#if release.date?has_content>Release date:: ${release.date} + +This minor release contains small enhancements. +Most importantly, this marks the first release where the project uses itself to generate release notes! + +<#include "../.changelog.adoc.ftl"> diff --git a/src/changelog/0.4.0/.release-notes.md.ftl b/src/changelog/0.4.0/.release-notes.md.ftl deleted file mode 100644 index 740c66fe..00000000 --- a/src/changelog/0.4.0/.release-notes.md.ftl +++ /dev/null @@ -1,23 +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. - --> - -# ${release.version}<#if release.date?has_content> (${release.date}) - -This minor release contains small enhancements. -Most importantly, this marks the first release where the project uses itself to generate release notes! - -<#include "../.changelog.md.ftl"> diff --git a/src/changelog/0.4.0/63_add_versionPattern_to_ReleaseMojo.xml b/src/changelog/0.4.0/63_add_versionPattern_to_ReleaseMojo.xml index 479cfaa9..61108f51 100644 --- a/src/changelog/0.4.0/63_add_versionPattern_to_ReleaseMojo.xml +++ b/src/changelog/0.4.0/63_add_versionPattern_to_ReleaseMojo.xml @@ -22,5 +22,5 @@ - Add `versionPattern` (i.e., the regular expression pattern for parsing versions) parameter to the Maven `release` goal + Add `versionPattern` (i.e., the regular expression pattern for parsing versions) parameter to the Maven `release` goal diff --git a/src/changelog/0.4.0/change_ExportMojo_outputDirectory.xml b/src/changelog/0.4.0/change_ExportMojo_outputDirectory.xml index 5d1909e7..015e523f 100644 --- a/src/changelog/0.4.0/change_ExportMojo_outputDirectory.xml +++ b/src/changelog/0.4.0/change_ExportMojo_outputDirectory.xml @@ -20,5 +20,5 @@ xsi:schemaLocation="http://logging.apache.org/log4j/changelog https://logging.apache.org/log4j/changelog-0.1.1.xsd" type="changed"> - Change the default value of `outputDirectory` to `${project.build.directory}/generated-sources/site/changelog` for the Maven `export` goal + Change the default value of `outputDirectory` to `${project.build.directory}/generated-sources/site/changelog` for the Maven `export` goal diff --git a/src/changelog/0.4.0/changelog_migration.xml b/src/changelog/0.4.0/changelog_migration.xml index e99c6123..15c64c5d 100644 --- a/src/changelog/0.4.0/changelog_migration.xml +++ b/src/changelog/0.4.0/changelog_migration.xml @@ -20,5 +20,5 @@ xsi:schemaLocation="http://logging.apache.org/log4j/changelog https://logging.apache.org/log4j/changelog-0.1.1.xsd" type="changed"> - Migrate from `CHANGELOG.adoc` to using `log4j-changelog-maven-plugin` + Migrate from `CHANGELOG.adoc` to using `log4j-changelog-maven-plugin` diff --git a/src/changelog/0.4.0/fix_repetitive_release.xml b/src/changelog/0.4.0/fix_repetitive_release.xml index 19816d78..d588b203 100644 --- a/src/changelog/0.4.0/fix_repetitive_release.xml +++ b/src/changelog/0.4.0/fix_repetitive_release.xml @@ -20,5 +20,5 @@ xsi:schemaLocation="http://logging.apache.org/log4j/changelog https://logging.apache.org/log4j/changelog-0.1.1.xsd" type="fixed"> - Improve Maven `release` goal to accommodate repetitive invocations + Improve Maven `release` goal to accommodate repetitive invocations diff --git a/src/site/_constants.adoc b/src/site/_constants.adoc new file mode 100644 index 00000000..b71dc65a --- /dev/null +++ b/src/site/_constants.adoc @@ -0,0 +1,41 @@ +//// + 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 `.tmpl.adoc` SUFFIX, IT IS AUTO-GENERATED, DO NOT EDIT IT! + + `_constants.adoc` is auto-generated from `_constants.tmpl.adoc`. + Auto-generation happens during `process-sources` phase of Maven. + Hence, you must always + + 1. Edit `_constants.tmpl.adoc` + 2. Run `./mvnw process-sources` + 3. Commit both `_constants.tmpl.adoc` and the generated `_constants.adoc` +//// + +:project-github-url: https://github.com/apache/logging-log4j-tools +:project-version: 0.5.0-SNAPSHOT +:project-name: Log4j Tools +:project-id: log4j-tools +:java-target-version: 8 +:java-compiler-version: [17,18) diff --git a/src/site/_constants.tmpl.adoc b/src/site/_constants.tmpl.adoc new file mode 100644 index 00000000..c20ae1e6 --- /dev/null +++ b/src/site/_constants.tmpl.adoc @@ -0,0 +1,41 @@ +//// + 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 `.tmpl.adoc` SUFFIX, IT IS AUTO-GENERATED, DO NOT EDIT IT! + + `_constants.adoc` is auto-generated from `_constants.tmpl.adoc`. + Auto-generation happens during `process-sources` phase of Maven. + Hence, you must always + + 1. Edit `_constants.tmpl.adoc` + 2. Run `./mvnw process-sources` + 3. Commit both `_constants.tmpl.adoc` and the generated `_constants.adoc` +//// + +:project-github-url: ${scm.url} +:project-version: ${project.version} +:project-name: Log4j Tools +:project-id: log4j-tools +:java-target-version: ${maven.compiler.target} +:java-compiler-version: ${minimalJavaBuildVersion} diff --git a/log4j-changelog-maven-plugin/README.adoc b/src/site/_log4j-changelog-maven-plugin.adoc similarity index 72% rename from log4j-changelog-maven-plugin/README.adoc rename to src/site/_log4j-changelog-maven-plugin.adoc index 249b062a..723f0b34 100644 --- a/log4j-changelog-maven-plugin/README.adoc +++ b/src/site/_log4j-changelog-maven-plugin.adoc @@ -15,35 +15,51 @@ See the License for the specific language governing permissions and limitations under the License. //// -:freemarker-link: https://freemarker.apache.org[FreeMarker] +[#log4j-changelog-maven-plugin] +== `log4j-changelog-maven-plugin` -This project ships a Maven plugin providing access to the xref:../log4j-changelog/src/main/java/org/apache/logging/log4j/changelog/exporter/ChangelogExporter.java[`ChangelogExporter`] and xref:../log4j-changelog/src/main/java/org/apache/logging/log4j/changelog/releaser/ChangelogReleaser.java[`ChangelogReleaser`] of xref:../log4j-changelog/README.adoc[`log4j-changelog`]. +This project ships a Maven plugin providing access to the `ChangelogExporter` and `ChangelogReleaser` of xref:#log4j-changelog[`log4j-changelog`]. -[#export] -== Exporting changelogs +[#log4j-changelog-dependencies] +== Dependencies + +You need to have the `org.apache.logging.log4j:log4j-changelog-maven-plugin` dependency in your classpath: + +[source,xml,subs="+attributes"] +---- + + org.apache.logging.log4j + log4j-changelog-maven-plugin + {project-version} + +---- + +[#log4j-changelog-maven-plugin-export] +=== Exporting changelogs _Exporting_ changelogs is the act of feeding provided changelog and release information into {freemarker-link} templates to generate certain files; e.g., release notes for the website. There are two types template files supported: -xref:#changelog-template[Changelog templates]:: +xref:#log4j-changelog-changelog-template[Changelog templates]:: These templates are rendered with the release and changelog information of a particular release. These are generally used to generate release notes for a particular release. -xref:#index-template[Index templates]:: +xref:#log4j-changelog-index-template[Index templates]:: These templates are rendered with the release information of all releases. These are generally used to generate the index page referencing to release notes of each release. -See xref:../log4j-changelog/README.adoc#export[the `log4j-changelog` documentation] for further details. +See xref:#log4j-changelog-export[the `log4j-changelog` documentation] for further details. You can use the `export` goal as follows: .`build > plugins` block entry of `pom.xml` -[source,bash] +[source,xml,subs="+attributes"] ---- org.apache.logging.log4j log4j-changelog-maven-plugin + {project-version} false @@ -80,14 +96,14 @@ Directory to write rendered templates. It defaults to `${project.build.directory}/generated-sources/site/changelog` and can be set using the `log4j.changelog.exporter.outputDirectory` property. `indexTemplates` (parameter):: -List of xref:#export-template-type[template]s that will be rendered with release information of all releases. -See xref:../log4j-changelog/README.adoc#index-template-file[the index template file documentation] for details. +List of xref:#log4j-changelog-maven-plugin-export-template-type[template]s that will be rendered with release information of all releases. +See xref:#log4j-changelog-index-template[the index template file documentation] for details. `changelogTemplates` (parameter):: -List of xref:#export-template-type[template]s that will be rendered with release and changelog information of a particular release. -See xref:../log4j-changelog/README.adoc#changelog-template-file[the changelog template file documentation] for details. +List of xref:#log4j-changelog-maven-plugin-export-template-type[template]s that will be rendered with release and changelog information of a particular release. +See xref:#log4j-changelog-changelog-template[the changelog template file documentation] for details. -[#export-template-type] +[#log4j-changelog-maven-plugin-export-template-type] `Template` (type):: An object composed of following fields: + @@ -104,10 +120,10 @@ If the value contains a `%v` (e.g., `%v.adoc`), it will be replaced with the ass Indicates if export should fail when the source cannot be found. Defaults to `false`. -[#release] -== Populating a release changelog directory +[#log4j-changelog-maven-plugin-release] +=== Populating a release changelog directory -You can use the `release` goal wrapping xref:../log4j-changelog/README.adoc#qa-deploy-release[`ChangelogReleaser` to populate a release changelog directory]. +You can use the `release` goal wrapping xref:#log4j-changelog-qa-deploy-release[`ChangelogReleaser` to populate a release changelog directory]. An example usage is shared below. .Populate `src/changelog/2.19.0` from `src/changelog/.2.x.x` diff --git a/log4j-changelog/README.adoc b/src/site/_log4j-changelog.adoc similarity index 87% rename from log4j-changelog/README.adoc rename to src/site/_log4j-changelog.adoc index 32bb9cb6..2ade2acf 100644 --- a/log4j-changelog/README.adoc +++ b/src/site/_log4j-changelog.adoc @@ -15,18 +15,33 @@ See the License for the specific language governing permissions and limitations under the License. //// -:freemarker-link: https://freemarker.apache.org[FreeMarker] +[#log4j-changelog] +== `log4j-changelog` This project contains tools to maintain changelogs. It is designed for Apache Log4j, but can be used for any Java project. -[#what-is-a-changelog] -== What is a changelog? +[#log4j-changelog-dependencies] +== Dependencies + +You need to have the `org.apache.logging.log4j:log4j-changelog` dependency in your classpath: + +[source,xml,subs="+attributes"] +---- + + org.apache.logging.log4j + log4j-changelog + {project-version} + +---- + +[#log4j-changelog-what-is-a-changelog] +=== What is a changelog? A changelog is a log of all notable changes made to a project. -[#why-different] -== Why yet another changelog tool? +[#log4j-changelog-why-different] +=== Why yet another changelog tool? Existing changelog practices (e.g., https://keepachangelog.com[Keep a changelog], https://maven.apache.org/plugins/maven-changes-plugin/[maven-changes-plugin]) store changelog entries in the same file. This creates merge conflicts between different branches. @@ -36,8 +51,8 @@ Whoever succeeds in merging their branch to `main` first will cause a merge-conf This project embraces a model where changelog entries are kept in separate files and hence are not prone to merge conflicts. Similar to `maven-changes-plugin`, changelog sources and their exports (e.g., AsciiDoc-formatted) are split by design. -[#look] -== What does it look like? +[#log4j-changelog-look] +=== What does it look like? All changelog _sources_ and templates used to _export_ them are stored in folders under _the changelog directory_ (e.g., `/src/changelog`): @@ -71,8 +86,8 @@ Note that upcoming release folders (e.g., `src/changelog/.2.x.x`) don't contain <4> All XML files not prefixed with a `.` (e.g., `src/changelog/.2.x.x/LOG4J2-3628_new_changelog_infra.xml`) constitute changelog entries <5> {freemarker-link} templates are used to _export_ this information to various forms; AsciiDoc-formatted pages for the website, Markdown-formatted files for GitHub Releases, etc. -[#release-entry-file] -== Release entry file +[#log4j-changelog-release-entry-file] +=== Release entry file A release entry file, `.release.xml`, consists of meta information regarding a particular release. A sample _release entry_ file is shared below. @@ -92,8 +107,8 @@ A sample _release entry_ file is shared below. Note that upcoming release folders (e.g., `src/changelog/.2.x.x`) don't contain a `.release.xml`, since these releases are by definition not done yet. -[#changelog-entry-file] -== Changelog entry file +[#log4j-changelog-changelog-entry-file] +=== Changelog entry file A changelog entry file consists of short meta information regarding a particular change. They are named following the `[_].xml` pattern. @@ -137,31 +152,31 @@ Some remarks about the structure of changelog entry files: * There must be at least one `author` * There must be a single `description` element with non-blank content and `format` attribute -[#export] -== Exporting changelogs +[#log4j-changelog-export] +=== Exporting changelogs _Exporting_ changelogs is the act of feeding provided changelog and release information into {freemarker-link} templates to generate certain files; e.g., release notes for the website. There are two types template files supported: -xref:#changelog-template[Changelog templates]:: +xref:#log4j-changelog-changelog-template[Changelog templates]:: These templates are rendered with the release and changelog information of a particular release. These are generally used to generate release notes for a particular release. -xref:#index-template[Index templates]:: +xref:#log4j-changelog-index-template[Index templates]:: These templates are rendered with the release information of all releases. These are generally used to generate the index page referencing to release notes of each release. -xref:src/main/java/org/apache/logging/log4j/changelog/exporter/ChangelogExporter.java[`ChangelogExporter`] is responsible for performing the export operation. +`ChangelogExporter` is responsible for performing the export operation. -[#changelog-template] -=== Changelog templates +[#log4j-changelog-changelog-template] +==== Changelog templates Changelog template files (e.g., `src/changelog/2.19.0/.release-notes.adoc.ftl` ) are rendered with the release and changelog information of a particular release using the following input data hash: * `release` → `ChangelogRelease` * `entriesByType` → `Map>` -See xref:src/main/java/org/apache/logging/log4j/changelog/ChangelogRelease.java[`ChangelogRelease`] and xref:src/main/java/org/apache/logging/log4j/changelog/ChangelogEntry.java[`ChangelogEntry`] for details. +See `ChangelogRelease` and `ChangelogEntry` for details. These templates are generally used to generate release notes for a particular release. A sample changelog template file is shared below. @@ -187,8 +202,8 @@ by <#list entry.authors as author><#if author.name?has_content>${author.name}<#e ---- -[#index-template] -=== Index templates +[#log4j-changelog-index-template] +==== Index templates Index template files (e.g., `src/changelog/.index.adoc.ftl`) are rendered with the release information of all releases using the following input data hash: @@ -209,22 +224,22 @@ A sample index template file is shared below. ---- -[#qa] -== Q&A +[#log4j-changelog-qa] +=== Q&A -[#qa-entry] -=== How can I add an entry for a change I am about to commit? +[#log4j-changelog-qa-entry] +==== How can I add an entry for a change I am about to commit? You have just committed, or better, about to commit a great feature you have been working on. -Simply create a <<#changelog-entry-file>> and commit it along with your change! +Simply create a <<#log4j-changelog-changelog-entry-file>> and commit it along with your change! -[#qa-generate] -=== How can I export changelogs to AsciiDoc, Markdown, etc. files? +[#log4j-changelog-qa-generate] +==== How can I export changelogs to AsciiDoc, Markdown, etc. files? -You need to use xref:../log4j-changelog-maven-plugin/README.adoc#export[the `export` goal the Maven plugin]. +You need to use xref:#log4j-changelog-maven-plugin-export[the `export` goal the Maven plugin]. -[#qa-deploy-release] -=== I am about to deploy a new release. What shall I do? +[#log4j-changelog-qa-deploy-release] +==== 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: @@ -245,7 +260,7 @@ Hence, there are no differences between releases and release candidates from the How to carry out aforementioned changes are explained below in steps: -. Populate the `/` directory (e.g., `/src/changelog/2.19.0`) from the upcoming release changelog directory (e.g., `/.2.x.x`) using the xref:../log4j-changelog-maven-plugin/README.adoc#release[`release` Maven goal]: +. Populate the `/` directory (e.g., `/src/changelog/2.19.0`) from the upcoming release changelog directory (e.g., `/.2.x.x`) using the xref:#log4j-changelog-maven-plugin-release[`release` Maven goal]: + [source,bash] ---- diff --git a/src/site/_release-notes.adoc b/src/site/_release-notes.adoc new file mode 100644 index 00000000..97edc845 --- /dev/null +++ b/src/site/_release-notes.adoc @@ -0,0 +1,43 @@ +//// + 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 IT! + + Release notes `index.adoc` is generated from `src/changelog/.index.adoc.ftl`. + Auto-generation happens during `generate-sources` phase of Maven. + Hence, you must always + + 1. Edit `.index.adoc.ftl` + 2. Run `./mvnw generate-sources` + 3. Commit both `.index.adoc.ftl` and the generated `.index.adoc` +//// + +[#release-notes] +== Release Notes + +include::_release-notes/_0.x.x.adoc[] +include::_release-notes/_0.4.0.adoc[] +include::_release-notes/_0.3.0.adoc[] +include::_release-notes/_0.2.0.adoc[] +include::_release-notes/_0.1.0.adoc[] diff --git a/src/site/_release-notes/_0.1.0.adoc b/src/site/_release-notes/_0.1.0.adoc new file mode 100644 index 00000000..075ff834 --- /dev/null +++ b/src/site/_release-notes/_0.1.0.adoc @@ -0,0 +1,46 @@ +//// + 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 IT! + + Version-specific release notes (`7.8.0.adoc`, etc.) are generated from `src/changelog/*/.release-notes.adoc.ftl`. + Auto-generation happens during `generate-sources` phase of Maven. + Hence, you must always + + 1. Find and edit the associated `.release-notes.adoc.ftl` + 2. Run `./mvnw generate-sources` + 3. Commit both `.release-notes.adoc.ftl` and the generated `7.8.0.adoc` +//// + +[#release-notes-0-1-0] +=== 0.1.0 + +Release date:: 2023-01-10 + +This is the first release, aimed to assist [the Apache Log4j 2](http://logging.apache.org/log4j/2.x/) on generating release notes. + + +==== Added + +* Add `log4j-tools-bom` and `log4j-changelog` modules (https://issues.apache.org/jira/browse/LOG4J2-3628[LOG4J2-3628]) diff --git a/src/site/_release-notes/_0.2.0.adoc b/src/site/_release-notes/_0.2.0.adoc new file mode 100644 index 00000000..8aec00b2 --- /dev/null +++ b/src/site/_release-notes/_0.2.0.adoc @@ -0,0 +1,60 @@ +//// + 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 IT! + + Version-specific release notes (`7.8.0.adoc`, etc.) are generated from `src/changelog/*/.release-notes.adoc.ftl`. + Auto-generation happens during `generate-sources` phase of Maven. + Hence, you must always + + 1. Find and edit the associated `.release-notes.adoc.ftl` + 2. Run `./mvnw generate-sources` + 3. Commit both `.release-notes.adoc.ftl` and the generated `7.8.0.adoc` +//// + +[#release-notes-0-2-0] +=== 0.2.0 + +Release date:: 2023-01-31 + +This minor release contains various bug fixes and improvements. + + +==== Added + +* Add XSD for `log4j-changelog` XML files (https://github.com/apache/logging-log4j-tools/issues/13[13]) +* Add `log4j-changelog-maven-plugin` module (https://github.com/apache/logging-log4j-tools/issues/20[20]) + +==== Changed + +* Rename `log4j.changelog.exporter.outputDirectory` property to `log4j.changelog.outputDirectory` (https://github.com/apache/logging-log4j-tools/issues/20[20]) + +==== Removed + +* Remove `security` as a change type from `log4j-changelog` (https://github.com/apache/logging-log4j-tools/issues/14[14]) + +==== Fixed + +* Fix unreleased directory order in `ChangelogExporter` (https://github.com/apache/logging-log4j-tools/issues/17[17]) +* Fix Windows compatibility (https://github.com/apache/logging-log4j-tools/issues/19[19]) diff --git a/src/site/_release-notes/_0.3.0.adoc b/src/site/_release-notes/_0.3.0.adoc new file mode 100644 index 00000000..43e5df9a --- /dev/null +++ b/src/site/_release-notes/_0.3.0.adoc @@ -0,0 +1,51 @@ +//// + 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 IT! + + Version-specific release notes (`7.8.0.adoc`, etc.) are generated from `src/changelog/*/.release-notes.adoc.ftl`. + Auto-generation happens during `generate-sources` phase of Maven. + Hence, you must always + + 1. Find and edit the associated `.release-notes.adoc.ftl` + 2. Run `./mvnw generate-sources` + 3. Commit both `.release-notes.adoc.ftl` and the generated `7.8.0.adoc` +//// + +[#release-notes-0-3-0] +=== 0.3.0 + +Release date:: 2023-03-14 + +This minor release contains various bug fixes and improvements. + + +==== Added + +* The changelog release models passed to the index template file (`.index.adoc.ftl`) is enriched with `changelogEntryCount` fields (https://github.com/apache/logging-log4j-tools/issues/37[37]) +* Support multiple and formatting-agnostic template files (https://github.com/apache/logging-log4j-tools/issues/44[44]) + +==== Changed + +* Upgrade the compiler version to Java 17, yet still target Java 8 diff --git a/src/site/_release-notes/_0.4.0.adoc b/src/site/_release-notes/_0.4.0.adoc new file mode 100644 index 00000000..f94b887c --- /dev/null +++ b/src/site/_release-notes/_0.4.0.adoc @@ -0,0 +1,56 @@ +//// + 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 IT! + + Version-specific release notes (`7.8.0.adoc`, etc.) are generated from `src/changelog/*/.release-notes.adoc.ftl`. + Auto-generation happens during `generate-sources` phase of Maven. + Hence, you must always + + 1. Find and edit the associated `.release-notes.adoc.ftl` + 2. Run `./mvnw generate-sources` + 3. Commit both `.release-notes.adoc.ftl` and the generated `7.8.0.adoc` +//// + +[#release-notes-0-4-0] +=== 0.4.0 + +Release date:: 2023-07-02 + +This minor release contains small enhancements. +Most importantly, this marks the first release where the project uses itself to generate release notes! + + +==== Added + +* Add `versionPattern` (i.e., the regular expression pattern for parsing versions) parameter to the Maven `release` goal (https://github.com/apache/logging-log4j-tools/issues/63[63]) + +==== Changed + +* Change the default value of `outputDirectory` to `${project.build.directory}/generated-sources/site/changelog` for the Maven `export` goal +* Migrate from `CHANGELOG.adoc` to using `log4j-changelog-maven-plugin` + +==== Fixed + +* Improve Maven `release` goal to accommodate repetitive invocations diff --git a/src/site/_release-notes/_0.x.x.adoc b/src/site/_release-notes/_0.x.x.adoc new file mode 100644 index 00000000..03dcddca --- /dev/null +++ b/src/site/_release-notes/_0.x.x.adoc @@ -0,0 +1,50 @@ +//// + 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 IT! + + Version-specific release notes (`7.8.0.adoc`, etc.) are generated from `src/changelog/*/.release-notes.adoc.ftl`. + Auto-generation happens during `generate-sources` phase of Maven. + Hence, you must always + + 1. Find and edit the associated `.release-notes.adoc.ftl` + 2. Run `./mvnw generate-sources` + 3. Commit both `.release-notes.adoc.ftl` and the generated `7.8.0.adoc` +//// + +[#release-notes-0-x-x] +=== 0.x.x + + + +This minor release contains various bug fixes and improvements. + + +==== Added + +* Started publishing https://logging.apache.org/log4j/tools[the project website] + +==== Changed + +* Bump the default `log4j-changelog` XML schema version to `0.1.1` diff --git a/src/site/index.adoc b/src/site/index.adoc new file mode 100644 index 00000000..50158af8 --- /dev/null +++ b/src/site/index.adoc @@ -0,0 +1,91 @@ +//// +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. +//// + +include::_constants.adoc[] +:freemarker-link: https://freemarker.apache.org[FreeMarker] + += Log4j Tools + +Tooling **internally** used by https://logging.apache.org/log4j/2.x/[the Apache Log4j project] infrastructure. + +include::_log4j-changelog.adoc[] + +include::_log4j-changelog-maven-plugin.adoc[] + +[#development] +== Development + +{project-name} uses {project-github-url}[GitHub] for source code management. + +The project requires a Java compiler matching the `{java-compiler-version}` range and targets Java `{java-target-version}`. + +You can build and verify sources using: + +[source,bash] +---- +./mvnw verify +---- + +You can build and view the website as follows: + +[source,bash] +---- +./mvnw -N site +python -m http.server -d target/site +---- + +[#distribution] +== Distribution + +In accordance with the Apache Software Foundation's release https://infra.apache.org/release-distribution.html[distribution policy] and https://infra.apache.org/release-publishing.html[creation process], project artifacts are _officially_ accessible from the following locations: + +* ASF https://repository.apache.org/content/repositories/releases[Release] and https://repository.apache.org/content/repositories/snapshots[snapshot] repositories (mirrored to https://central.sonatype.dev/[the Maven Central Repository]) +* ASF https://downloads.apache.org/logging/{project-id}[Distribution directory] + +See xref:#release-instructions[the release instructions] for details. + +[#support] +== Support + +Please keep in mind that this project is intended for internal usage only. +You can use GitHub Issues for feature requests and bug reports – not questions! +See https://logging.apache.org/log4j/2.x/support.html[the Log4j support policy] for details. + +[#security] +== Security + +If you have encountered an unlisted security vulnerability or other unexpected behaviour that has security impact, please report them privately to mailto:security@logging.apache.org[the Log4j security mailing list]. +See https://logging.apache.org/log4j/2.x/security.html[the Log4j Security page] for further details. + +include::_release-notes.adoc[] + +[#release-instructions] +== Release instructions + +{project-name} employs the CI/CD foundation provided by the https://logging.apache.org/logging-parent[`logging-parent`]. +You can simply use its release instructions. + +[#license] +== License + +Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. +See `NOTICE.txt` 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.