Discussion:
FYI: I created a Gradle issue for bootstrappable Debian support
(too old to reply)
Sean Gilligan
2023-09-25 20:20:01 UTC
Permalink
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
Emmanuel Bourg
2023-09-26 07:30:01 UTC
Permalink
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
Post by Sean Gilligan
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
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
https://github.com/bitcoinj/bitcoinj/issues/3287
Sean Gilligan
2023-09-27 20:10:01 UTC
Permalink
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
Post by Emmanuel Bourg
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
Post by Sean Gilligan
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
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
https://github.com/bitcoinj/bitcoinj/issues/3287
Sean Gilligan
2023-09-28 17:30:01 UTC
Permalink
Post by Sean Gilligan
But we'll switch to Gradle if necessary in the future.
Typo: I meant Maven.
Post by Sean Gilligan
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
Post by Emmanuel Bourg
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
Post by Sean Gilligan
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
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
https://github.com/bitcoinj/bitcoinj/issues/3287
Loading...