Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package plexus-pom for openSUSE:Factory checked in at 2026-09-11 18:03:47 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/plexus-pom (Old) and /work/SRC/openSUSE:Factory/.plexus-pom.new.1265 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "plexus-pom" Fri Sep 11 18:03:47 2026 rev:4 rq:1377321 version:27 Changes: -------- --- /work/SRC/openSUSE:Factory/plexus-pom/plexus-pom.changes 2026-03-01 22:15:04.026560792 +0100 +++ /work/SRC/openSUSE:Factory/.plexus-pom.new.1265/plexus-pom.changes 2026-09-11 18:07:09.935481405 +0200 @@ -1,0 +2,46 @@ +Wed Sep 9 08:21:50 UTC 2026 - Fridrich Strba <[email protected]> + +- Upgrade to version 27 + * Maven 3.9.0 is now the minimum for building + * New features and improvements + + Describe the parent POM as what it is + * Maintenance + + Document what the parent POM actually configures + + Keep spotless away from the site sources + * Build + + Require Maven 3.9.0 to build + + Align build configuration with the ASF parent POM conventions + * Documentation updates + + Rewrite the README and the site index in Google developer + style + * Dependency updates + + Bump version.njord from 0.9.9 to 0.9.10 + + Bump njord.version from 0.9.1 to 0.9.9 + + Bump release-drafter/release-drafter from 6 to 7.7.0 + + Bump org.eclipse.sisu:sisu-maven-plugin from 0.9.0.M4 to 1.1.0 + + Bump com.diffplug.spotless:spotless-maven-plugin from 3.8.0 to + 3.9.0 + + Bump com.diffplug.spotless:spotless-maven-plugin from 3.1.0 to + 3.8.0 + + Bump org.apache.maven.plugins:maven-jar-plugin from 3.5.0 to + 3.5.1 + + Bump mavenSurefireVersion from 3.5.4 to 3.5.6 + + Bump org.apache.maven.plugins:maven-dependency-plugin from + 3.9.0 to 3.11.0 + + Bump org.apache.maven.plugins:maven-site-plugin from 3.21.0 to + 3.22.0 + + Bump org.apache.maven.plugins:maven-enforcer-plugin from 3.6.2 + to 3.6.3 + + Bump org.apache.maven.plugins:maven-invoker-plugin from 3.9.1 + to 3.10.1 + + Bump org.junit:junit-bom from 5.14.1 to 5.14.4 + + Bump org.apache.maven.plugins:maven-resources-plugin from + 3.4.0 to 3.5.0 + + Bump org.codehaus.mojo:extra-enforcer-rules from 1.11.0 to + 1.12.0 + + Bump org.apache.apache.resources + :apache-source-release-assembly-descriptor from 1.7 to 1.8 + + Bump org.apache.maven.plugins:maven-compiler-plugin from + 3.14.1 to 3.15.0 + +------------------------------------------------------------------- Old: ---- plexus-25.tar.gz New: ---- plexus-27.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ plexus-pom.spec ++++++ --- /var/tmp/diff_new_pack.tNOlwN/_old 2026-09-11 18:07:10.535506605 +0200 +++ /var/tmp/diff_new_pack.tNOlwN/_new 2026-09-11 18:07:10.537506690 +0200 @@ -17,7 +17,7 @@ Name: plexus-pom -Version: 25 +Version: 27 Release: 0 Summary: Root Plexus Projects POM License: Apache-2.0 ++++++ _scmsync.obsinfo ++++++ --- /var/tmp/diff_new_pack.tNOlwN/_old 2026-09-11 18:07:10.581508538 +0200 +++ /var/tmp/diff_new_pack.tNOlwN/_new 2026-09-11 18:07:10.585508705 +0200 @@ -1,6 +1,6 @@ -mtime: 1772209922 -commit: c30832a9ac3bc089514cec8859fcca70873047319876a1cf40f6f9c85be6383e -url: https://src.opensuse.org/java-packages/plexus-pom.git -revision: c30832a9ac3bc089514cec8859fcca70873047319876a1cf40f6f9c85be6383e +mtime: 1788942849 +commit: 8a33facee0597748d68c61db37b524f72087164810f018eaf7ecc417c30fefc3 +url: https://src.opensuse.org/java-packages/plexus-pom +revision: 8a33facee0597748d68c61db37b524f72087164810f018eaf7ecc417c30fefc3 projectscmsync: https://src.opensuse.org/java-packages/_ObsPrj ++++++ build.specials.obscpio ++++++ ++++++ build.specials.obscpio ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/.gitignore new/.gitignore --- old/.gitignore 1970-01-01 01:00:00.000000000 +0100 +++ new/.gitignore 2026-09-09 10:34:09.000000000 +0200 @@ -0,0 +1 @@ +.osc ++++++ plexus-25.tar.gz -> plexus-27.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/plexus-pom-plexus-25/.github/workflows/release-drafter.yml new/plexus-pom-plexus-27/.github/workflows/release-drafter.yml --- old/plexus-pom-plexus-25/.github/workflows/release-drafter.yml 2026-01-03 13:01:29.000000000 +0100 +++ new/plexus-pom-plexus-27/.github/workflows/release-drafter.yml 2026-08-18 22:43:33.000000000 +0200 @@ -7,6 +7,6 @@ update_release_draft: runs-on: ubuntu-latest steps: - - uses: release-drafter/release-drafter@v6 + - uses: release-drafter/[email protected] env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/plexus-pom-plexus-25/README.md new/plexus-pom-plexus-27/README.md --- old/plexus-pom-plexus-25/README.md 2026-01-03 13:01:29.000000000 +0100 +++ new/plexus-pom-plexus-27/README.md 2026-08-18 22:43:33.000000000 +0200 @@ -1,6 +1,77 @@ -Plexus Parent POM -================= +# Plexus parent POM -[](https://search.maven.org/artifact/org.codehaus.plexus/plexus) +[](https://central.sonatype.com/artifact/org.codehaus.plexus/plexus) +[](https://github.com/codehaus-plexus/plexus-pom/actions) +[](https://www.apache.org/licenses/LICENSE-2.0) -The current master is now at https://github.com/codehaus-plexus/plexus-pom +Every project in the [Codehaus Plexus](https://github.com/codehaus-plexus) organization inherits this +parent POM. It sets plugin versions, the Java and Maven baselines, formatting, reporting, and the release +setup, so each project carries almost no build configuration of its own. + +## Status + +Maintained. A release follows whenever plugin or dependency updates accumulate, roughly every two months. + +This POM is infrastructure for the Plexus projects rather than a general-purpose parent. It assumes +publishing through the Sonatype Central Portal, site hosting on GitHub Pages, and the organization's +shared CI workflow. You're welcome to use it, but it isn't designed to be neutral. + +## Inherit the parent POM + +Add the following to your project's POM: + +```xml +<parent> + <groupId>org.codehaus.plexus</groupId> + <artifactId>plexus</artifactId> + <version>VERSION</version> +</parent> +``` + +Replace `VERSION` with a released version from +[Maven Central](https://central.sonatype.com/artifact/org.codehaus.plexus/plexus). + +Your project inherits everything except the `distributionManagement/site` element. Each project overrides +that element to point at its own `gh-pages` branch. + +## What the parent POM configures + +The parent POM covers the following areas: + +- **Baselines**: Java 8 through the `javaVersion` property, Maven 3.6.3 as the minimum, and UTF-8 sources. +- **Enforcer**: the Maven and JDK minimums, and a rule from `extra-enforcer-rules` that rejects a + dependency whose bytecode is newer than your compiler target. +- **Formatting**: Spotless with palantir-java-format, sorted POM files, and flexmark for Markdown. + Spotless rewrites your sources locally and checks them in CI. +- **Reproducible builds**: the `project.build.outputTimestamp` property is set, and + [Reproducible Central](https://github.com/jvm-repo-rebuild/reproducible-central) verifies the results. +- **Reporting**: the `reporting` profile adds Javadoc, JXR, surefire, PMD/CPD, and taglist. +- **Releasing**: the `plexus-release` profile adds GPG signing, sources, and a source-release assembly, + and enables [Njord](https://maveniverse.eu/docs/njord/) to publish to Maven Central. + +For an explanation of each area, see the [project site](https://codehaus-plexus.github.io/plexus-pom/), +which also lists every +[managed plugin version](https://codehaus-plexus.github.io/plexus-pom/plugin-management.html). + +## Requirements + +To build a project that inherits this POM, you need Java 8 or later and Maven 3.6.3 or later. To release +one, you need Maven 3.9.0 or later. + +## Documentation + +- [Project site](https://codehaus-plexus.github.io/plexus-pom/) +- [Release notes](https://github.com/codehaus-plexus/plexus-pom/releases) +- [Releasing and site publishing](https://github.com/codehaus-plexus/.github/blob/master/RELEASING.md) + +## Contributing + +For the contribution process, see +[CONTRIBUTING.md](https://github.com/codehaus-plexus/.github/blob/master/CONTRIBUTING.md). + +A change here reaches every project in the organization, so a version bump that looks routine can break a +downstream build. Say in your pull request description what you checked. + +To report a security vulnerability, follow +[SECURITY.md](https://github.com/codehaus-plexus/.github/blob/master/SECURITY.md) rather than opening a +public issue. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/plexus-pom-plexus-25/pom.xml new/plexus-pom-plexus-27/pom.xml --- old/plexus-pom-plexus-25/pom.xml 2026-01-03 13:01:29.000000000 +0100 +++ new/plexus-pom-plexus-27/pom.xml 2026-08-18 22:43:33.000000000 +0200 @@ -19,11 +19,12 @@ <groupId>org.codehaus.plexus</groupId> <artifactId>plexus</artifactId> - <version>25</version> + <version>27</version> <packaging>pom</packaging> <name>Plexus</name> - <description>The Plexus project provides a full software stack for creating and executing software projects.</description> + <description>Parent POM for the Codehaus Plexus projects, providing shared build, reporting and + release configuration.</description> <url>https://codehaus-plexus.github.io/plexus-pom/</url> <inceptionYear>2001</inceptionYear> <organization> @@ -302,7 +303,7 @@ <scm> <connection>scm:git:https://github.com/codehaus-plexus/plexus-pom.git</connection> <developerConnection>${project.scm.connection}</developerConnection> - <tag>plexus-25</tag> + <tag>plexus-27</tag> <url>https://github.com/codehaus-plexus/plexus-pom/tree/${project.scm.tag}/</url> </scm> @@ -311,6 +312,11 @@ <url>https://github.com/codehaus-plexus/plexus-pom/issues</url> </issueManagement> + <ciManagement> + <system>GitHub Actions</system> + <url>https://github.com/codehaus-plexus/plexus-pom/actions</url> + </ciManagement> + <distributionManagement> <repository> <id>sonatype-central-portal</id> @@ -331,7 +337,7 @@ <properties> <javaVersion>8</javaVersion> - <minimalMavenBuildVersion>3.6.3</minimalMavenBuildVersion> + <minimalMavenBuildVersion>3.9.0</minimalMavenBuildVersion> <minimalJavaBuildVersion>${javaVersion}</minimalJavaBuildVersion> <maven.compiler.source>${javaVersion}</maven.compiler.source> <maven.compiler.target>${javaVersion}</maven.compiler.target> @@ -340,23 +346,55 @@ <maven.compiler.proc>none</maven.compiler.proc> <maven.compiler.showDeprecation>true</maven.compiler.showDeprecation> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> + <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <plexusDistMgmtSnapshotsId>sonatype-central-portal</plexusDistMgmtSnapshotsId> <plexusDistMgmtSnapshotsName>Sonatype Central Snapshots</plexusDistMgmtSnapshotsName> <plexusDistMgmtSnapshotsUrl>https://central.sonatype.com/repository/maven-snapshots</plexusDistMgmtSnapshotsUrl> - <project.build.outputTimestamp>2026-01-03T12:01:26Z</project.build.outputTimestamp> + <project.build.outputTimestamp>2026-08-18T20:43:31Z</project.build.outputTimestamp> <gpg.useagent>true</gpg.useagent> - <spotless-maven-plugin.version>3.1.0</spotless-maven-plugin.version> - <mavenPluginToolsVersion>3.15.2</mavenPluginToolsVersion> - <mavenFluidoSkinVersion>2.1.0</mavenFluidoSkinVersion> - <mavenSurefireVersion>3.5.4</mavenSurefireVersion> - <junit5Version>5.14.1</junit5Version> - <njord.version>0.9.1</njord.version> <spotless.action>apply</spotless.action> - <sisuMavenPluginVersion>0.9.0.M4</sisuMavenPluginVersion> <invoker.streamLogsOnFailures>true</invoker.streamLogsOnFailures> + <!-- managed versions, named version.<artifactId> as in org.apache:apache, so that a child + can override any single one of them from its own POM or from the command line --> + <version.apache-resource-bundles>1.8</version.apache-resource-bundles> + <version.extra-enforcer-rules>1.12.0</version.extra-enforcer-rules> + <version.junit5>5.14.4</version.junit5> + <version.maven-artifact-plugin>3.6.1</version.maven-artifact-plugin> + <version.maven-assembly-plugin>3.8.0</version.maven-assembly-plugin> + <version.maven-checkstyle-plugin>3.6.0</version.maven-checkstyle-plugin> + <version.maven-clean-plugin>3.5.0</version.maven-clean-plugin> + <version.maven-compiler-plugin>3.15.0</version.maven-compiler-plugin> + <version.maven-dependency-plugin>3.11.0</version.maven-dependency-plugin> + <version.maven-deploy-plugin>3.1.4</version.maven-deploy-plugin> + <version.maven-enforcer-plugin>3.6.3</version.maven-enforcer-plugin> + <version.maven-fluido-skin>2.1.0</version.maven-fluido-skin> + <version.maven-gpg-plugin>3.2.8</version.maven-gpg-plugin> + <version.maven-install-plugin>3.1.4</version.maven-install-plugin> + <version.maven-invoker-plugin>3.10.1</version.maven-invoker-plugin> + <version.maven-jar-plugin>3.5.1</version.maven-jar-plugin> + <version.maven-javadoc-plugin>3.12.0</version.maven-javadoc-plugin> + <version.maven-jxr-plugin>3.6.0</version.maven-jxr-plugin> + <version.maven-plugin-tools>3.15.2</version.maven-plugin-tools> + <version.maven-pmd-plugin>3.28.0</version.maven-pmd-plugin> + <version.maven-project-info-reports-plugin>3.9.0</version.maven-project-info-reports-plugin> + <version.maven-release-plugin>3.3.1</version.maven-release-plugin> + <version.maven-resources-plugin>3.5.0</version.maven-resources-plugin> + <version.maven-scm-publish-plugin>3.3.0</version.maven-scm-publish-plugin> + <version.maven-shared-resources>6</version.maven-shared-resources> + <version.maven-site-plugin>3.22.0</version.maven-site-plugin> + <version.maven-source-plugin>3.4.0</version.maven-source-plugin> + <!-- for surefire, failsafe and surefire-report --> + <version.maven-surefire>3.5.6</version.maven-surefire> + <version.njord>0.9.10</version.njord> + <!-- declared explicitly so spotless does not pick a palantir version based on the running JDK --> + <version.palantir-java-format>2.80.0</version.palantir-java-format> + <version.sisu-maven-plugin>1.1.0</version.sisu-maven-plugin> + <version.spotless-maven-plugin>3.9.0</version.spotless-maven-plugin> + <version.taglist-maven-plugin>3.2.2</version.taglist-maven-plugin> + <!-- njord configuration (https://maveniverse.eu/docs/njord/configuration/#njord-properties) --> <njord.releaseUrl>njord:template:release-sca</njord.releaseUrl> <njord.publisher>sonatype-cp</njord.publisher> @@ -372,7 +410,7 @@ <dependency> <groupId>org.junit</groupId> <artifactId>junit-bom</artifactId> - <version>${junit5Version}</version> + <version>${version.junit5}</version> <type>pom</type> <scope>import</scope> </dependency> @@ -385,41 +423,43 @@ <plugin> <groupId>eu.maveniverse.maven.plugins</groupId> <artifactId>njord</artifactId> - <version>${njord.version}</version> + <version>${version.njord}</version> </plugin> <!-- set versions of common plugins for reproducibility, ordered alphabetically --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-assembly-plugin</artifactId> - <version>3.8.0</version> + <version>${version.maven-assembly-plugin}</version> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-checkstyle-plugin</artifactId> - <version>3.6.0</version> + <version>${version.maven-checkstyle-plugin}</version> <configuration> - <configLocation>config/maven_checks.xml</configLocation> - <!-- version from release 11 referenced by branch --> - <headerLocation>https://raw.githubusercontent.com/codehaus-plexus/plexus-pom/plexus-11/src/main/resources/config/plexus-header.txt</headerLocation> + <!-- code style is owned by spotless/palantir, so checkstyle only runs the remaining + checks. maven_checks_nocodestyle.xml also has no RegexpHeader module, which is what + lets us drop the headerLocation that used to be fetched over HTTP from a git tag on + raw.githubusercontent.com on every build. --> + <configLocation>config/maven_checks_nocodestyle.xml</configLocation> </configuration> <dependencies> <!-- MCHECKSTYLE-327: the maven_checks.xml was moved to a shared project --> <dependency> <groupId>org.apache.maven.shared</groupId> <artifactId>maven-shared-resources</artifactId> - <version>6</version> + <version>${version.maven-shared-resources}</version> </dependency> </dependencies> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-clean-plugin</artifactId> - <version>3.5.0</version> + <version>${version.maven-clean-plugin}</version> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> - <version>3.14.1</version> + <version>${version.maven-compiler-plugin}</version> <configuration> <proc>${maven.compiler.proc}</proc> <showDeprecation>${maven.compiler.showDeprecation}</showDeprecation> @@ -428,22 +468,22 @@ <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> - <version>3.9.0</version> + <version>${version.maven-dependency-plugin}</version> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-deploy-plugin</artifactId> - <version>3.1.4</version> + <version>${version.maven-deploy-plugin}</version> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-enforcer-plugin</artifactId> - <version>3.6.2</version> + <version>${version.maven-enforcer-plugin}</version> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-gpg-plugin</artifactId> - <version>3.2.8</version> + <version>${version.maven-gpg-plugin}</version> <configuration> <bestPractices>true</bestPractices> </configuration> @@ -451,12 +491,12 @@ <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-install-plugin</artifactId> - <version>3.1.4</version> + <version>${version.maven-install-plugin}</version> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> - <version>3.5.0</version> + <version>${version.maven-jar-plugin}</version> <configuration> <archive> <manifest> @@ -469,7 +509,7 @@ <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-invoker-plugin</artifactId> - <version>3.9.1</version> + <version>${version.maven-invoker-plugin}</version> <configuration> <streamLogsOnFailures>${invoker.streamLogsOnFailures}</streamLogsOnFailures> </configuration> @@ -477,7 +517,7 @@ <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-javadoc-plugin</artifactId> - <version>3.12.0</version> + <version>${version.maven-javadoc-plugin}</version> <configuration> <quiet>true</quiet> <locale>en</locale> @@ -488,12 +528,12 @@ <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jxr-plugin</artifactId> - <version>3.6.0</version> + <version>${version.maven-jxr-plugin}</version> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-plugin-plugin</artifactId> - <version>${mavenPluginToolsVersion}</version> + <version>${version.maven-plugin-tools}</version> <executions> <execution> <id>default-descriptor</id> @@ -513,12 +553,12 @@ <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-plugin-report-plugin</artifactId> - <version>${mavenPluginToolsVersion}</version> + <version>${version.maven-plugin-tools}</version> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-pmd-plugin</artifactId> - <version>3.28.0</version> + <version>${version.maven-pmd-plugin}</version> <configuration> <targetJdk>${maven.compiler.source}</targetJdk> <rulesets> @@ -533,12 +573,19 @@ <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-project-info-reports-plugin</artifactId> - <version>3.9.0</version> + <version>${version.maven-project-info-reports-plugin}</version> + <configuration> + <!-- do not make the published team page fetch avatars from a third party --> + <externalAvatarImages>false</externalAvatarImages> + <pluginManagementExcludes> + <exclude>org.eclipse.m2e:lifecycle-mapping</exclude> + </pluginManagementExcludes> + </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-release-plugin</artifactId> - <version>3.3.1</version> + <version>${version.maven-release-plugin}</version> <configuration> <goals>deploy</goals> <releaseProfiles>plexus-release</releaseProfiles> @@ -547,12 +594,12 @@ <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-resources-plugin</artifactId> - <version>3.4.0</version> + <version>${version.maven-resources-plugin}</version> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-scm-publish-plugin</artifactId> - <version>3.3.0</version> + <version>${version.maven-scm-publish-plugin}</version> <configuration> <!-- using scm.developerConnection instead of distributionManagement.site.url --> <pubScmUrl>${project.scm.developerConnection}</pubScmUrl> @@ -562,7 +609,7 @@ <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-site-plugin</artifactId> - <version>3.21.0</version> + <version>${version.maven-site-plugin}</version> <configuration> <!-- don't deploy site with maven-site-plugin --> <skipDeploy>true</skipDeploy> @@ -571,32 +618,32 @@ <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-source-plugin</artifactId> - <version>3.4.0</version> + <version>${version.maven-source-plugin}</version> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> - <version>${mavenSurefireVersion}</version> + <version>${version.maven-surefire}</version> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-report-plugin</artifactId> - <version>${mavenSurefireVersion}</version> + <version>${version.maven-surefire}</version> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-failsafe-plugin</artifactId> - <version>${mavenSurefireVersion}</version> + <version>${version.maven-surefire}</version> </plugin> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>taglist-maven-plugin</artifactId> - <version>3.2.2</version> + <version>${version.taglist-maven-plugin}</version> </plugin> <plugin> <groupId>org.eclipse.sisu</groupId> <artifactId>sisu-maven-plugin</artifactId> - <version>${sisuMavenPluginVersion}</version> + <version>${version.sisu-maven-plugin}</version> <executions> <execution> <id>generate-index</id> @@ -610,12 +657,17 @@ <plugin> <groupId>com.diffplug.spotless</groupId> <artifactId>spotless-maven-plugin</artifactId> - <version>${spotless-maven-plugin.version}</version> + <version>${version.spotless-maven-plugin}</version> <configuration> <java> <!-- orders of used formatters are important --> <!-- eg. palantir override importOrder, so should be first --> - <palantirJavaFormat /> + <palantirJavaFormat> + <!-- declare the version so that spotless does not choose one based on the JDK + running the build: the formatter must produce identical output whether it is + run locally or in CI --> + <version>${version.palantir-java-format}</version> + </palantirJavaFormat> <removeUnusedImports /> <importOrder> <order>javax,java,,\#</order> @@ -636,7 +688,10 @@ <include>**/*.md</include> </includes> <excludes> - <excludes>target/**</excludes> + <exclude>target/**</exclude> + <!-- site sources are Doxia input, not prose: flexmark rewrites the fence that closes + a YAML front matter block, which loses the page's title, author and date --> + <exclude>**/src/site/markdown/**</exclude> </excludes> <flexmark /> </markdown> @@ -664,12 +719,14 @@ <dependency> <groupId>org.codehaus.mojo</groupId> <artifactId>extra-enforcer-rules</artifactId> - <version>1.11.0</version> + <version>${version.extra-enforcer-rules}</version> </dependency> </dependencies> + <!-- one execution per rule, as in org.apache:apache, so that a child can relax or skip a + single check without losing the other two --> <executions> <execution> - <id>enforce-maven-and-java-bytecode</id> + <id>enforce-maven-version</id> <goals> <goal>enforce</goal> </goals> @@ -679,15 +736,40 @@ <version>${minimalMavenBuildVersion}</version> <message>This project requires at least Maven ${minimalMavenBuildVersion}</message> </requireMavenVersion> - <enforceBytecodeVersion> - <maxJdkVersion>${maven.compiler.target}</maxJdkVersion> - </enforceBytecodeVersion> + </rules> + </configuration> + </execution> + <execution> + <id>enforce-java-version</id> + <goals> + <goal>enforce</goal> + </goals> + <configuration> + <rules> <requireJavaVersion> <version>${minimalJavaBuildVersion}</version> </requireJavaVersion> </rules> </configuration> </execution> + <execution> + <id>enforce-bytecode-version</id> + <goals> + <goal>enforce</goal> + </goals> + <configuration> + <rules> + <enforceBytecodeVersion> + <maxJdkVersion>${maven.compiler.target}</maxJdkVersion> + <!-- test-only dependencies routinely ship newer bytecode than the target of the + artifact we publish, and they never end up on a consumer's classpath --> + <ignoredScopes> + <ignoredScope>test</ignoredScope> + </ignoredScopes> + </enforceBytecodeVersion> + </rules> + </configuration> + </execution> </executions> </plugin> <plugin> @@ -707,7 +789,7 @@ <extension> <groupId>eu.maveniverse.maven.njord</groupId> <artifactId>extension3</artifactId> - <version>${njord.version}</version> + <version>${version.njord}</version> </extension> </extensions> </build> @@ -811,7 +893,7 @@ <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-artifact-plugin</artifactId> - <version>3.6.1</version> + <version>${version.maven-artifact-plugin}</version> </plugin> </plugins> </reporting> @@ -819,7 +901,6 @@ <profile> <id>plexus-release</id> <properties> - <minimalMavenBuildVersion>3.9.0</minimalMavenBuildVersion> <!-- use njord during release --> <njord.enabled>true</njord.enabled> </properties> @@ -834,7 +915,7 @@ <dependency> <groupId>org.apache.apache.resources</groupId> <artifactId>apache-source-release-assembly-descriptor</artifactId> - <version>1.7</version> + <version>${version.apache-resource-bundles}</version> </dependency> </dependencies> <executions> @@ -900,11 +981,6 @@ <jdk>[17,)</jdk> </activation> - <properties> - <!-- configuration for checkstyle to use with spotless --> - <checkstyle.spotless.config>config/maven_checks_nocodestyle.xml</checkstyle.spotless.config> - </properties> - <build> <!--- newer versions of plugins requires JDK 17 --> <plugins> @@ -912,13 +988,6 @@ <groupId>com.diffplug.spotless</groupId> <artifactId>spotless-maven-plugin</artifactId> </plugin> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-checkstyle-plugin</artifactId> - <configuration> - <configLocation>${checkstyle.spotless.config}</configLocation> - </configuration> - </plugin> </plugins> </build> </profile> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/plexus-pom-plexus-25/src/site/markdown/index.md new/plexus-pom-plexus-27/src/site/markdown/index.md --- old/plexus-pom-plexus-25/src/site/markdown/index.md 2026-01-03 13:01:29.000000000 +0100 +++ new/plexus-pom-plexus-27/src/site/markdown/index.md 2026-08-18 22:43:33.000000000 +0200 @@ -1,10 +1,126 @@ -# Plexus Parent POM +# Plexus parent POM -Plexus Parent POM defines common [plugins](./plugin-management.html), reporting and release configuration. +Every project in the [Codehaus Plexus](https://codehaus-plexus.github.io/) organization inherits this +parent POM. It sets plugin versions, the Java and Maven baselines, code formatting, reporting, and the +release setup, so each project carries almost no build configuration of its own. -## Preparing the environment for publishing vie the Central Portal +To inherit it, add the following to your project's POM: -Release manager should include the following sections in your personal `settings.xml`: +```xml +<parent> + <groupId>org.codehaus.plexus</groupId> + <artifactId>plexus</artifactId> + <version>VERSION</version> +</parent> +``` + +Replace `VERSION` with a released version. The badge on the +[project page](https://github.com/codehaus-plexus/plexus-pom) links to them. + +## What you get + +### Baselines + +The following table lists the settings the parent POM fixes: + +| Setting | Value | +|---|---| +| Java, through the `javaVersion` property | 8, which sets `maven.compiler.source`, `target`, and `release` | +| Minimum Maven to build | 3.6.3, or 3.9.0 to release | +| Source encoding | UTF-8 | +| Annotation processing | Off, through `maven.compiler.proc=none` | + +To raise the Java baseline, override the `javaVersion` property in your own POM. The +`plexus-sec-dispatcher` and `plexus-xml` 4.x projects set it to 17. + +To use annotation processing, turn it on deliberately in your own POM. + +### Enforced at build time + +The `maven-enforcer-plugin` plugin fails the build on a Maven version below the minimum and on a JDK below +the baseline. Through `extra-enforcer-rules`, it also fails on any dependency containing bytecode newer +than your compiler target. + +That last rule surprises people. A dependency compiled for a later JDK than you target fails the build +rather than the application. + +### Formatting + +Spotless runs at the `process-sources` phase and formats three kinds of file: + +- Java, with [palantir-java-format](https://github.com/palantir/palantir-java-format). Spotless removes + unused imports and orders the rest as `javax`, `java`, everything else, then static imports. +- POM files, sorted with `sortPom`. +- Markdown, with flexmark. + +What Spotless does with a violation depends on where the build runs. On your own machine, where the `CI` +environment variable isn't set, the `format` profile sets `spotless.action=apply` and the build rewrites +your sources. In CI, where `CI` is set, the `format-check` profile sets the action to `check` and the +build fails instead. When CI fails on formatting, run `mvn spotless:apply` and commit the result. + +**Note:** Spotless formats every `**/*.md` file. Parent 26 and later exclude `**/src/site/markdown/**`, +because flexmark rewrites the fence that closes a YAML front matter block, which drops the page's title +and author without reporting an error. Parent 25 has no such exclusion. If you use parent 25 and keep +site sources in Markdown, add the exclusion to your own POM. + +### Reproducible builds + +The `project.build.outputTimestamp` property is set, and +[Reproducible Central](https://github.com/jvm-repo-rebuild/reproducible-central) verifies every project +here. Keep the property set, and change its value only as part of a release. + +### Reporting + +Project information reports run by default. The `reporting` profile adds Javadoc, JXR, surefire, PMD/CPD, +and taglist. To build a site with all of them: + +``` +mvn -Preporting site +``` + +A site built without the `reporting` profile contains no API documentation, so pass the profile whenever +you publish. + +### Publishing + +Snapshots and releases go to the Sonatype Central Portal. Your project inherits +`distributionManagement`, but each project overrides the `site` element to point at its own `gh-pages` +branch: + +```xml +<distributionManagement> + <site> + <id>github:gh-pages</id> + <url>${project.scm.developerConnection}</url> + </site> +</distributionManagement> +``` + +The `maven-site-plugin` plugin runs with `skipDeploy`, so the `maven-scm-publish-plugin` plugin publishes +sites rather than the `site:deploy` goal. + +## Releasing + +For the full procedure, including site publishing, see +[RELEASING.md](https://github.com/codehaus-plexus/.github/blob/master/RELEASING.md). The short version: + +``` +mvn release:prepare +mvn release:perform +``` + +The `maven-release-plugin` plugin is configured with `<goals>deploy</goals>` and +`<releaseProfiles>plexus-release</releaseProfiles>`, so `release:perform` activates the `plexus-release` +profile. That profile turns on GPG signing, attaches sources and a source-release assembly, and enables +[Njord](https://maveniverse.eu/docs/njord/), which is registered as a build extension. + +Njord is configured with `autoPublish=true` and `publishingType=automatic`, so it publishes the deployment +to Maven Central without a manual step in the Portal UI. Outside the release profile, `njord.enabled` is +`false`, so ordinary builds are unaffected. + +### Set up a release manager + +Add a Central Portal token to your personal `settings.xml` file: ```xml <settings xmlns="http://maven.apache.org/SETTINGS/1.2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" @@ -12,12 +128,25 @@ <servers> <server> <id>sonatype-central-portal</id> - <username>jqhacker</username> <!-- central portal token --> - <password>SeCrEt</password> <!-- central portal token --> + <username>TOKEN_USERNAME</username> + <password>TOKEN_PASSWORD</password> </server> </servers> </settings> ``` -Tokens can be obtained from https://central.sonatype.com/account +Replace the following: + +- `TOKEN_USERNAME`: the username half of a Central Portal token pair +- `TOKEN_PASSWORD`: the password half of the same pair + +Generate the pair from your [Central Portal account](https://central.sonatype.com/account). A token pair +isn't your account password. + +You also need a published GPG key, because releases are signed. + +## Reference +- [Plugin versions managed here](./plugin-management.html) +- [Dependency versions managed here](./dependency-management.html) +- [Contributing](https://github.com/codehaus-plexus/.github/blob/master/CONTRIBUTING.md) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/plexus-pom-plexus-25/src/site/site.xml new/plexus-pom-plexus-27/src/site/site.xml --- old/plexus-pom-plexus-25/src/site/site.xml 2026-01-03 13:01:29.000000000 +0100 +++ new/plexus-pom-plexus-27/src/site/site.xml 2026-08-18 22:43:33.000000000 +0200 @@ -10,7 +10,7 @@ <skin> <groupId>org.apache.maven.skins</groupId> <artifactId>maven-fluido-skin</artifactId> - <version>${mavenFluidoSkinVersion}</version> + <version>${version.maven-fluido-skin}</version> </skin> <edit>${project.scm.url}</edit> @@ -51,6 +51,7 @@ <menu name="Plexus Projects" inherit="bottom"> <item name="Plexus Archiver" href="https://codehaus-plexus.github.io/plexus-archiver/"/> + <item name="Plexus Build API" href="https://codehaus-plexus.github.io/plexus-build-api/"/> <item name="Plexus Classworlds" href="https://codehaus-plexus.github.io/plexus-classworlds/" /> <item name="Plexus Compiler" href="https://codehaus-plexus.github.io/plexus-compiler/"/> <item name="Plexus i18n" href="https://codehaus-plexus.github.io/plexus-i18n/"/> @@ -61,6 +62,8 @@ <item name="Plexus Modello" href="https://codehaus-plexus.github.io/modello/" /> <item name="Plexus Parent POM" href="https://codehaus-plexus.github.io/plexus-pom/"/> <item name="Plexus Resources" href="https://codehaus-plexus.github.io/plexus-resources/"/> + <item name="Plexus Sec Dispatcher" href="https://codehaus-plexus.github.io/plexus-sec-dispatcher/"/> + <item name="Plexus Testing" href="https://codehaus-plexus.github.io/plexus-testing/"/> <item name="Plexus Utils" href="https://codehaus-plexus.github.io/plexus-utils/" /> <item name="Plexus Velocity" href="https://codehaus-plexus.github.io/plexus-velocity/"/> <item name="Plexus XML" href="https://codehaus-plexus.github.io/plexus-xml/" />
