Hi Emmanuel,

FrankenGradle!  That's a great name!

I know it's unlikely they are going to do anything, but I thought there should at least be an up-to-date GitHub Issue for Gradle to look at and for a discussion to hopefully occur.

bitcoinj has franken-build-scripts that use a growing number of conditionals to ensure they run on the latest Gradle as well as FrankenGradle 4.4.x and Gradle 4.10.3 (which is the closest standard version that we can easily use on GitHub CI.)  The scripts have been difficult to maintain but they are currently working and they will suffice through the 0.17 release. They are also supporting JDK 21, so we are definitely OK for now.

We use Debian Docker images for our GitLab CI builds and for our reference build which can be run locally as well. Being Debian Free Software Guidelines compliant is important to us. We would like to eventually see the bitcoinj library, our "wallet-tool" command-line app, and perhaps even a GUI wallet be available as Debian packages.

Thinking longer-term, we have had brief discussions about switching to Maven, but haven't made any serious effort yet. We've been hoping that Gradle will see the light and/or you will make progress even without their support. But we'll switch to Gradle if necessary in the future.

Thanks gain for all your efforts!

-- Sean


On 9/26/23 12:19 AM, Emmanuel Bourg wrote:
Hi Sean,

Thank you for your support, I'm glad someone appreciates our FrankenGradle ;)

Gradle is difficult to upgrade in Debian for a variety of reasons. For one thing it's a huge monolith and thus it's a bit all or nothing, if one part is missing your are stuck. Maven in comparison is highly modular and can be upgraded piece by piece. The major pain point currently is the Kotlin DSL, I wish the core of Gradle would have remained pure Java/Groovy. And then there is the non-free stuff like the Gradle enterprise plugin that gets in the way.

Addressing these issues in Gradle isn't a trivial task, and I doubt the bootstrappability is compelling enough to motivate the Gradle developers to work on it.

If this is important for bitcoinj I would suggest switching to another build tool, either Maven if you have a fairly standard project structure, or Ant if you need the flexibility of an imperative build system (and Ant is by far the easiest to bootstrap).

Emmanuel Bourg


Le 25/09/2023 à 22:17, Sean Gilligan a écrit :
Hi Everyone,

I appreciate the efforts of the Debian Java team and know that your job is not easy.

I work on bitcoinj (Java) and we are (for better or worse) using Gradle for our builds. We are stuck supporting Gradle 4.4.x, when the latest version of Gradle 8.3 (or 8.4) is required to support JDK 21 (if you're not using the Debian-patched Gradle, of course.)

I had thought there was already an issue for this on the Gradle GitHub project, but today I couldn't find anything. So I created a new one:
https://github.com/gradle/gradle/issues/26516

I thought I would share that with you for reference purposes. Or maybe someone might want to comment on the issue, especially if anyone from Gradle responds or asks questions.

I'm hoping that priorities at Gradle may be changing now that supply-chain security has become a more visible issue in the industry. (Yes, I'll admit to being an optimist.)

Anyway, thanks for your efforts. We do appreciate them.

Regards,

Sean

p.s. If you're interested in how we are dealing with this at bitcoinj, I created an issue there as well:
https://github.com/bitcoinj/bitcoinj/issues/3287



Reply via email to