Skip to content

Provide a BOM file to allow projects to easily import the right versions of optional dependencies #2627

Open
@evigeant

Description

@evigeant

Is your feature request related to a problem? If so, please give a short summary of the problem and how the feature would resolve it

Our maven project depends on mssql-jdbc and we support all authentication modes so we need the optional dependencies:

  • azure-security-keyvault-keys
  • azure-identity
  • msal4j
  • gson

These dependencies must be at specific versions for things to work as described here: https://learn.microsoft.com/en-us/sql/connect/jdbc/connecting-using-azure-active-directory-authentication?view=sql-server-ver16#client-setup-requirements

We use dependabot to update dependencies, but we needed to exclude mssql-jdbc and the Azure dependencies because they would frequently break the build. Dependabot updates each dependency individually and these need to be updated in "lockstep".

The POM file for mssql-jdbc declares the right versions as optional dependencies, but this does not help as we need to declare them in our own POM with the version.

Describe the preferred solution

The project should publish a BOM file describing the compatible versions of libraries with the driver. Something like mssql-jdbc-bom, similar to spring-framework-bom.

This would allow us to import the BOM (specifying the desired version of the driver) in our dependency management section and then in our dependency section, not specify the version for the dependent libraries. When dependabot updates the version of the BOM, all version would update in lockstep and not break the build because of mismatched versions.

Describe alternatives you've considered

The current alternative is to exclude these from dependabot, update manually and check all version numbers.

Additional context

None

Reference Documentations/Specifications

https://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html#Bill_of_Materials_.28BOM.29_POMs

Metadata

Metadata

Labels

BacklogThe topic in question has been recognized and added to development backlogEnhancementAn enhancement to the driver. Lower priority than bugs.

Type

No type

Projects

Status

Backlog

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions