-
Notifications
You must be signed in to change notification settings - Fork 954
Change Maven artifactIds to avoid possible collisions with other libs #8589
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
Conversation
2f3ad83
to
90226f9
Compare
90226f9
to
f8ddb21
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This LGTM - it will help with forks like op-besu as well.
It is probably worth checking to see what public projects might have dependencies on the current artifactId's. Cursory glance seems like at least a few web3j artifacts have dependencies, shomei, plugins, etc. Definitely worth a warning in the release notes.
f8ddb21
to
6d6dd3a
Compare
@garyschulte after some research I added to the description the list of known public projects that are using Besu dependencies, and will notify them about the change |
63f9f37
to
4d74fe0
Compare
…r libs Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net>
…pport to BOM Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net>
Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net>
This reverts commit c93c37e. Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net>
Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net>
4d74fe0
to
0741532
Compare
Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net>
* EIP-7825: Transaction gas limit cap (#8700) * EIP-7825: Transaction gas limit cap Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net> * Support transaction gas limit cap when simulating a tx Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net> * Do not allow isAllowExceedingGasLimit for when block simulation is strict Signed-off-by: Gabriel-Trintinalia <gabriel.trintinalia@consensys.net> --------- Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net> Signed-off-by: Gabriel-Trintinalia <gabriel.trintinalia@consensys.net> Co-authored-by: Gabriel-Trintinalia <gabriel.trintinalia@consensys.net> * EIP-7823 - Modexp upper bounds (#8632) Signed-off-by: Simon Dudley <simon.dudley@consensys.net> * Change Maven artifactIds to avoid possible collisions with other libs (#8589) * Improve Maven artifacts naming to avoid possible collisions with other libs Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net> * Rename besu subproject to app (#8746) * Rename `besu` module to `app` Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net> * Implement percentiles array size limit for eth_feeHistory (#8748) * implement percentiles array size limit for eth_feeHistory Signed-off-by: garyschulte <garyschulte@gmail.com> * Revert "feat: remove chain head check if peer supports eth/69 (#8725)" (#8753) This reverts commit ed1086d. Signed-off-by: Gabriel-Trintinalia <gabriel.trintinalia@consensys.net> --------- Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net> Signed-off-by: Gabriel-Trintinalia <gabriel.trintinalia@consensys.net> Signed-off-by: Simon Dudley <simon.dudley@consensys.net> Signed-off-by: garyschulte <garyschulte@gmail.com> Co-authored-by: Fabio Di Fabio <fabio.difabio@consensys.net> Co-authored-by: Simon Dudley <simon.dudley@consensys.net> Co-authored-by: garyschulte <garyschulte@gmail.com>
PR description
Currently Besu artifacts are published to Maven, with a
groupId
=org.hyperledger.besu[.internal]
and theartifactId
is just the name of the subproject, for example:p2p
,core
or plugin-api`.That works fine for defining a dependency on any Besu lib using the Maven coordinates, since the couple:
groupId
+artifactId
are unique, but there is a potential issue when packaging the project, since very generic artifactIds, likecore
,util
and so on, could collide with other project dependencies using the same artifactId and the same calver, since the Maven repository layout states that the jar name is only theartifactId
+version
, so thegroupId
could not be used to disambiguate when collecting all the jars needed by the app, as the Gradle distribution plugin does for example.The solution proposed in this PR, is to change the
artifactId
of Besu libs to be automatically set to the project path, that is the concatenation of all the project names from the root to the leaf.This way:
core
becomesbesu-ethereum-core
orplugin-api
becomebesu-plugin-api
.This is the approach taken by most common libs like: Vert.x, Netty, etc...
This is a breaking change, since Maven coordinates change and plugins will have to update their dependencies specification.
Known projects that are using Besu dependencies and need to be updated, where possible I will open a PR to update the coordinates and notify the team:
Fixed Issue(s)
Thanks for sending a pull request! Have you done the following?
doc-change-required
label to this PR if updates are required.Locally, you can run these tests to catch failures early:
./gradlew spotlessApply
./gradlew build
./gradlew acceptanceTest
./gradlew integrationTest
./gradlew ethereum:referenceTests:referenceTests