• Re: Bug#1076153: ITP: dh-rust -- debhelper buildsystem for Rust code

    From =?ISO-8859-1?Q?Fabian_Gr=FCnbichler@21:1/5 to Nilesh Patra on Thu Jul 11 20:30:01 2024
    On July 11, 2024 7:57:56 PM GMT+02:00, Nilesh Patra <nilesh@debian.org> wrote: >On Thu, Jul 11, 2024 at 06:06:21PM +0200, Jonas Smedegaard wrote:
    Package: wnpp
    Severity: wishlist
    Owner: Jonas Smedegaard <dr@jones.dk>
    X-Debbugs-Cc: debian-devel@lists.debian.org, build-common team <team+build-common@tracker.debian.org>

    -----BEGIN PGP SIGNED MESSAGE-----
    Hash: SHA512

    * Package name : dh-rust

    I would be happy if this makes it to the archive, though. Would be easier to >have a dh for rust which would be specifically useful to build packages that are
    not just crates, but instead use multiple language including but not limited to
    rust.

    As an addendum, also gives freedom to maintain packages outside of the giant git
    repo of crates, without having to embed this code in every such outside-of-team
    maintained package.

    Both is already possible using the existing cargo wrapper, which is separate from both dh-cargo and debcargo and its monorepo for that reason. gaps in what that wrapper covers can (and should, see my full reply about an example) be closed. That is not
    easier if there are two such wrappers. All of that also applies to dh-cargo (-built-using). It is called by Debcargd, not the other way round.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Jonas Smedegaard@21:1/5 to All on Thu Jul 11 22:00:01 2024
    Quoting Philipp Kern (2024-07-11 21:13:42)
    On 11.07.24 18:06, Jonas Smedegaard wrote:
    * Package name : dh-rust
    Version : 0.0.1
    Upstream Contact: build-common team <team+build-common@tracker.debian.org>
    * URL : https://salsa.debian.org/build-common-team/dh-rust

    This ("build-common") reminded me of cdbs. Can we not have another
    schism and actually work together?

    Sorry, what?

    How is "build-common" or CDBS incompatible with "work together"?

    Licensecheck use build-common for upstream development, does that make licensecheck incompatible with "work together" as well, or where is that
    fine line that I seemingly have crossed by my choice of contact address?


    cdbs also got orphaned but its legacy not cleaned up. I still count
    1.6k reverse build-depends in unstable.

    Yes, CDBS introduced the idea of common packaging "sequences", but the
    idea was implemented inelegantly using purely the same language as
    debian/rules (yes, make is a programming language). Then debhelper
    (which at the time was a collection of independent helper tools) adopted
    the idea and expanded to include the dh sequencer, implemented elegantly
    in another language. Elegantly not so much because of the choice of
    language, but more because the user interface did not require messing
    with the language at all, and for a community where lots of developers
    care more about other languages than make and perl (despite having to
    touch both of them occationally), there was much rejoice, and history
    was rewritten to CDBS being incompatible with "work together" even
    though it really was the inspiration for the marvellous dh sequencer.

    As for the 1.6k package still using CDBS, I believe I am to blame for
    only a dozen of those. For most of them please go yell at the Haskell
    team rather than me.


    I'd - at the very least - would like to see a statement why a fork is necessary. Innovation can happen in forks. But they don't necessarily
    need to be in the archive to make a point.

    dh-cargo is designed to repackage prepackaged code projects already
    distributed through crates.io. If you do an NMU where you include the preferred form for distribution, you are kindly asked to stop doing
    NMUs because that messes with how the Rust team deliberately avoids
    tracking the actual source for the code projects distributed.

    I listed in the ITP a list of features lacking in dh-cargo, which I need
    for packaging Rust-based code projects in Debian from preferred form for distribution source. I do not need all of the features for all of them,
    but some of them sometimes.

    Kind regards,

    - Jonas

    --
    * Jonas Smedegaard - idealist & Internet-arkitekt
    * Tlf.: +45 40843136 Website: http://dr.jones.dk/
    * Sponsorship: https://ko-fi.com/drjones

    [x] quote me freely [ ] ask before reusing [ ] keep private --==============B89049864971791709=MIME-Version: 1.0
    Content-Transfer-Encoding: 7bit
    Content-Description: signature
    Content-Type: application/pgp-signature; name="signature.asc"; charset="us-ascii"

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

    iQIzBAABCgAdFiEEn+Ppw2aRpp/1PMaELHwxRsGgASEFAmaQOLAACgkQLHwxRsGg ASE4XxAAi8ep6wAem8Py1/UWSGksIOX149+diRL6ornvHjlbBZSjD4whTA4qcAa/ Npbidufik4upgL70M5KBxv0uvEHqPpLIlpheppOEqyFpTpyAFOEWg7lgvH3cXsEk dtsFobSjlVIDwvgYXt/LzLqpkHvjxNIQi+PIQWbt9Bepkr7R9JZEGh/kK8ZPEnuj NDE3YSdo5vu6q5DENc7R6wZAck3UwCvZXjXAjjEHkELFe9e42nnhOA4XZwig8jGF hkD2HWKi31PMEBwfFpKUoPDW0RgJw9GpO/Lpgn+05b4O3VHBZb/4I4tq82XsOd1D 0a8kVqoOwws6e1GOq0HCF9hwi5MPqa+FhK3FLyBUAoKl9zj42midrjJQXFFhHi7h aTGssRr4ZbPJjawbJ/Ux6G55t3IyOJETC7zoGKwvP5Jx1m5TiOnttymRxFZbd1V5 VsB6vlpbEQwnRjg/e4maLnCXgYklojK8eON8GgeC
  • From Philipp Kern@21:1/5 to Jonas Smedegaard on Thu Jul 11 21:20:01 2024
    Hi,

    On 11.07.24 18:06, Jonas Smedegaard wrote:
    * Package name : dh-rust
    Version : 0.0.1
    Upstream Contact: build-common team <team+build-common@tracker.debian.org> * URL : https://salsa.debian.org/build-common-team/dh-rust

    This ("build-common") reminded me of cdbs. Can we not have another
    schism and actually work together?

    cdbs also got orphaned but its legacy not cleaned up. I still count 1.6k reverse build-depends in unstable.

    I'd - at the very least - would like to see a statement why a fork is necessary. Innovation can happen in forks. But they don't necessarily
    need to be in the archive to make a point.

    Kind regards
    Philipp Kern

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Birger Schacht@21:1/5 to Jonas Smedegaard on Fri Jul 12 08:40:02 2024
    Hi,

    On 7/11/24 9:55 PM, Jonas Smedegaard wrote:
    Quoting Philipp Kern (2024-07-11 21:13:42)

    I'd - at the very least - would like to see a statement why a fork is
    necessary. Innovation can happen in forks. But they don't necessarily
    need to be in the archive to make a point.

    dh-cargo is designed to repackage prepackaged code projects already distributed through crates.io. If you do an NMU where you include the preferred form for distribution, you are kindly asked to stop doing
    NMUs because that messes with how the Rust team deliberately avoids
    tracking the actual source for the code projects distributed.

    I listed in the ITP a list of features lacking in dh-cargo, which I need
    for packaging Rust-based code projects in Debian from preferred form for distribution source. I do not need all of the features for all of them,
    but some of them sometimes.

    This still does not answer the question why a fork is the better option
    instead of working with the people behind dh-cargo to integrate those
    features into the codebase?

    cheers,
    Birger

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Jonas Smedegaard@21:1/5 to All on Fri Jul 12 10:40:02 2024
    Hi Birger,

    Quoting Birger Schacht (2024-07-12 08:17:12)
    On 7/11/24 9:55 PM, Jonas Smedegaard wrote:
    Quoting Philipp Kern (2024-07-11 21:13:42)

    I'd - at the very least - would like to see a statement why a fork is
    necessary. Innovation can happen in forks. But they don't necessarily
    need to be in the archive to make a point.

    dh-cargo is designed to repackage prepackaged code projects already distributed through crates.io. If you do an NMU where you include the preferred form for distribution, you are kindly asked to stop doing
    NMUs because that messes with how the Rust team deliberately avoids tracking the actual source for the code projects distributed.

    I listed in the ITP a list of features lacking in dh-cargo, which I need for packaging Rust-based code projects in Debian from preferred form for distribution source. I do not need all of the features for all of them, but some of them sometimes.

    This still does not answer the question why a fork is the better option instead of working with the people behind dh-cargo to integrate those features into the codebase?

    I have tried but failed to work closely with the Rust team. It was a
    painful experience, and I would prefer not to elaborate in public.

    I nowadays work only loosely with the Rust team: To the extend that they
    use the Debian bugtracker, we coordinate our packaging efforts there,
    and my patches for their tooling have been publicly available for the
    past two years, where I have maintained it structured so as to be
    easy for them to cherry-pick back into dh-cargo/cargo as much as they
    might find relevant, at the cost of my use of it being cumbersome, and
    the code not really inviting for more innovative changes.

    The Rust team has chosen to not cherry-pick any of my patches into their tooling. I have not strongly pushed for that, and expect strong
    pushback if I tried: The added functionality relates to ideologically conflicting views on what is the source of a Rust project and what is
    really the purpose of Debian. As an example, Rust team tooling includes debian/patches in the binary package as part of a design principle to
    mimick crates.io code distribution as closely as possible. Another
    example is that Rust team tooling can only treat a single crate located
    in the root as source, not a crate in a subdirectory or multiple crates
    in what is called a "workspace" in Cargo lingo, again because crates.io
    always redistributes code as single crates, regardless of how the code
    was developed, i.e. the preferred form for upstream development.

    After two years of not trying to convince the Rust team that their
    ideology is flawed, but practicing another approach to Rust packaging, depmonstrating that e.g. multi-crate workspaces are possible to treat
    as Debian source for multiple Debian binary packages, and offering
    publicly my patches easily adoptable if they wanted to, I have shifted
    to make my patches into a proper fork of their tooling, making it much
    easier for the little team now working on it to maintain and develop
    further, including tracking bugs in it which was close to impossible
    for the past two years of it being copied into each and every Debian
    package needing it. The cost of this shift is that the codebase is no
    longer as easy to merge back into the Rust team tooling - not because
    we want to steal from them or punish them, but just as a side-effect of
    this shift.

    Hope that clarifies.

    - Jonas

    --
    * Jonas Smedegaard - idealist & Internet-arkitekt
    * Tlf.: +45 40843136 Website: http://dr.jones.dk/
    * Sponsorship: https://ko-fi.com/drjones

    [x] quote me freely [ ] ask before reusing [ ] keep private
    --============== 40523035131512411=MIME-Version: 1.0
    Content-Transfer-Encoding: 7bit
    Content-Description: signature
    Content-Type: application/pgp-signature; name="signature.asc"; charset="us-ascii"

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

    iQIzBAABCgAdFiEEn+Ppw2aRpp/1PMaELHwxRsGgASEFAmaQ6sYACgkQLHwxRsGg ASHLpQ//TY48iNkQyPDYTqkw+/YPVgVZycUDWALY7ImqOVqhaLbN/1Zy03kK/G0R URZs5BveSxaV0UMPp75S3k5YyVC2xmQ5Z09TDWNjzwNiMX6rBwx2SCHtbUS7eTXh sll6lz8Pzi+62kBKi4Cr2DAY7ZpYb/LGdx5PL0+iQa4l6LGV7KxC72T8j3yznXs3 oqv50AwXYyqb4afEGHZvGstHUhEB+WHi3ekwX6ts9YY3WLrcbf0KcBWt4ZXCHRj5 1BrDI6SDFD4pYyZHVnKrtxprvV1A2ufiRFxewc9QZfnhI4ZVHwOJNMKuCxQ3BnKl NW6P90IVEYJZn3xXN9H/I42BEhOoa83M5BS7NgE21kHjBeDqObx3KgfABbJCfr64 Acyl/VXhrz1Y0/w4uhTwZVP9wneFSUez62ddUkdrWsH75YL7Kr0pds10dRqUCDBG 3CC4h6HBJLKtSyxRsiTEMPhkQxNrq2MO8g9trJB8
  • From Sylvestre Ledru@21:1/5 to All on Fri Jul 12 11:20:01 2024
    Le 12/07/2024 à 10:35, Jonas Smedegaard a écrit :
    Hi Birger,

    Quoting Birger Schacht (2024-07-12 08:17:12)
    On 7/11/24 9:55 PM, Jonas Smedegaard wrote:
    Quoting Philipp Kern (2024-07-11 21:13:42)
    I'd - at the very least - would like to see a statement why a fork is
    necessary. Innovation can happen in forks. But they don't necessarily
    need to be in the archive to make a point.
    dh-cargo is designed to repackage prepackaged code projects already
    distributed through crates.io. If you do an NMU where you include the
    preferred form for distribution, you are kindly asked to stop doing
    NMUs because that messes with how the Rust team deliberately avoids
    tracking the actual source for the code projects distributed.

    I listed in the ITP a list of features lacking in dh-cargo, which I need >>> for packaging Rust-based code projects in Debian from preferred form for >>> distribution source. I do not need all of the features for all of them, >>> but some of them sometimes.
    This still does not answer the question why a fork is the better option
    instead of working with the people behind dh-cargo to integrate those
    features into the codebase?
    I have tried but failed to work closely with the Rust team. It was a
    painful experience, and I would prefer not to elaborate in public.

    I nowadays work only loosely with the Rust team: To the extend that they
    use the Debian bugtracker, we coordinate our packaging efforts there,
    and my patches for their tooling have been publicly available for the
    past two years, where I have maintained it structured so as to be
    easy for them to cherry-pick back into dh-cargo/cargo as much as they
    might find relevant, at the cost of my use of it being cumbersome, and
    the code not really inviting for more innovative changes.
    I didn't know that you were making patches easy to be cherry-picked.
    I would have tried otherwise
    The Rust team has chosen to not cherry-pick any of my patches into their tooling. I have not strongly pushed for that, and expect strong
    pushback if I tried:

    I would be happy to take all your patches that makes sense.

    We should try to avoid code duplication and adding more complexity to Debian.

    Cheers,
    Sylvestre

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Jonas Smedegaard@21:1/5 to All on Fri Jul 12 12:10:01 2024
    Hi Sylvestre,

    Quoting Sylvestre Ledru (2024-07-12 11:13:23)
    Le 12/07/2024 à 10:35, Jonas Smedegaard a écrit :
    Quoting Birger Schacht (2024-07-12 08:17:12)
    On 7/11/24 9:55 PM, Jonas Smedegaard wrote:
    Quoting Philipp Kern (2024-07-11 21:13:42)
    I'd - at the very least - would like to see a statement why a fork
    is necessary. Innovation can happen in forks. But they don't
    necessarily need to be in the archive to make a point.
    dh-cargo is designed to repackage prepackaged code projects already
    distributed through crates.io. If you do an NMU where you include
    the preferred form for distribution, you are kindly asked to stop
    doing NMUs because that messes with how the Rust team deliberately
    avoids tracking the actual source for the code projects
    distributed.

    I listed in the ITP a list of features lacking in dh-cargo, which I
    need for packaging Rust-based code projects in Debian from
    preferred form for distribution source. I do not need all of the
    features for all of them, but some of them sometimes.
    This still does not answer the question why a fork is the better
    option instead of working with the people behind dh-cargo to
    integrate those features into the codebase?
    I have tried but failed to work closely with the Rust team. It was a
    painful experience, and I would prefer not to elaborate in public.

    I nowadays work only loosely with the Rust team: To the extend that
    they use the Debian bugtracker, we coordinate our packaging efforts
    there, and my patches for their tooling have been publicly available
    for the past two years, where I have maintained it structured so as
    to be easy for them to cherry-pick back into dh-cargo/cargo as much
    as they might find relevant, at the cost of my use of it being
    cumbersome, and the code not really inviting for more innovative
    changes.
    I didn't know that you were making patches easy to be cherry-picked.
    I would have tried otherwise
    The Rust team has chosen to not cherry-pick any of my patches into
    their tooling. I have not strongly pushed for that, and expect
    strong pushback if I tried:

    I would be happy to take all your patches that makes sense.

    Sounds promising.

    A starting point is the last paragraph of this email (which was directly targeted your email address, btw):

    lists.debian.org/171260770946.146326.6707604887885287490@auryn.jones.dk

    - Jonas

    --
    * Jonas Smedegaard - idealist & Internet-arkitekt
    * Tlf.: +45 40843136 Website: http://dr.jones.dk/
    * Sponsorship: https://ko-fi.com/drjones

    [x] quote me freely [ ] ask before reusing [ ] keep private --==============295732525020821910=MIME-Version: 1.0
    Content-Transfer-Encoding: 7bit
    Content-Description: signature
    Content-Type: application/pgp-signature; name="signature.asc"; charset="us-ascii"

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

    iQIzBAABCgAdFiEEn+Ppw2aRpp/1PMaELHwxRsGgASEFAmaRAIsACgkQLHwxRsGg ASH2ZhAAm3XgdTNC5c6s+RZbcvNQeDL7OzjBH9hrGuqzGhe9qbv4jCbPl1BF3mFR MeHxAtMuxEeR0Nk9BtsP2yknSyFvQQuzcNjCLFnWSEotGldrS5PRrSit5XeCIpGo kAhmuhV1myG5eoEpF4ayNArVmLjwLnBPwuOJmJAdZ+Gw12143AWmbANWc8TStJy9 i52YoDCUHCtfsIXL3pfiJ0zQMExkdPcWFXBz37b+V9B0ZeEPh0bp4JHh+k6sdSI4 CcnrZNqf+UV00Mud6ZMSy4ygKM5/s57o9KE9t3hadhWnwUDW8m2xA5XheLzR8m9r mWj6FMjTz2SvdIf4AsL3JZAatv0/ANNrHQymzKIS5uNb6uU4kNu43XJAU2ldpDAs dMq8GxIR8y2yGkLKdUv/4nBOB95GPs2AiXA0yN8Qj+K4yGbuJ1Q9xpt4pBOoYJI8 9HlWIi7+7IVo34vUT9GNJvD3bwyGHAdEOULFWXiI
  • From Fabian =?utf-8?Q?Gr=C3=BCnbichler?=@21:1/5 to All on Tue Jul 16 20:40:01 2024
    On Thu, Jul 11, 2024 at 07:19:46PM GMT, Fabian Grünbichler wrote:
    On Thu, Jul 11, 2024 at 06:06:21PM GMT, Jonas Smedegaard wrote:
    Package: wnpp
    Severity: wishlist
    Owner: Jonas Smedegaard <dr@jones.dk>
    X-Debbugs-Cc: debian-devel@lists.debian.org, build-common team <team+build-common@tracker.debian.org>

    Hi!

    (all of what follows is my personal opinion and not coordinated with
    other members of the Rust packaging team).

    this still applies.

    I know the team and you have had differences in the past about how to approach packing crates and/or software written in Rust, and I can and
    do respect the technical aspects of that (at least in parts).

    Some sort of attempt to reconcile your pre-existing vendored forks of
    the rust-team tooling with the original source, or at least a heads-up
    about this plan of yours would have been appreciated. I don't see any technical obstacles for having a single set of low-level Rust-helper
    tools for packaging. I see a lot of downsides to having two such sets
    that are 90% compatible, but subtly different and drifting apart over
    time.

    Please (seriously!) reconsider this, and try to work together with the existing Rust team to develop a/the common set of (low-level) tooling
    and helpers. A lot of the team members are also packaging
    Rust-related/using software outside of debcargo-conf (e.g., as part of
    the Gnome team), and desire similar features that you do for your workspace-based, packaged from git crates.

    Given the lack of response to this (but response to other mails in this
    thread, and multiple uploads of dh-rust), I assume you have no interest
    of collaboration (besides coordinating which "team" packages which parts
    of the Rust ecosystem, and transitions/upgrades concerning packages
    maintained by either "team").

    A sad state of affairs wasting a lot of scarce time and resources, IMHO,
    but I'll let it rest now (but please know that the offer to find common
    ground and unify the helper implementations where there is considerable overlap, which is probably all of it except debcargo and the scripts in
    our monorepo, still stands).

    Please refrain from filing bugs with patches in any of the original
    versions of the tools you forked, unless you are willing to license
    those patches under a compatible license.

    For the time being, we have to consider any changes you make on your end
    to be taboo license-wise for inclusion in the original tooling (since we
    can't just take GPL changes into an Apache/MIT-licensed codebase without effectively relicensing the whole thing as GPL, which would require a
    team discussion and decision).

    Thanks for reading,
    Fabian

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

    iQIzBAABCAAdFiEEbdkGe7ToK0Amc9ppdh5TKjcTRTAFAmaWu90ACgkQdh5TKjcT RTBYSw//Wxd8womBnwnI2l/BtTRGXa1jXi/nUn3+B4favBxRGr1q/iRMr6o7F6SO 4pG872coh73hNUjFmYsvviJkg2QRVXxdSrA2KhzlqcVzl1+gqvg0gZU9ZF2j94PL soy0+IUWc3C8hjkd9KtSV4WkFYPQ4I2RE0Aa78ed77c4+GrTmukkPcHq63BYVgcx wG5Hp8LkdoFbwnXMNLt/ZA31n8EHmMjsZ8QQHcCfnodzFmXHBlur1yAfwbHqcvuc WADt/BbVFjSKVJszUfLDxuKuRTQUkmsg3lj/NZu/DMxrxQEyuLzZiAWMzzSqCLm2 TFNSRQtQEE61TuOQQyt5bwrb0rGcAm7uK9UMmJ8cbT0Q8qcO8/0GpbTH0CVD1E7o tKe1JZ7IhsjyDB4PIjZJv1ecufx/l/aRlGgEauCVRuctsz3aay8N5vipIF3SlT9L Ib11quZkPu+yEEKGDN8EQ6ggwQl0AQqTNfPFDAZ9KlLnD0QmFNPMNoDDCJdc+xmQ zC1H8AmK5qP4lgBD2slMeD8ScuYOd8oNSoOI5JOlbOoVsddThNHCIp6ASFq+pdja P/4PETNQUY5kIxa5MaiMCD3OCivvMiCu7U8OtyXXZ5BN8RY8cNfvT67m9qMkhqMN i5q0VDFGxKH6bjB22AczoNTHzwYtQ731YChEzS+r5spUCCagAxQ=
    =eEec
    -----END PGP SIGNATURE-----

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