• FYI: I created a Gradle issue for bootstrappable Debian support

    From Sean Gilligan@21:1/5 to All on Mon Sep 25 22:20:01 2023
    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

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Emmanuel Bourg@21:1/5 to All on Tue Sep 26 09:30:01 2023
    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


    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Sean Gilligan@21:1/5 to Emmanuel Bourg on Wed Sep 27 22:10:01 2023
    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



    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Sean Gilligan@21:1/5 to Sean Gilligan on Thu Sep 28 19:30:01 2023
    But we'll switch to Gradle if necessary in the future.

    Typo: I meant Maven.


    On 9/27/23 1:01 PM, Sean Gilligan wrote:
    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




    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)