Skip to content

[Feature]: Provide a BOM module for managing dependencies (#4966)#4987

Merged
ewaostrowska merged 3 commits intoswagger-api:masterfrom
kuntal1461:feature/bom-module-4966
Apr 9, 2026
Merged

[Feature]: Provide a BOM module for managing dependencies (#4966)#4987
ewaostrowska merged 3 commits intoswagger-api:masterfrom
kuntal1461:feature/bom-module-4966

Conversation

@kuntal1461
Copy link
Copy Markdown
Contributor

@kuntal1461 kuntal1461 commented Oct 7, 2025

Fixes: #4966

  • modules/swagger-bom/pom.xml (new) — Standalone BOM POM (not parented by the reactor) that lists all io.swagger.core.v3 runtime artifacts for both the javax and Jakarta families under <dependencyManagement>, pinned to ${project.version}. Includes a release profile with GPG signing and Sonatype Central publishing.

  • modules/swagger-bom-integration-test/pom.xml (new) — Reactor module that imports swagger-bom and declares every managed artifact without explicit versions. The maven-dependency-plugin:resolve goal runs at validate phase and fails the build if any artifact cannot be resolved, giving an automated regression test for the BOM.

  • pom.xml — Registers both new modules in the reactor <modules> list.

  • .github/workflows/maven.yml / maven-pulls.yml — Added a pre-build step that extracts the root reactor version and the BOM version and fails CI if they differ (drift-guard).

  • CI/prepare-release.sh / post-release.sh — Added mvn versions:set calls for modules/swagger-bom so the BOM version is bumped in lock-step with the rest of the project during releases.

  • README.md — New "Maven BOM" section with Maven <dependencyManagement> and Gradle platform() usage snippets, and an explanation of why build plugins are intentionally excluded from the BOM.

@daniel-kmiecik
Copy link
Copy Markdown
Collaborator

@kuntal1461 we really appreciate your work and commitment!
Please check your PR and remove unnecessary changes. Leave only the part concerning BOM module.

@kuntal1461 kuntal1461 force-pushed the feature/bom-module-4966 branch from 9788674 to 0069c2d Compare October 10, 2025 11:32
@kuntal1461
Copy link
Copy Markdown
Contributor Author

Hi @daniel-kmiecik Please check once . and please let know anything I need to updated

@kuntal1461
Copy link
Copy Markdown
Contributor Author

Hi @daniel-kmiecik
Please check once and let me know if there’s anything I need to update.
I haven’t received any review comments yet, so just wanted to confirm if any changes are pending from my side.

@mymx2
Copy link
Copy Markdown

mymx2 commented Oct 28, 2025

align all versions, include swagger-annotations-jakarta.

see: https://search.maven.org/search?q=io.swagger.core.v3

@ewaostrowska ewaostrowska force-pushed the feature/bom-module-4966 branch 2 times, most recently from cf8b83e to fc3a787 Compare April 8, 2026 09:29
@ewaostrowska
Copy link
Copy Markdown
Contributor

Hi @kuntal1461, thank you for your input in the topic! I introduced few changes here as I feel like this PR did not cover the whole issue:

  • modules/swagger-bom/pom.xml - Added 7 Jakarta artifacts to : swagger-annotations-jakarta, swagger-models-jakarta, swagger-core-jakarta, swagger-integration-jakarta, swagger-jaxrs2-jakarta,
    swagger-jaxrs2-servlet-initializer-jakarta, swagger-jaxrs2-servlet-initializer-v2-jakarta. - as pointed out by @mymx2 (thanks!)
  • CI version-drift guard. github/workflows/maven-pulls.yml, .github/workflows/maven.yml , CI/prepare-release.sh, CI/post-release.sh - Added a step that extracts the root version and the BOM version via the exec plugin and fails if they differ. .github/workflows/maven.yml

@ewaostrowska ewaostrowska force-pushed the feature/bom-module-4966 branch 4 times, most recently from c94cd7e to bf3a6b5 Compare April 8, 2026 11:02
@daniel-kmiecik daniel-kmiecik requested a review from Copilot April 8, 2026 12:14
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a Maven Bill of Materials (BOM) for Swagger Core artifacts and introduces CI/release automation to keep the BOM version aligned with the root project version.

Changes:

  • Added swagger-bom module that manages versions for the javax + Jakarta io.swagger.core.v3 runtime artifacts.
  • Added a reactor “integration test” module that imports the BOM and resolves managed artifacts to catch drift/regressions.
  • Updated CI workflows and release scripts to enforce/maintain version lock-step for the BOM.

Reviewed changes

Copilot reviewed 8 out of 8 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
README.md Documents BOM usage for Maven/Gradle consumers.
pom.xml Registers the new BOM and BOM integration test modules in the reactor.
modules/swagger-bom/pom.xml New standalone BOM POM with dependencyManagement and release publishing config.
modules/swagger-bom-integration-test/pom.xml New module that imports the BOM and resolves managed deps as a regression check.
CI/prepare-release.sh Ensures BOM version is set during release preparation.
CI/post-release.sh Ensures BOM version is advanced after a release.
.github/workflows/maven.yml Adds a CI drift-guard verifying BOM version matches the root version.
.github/workflows/maven-pulls.yml Adds the same BOM/root version drift-guard for PR builds.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@ewaostrowska ewaostrowska force-pushed the feature/bom-module-4966 branch from bf3a6b5 to d21fc00 Compare April 8, 2026 13:32
@ewaostrowska ewaostrowska force-pushed the feature/bom-module-4966 branch from d21fc00 to 4c82d4b Compare April 8, 2026 13:32
@ewaostrowska ewaostrowska merged commit 126827b into swagger-api:master Apr 9, 2026
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Feature]: Provide a bom module for managing dependencies

6 participants