From 69575de5e068562d9e6db704791aadb70a9c7e9c Mon Sep 17 00:00:00 2001 From: "Piotr P. Karwasz" Date: Wed, 22 Jul 2026 10:53:24 +0200 Subject: [PATCH 1/2] Migrate `flume-project` hierarchy to `logging-parent` Flume requires two POM hierarchies: - `flume-dependencies` and `flume-third-party-dependencies` are published flattened, so their common metadata can live in the aggregator `flume-project`, which is **not** published. - `flume-parent` is reused by satellite repositories, so it **needs** to be published. To avoid an excessive inheritance chain, it extends `logging-parent` directly instead of `flume-project`. Assisted-By: Claude Fable 5 --- flume-bom/.logging-parent-bom-activator | 2 + flume-bom/pom.xml | 52 +--- .../.logging-parent-bom-activator | 2 + flume-third-party/pom.xml | 72 +---- pom.xml | 247 ++++-------------- 5 files changed, 77 insertions(+), 298 deletions(-) create mode 100644 flume-bom/.logging-parent-bom-activator create mode 100644 flume-third-party/.logging-parent-bom-activator diff --git a/flume-bom/.logging-parent-bom-activator b/flume-bom/.logging-parent-bom-activator new file mode 100644 index 0000000000..8080fdb96d --- /dev/null +++ b/flume-bom/.logging-parent-bom-activator @@ -0,0 +1,2 @@ +# SPDX-License-Identifier: Apache-2.0 +# Marker file to activate BOM flattening diff --git a/flume-bom/pom.xml b/flume-bom/pom.xml index 67f840d200..9477ac6d16 100644 --- a/flume-bom/pom.xml +++ b/flume-bom/pom.xml @@ -22,16 +22,22 @@ org.apache.flume flume-project - 2.0.0-SNAPSHOT + ${revision} - org.apache.flume + flume-dependencies pom - Apache Flume Artifacts + Apache Flume BOM + Bill of materials (BOM) of Apache Flume. + It provides a coherent set of versions for all Apache Flume artifacts in the official distribution. - + + false + false + + 2.0.0-SNAPSHOT 2.0.0-SNAPSHOT 2.0.0-SNAPSHOT 2.0.0-SNAPSHOT @@ -235,42 +241,4 @@ - - - - - - org.codehaus.mojo - flatten-maven-plugin - 1.7.3 - - - flatten-bom - - flatten - - process-resources - false - - true - bom - - resolve - flatten - - - - - - flatten.clean - - clean - - - - - - - - diff --git a/flume-third-party/.logging-parent-bom-activator b/flume-third-party/.logging-parent-bom-activator new file mode 100644 index 0000000000..8080fdb96d --- /dev/null +++ b/flume-third-party/.logging-parent-bom-activator @@ -0,0 +1,2 @@ +# SPDX-License-Identifier: Apache-2.0 +# Marker file to activate BOM flattening diff --git a/flume-third-party/pom.xml b/flume-third-party/pom.xml index b92e7b5b22..736b4afa9e 100644 --- a/flume-third-party/pom.xml +++ b/flume-third-party/pom.xml @@ -22,37 +22,21 @@ org.apache.flume flume-project - 2.0.0-SNAPSHOT - ../pom.xml + ${revision} - org.apache.flume + flume-third-party-dependencies pom Apache Flume Third Party Dependencies - - 2009 - - - Apache Software Foundation - http://www.apache.org - - - - - The Apache Software License, Version 2.0 - http://www.apache.org/licenses/LICENSE-2.0.txt - - - - - scm:git:http://git-wip-us.apache.org/repos/asf/flume.git - scm:git:https://git-wip-us.apache.org/repos/asf/flume.git - https://git-wip-us.apache.org/repos/asf?p=flume.git;a=tree;h=refs/heads/trunk;hb=trunk - + Bill of materials (BOM) for the third-party dependencies of Apache Flume. + It matches the versions of the runtime dependencies used by the corresponding `flume-dependencies` artifacts. - 2.0.0-SNAPSHOT + + false + false + 1.5.0 1.22.0 3.2.2 @@ -280,7 +264,7 @@ org.apache.flume flume-dependencies - ${flume-project.version} + ${project.version} pom import @@ -288,7 +272,7 @@ org.apache.flume build-support - ${flume-project.version} + ${project.version} @@ -481,40 +465,4 @@ - - - - - - org.codehaus.mojo - flatten-maven-plugin - 1.7.3 - - - flatten-bom - - flatten - - process-resources - false - - true - bom - - resolve - flatten - - - - - - flatten.clean - - clean - - - - - - diff --git a/pom.xml b/pom.xml index 1c2e2ca743..30a1ef6b3a 100644 --- a/pom.xml +++ b/pom.xml @@ -15,21 +15,46 @@ ~ See the License for the specific language governing permissions and ~ limitations under the License. --> - + 4.0.0 - org.apache - apache - 23 + org.apache.logging + logging-parent + 12.1.1 + + org.apache.flume flume-project - 2.0.0-SNAPSHOT + ${revision} pom Apache Flume Project + Aggregator for the main Apache Flume repository. + This artifact is not published to Maven Central. + https://logging.apache.org/flume/2.x/index.html + + 2009 + + + + + flume-users + flume-users-subscribe@logging.apache.org + flume-users-unsubscribe@logging.apache.org + flume-users@logging.apache.org + https://lists.apache.org/list.html?flume-users@logging.apache.org + + + dev + dev-subscribe@logging.apache.org + dev-unsubscribe@logging.apache.org + dev@logging.apache.org + https://lists.apache.org/list.html?dev@logging.apache.org + + flume-bom @@ -53,199 +78,33 @@ flume-ng-configfilters - - 3.4.0 - 2.90.0 - + + scm:git:https://gitbox.apache.org/repos/asf/logging-flume.git + scm:git:https://gitbox.apache.org/repos/asf/logging-flume.git + rel/${revision} + https://gitbox.apache.org/repos/asf/logging-flume.git + - - - + + GitHub Issues + https://github.com/apache/logging-flume/issues + - - com.diffplug.spotless - spotless-maven-plugin - ${spotless-maven-plugin.version} - + + GitHub Actions + https://github.com/apache/logging-flume/actions + - - - - + + 2.0.0-SNAPSHOT - - - com.diffplug.spotless - spotless-maven-plugin - - - - - /* - * 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. - */ - - - ${palantir-java-format.version} - - - - - - <?xml version="1.0" encoding="UTF-8"?> -<!-- - ~ Licensed to the Apache Software Foundation (ASF) under one or more - ~ contributor license agreements. See the NOTICE file distributed with - ~ this work for additional information regarding copyright ownership. - ~ The ASF licenses this file to you under the Apache License, Version 2.0 - ~ (the "License"); you may not use this file except in compliance with - ~ the License. You may obtain a copy of the License at - ~ - ~ http://www.apache.org/licenses/LICENSE-2.0 - ~ - ~ Unless required by applicable law or agreed to in writing, software - ~ distributed under the License is distributed on an "AS IS" BASIS, - ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - ~ See the License for the specific language governing permissions and - ~ limitations under the License. - --> - <project - - - false - - true - - - - - - src/**/*.xml - - - - src/changelog/**/*.xml - - - - <?xml version="1.0" encoding="UTF-8"?> -<!-- - ~ Licensed to the Apache Software Foundation (ASF) under one or more - ~ contributor license agreements. See the NOTICE file distributed with - ~ this work for additional information regarding copyright ownership. - ~ The ASF licenses this file to you under the Apache License, Version 2.0 - ~ (the "License"); you may not use this file except in compliance with - ~ the License. You may obtain a copy of the License at - ~ - ~ http://www.apache.org/licenses/LICENSE-2.0 - ~ - ~ Unless required by applicable law or agreed to in writing, software - ~ distributed under the License is distributed on an "AS IS" BASIS, - ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - ~ See the License for the specific language governing permissions and - ~ limitations under the License. - --> - <(!DOCTYPE|\w) - - - - - - - src/**/*.properties - - - - # -# 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. -# - (##|[^#]) - - - - - - - .asf.yaml - .github/**/*.yaml - .github/**/*.yml - src/**/*.yaml - src/**/*.yml - - - - # -# 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. -# - (##|[^#]) - - - - - UNIX - - - - - com.palantir.javaformat - palantir-java-format - ${palantir-java-format.version} - - - - - default-spotless - - check - - verify - - - + + 2026-01-01T00:00:00Z - - + + true + true + From 913182feefd2d3bf62aa35fbc5093d750823ed8c Mon Sep 17 00:00:00 2001 From: "Piotr P. Karwasz" Date: Wed, 22 Jul 2026 13:46:18 +0200 Subject: [PATCH 2/2] Add `deploy-site.yaml` workflow Publishes the Antora site to `logging.apache.org/flume/2.x` via the `logging-parent` reusable workflow. The old 1.x site stays in `logging-flume-site` (`content/flume`). Since the reusable workflow builds the site with `./mvnw site`, the Antora setup is aligned with the `logging-parent` machinery: `antora.yml` is generated from `antora.tmpl.yml` (kept in sync for local builds, as in Log4j) and the useless per-module Maven Site Plugin runs are skipped in both POM hierarchies. Assisted-By: Claude Fable 5 --- .github/workflows/deploy-site.yaml | 88 ++++++++++++++++++++++++++++++ .gitignore | 4 +- antora-playbook.yaml | 7 ++- flume-parent/pom.xml | 2 + pom.xml | 6 ++ src/site/antora/antora.tmpl.yml | 23 ++++++++ 6 files changed, 126 insertions(+), 4 deletions(-) create mode 100644 .github/workflows/deploy-site.yaml create mode 100644 src/site/antora/antora.tmpl.yml diff --git a/.github/workflows/deploy-site.yaml b/.github/workflows/deploy-site.yaml new file mode 100644 index 0000000000..005d3e9a0e --- /dev/null +++ b/.github/workflows/deploy-site.yaml @@ -0,0 +1,88 @@ +# +# 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: deploy-site + +on: + push: + branches: + - "trunk" + - "trunk-site-pro" + - "release/*" + paths-ignore: + - "**.md" + - "**.txt" + +# Disable all permissions by defaults: +# Permissions are enabled on a per-job basis. +permissions: { } + +jobs: + + deploy-site-stg: + if: github.repository == 'apache/logging-flume' && github.ref_name == 'trunk' + uses: apache/logging-parent/.github/workflows/deploy-site-reusable.yaml@gha/v0 + # Write permissions for committing the generated site + permissions: + contents: write + with: + asf-yaml-content: | + staging: + profile: ~ + whoami: ${{ github.ref_name }}-site-stg-out + subdir: content/flume/2.x + target-branch: ${{ github.ref_name }}-site-stg-out + + deploy-site-pro: + if: github.repository == 'apache/logging-flume' && github.ref_name == 'trunk-site-pro' + uses: apache/logging-parent/.github/workflows/deploy-site-reusable.yaml@gha/v0 + # Write permissions for committing the generated site + permissions: + contents: write + with: + asf-yaml-content: | + publish: + profile: ~ + whoami: ${{ github.ref_name }}-out + subdir: content/flume/2.x + target-branch: ${{ github.ref_name }}-out + + export-version: + if: github.repository == 'apache/logging-flume' && startsWith(github.ref_name, 'release/') + runs-on: ubuntu-latest + outputs: + version: ${{ steps.export-version.outputs.version }} + steps: + - name: Export version + id: export-version + run: | + version=$(echo "${{ github.ref_name }}" | sed 's/^release\///') + echo "version=$version" >> "$GITHUB_OUTPUT" + + deploy-site-rel: + needs: export-version + uses: apache/logging-parent/.github/workflows/deploy-site-reusable.yaml@gha/v0 + # Write permissions for committing the generated site + permissions: + contents: write + with: + asf-yaml-content: | + staging: + profile: ~ + whoami: ${{ github.ref_name }}-site-stg-out + subdir: content/flume/${{ needs.export-version.outputs.version }} + target-branch: ${{ github.ref_name }}-site-stg-out diff --git a/.gitignore b/.gitignore index 4d0da02eec..469a80541e 100644 --- a/.gitignore +++ b/.gitignore @@ -25,5 +25,7 @@ nb-configuration.xml # Maven extensions .mvn/extensions.xml -# Node dependencies +# Node.js and dependencies /node_modules/ +/node/ + diff --git a/antora-playbook.yaml b/antora-playbook.yaml index cc5fa88e1e..61adeda96e 100644 --- a/antora-playbook.yaml +++ b/antora-playbook.yaml @@ -17,7 +17,7 @@ site: title: Apache Flume - url: "https://flume.apache.org" + url: "https://logging.apache.org/flume/2.x" start_page: "flume::index.adoc" content: @@ -25,8 +25,9 @@ content: - url: . branches: HEAD start_paths: - - src/site/antora - edit_url: "https://github.com/apache/logging-flume-site/edit/{refname}/{path}" + # Generated during the `pre-site` phase from `src/site/antora`, see the `antora` profile of `logging-parent` + - target/generated-site/antora + edit_url: asciidoc: attributes: diff --git a/flume-parent/pom.xml b/flume-parent/pom.xml index ddebdd3638..9eb2fd1835 100644 --- a/flume-parent/pom.xml +++ b/flume-parent/pom.xml @@ -210,6 +210,8 @@ 2.0.0-SNAPSHOT + + true 2022-01-02T00:00:00Z diff --git a/pom.xml b/pom.xml index 30a1ef6b3a..a943877fe2 100644 --- a/pom.xml +++ b/pom.xml @@ -101,6 +101,12 @@ 2026-01-01T00:00:00Z + + true + + + true + true diff --git a/src/site/antora/antora.tmpl.yml b/src/site/antora/antora.tmpl.yml new file mode 100644 index 0000000000..6ba752a50d --- /dev/null +++ b/src/site/antora/antora.tmpl.yml @@ -0,0 +1,23 @@ +# +# 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: flume +title: Apache Flume +version: ~ +start_page: index.adoc +nav: + - modules/ROOT/nav.adoc