Project

General

Profile

Actions

Bug #23291

open

Make our Gradle install usable for all tasks

Added by Brett Smith 5 months ago. Updated 5 months ago.

Status:
New
Priority:
Normal
Assigned To:
-
Category:
SDKs
Target version:
-
Story points:
-
Release relationship:
Auto

Description

Background: We use Gradle as the Java SDK build tool. For a long time we ran it via Docker. #22817 removed that as needless indirection after we standardized on an all-inclusive Jenkins image.

What I didn't realize at the time is that the Debian Gradle package is stalled. Debian 11 shipped Gradle 4.4.1; Debian 12 shipped Gradle 4.4.1; and Debian 13 shipped Gradle 4.4.1. See this GitHub issue where a couple of people have apparently worked on it but nobody's gotten it across the finish line.

This made life complicated when we had to do #22949. The Debian package apparently doesn't come with all the libraries necessary to do Maven uploads, and getting support for such an old version of Gradle was difficult. I solved the problem by just switching back the Gradle Docker image as we'd done before.

Clean this up.

  • The smallest fix would be to find and install the dependencies necessary to do Maven uploads with Debian's Gradle, and add that to the install-dev-tools playbook.
  • Alternatively, we could re-standardize on running Gradle from Docker. If we do that, we should probably introduce a wrapper script that runs our chosen image with our standard arguments.
  • Alternatively, we could figure out how to install Gradle from upstream, and add that to the install-dev-tools playbook. We do this for other development dependencies like Go and Node so I don't see why we shouldn't be willing to do it for Gradle. This would probably be a little more development work but keep Docker out of the loop.

Related issues 1 (1 open0 closed)

Related to Arvados - Feature #22812: Migrate Java SDK to maven-publish pluginNewActions
Actions #1

Updated by Brett Smith 5 months ago

  • Related to Feature #22812: Migrate Java SDK to maven-publish plugin added
Actions #2

Updated by Brett Smith 5 months ago

Brett Smith wrote:

Alternatively, we could figure out how to install Gradle from upstream, and add that to the install-dev-tools playbook. We do this for other development dependencies like Go and Node so I don't see why we shouldn't be willing to do it for Gradle. This would probably be a little more development work but keep Docker out of the loop.

See the install guide. Like Go, they provide binaries you can just extract to a directory.

But note the compatibility matrix. Debian 12 ships with OpenJDK 17, which requires Gradle 7.3+. We can't use that yet because we need to do #22812.

So I think I'd like to take this route, but that means #22812 is a blocker.

Actions

Also available in: Atom PDF