This is an automated email from the ASF dual-hosted git repository. ppkarwasz pushed a commit to branch feat/add-dependabot in repository https://gitbox.apache.org/repos/asf/logging-flume.git
commit 9ec94283edf337c774725fa8b50d6ca2b6c4921b Author: Piotr P. Karwasz <[email protected]> AuthorDate: Thu Jul 30 09:34:32 2026 +0200 Automate dependency updates with Dependabot Copy the Dependabot setup from Log4j: version updates target `trunk` monthly, and the `logging-parent` reusable workflows generate a changelog entry for each Dependabot PR. The changelog entries require a `src/changelog` directory, so seed it with templates and drop `log4j.changelog.skip`, whose rationale (no `src/changelog` directory) no longer holds. Assisted-By: Claude Fable 5 <[email protected]> --- .github/dependabot.yaml | 77 ++++++++++++++++++++++++++++ .github/workflows/analyze-dependabot.yaml | 37 +++++++++++++ .github/workflows/process-dependabot.yaml | 48 +++++++++++++++++ pom.xml | 3 -- src/changelog/.2.x.x/.release-notes.adoc.ftl | 25 +++++++++ src/changelog/.changelog.adoc.ftl | 27 ++++++++++ src/changelog/.index.adoc.ftl | 42 +++++++++++++++ 7 files changed, 256 insertions(+), 3 deletions(-) diff --git a/.github/dependabot.yaml b/.github/dependabot.yaml new file mode 100644 index 00000000..63cd2c3d --- /dev/null +++ b/.github/dependabot.yaml @@ -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 +# +# 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. +# + +# +# ██ ██ █████ ██████ ███ ██ ██ ███ ██ ██████ ██ +# ██ ██ ██ ██ ██ ██ ████ ██ ██ ████ ██ ██ ██ +# ██ █ ██ ███████ ██████ ██ ██ ██ ██ ██ ██ ██ ██ ███ ██ +# ██ ███ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ +# ███ ███ ██ ██ ██ ██ ██ ████ ██ ██ ████ ██████ ██ +# +# `dependabot.yaml` must be stored in the `.github` directory of the default branch[1]. +# +# 1. Make all your changes to this file! +# Don't create another `dependabot.yaml` – it will simply be discarded. +# +# 2. Always associate your entries to a branch! +# For instance, use `target-branch` in `updates` entries +# +# [1] https://docs.github.com/en/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file +# + +version: 2 + +# Fix the Maven Central to the ASF repository to work around: https://github.com/dependabot/dependabot-core/issues/8329 +registries: + maven-central: + type: maven-repository + url: https://repo.maven.apache.org/maven2 + +updates: + + - package-ecosystem: maven + directory: "/" + schedule: + interval: "monthly" + cooldown: + default-days: 7 + groups: + # Groups all non-major updates in a single PR. + # No group matches major updates, so each one gets a separate PR. + maven-minor-updates: + update-types: [ "minor", "patch" ] + target-branch: "trunk" + registries: + - maven-central + + - package-ecosystem: github-actions + directory: "/" + schedule: + interval: "monthly" + groups: + github-actions-updates: + patterns: [ "*" ] + target-branch: "trunk" + + - package-ecosystem: npm + directory: "/" + schedule: + interval: "monthly" + groups: + npm-updates: + patterns: [ "*" ] + target-branch: "trunk" diff --git a/.github/workflows/analyze-dependabot.yaml b/.github/workflows/analyze-dependabot.yaml new file mode 100644 index 00000000..ae2423bf --- /dev/null +++ b/.github/workflows/analyze-dependabot.yaml @@ -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. +# + +name: "Dependabot Analyze PR" + +on: + pull_request: + +# Default permissions for each job. +# Additional permissions should be assigned on a per-job basis. +permissions: { } + +jobs: + + analyze-dependabot: + # `github.actor` prevents recursive calls when `github-actions[bot]` pushes to the PR; + # `github.event.pull_request.user.login` skips PRs not opened by Dependabot. + if: ${{ + github.repository == 'apache/logging-flume' + && github.actor == 'dependabot[bot]' + && github.event.pull_request.user.login == 'dependabot[bot]' + }} + uses: apache/logging-parent/.github/workflows/analyze-dependabot-reusable.yaml@gha/v0 diff --git a/.github/workflows/process-dependabot.yaml b/.github/workflows/process-dependabot.yaml new file mode 100644 index 00000000..a4e6b89c --- /dev/null +++ b/.github/workflows/process-dependabot.yaml @@ -0,0 +1,48 @@ +# +# 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: "Dependabot Process PR" + +on: + workflow_run: + workflows: + - "Dependabot Analyze PR" + types: + - completed + +# Default permissions for each job. +# Additional permissions should be assigned on a per-job basis. +permissions: { } + +jobs: + + process-dependabot: + # Skip this workflow on commits not pushed by Dependabot + if: ${{ + github.repository == 'apache/logging-flume' + && github.actor == 'dependabot[bot]' + && github.event.workflow_run.conclusion == 'success' + }} + uses: apache/logging-parent/.github/workflows/process-dependabot-reusable.yaml@gha/v0 + permissions: + # Append the changelog commit + contents: write + # Convert the PR into draft + pull-requests: write + with: + # The path to the changelog directory for the current development branch. + changelog-path: src/changelog/.2.x.x diff --git a/pom.xml b/pom.xml index fb0c5683..061bef42 100644 --- a/pom.xml +++ b/pom.xml @@ -101,9 +101,6 @@ <!-- Dummy value; overwritten by CI at release time. Do not edit manually. --> <project.build.outputTimestamp>2026-01-01T00:00:00Z</project.build.outputTimestamp> - <!-- Flume does not use `log4j-changelog` to generate release notes (there is no `src/changelog` directory). --> - <log4j.changelog.skip>true</log4j.changelog.skip> - <!-- The website is generated by Antora from the root module: skip the per-module `maven-site-plugin` sites. --> <maven.site.skip>true</maven.site.skip> diff --git a/src/changelog/.2.x.x/.release-notes.adoc.ftl b/src/changelog/.2.x.x/.release-notes.adoc.ftl new file mode 100644 index 00000000..6b5b47ec --- /dev/null +++ b/src/changelog/.2.x.x/.release-notes.adoc.ftl @@ -0,0 +1,25 @@ +//// + 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. +//// + +${"[#release-notes-" + release.version?replace("[^a-zA-Z0-9]", "-", "r") + "]"} +== ${release.version} + +<#if release.date?has_content>Release date:: ${release.date}</#if> + +This release... + +<#include "../.changelog.adoc.ftl"> diff --git a/src/changelog/.changelog.adoc.ftl b/src/changelog/.changelog.adoc.ftl new file mode 100644 index 00000000..b36ecf92 --- /dev/null +++ b/src/changelog/.changelog.adoc.ftl @@ -0,0 +1,27 @@ +<#-- + ~ 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> +<#list entriesByType as entryType, entries> + +${"[#release-notes-" + release.version?replace("[^a-zA-Z0-9]", "-", "r") + "-" + entryType?lower_case + "]"} +=== ${entryType?capitalize} + +<#list entries as entry> +* ${entry.description.text?replace("\\s+", " ", "r")}<#if entry.issues?has_content> (<#list entry.issues as issue>${issue.link}[${issue.id}]<#if issue?has_next>, </#if></#list>)</#if> +</#list> +</#list> +</#if> diff --git a/src/changelog/.index.adoc.ftl b/src/changelog/.index.adoc.ftl new file mode 100644 index 00000000..c71482ee --- /dev/null +++ b/src/changelog/.index.adoc.ftl @@ -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. +//// + +//// + ██ ██ █████ ██████ ███ ██ ██ ███ ██ ██████ ██ + ██ ██ ██ ██ ██ ██ ████ ██ ██ ████ ██ ██ ██ + ██ █ ██ ███████ ██████ ██ ██ ██ ██ ██ ██ ██ ██ ███ ██ + ██ ███ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ + ███ ███ ██ ██ ██ ██ ██ ████ ██ ██ ████ ██████ ██ + + IF THIS FILE IS CALLED `release-notes.adoc`, IT IS AUTO-GENERATED, DO NOT EDIT IT! + + The release notes page is generated from `src/changelog/.index.adoc.ftl` during + the `pre-site` phase of the Maven build and is written to + `target/generated-site/antora/modules/ROOT/pages/release-notes.adoc`, + where the Antora site build picks it up. + Hence, you must always edit `.index.adoc.ftl` and never the generated file. +//// + +// Release notes index does not look nice with a deep sectioning, override it: +:page-toclevels: 1 + +${"[#release-notes]"} += Release notes +<#list releases as release><#if release.changelogEntryCount gt 0> + +include::_release-notes/${release.version}.adoc[] +</#if></#list>
