-
-
Notifications
You must be signed in to change notification settings - Fork 212
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Create BOMs for dependency versions #1419
Comments
Just as info, Atrium already provides BOMs for consumers of atrium (the bundle modules), I guess that covers a) |
The current bundle modules are not BOMs. In other words, "a" should be dependency constraints rather than versions:
In that case, every atrium module could depend on such bom, and Gradle would automatically align versions. In JUnit, junit-bom is |
The use cases for Lines 20 to 29 in cca39fc
The modern approach for naming dependencies is version catalogs, however, there are issues with using precompiled script plugins + version catalogs together. Another (accompanying) approach to align versions is creating platforms. In that case, you import that platform once, and declare the dependencies without versions, so you don't need refer to extra names. |
One of the major drawbacks of having For instance, consider |
regarding a) you are totally right. would make sense to have a proper BOM in addition where the bundle modules would use it.
Oho.. looks like I am getting old-school 😆 Thanks for your input, easy way for me to catch up on new gradle stuff regard b, c) |
we no longer use rootProject.extra but libs.versions.toml but an additional BOM would still be nice |
Platform (all, jvm, js): all
Extension (none, kotlin 1.3): none
Non-Code related feature
Currently the build uses
rootProject.extra
for declaring dependency versions which is cumbersome for usage (e.g. it does not support precompiled script plugins), and it can't be reused.I suggest creating BOMs with dependency constraints, so the dependencies can be declared without versions.
I think the following BOMs make sense:
a) Atrium modules, without third-party dependencies. In other words, something like
junit-bom
: https://junit.org/junit5/docs/current/user-guide/#dependency-metadata-junit-bomb) BOM with third-party runtime dependencies (if any)
c) BOM with test dependencies
The text was updated successfully, but these errors were encountered: