• Re: gradle reboot

    From =?UTF-8?B?SsOpcsO0bWUgQ2hhcmFvdWk=?@21:1/5 to All on Mon Nov 4 15:10:01 2024
    Hi Julien,

    Le 2024-11-04 à 08 h 43, Julien Plissonneau Duquène a écrit :
    This is to let you know that I am currently working on overhauling and upgrading the gradle package to the upcoming 8.11 release. This is
    indeed quite challenging and I am not yet to the point where I could
    share a repo and let others experiment and contribute, but I hope to get there in a few days or maybe next week, I will then post an update with
    a link.

    Thank you for working on this. As you probably know, Gradle has been a
    major pain point in Debian for a while now.

    I would simply like to suggest, please don't aim for perfection: an
    "80%-good" solution would be a great improvement already.

    And if for whatever reason your efforts don't bear fruit, please
    document your work and the challenges you faced, so that others may more
    easily pick up where you left off.

    Thanks again,

    -- Jérôme

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From =?UTF-8?Q?Julien_Plissonneau_Duqu=c@21:1/5 to All on Mon Nov 4 14:50:01 2024
    Hi,

    This is to let you know that I am currently working on overhauling and upgrading the gradle package to the upcoming 8.11 release. This is
    indeed quite challenging and I am not yet to the point where I could
    share a repo and let others experiment and contribute, but I hope to get
    there in a few days or maybe next week, I will then post an update with
    a link.

    My current plan is to make it at least a 2-stage build as there is no
    point in trying to make its complicated buildscript work with the
    currently packaged version 4.4.1. I don't know yet if the versions of
    Groovy and Kotlin currently in Debian will work with these builds but I
    will try. I am also factoring in the gradle-debian-helper in the build
    of Gradle itself to use its logic to resolve artifact versions, even
    though the plugin can no longer be used as is because it depends on a
    core 'maven' plugin that disappeared with Gradle 7.

    About myself, I haven't contributed much to the project yet but I am a
    long time FLOSS advocate and Debian user, with some background in large
    scale deployments, SRE and DevOps things. I didn't have much prior
    experience with Gradle until the past few days, so I am learning while
    doing it.

    Regards,

    --
    Julien Plissonneau Duquène

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Toni Mueller@21:1/5 to All on Mon Nov 4 17:00:01 2024
    Hi Julien,

    On Mon, Nov 04, 2024 at 02:43:08PM +0100, Julien Plissonneau Duqu�ne wrote:
    This is to let you know that I am currently working on overhauling and upgrading the gradle package to the upcoming 8.11 release. This is indeed

    I was also looking into this a few days ago, but I am not a Java
    programmer at all. However, I would suggest to make a "gradle8" package
    that could be installed in parallel with the existing Gradle. The
    benefit is that the new package doesn't need to be feature-complete, and
    can even (initially) have a higher bug-tolerance while keeping
    everything running as-is for the time being.

    These are just my 0.02 cents, and this is where I was trying to go.

    I also found that downloading the "source" package from the website is
    probably not a good idea, and went for the Github repository instead,
    after finding lots of .class files in the "source" repository and
    getting the impression that some bits might be missing.

    Questions and comments welcome!


    Cheers,
    Toni

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From =?UTF-8?Q?Julien_Plissonneau_Duqu=c@21:1/5 to Toni Mueller on Mon Nov 4 17:30:02 2024
    Hi Toni,

    On 04/11/2024 16:53, Toni Mueller wrote:

    However, I would suggest to make a "gradle8" package
    that could be installed in parallel with the existing Gradle.

    I didn't think about that but that could be appropriate given that major releases of Gradle tend to break major things in builds, especially for
    large projects. Thanks for the suggestion.

    after finding lots of .class files in the "source" repository and
    getting the impression that some bits might be missing.

    So far I was able to rebuild with theses sources and the binary
    distribution so I don't think there are missing bits, extra bits for
    sure and I haven't looked yet at what was used to sanitize the sources
    for Debian, but as its build downloads the whole Internet of
    dependencies while building itself who knows. I will check.

    Cheers,

    --
    Julien Plissonneau Duquène

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Emmanuel Bourg@21:1/5 to All on Fri Nov 8 00:30:01 2024
    Hi Julien,

    Le 04/11/2024 à 14:43, Julien Plissonneau Duquène a écrit :

    This is to let you know that I am currently working on overhauling and upgrading the gradle package to the upcoming 8.11 release. This is
    indeed quite challenging and I am not yet to the point where I could
    share a repo and let others experiment and contribute, but I hope to get there in a few days or maybe next week, I will then post an update with
    a link.

    Thank you for tackling this issue, this challenge requires a lot of
    time, skills and patience. It's long, thankless, but definitely fun if
    you are a bit masochistic.


    My current plan is to make it at least a 2-stage build as there is no
    point in trying to make its complicated buildscript work with the
    currently packaged version 4.4.1. I don't know yet if the versions of
    Groovy and Kotlin currently in Debian will work with these builds but I
    will try.

    No they won't work. Getting Kotlin 1.3.31 to build with Java 17 was an
    epic achievement but unfortunately it didn't even allow us to package an incremental update of Gradle.

    Kotlin and Gradle are tightly coupled, and unless you are ready to
    rewrite their build systems with something else and replace the Kotlin
    code in Gradle, I don't think it's possible to bootstrap them separately.

    That was the motivation behind the gradle-bootstrap package currently in
    sid: start with a binary only package containing Gradle, Koltin and
    their dependencies, and use it to gradually rebuild these components
    from source until the bootstrap package is no longer needed. I haven't
    pushed further in this direction by lack of time but I still think
    that's the best strategy to build a recent version of Gradle and Kotlin.

    Note that there is also an issue with the Gradle enterprise plugin that
    isn't open sourced and has to be removed. I don't know if Gradle 8 is
    still affected.


    I am also factoring in the gradle-debian-helper in the build
    of Gradle itself to use its logic to resolve artifact versions, even
    though the plugin can no longer be used as is because it depends on a
    core 'maven' plugin that disappeared with Gradle 7.

    About myself, I haven't contributed much to the project yet but I am a
    long time FLOSS advocate and Debian user, with some background in large
    scale deployments, SRE and DevOps things. I didn't have much prior
    experience with Gradle until the past few days, so I am learning while
    doing it.

    If you succeed I predict that you'll be able to add "Kotlin Guru" to
    your CV:)

    Good luck!

    Emmanuel Bourg

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From =?UTF-8?Q?Julien_Plissonneau_Duqu=c@21:1/5 to Emmanuel Bourg on Fri Nov 8 11:40:02 2024
    Hi Emmanuel,

    On 08/11/2024 00:14, Emmanuel Bourg wrote:

    Kotlin and Gradle are tightly coupled, and unless you are ready to
    rewrite their build systems with something else and replace the Kotlin
    code in Gradle, I don't think it's possible to bootstrap them separately.

    I have plans for the build system, a bit like what is done in libnative-platform-java that I am now working on as the new Gradle
    definitely needs an updated version.

    Gradle 8.11 is still mostly Java code actually (10 to 1 ratio), and I
    haven't looked yet at which features of Kotlin they use that are not
    available in 1.3. You are probably right, but I will try anyway for the science. Things can be learned from failed experiments ^ ^ and the stack
    of patches on Kotlin is pretty intimidating, this looks like even more
    work than Gradle.

    That was the motivation behind the gradle-bootstrap package currently in
    sid: start with a binary only package containing Gradle, Koltin and
    their dependencies, and use it to gradually rebuild these components
    from source until the bootstrap package is no longer needed. I haven't
    pushed further in this direction by lack of time but I still think
    that's the best strategy to build a recent version of Gradle and Kotlin.

    There is indeed a first stage bootstrap that definitely needs a binary distribution of Gradle and Kotlin, maybe not necessarily packaged, but
    for now I have slightly different plans for what happens next. I have to
    refine and try a few things before telling you more.

    Note that there is also an issue with the Gradle enterprise plugin that
    isn't open sourced and has to be removed. I don't know if Gradle 8 is
    still affected.

    Still affected, libnative-platform-java as well now, but that was easily patched.

    Current status for Gradle is that it starts to compile the project
    offline (using the binary distribution) with a reduced set of
    dependencies but fails on missing references in the current libnative-platform-java. Just getting the buildscript to compile and run
    was some tough work. I managed to use the current gradle-debian-helper
    to rewrite most artifact coordinates, with some workarounds. It won't
    work as is with the new Gradle and will require some attention.

    Still hoping to share repos next week for libnative-platform-java and
    gradle.

    Cheers,

    --
    Julien Plissonneau Duquène

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From =?UTF-8?Q?Julien_Plissonneau_Duqu=c@21:1/5 to All on Sat Nov 16 13:50:01 2024
    Hi,

    On 04/11/2024 14:43, Julien Plissonneau Duquène wrote:
    maybe next week

    Well it turned out that libnative-platform-java gave me a bit more work
    than expected, but it now builds and tests with everything we currently
    have in Debian (Gradle, Groovy, Spock etc). Still a few issues to solve,
    there is a TODO list there [1] if you wish to contribute.

    I will resume the work on Gradle itself next week, no progress on it
    since last week, I'm planning to push my current work on it to Salsa on
    Monday.

    Some explanations about the branches in my clone of libnative-platform-java:
    - `pristine-tar` and `upstream` were updated with all the new releases
    since 0.14, as I find it convenient to have that kind of history when
    looking for breaking changes
    - `update-watch-and-copyright-for-import` has some minimal changes on
    the current package to import the new releases
    - `import-new-releases` is what would be the `master` branch with only
    the configuration changes and the imported releases merged
    - the `master` branch is untouched and is to remain in sync with its
    origin repo
    - `upgrade-0.22m26` is a cleaned version of (below)
    - `upgrade-0.22m26-wip` which is where the actual work happens and that
    has a bunch of temporary files under debian/wip. You are welcome to add
    or edit anything you wish there, no MR required, just ask for access as
    I can't add groups.

    I've opened a series of MRs:
    - the first ones [2] for the configuration changes and source imports
    - the last one [3] as a draft for the packaging work that is not
    finished yet.

    Comments welcome.

    Have a nice week-end,



    [1] https://salsa.debian.org/jpd/libnative-platform-java/-/blob/upgrade-0.22m26-wip/debian/wip/README.md?ref_type=heads

    [2] https://salsa.debian.org/java-team/libnative-platform-java/-/merge_requests/7

    https://salsa.debian.org/java-team/libnative-platform-java/-/merge_requests/6

    https://salsa.debian.org/java-team/libnative-platform-java/-/merge_requests/5

    https://salsa.debian.org/java-team/libnative-platform-java/-/merge_requests/9

    [3] https://salsa.debian.org/java-team/libnative-platform-java/-/merge_requests/8

    --
    Julien Plissonneau Duquène

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From [email protected]@21:1/5 to All on Tue Nov 19 11:10:01 2024
    Good morning,

    Le 2024-11-04 16:53, Toni Mueller a écrit :
    getting the impression that some bits might be missing.

    Well you were right, there are many missing files [1] in the
    distribution ZIPs, mostly documentation and testing though. I reported
    that and got no reaction so far. I've updated d/watch in my branches to
    use the GitHub releases from now on.

    I've sanitized and imported the new releases sources and pushed the
    current state of my work, still very rough, to Salsa [2]. There is
    currently a regression compared to two weeks ago as I'm currently unable
    to get the build to start compiling the project, it hangs in a
    configuration stage. Currently investigating why, this is probably
    related to some missing dependency.

    MRs already opened are:
    - that one [3] with configuration changes for repacking the source for
    4.4.1 and preparing for imports, and also patches Gradle 4.4.1 so you
    can use it to build libnative-platform-java
    - these [4] for importing the new releases.

    Comments, feedback and help welcome as usual.

    Cheers,


    [1]: https://salsa.debian.org/jpd/gradle/-/blob/upgrade-to-8.11-wip/debian/wip/delta-ghtar-gradlezip

    [2]: https://salsa.debian.org/jpd/gradle/-/blob/upgrade-to-8.11-wip/debian/wip/README.md

    [3]: https://salsa.debian.org/java-team/gradle/-/merge_requests/7

    [4]: https://salsa.debian.org/java-team/gradle/-/merge_requests/8
    https://salsa.debian.org/java-team/gradle/-/merge_requests/9
    https://salsa.debian.org/java-team/gradle/-/merge_requests/10

    --
    Julien Plissonneau Duquène

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Hans-Christoph Steiner@21:1/5 to All on Tue Nov 26 13:40:01 2024
    Emmanuel Bourg:
    Hi Julien,

    Le 04/11/2024 à 14:43, Julien Plissonneau Duquène a écrit :

    This is to let you know that I am currently working on overhauling and
    upgrading the gradle package to the upcoming 8.11 release. This is indeed
    quite challenging and I am not yet to the point where I could share a repo and
    let others experiment and contribute, but I hope to get there in a few days or
    maybe next week, I will then post an update with a link.

    Thank you for tackling this issue, this challenge requires a lot of time, skills
    and patience. It's long, thankless, but definitely fun if you are a bit masochistic.


    My current plan is to make it at least a 2-stage build as there is no point in
    trying to make its complicated buildscript work with the currently packaged >> version 4.4.1. I don't know yet if the versions of Groovy and Kotlin currently
    in Debian will work with these builds but I will try.

    No they won't work. Getting Kotlin 1.3.31 to build with Java 17 was an epic achievement but unfortunately it didn't even allow us to package an incremental
    update of Gradle.

    Kotlin and Gradle are tightly coupled, and unless you are ready to rewrite their
    build systems with something else and replace the Kotlin code in Gradle, I don't
    think it's possible to bootstrap them separately.

    That was the motivation behind the gradle-bootstrap package currently in sid: start with a binary only package containing Gradle, Koltin and their dependencies, and use it to gradually rebuild these components from source until
    the bootstrap package is no longer needed. I haven't pushed further in this direction by lack of time but I still think that's the best strategy to build a
    recent version of Gradle and Kotlin.

    Note that there is also an issue with the Gradle enterprise plugin that isn't open sourced and has to be removed. I don't know if Gradle 8 is still affected.

    It is great that you are taking this on! It is a very valuable thing to get done. I will try to help and review as I find time, but I'm really slammed at the moment.

    Another thing I can offer is help with funding for doing this work, if that is interesting to you. Specifically, NLnet's Mobifree fund (https://nlnet.nl/mobifree/) is likely to fund this kind of work because Gradle is so important for Android. And having Gradle in Debian means it truly is free
    software. I will happily help you put together a proposal for NLnet. The money
    would then go directly to you. They pay you as a gift from a foundation, and the overall process is relatively easy.

    .hc

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Markus Koschany@21:1/5 to All on Tue Nov 26 14:20:01 2024
    Hi Julien,

    First of all, thank you for working on Gradle. I have been working on it in the past and together with Emmanuel we tried different approaches. Currently I can't spend more time on it, but I have uploaded my last attempt to

    https://salsa.debian.org/java-team/gradle-apo

    perhaps this might be helpful for someone.

    I discarded the idea to upgrade Gradle to 6.x or even newer releases because the main problem with Gradle for Debian is the complex interaction between its (build)-dependencies. Since we only support one version of a library in general, you will quickly reach a point where you are stuck in a loop between upgrading existing Debian packages, then fixing broken reverse-dependencies, and then moving on to build Gradle offline. And for me those iterations never seemed to end.

    My last idea was to only make a small step forward and upgrade Gradle to 4.6, the first version that uses Kotlin. I downloaded the official binary release of 4.6 and installed it to /opt/gradle/gradle-4.6. I managed to successfully build gradle 4.6 offline with Debian packages but only with the official binary release. If I replace this one with the resulting Debian package and try to rebuild Gradle, the build fails.

    I believe all remaining issues are related to our Kotlin version in Debian, the kotlin-gradle plugin and the gradle-kotlin-dsl-extensions and a few patches to tie them all together. Upstream used a different version of Kotlin to build 4.6 and that might be one of the reasons for the broken Debian package. I wish you all the best and try to follow up as soon as time permits.

    Regards,

    Markus



    -----BEGIN PGP SIGNATURE-----

    iQKTBAABCgB9FiEErPPQiO8y7e9qGoNf2a0UuVE7UeQFAmdFyIBfFIAAAAAALgAo aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldEFD RjNEMDg4RUYzMkVERUY2QTFBODM1RkQ5QUQxNEI5NTEzQjUxRTQACgkQ2a0UuVE7 UeSsMhAAm1TziJBYDATV1GM3QwnkoG9OIiN+XtPUypW63A5ZxPUIFSoEOQ9yYD8Y L3PVGdwja/l1dqNgRFcwOtqBgdS1Vsx7jPyghNdCPl9NrH18ivllGe6Lli7QOXpS hrKQQ/866/zfRylz/4HP1Hs0WilgEVCXy/nGo3Q8z3gxVjWvs+IIL5xSqISk13WE znQDDnremdKmmxWmQGN3dC/aNy//fXgCxMYGhaAZcyz6gc7aHBnfth4M6U0cSYzn QwazV10/jNtAyszNVqWAvC2+m58Bt6kXLuUYyo2GW1aTl/wnBmUASWF7ZZFu1zQN UItce1kyHHyjTNnbkpR2vn/I6IqjXAXgeJEjOrRF97fYtbQgbdLle/zSFgUU3ItG 6DEHJySHlcYFDx7wkpM1X7DKIzJohR72llE/l/LkyMitfICPUPdZVEbAYdkwh/YD jeoOXKbCIVYj9QpgI33mkiToaHrgO2uBJSXAw0a2KKZIVXwZA2N37dNrx9IsitaM ZuUbsfA478UnXM1aNloKMdeHGmMRhUIVRsflDaLVmO30NE5W3kDjDKIM5yr17wpq pZez6qUBA/fNzsc65JYVti0LTql59x1Xb9i72E3o6LLPvyC23ALKJdg2ZkXfiCkw g54c/93vi4Vm5bB3uev0HSXMkYP9fRXEi6Wv34kudmUoOXOr2sk=
    =dBid
    -----END PGP SIGNATURE-----

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From [email protected]@21:1/5 to All on Wed Nov 27 09:30:01 2024
    Hi Hans-Cristoph,

    Le 2024-11-26 13:37, Hans-Christoph Steiner a écrit :

    Another thing I can offer is help with funding for doing this work, if
    that is interesting to you. Specifically, NLnet's Mobifree fund (https://nlnet.nl/mobifree/) is likely to fund this kind of work
    because Gradle is so important for Android. And having Gradle in
    Debian means it truly is free software. I will happily help you put
    together a proposal for NLnet. The money would then go directly to
    you. They pay you as a gift from a foundation, and the overall process
    is relatively easy.

    Well it's soon Christmas so I'm not against the funding ^ ^ but it may
    take a while until the Gradle package in Debian becomes suitable for
    Android development. I haven't checked that specifically yet but there
    is probably a bunch of really needed dependencies that would require
    packaging. My focus for now is first to make Gradle in Debian suitable
    for rebuilding Debian packages on a CI, second to make it suitable for
    Debian development using IDEs (IDEA specifically) which wasn't possible
    out of the box with the packaged Gradle 4.4.1 but I found out how this
    could be made to work.

    If the foundation is willing to fund some work as well on packaging dependencies and upgrading Kotlin that may make sense and shift some of
    my priorities for what comes next after Gradle. You can mail me off-list
    to work out the details.

    Cheers,

    --
    Julien Plissonneau Duquène

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From [email protected]@21:1/5 to All on Wed Nov 27 09:20:02 2024
    Hi Markus,

    Thanks for the link to your repo, I will take a look.

    Le 2024-11-26 14:09, Markus Koschany a écrit :

    I discarded the idea to upgrade Gradle to 6.x or even newer releases
    because
    the main problem with Gradle for Debian is the complex interaction
    between its
    (build)-dependencies. Since we only support one version of a library in general, you will quickly reach a point where you are stuck in a loop
    between
    upgrading existing Debian packages, then fixing broken
    reverse-dependencies,
    and then moving on to build Gradle offline. And for me those iterations
    never
    seemed to end.

    Both Gradle and Kotlin are moving targets indeed, and they were moving
    even faster around these releases according to their respective
    histories, which probably explains why you (and nobody else as a fact)
    weren't able to catch up: it might well have been simply impossible at
    that stage.

    My last idea was to only make a small step forward and upgrade Gradle
    to 4.6,
    the first version that uses Kotlin. I downloaded the official binary
    release of
    4.6 and installed it to /opt/gradle/gradle-4.6. I managed to
    successfully build
    gradle 4.6 offline with Debian packages but only with the official
    binary
    release. If I replace this one with the resulting Debian package and
    try to
    rebuild Gradle, the build fails.

    I would not follow that path today for Gradle unless working on a
    theoretical bootstrap. That would still be a difficult work, maybe even
    more difficult than the current releases, and the result would still be
    a severely outdated Gradle, just a little bit less outdated, and with
    still a lot of work ahead to bring it to current releases.

    But I wouldn't rule out a similar path for Kotlin yet as we may well
    lack alternatives for that one...

    Cheers,

    --
    Julien Plissonneau Duquène

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Emmanuel Bourg@21:1/5 to All on Fri Nov 29 11:50:01 2024
    Le 26/11/2024 à 14:09, Markus Koschany a écrit :

    I discarded the idea to upgrade Gradle to 6.x or even newer releases because the main problem with Gradle for Debian is the complex interaction between its
    (build)-dependencies. Since we only support one version of a library in general, you will quickly reach a point where you are stuck in a loop between upgrading existing Debian packages, then fixing broken reverse-dependencies, and then moving on to build Gradle offline. And for me those iterations never seemed to end.

    Markus raises a good point, I would add that if there is a risk at some
    point of breaking the existing packages after upgrading a dependency,
    then introducing a new package for the updated dependency is the way to
    go. We can deduplicate the dependencies later when the transition to the
    newer Gradle is complete.

    Emmanuel Bourg

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Emmanuel Bourg@21:1/5 to All on Fri Nov 29 12:00:01 2024
    Le 27/11/2024 à 09:16, [email protected] a écrit :

    Both Gradle and Kotlin are moving targets indeed, and they were moving
    even faster around these releases according to their respective
    histories, which probably explains why you (and nobody else as a fact) weren't able to catch up: it might well have been simply impossible at
    that stage.

    Gradle 4.5 was even built with snapshot versions of itself [1], that's a nightmare from a bootstrapping perspective.

    Maybe jumping to recent and stable Gradle/Kotlin releases would be
    easier, but does that even exist? Is there a couple a Gradle and Kotlin releases that can be used to build each other (and themself).

    Emmanuel Bourg

    [1] https://github.com/gradle/gradle/issues/26516#issuecomment-1745095772

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From [email protected]@21:1/5 to All on Fri Nov 29 13:00:01 2024
    Le 2024-11-29 11:58, Emmanuel Bourg a écrit :

    Maybe jumping to recent and stable Gradle/Kotlin releases would be
    easier, but does that even exist? Is there a couple a Gradle and Kotlin releases that can be used to build each other (and themself).

    I haven't checked Kotlin yet, but recent releases of Gradle are built
    using the previous "release" that can well be a -rc. But they can
    probably now be built with reasonbly older releases (and by that I mean
    the latest minor of the previous major release) without too much
    rewriting, actually there are a lot of deprecation warnings emitted by
    Gradle's own build.

    Thanks for the link, I'm not done reading it yet but it adds some
    interesting context.

    --
    Julien Plissonneau Duquène

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Toni Mueller@21:1/5 to [email protected] on Fri Nov 29 13:00:01 2024
    Hi Julien,

    On Fri, Nov 29, 2024 at 12:40:36PM +0100, [email protected] wrote:
    By the way, any opinion about making that new gradle a "gradle8" package
    that provides "gradle"?

    this would imho be good once things around gradle8 stabilize and people
    had time to migrate. I'd rather not have people suddenly inadvertantly upgrading to gradle8 without being ready for it.

    My feeling is that maintaining up to 3 major versions of Gradle is
    probably going to be necessary, given the breaking changes with every
    major release (and sometimes in between) and what's already announced
    for future releases.

    Making 'gradle' a virtual package might be an idea, but I don't think
    we're in a spot where we can think about that, yet.


    Cheers,
    Toni

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From [email protected]@21:1/5 to All on Fri Nov 29 13:10:02 2024
    Le 2024-11-29 12:49, Emmanuel Bourg a écrit :

    I'm not a big fan of potentially long lived experimental packages as it
    makes updates in sid more complicated. For example let's say the
    package foo has the version 1.0 in sid/testing and the version 3.0 in experimental, the upstream and pristine-tar branch on salsa are updated
    to the 3.0 release. If I want to update the sid package to 2.0, I can't import the release without rebasing/reimporting the experimental 3.0
    release on these branches.

    The remedy to this could be to leave the "master" branches alone and
    work on "debian/experimental" branches until we feel confident
    publishing the updates in sid, WDYT?

    You can still import the newer releases in upstream and pristine-tar,
    and just delay the merge on master. It would only causes minor issues
    (as in making it necessary to rewrite some history of those two
    branches) if you wanted to import a new release of e.g. a previous major
    branch still maintained upstream, but that's rather unlikely to happen
    in practice.


    --
    Julien Plissonneau Duquène

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Emmanuel Bourg@21:1/5 to All on Fri Nov 29 13:00:01 2024
    Le 29/11/2024 à 12:40, [email protected] a écrit :

    Or maybe we can keep all of them in experimental for a while, and
    duplicate only those that prove (or are suspected eventually, after discussing that) to be problematic? I would rather keep things as straightforward as possible with the dependencies, gradle has a lot of dependencies but several of them only have very few reverse-dependencies other than gradle and sometimes kotlin.

    I'm not a big fan of potentially long lived experimental packages as it
    makes updates in sid more complicated. For example let's say the package
    foo has the version 1.0 in sid/testing and the version 3.0 in
    experimental, the upstream and pristine-tar branch on salsa are updated
    to the 3.0 release. If I want to update the sid package to 2.0, I can't
    import the release without rebasing/reimporting the experimental 3.0
    release on these branches.


    By the way, any opinion about making that new gradle a "gradle8" package
    that provides "gradle"? My feeling is that maintaining up to 3 major
    versions of Gradle is probably going to be necessary, given the breaking changes with every major release (and sometimes in between) and what's already announced for future releases.

    I have no objection to upload even 10 versions of Gradle if that's part
    of a plan to get to the latest release and eventually drop the temporary packages. We can keep the extra releases in sid only to avoid raising
    concerns from the release and security teams.

    Emmanuel Bourg

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From [email protected]@21:1/5 to All on Fri Nov 29 12:50:01 2024
    Hi Emmanuel,

    Le 2024-11-29 11:42, Emmanuel Bourg a écrit :

    Markus raises a good point, I would add that if there is a risk at some
    point of breaking the existing packages after upgrading a dependency,
    then introducing a new package for the updated dependency is the way to
    go. We can deduplicate the dependencies later when the transition to
    the newer Gradle is complete.

    Or maybe we can keep all of them in experimental for a while, and
    duplicate only those that prove (or are suspected eventually, after
    discussing that) to be problematic? I would rather keep things as straightforward as possible with the dependencies, gradle has a lot of dependencies but several of them only have very few reverse-dependencies
    other than gradle and sometimes kotlin.

    By the way, any opinion about making that new gradle a "gradle8" package
    that provides "gradle"? My feeling is that maintaining up to 3 major
    versions of Gradle is probably going to be necessary, given the breaking changes with every major release (and sometimes in between) and what's
    already announced for future releases.

    Cheers,

    --
    Julien Plissonneau Duquène

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Markus Koschany@21:1/5 to All on Sat Nov 30 09:50:01 2024
    Hi,

    Am Mittwoch, dem 27.11.2024 um 09:16 +0100 schrieb [email protected]:
    [...]
    I would not follow that path today for Gradle unless working on a theoretical bootstrap. That would still be a difficult work, maybe even
    more difficult than the current releases, and the result would still be
    a severely outdated Gradle, just a little bit less outdated, and with
    still a lot of work ahead to bring it to current releases.

    But I wouldn't rule out a similar path for Kotlin yet as we may well
    lack alternatives for that one...

    I remember that upstream confirmed they only use nightly builds to build gradle and don't promise that any later version may be able to build an older version. The advantage of my 4.6 package was that I managed to update all our patches and could use existing Debian packages at that time. I imagine one year later it is still less work to update those patches again, if someone wants to go the 4.6 route.

    I had the idea to use the bundled 4.6 Kotlin binaries in a next step. If that had worked, at least it would have confirmed we just need to focus on upgrading Debian's Kotlin package while everything else was already there. You're right, 4.6 would still be a very old release. I could imagine that upgrading from 4.6 to 4.8 and 4.10 is faster though, and we could skip a few releases later. Jumping directly to gradle 8 would be perfect of course.

    Cheers,

    Markus

    -----BEGIN PGP SIGNATURE-----

    iQKTBAABCgB9FiEErPPQiO8y7e9qGoNf2a0UuVE7UeQFAmdKz31fFIAAAAAALgAo aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldEFD RjNEMDg4RUYzMkVERUY2QTFBODM1RkQ5QUQxNEI5NTEzQjUxRTQACgkQ2a0UuVE7 UeTcBQ//WO6hgOmviuSGxlVV6HD6aXquTOtmgf1e7vP7YS54xH1XTrg2yUWJ70Ly KhEDaeDx/6/hJ3eKkrvRGC8bMtsW4t6PJ4APtT9Y3AGiKJwlX7+0KAu39plTtMt6 PDfHk60+QRAb3Rcd3IuoZYaSh1r7eyI5N2Ta/RY2MHUO1boXbAO6dteN/Bhkl7yC e39c03G0o+IsXzmTv7ThHQXdZ39rFKXAALMn8SPtyZafolXy53iOtzH/hcOFL7rT 2Zi2dJhKm6aslDw4QwVl0Pbv2d2WlKkk9I/Y+VidhfohtZFiY3quHJALCcx4+jy2 73QSdN5gSUHvy1mSuOc2WaYCnqUQYjO04ytMq1iWmYHlNOJGulgFfqnCIthYvmOj NuK50+W9KVUIMHOHV2bnw8CnR5nZnp+8NK9KJhKYUpXkn6Q5Ff/qtdaYfcl/zLBy BsmQqhzilkBn2qB4PoMALRGNfYuGIoCSGVXv5TxZ/2KzZqoQwCsB9m6P22BmQIXZ 4OM8fDwC94mgZwk7+mijrvrXb+Qvy/grVFt032vNhNj+dvN5kKk74bHCG+Qrghc7 PBUe3/gtp2dA86Os/c3oDx1gVLSCrY5du27Lx/igJh62JrQT5eSklWJB59TZbtNY CuK6iW2hkv/6RnBDYnSMZW7Z2TNn63RCV+pTAoZ44gGNDCy92eY=
    =KVYw
    -----END PGP SIGNATURE-----

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From [email protected]@21:1/5 to All on Sat Nov 30 11:10:01 2024
    Hi,

    Le 2024-11-30 09:40, Markus Koschany a écrit :

    I remember that upstream confirmed they only use nightly builds to
    build gradle

    Actually it's a bit more subtle than that: out of curiosity I extracted
    the last 200 versions used to build Gradle [1], and it appears to be a combination of releases n-1, milestones, rc, nightly, and nightly from
    topic branches.

    And one thing that makes me wonder what's going on is that even though
    I've fixed that version to 8.11.1 on my tree and that's actually what is
    used when I try to build from IDEA (which means these properties are
    used in some ways by IDEA's Gradle integration even with the wrapper
    scripts and JARs removed), every new day the first project sync attempts
    take 12-15 minutes or so and I see log traces about the latest nightly
    build ... and syncing just doesn't work when the offline mode is on ...

    and don't promise that any later version may be able to build an older version.

    We can believe them about that. If it happens to work that's just luck.

    Jumping directly to gradle 8 would be perfect of course.

    I think that's better. Both Gradle and Kotlin went through some awkward
    growth spurt phase a few years ago, and now that they are starting to
    mature they behave a bit better. Releases 5.x and 6.x are better
    forgotten IMO.

    While we are at it I have a question: do you have, or has anyone else reasonably recently managed to build anything requiring libgradle-kotlin-dsl-java (i.e. that has some build.gradle.kts or other
    .kts excepted settings.gradle.kts because these are unsupported in this version)? I tried to use it for libnative-platform-java that has a
    reasonably easy build.gradle.kts (that's an empty file, which is valid)
    but got a Kotlin compiler error "Descriptor wasn't found for declaration SCRIPT" that smells some incompatibility issue between Kotlin
    (1.3.31+ds1-1) and Gradle (4.4.1-20).

    Cheers,


    [1]: https://salsa.debian.org/-/snippets/756

    --
    Julien Plissonneau Duquène

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