diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 71a7c65d..cf3386de 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -8,6 +8,11 @@ on: required: true type: boolean default: false + maven-central-auto-publish: + description: "Automatically publish to Maven Central" + required: true + type: boolean + default: true jobs: release: @@ -51,7 +56,11 @@ jobs: - name: Publish to Maven Central Repository if: ${{ !inputs.skip-deploy-maven-central }} - run: mvn --batch-mode deploy -Pcentral-publishing -DdeploymentName="Deployed OFT via GitHub workflow release.yml" + run: | + mvn --batch-mode deploy -Pcentral-publishing \ + -DskipPublishing=false \ + -DautoPublish=${{ inputs.maven-central-auto-publish }} \ + -DdeploymentName="Auto-deploy OFT via release.yml" env: MAVEN_USERNAME: ${{ secrets.MAVEN_CENTRAL_PORTAL_USERNAME }} MAVEN_PASSWORD: ${{ secrets.MAVEN_CENTRAL_PORTAL_TOKEN }} diff --git a/api/pom.xml b/api/pom.xml index 36c5499e..e0ee8615 100644 --- a/api/pom.xml +++ b/api/pom.xml @@ -13,12 +13,4 @@ ${reproducible.build.timestamp} - - - - org.sonatype.central - central-publishing-maven-plugin - - - diff --git a/core/pom.xml b/core/pom.xml index fe721aa6..de8bb4ec 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -24,12 +24,4 @@ test - - - - org.sonatype.central - central-publishing-maven-plugin - - - diff --git a/doc/changes/changes_4.2.0.md b/doc/changes/changes_4.2.0.md index 97347724..faf8b43d 100644 --- a/doc/changes/changes_4.2.0.md +++ b/doc/changes/changes_4.2.0.md @@ -1,4 +1,4 @@ -# OpenFastTrace 4.2.0, released 2025-06-15 +# OpenFastTrace 4.2.0, released 2025-06-22 Code name: Markdown code blocks diff --git a/doc/developer_guide.md b/doc/developer_guide.md index b1c72bdc..b2c75c12 100644 --- a/doc/developer_guide.md +++ b/doc/developer_guide.md @@ -40,7 +40,7 @@ The list below shows all build time dependencies in alphabetical order. Note tha | [Apache Maven](https://maven.apache.org/) | Build tool | Apache License 2.0 | | [Equals Verifier](https://github.com/jqno/equalsverifier) | Automatic contract checker for `equals()` and `hash()` | Apache License 2.0 | | [Hamcrest Auto Matcher](https://github.com/itsallcode/hamcrest-auto-matcher) | Speed-up for building Hamcrest matchers | GNU General Public License V3 | -| [JUnit](https://junit.org/junit5) | Unit testing framework | Eclipse Public License 1.0 | +| [JUnit](https://junit.org) | Unit testing framework | Eclipse Public License 1.0 | | [Mockito](https://github.com/mockito/mockito) | Mocking framework | MIT License | | [JUnit5 System Extensions](https://github.com/itsallcode/junit5-system-extensions) | JUnit extension for testing `System.x` calls | Eclipse Public License 2.0 | @@ -260,3 +260,42 @@ As you can see in the table above, not all modules are intended to be deployed o The base POM is `openfasttrace-parent`, it mainly contains common dependencies and build configuration. On top of that, `openfasttrace-mc-deployable-parent` adds signing and Maven central deployment. This structure ensures that only user-facing components are published to Maven Central while keeping internal development tools and build infrastructure private. + +## Debugging Maven Central Deployment + +### Build Deployment Bundle + +Build deployment bundle to check if the expected modules are included: + +```sh +mvn -T1C deploy -Pcentral-publishing -DskipPublishing=true -DskipTests +``` + +This will build `central-bundle.zip` in one of the modules. Find it with `find . -name "central-bundle.zip"`, then check it's content with `unzip -l api/target/central-publishing/central-bundle.zip`. + +Ensure that neither `testutil` nor any parent module is included. + +### Verify Deployment Preconditions + +Configure Maven Central credentials in `~/.m2/settings.xml`: + +```xml + + + + central + user + password + + + + +``` + +The following command will upload the bundle to Maven Central without publishing: + +```sh +mvn -T1C clean deploy -Pcentral-publishing -DskipPublishing=true -DautoPublish=false -DskipTests +``` + +Then go to https://central.sonatype.com/publishing/deployments and check that the deployment is marked as "validated" and that the expected components are included. Don't forget to click the "Drop" button to avoid accidentally publishing the release. diff --git a/exporter/common/pom.xml b/exporter/common/pom.xml index 6734a700..52b9e58a 100644 --- a/exporter/common/pom.xml +++ b/exporter/common/pom.xml @@ -24,12 +24,4 @@ test - - - - org.sonatype.central - central-publishing-maven-plugin - - - diff --git a/exporter/specobject/pom.xml b/exporter/specobject/pom.xml index b3c24cc5..39b20762 100644 --- a/exporter/specobject/pom.xml +++ b/exporter/specobject/pom.xml @@ -28,12 +28,4 @@ test - - - - org.sonatype.central - central-publishing-maven-plugin - - - diff --git a/importer/lightweightmarkup/pom.xml b/importer/lightweightmarkup/pom.xml index 45739b71..37fe269b 100644 --- a/importer/lightweightmarkup/pom.xml +++ b/importer/lightweightmarkup/pom.xml @@ -29,12 +29,4 @@ test - - - - org.sonatype.central - central-publishing-maven-plugin - - - diff --git a/importer/markdown/pom.xml b/importer/markdown/pom.xml index 3ff3260a..42c96065 100644 --- a/importer/markdown/pom.xml +++ b/importer/markdown/pom.xml @@ -28,12 +28,4 @@ test - - - - org.sonatype.central - central-publishing-maven-plugin - - - diff --git a/importer/restructuredtext/pom.xml b/importer/restructuredtext/pom.xml index c897bf21..4f66ed9d 100644 --- a/importer/restructuredtext/pom.xml +++ b/importer/restructuredtext/pom.xml @@ -28,12 +28,4 @@ test - - - - org.sonatype.central - central-publishing-maven-plugin - - - diff --git a/importer/specobject/pom.xml b/importer/specobject/pom.xml index 113f8971..91dbab26 100644 --- a/importer/specobject/pom.xml +++ b/importer/specobject/pom.xml @@ -28,12 +28,4 @@ test - - - - org.sonatype.central - central-publishing-maven-plugin - - - diff --git a/importer/tag/pom.xml b/importer/tag/pom.xml index 390f36be..165ed118 100644 --- a/importer/tag/pom.xml +++ b/importer/tag/pom.xml @@ -24,12 +24,4 @@ test - - - - org.sonatype.central - central-publishing-maven-plugin - - - diff --git a/importer/xmlparser/pom.xml b/importer/xmlparser/pom.xml index e2d6200f..b8723191 100644 --- a/importer/xmlparser/pom.xml +++ b/importer/xmlparser/pom.xml @@ -24,12 +24,4 @@ test - - - - org.sonatype.central - central-publishing-maven-plugin - - - diff --git a/importer/zip/pom.xml b/importer/zip/pom.xml index 0c235a82..c82ff929 100644 --- a/importer/zip/pom.xml +++ b/importer/zip/pom.xml @@ -24,12 +24,4 @@ test - - - - org.sonatype.central - central-publishing-maven-plugin - - - diff --git a/openfasttrace-mc-deployable-parent/pom.xml b/openfasttrace-mc-deployable-parent/pom.xml index bb858757..f3cf3559 100644 --- a/openfasttrace-mc-deployable-parent/pom.xml +++ b/openfasttrace-mc-deployable-parent/pom.xml @@ -37,6 +37,7 @@ It is maintained separately from the main parent POM for the following reasons: true central + false false validated Manual deployment of OpenFastTrace @@ -56,6 +57,11 @@ It is maintained separately from the main parent POM for the following reasons: + + org.apache.maven.plugins + maven-deploy-plugin + 3.1.4 + diff --git a/parent/pom.xml b/parent/pom.xml index b67796c2..06218e3b 100644 --- a/parent/pom.xml +++ b/parent/pom.xml @@ -416,8 +416,7 @@ true true - - ${test.args} + ${test.args} @@ -450,7 +449,7 @@ - 3.9.9 + 3.8.7 @@ -518,6 +517,15 @@ versions-maven-plugin 2.18.0 + + + org.apache.maven.plugins + maven-deploy-plugin + 3.1.4 + + true + + @@ -586,18 +594,7 @@ - - - org.apache.maven.plugins - maven-deploy-plugin - - - true - - - org.eclipse.m2e @@ -645,34 +642,6 @@ - - org.sonatype.central - central-publishing-maven-plugin - 0.7.0 - true - - central - https://central.sonatype.com - https://central.sonatype.com - false - validated - Manual deployment of OpenFastTrace - - - - org.apache.maven.plugins - maven-gpg-plugin - 3.2.7 - - - sign-artifacts - verify - - sign - - - - @@ -685,7 +654,4 @@ - diff --git a/pom.xml b/pom.xml index 6c8094b1..5a2f972c 100644 --- a/pom.xml +++ b/pom.xml @@ -35,4 +35,17 @@ reporter/aspec testutil + + + + + org.apache.maven.plugins + maven-deploy-plugin + 3.1.4 + + true + + + + diff --git a/product/pom.xml b/product/pom.xml index 2ead3e92..18457c00 100644 --- a/product/pom.xml +++ b/product/pom.xml @@ -123,10 +123,6 @@ - - org.sonatype.central - central-publishing-maven-plugin - diff --git a/reporter/aspec/pom.xml b/reporter/aspec/pom.xml index 19464e96..f47a75f3 100644 --- a/reporter/aspec/pom.xml +++ b/reporter/aspec/pom.xml @@ -28,12 +28,4 @@ test - - - - org.sonatype.central - central-publishing-maven-plugin - - - diff --git a/reporter/html/pom.xml b/reporter/html/pom.xml index 0e67dd50..288f2a61 100644 --- a/reporter/html/pom.xml +++ b/reporter/html/pom.xml @@ -24,12 +24,4 @@ test - - - - org.sonatype.central - central-publishing-maven-plugin - - - diff --git a/reporter/plaintext/pom.xml b/reporter/plaintext/pom.xml index 72cf8070..a0719c1d 100644 --- a/reporter/plaintext/pom.xml +++ b/reporter/plaintext/pom.xml @@ -24,12 +24,4 @@ test - - - - org.sonatype.central - central-publishing-maven-plugin - - -