#31326 closed enhancement (fixed)

Start using Ant Ivy for external dependency management

Reported by: karsten Owned by: karsten
Priority: Medium Milestone:
Component: Metrics Version:
Severity: Normal Keywords:
Cc: metrics-team Actual Points:
Parent ID: Points:
Reviewer: irl Sponsor:

Description

We're using various external dependencies in our code bases, from Logback for logging to embedded Jetty as our web server. In the past we relied on Debian stable to provide relevant library files in /usr/share/java/.

However, the manual upgrade to libraries found in the new Debian stable version buster has turned out to be harder than expected. This is also due to us still using JSPs which requires rather unusual libraries. Apart from this, having to add dependencies (and their dependencies) manually prevents us from adding other useful tools and libraries. In short, we need a better process for managing external dependencies.

We discussed last week that we'd try out Ant Ivy for this purpose, despite the fact that it doesn't look as well maintained as other alternatives. But the changes to our current build process would be minimal, as compared to switching to Gradle or Maven.

Assigning this ticket to myself, as I have already started working on this and am planning to finish this work soon.

Child Tickets

Attachments (1)

0001-Use-Ivy-for-resolving-external-dependencies.patch (7.1 KB) - added by karsten 11 months ago.

Download all attachments as: .zip

Change History (7)

comment:1 Changed 11 months ago by karsten

Reviewer: irl
Status: assignedneeds_review

I think I have working versions of all metrics code bases using Ivy. But they all require a metrics-base change which I need to push to master first in order to prepare branches of the other repositories. That's why I'd like to start the review process with metrics-base and metrics-lib, and once we agree on these changes, create patches for the remaining metrics code bases.

Please review the attached metrics-base commit and metrics-lib temporary commit f4d3797 in my task-31326 branch.

comment:2 Changed 11 months ago by irl

Status: needs_reviewmerge_ready

(Only just noticing that the libasm4-java Debian package contains version 5. I guess that change wasn't breaking enough to change the name.)

On Debian it is necessary to add "-lib /usr/share/java" as that's where the ivy jar gets installed:

ant -lib /usr/share/java resolve

I guess you will rewrite the commit message, but if you do reference the metrics-base commit make sure to update that because the timestamp will likely be different.

comment:3 Changed 11 months ago by karsten

Status: merge_readyaccepted

Thanks for looking! I merged the metrics-base commit without changes and updated the metrics-lib commit before merging.

Setting to accepted again for the remaining code bases.

comment:4 Changed 11 months ago by karsten

Status: acceptedneeds_review

Please review CollecTor commit 027a54b, Onionoo commits 860228c and 8c3b87b, ExoneraTor commit 2702e39, and metrics-web commit 844fcbe.

comment:5 Changed 11 months ago by irl

Status: needs_reviewmerge_ready

These all look good. We should have them all passing CI on GitLab before we make any releases though.

comment:6 Changed 11 months ago by karsten

Resolution: fixed
Status: merge_readyclosed

Great, thanks for looking, all merged! Agreed on passing the CI before making releases. Closing this ticket (and those related to the Debian buster upgrade). Thanks!

Note: See TracTickets for help on using tickets.