• Questions and remarks regarding elpa-magit bug 1086758

    From Aymeric Agon-Rambosson@21:1/5 to All on Tue Nov 5 18:30:01 2024
    Hello team,

    As you may have noticed, Mr. Kimura has opened bug report 1086758,
    in which he claims that elpa-magit should still depend on
    elpa-git-commit (which it does not anymore, since 4.1.2-1).

    He is right, of course. The reason dh-elpa stopped adding this
    dependency to elpa-git-commit is due to upstream commit c170fcf3 (https://github.com/magit/magit/commit/c170fcf39918e567948fec43b70a592765ed5fe7).

    Since this commit, git-commit is distributed by upstream as part
    of magit, which means several things :
    - The Package-Version and Package-Requires headers of git-commit
    have disappeared. This is what prompted me to push commit
    a011f2f1, which in retrospect, does not solve anything (you will
    notice that many of the dependencies of elpa-git-commit have
    disappeared in sid, which is wrong).
    - One line of the Package-Requires header of magit has disappeared
    as well (the one referencing git-commit), which is why the bug
    1086758 appeared.

    Upstream now intends to always distribute magit and git-commit
    together. As Mr. Kimura noticed, magit depends on git-commit. But
    since c170fcf3, the reverse is also true. So we must make sure
    that magit and git-commit are installed, removed and upgraded at
    the same time.

    I see two solutions for this, which I wanted to get you opinion on
    before getting started :
    - Remove the binary package elpa-git-commit, and distribute the
    lisp/git-commit.el file as part of elpa-magit.
    - Keep the binary package elpa-git-commit, and add a circular
    dependency between it and elpa-magit (are circular dependencies
    allowed at all ?).

    The second solution is easier, and can be reverted if upstream
    decides to revert c170fcf3 somewhere down the road.

    I've cced Barak and Matteo, who have made the latest uploads, but
    the questions (particularly what is proper regarding circular
    dependencies) are directed to everyone.

    Best,

    Aymeric

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Barak A. Pearlmutter@21:1/5 to All on Tue Nov 5 21:50:01 2024
    To my mind, the natural solution is to put git-commit.el in elpa-magit
    (as upstream wants) but keep the elpa-git-commit package around,
    empty, and with a Depends: elpa-magit (>= xxx) or even Depends:
    elpa-magit (== xxx) to ensure that git-commit.el is pulled in. And
    elpa-magit has a Breaks: elpa-git-commit (<< xxx). And maybe even a
    Provides: elpa-git-commit. I think this is the "approved" way to
    handle this sort of transition. And it maintains various invariants,
    like other packages can have dependencies on either, and it's possible
    to reverse the transition painlessly in the future if necessary.

    I think.

    --Barak.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Jeremy Sowden@21:1/5 to Barak A. Pearlmutter on Tue Nov 5 22:30:01 2024
    On 2024-11-05, at 20:40:08 +0000, Barak A. Pearlmutter wrote:
    To my mind, the natural solution is to put git-commit.el in elpa-magit
    (as upstream wants) but keep the elpa-git-commit package around,
    empty, and with a Depends: elpa-magit (>= xxx) or even Depends:
    elpa-magit (== xxx) to ensure that git-commit.el is pulled in. And
    elpa-magit has a Breaks: elpa-git-commit (<< xxx). And maybe even a
    Provides: elpa-git-commit. I think this is the "approved" way to
    handle this sort of transition. And it maintains various invariants,
    like other packages can have dependencies on either, and it's possible
    to reverse the transition painlessly in the future if necessary.

    I think.

    That would be my approach, fwiw.

    J.

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

    iQIzBAABCgAdFiEEbB20U2PvQDe9VtUXKYasCr3xBA0FAmcqjWUACgkQKYasCr3x BA1czg/7B+UcOa9LCgylOojd4ESyXCdF7yk/R1F80dLvIMHSLGzDPmM/FFFzCwLz dYgW6IioY3BdHSEIytGG2duRlsIxUbTx9PE68oP+XDjsW77iXBKkIeDOjRcOs7/Q PZ5fSoQ4cKaH3hTU7Bh6DUnj0T+YTcF+gIhcPsl7d3feTHKoN7aG2JaghEEgHrRJ AaPxFYDe+wLEN28lVl7fpgVxFhTJ5kakrtMQfTdI2suVRNDJDdc5tiNV0HQe7mwV A5eLPTI1jPVIbzmh+0QWetKS5m9gw6OTtXoFpPLP01e9EiyoJx4n7azl8YpZ55vg Qm/m8hXYeDpDWLnRSB5jEXJ02Rgu8DByte936BZZBdxl3CHoQxeZoNxrigA8w7Pc oXd4nBQmnemQku/vX7pl+8JDNNzJ6+SxlAI4JR9kCYQb22lLakQZ8QjMzt3R6msv YVafiuWuGO4zmw7pjpYldkXizxGkAJRE2A3rOlfDnSt8d8vk7J2EEUeaKlUfOjFr 4rDZKNu/6f+HDT8l6meUZktU6QhNHimqn4tulkTdIZV0THIt5Wdj+vq6chV3QdBg GLOZNKtuGAVHgCB8SQ0ELGv7jMLuTfVJb8PQKePw7DWNjqlSQRFzvR2JGJGwNp0e jFBZ9zWhb/UC2sI6iPsfjMl3CZUuIDyji6LkE20atjvNZWFIY7M=
    =O02y
    -----END PGP SIGNATURE-----

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Aymeric Agon-Rambosson@21:1/5 to All on Fri Nov 8 05:50:01 2024
    Hi everyone,

    elpa-git-commit was turned into a transitional package as
    discussed. I will upload the package in the following days unless
    there are objections.

    Best,

    Aymeric

    Le mercredi 6 novembre 2024 à 11:33, Xiyue Deng
    <manphiz@gmail.com> a écrit :

    Hi Barak, Jeremy,

    Jeremy Sowden <azazel@debian.org> writes:

    On 2024-11-05, at 20:40:08 +0000, Barak A. Pearlmutter wrote:
    To my mind, the natural solution is to put git-commit.el in
    elpa-magit
    (as upstream wants) but keep the elpa-git-commit package
    around,
    empty, and with a Depends: elpa-magit (>= xxx) or even
    Depends:
    elpa-magit (== xxx) to ensure that git-commit.el is pulled in.
    And
    elpa-magit has a Breaks: elpa-git-commit (<< xxx). And maybe
    even a
    Provides: elpa-git-commit. I think this is the "approved" way
    to
    handle this sort of transition. And it maintains various
    invariants,
    like other packages can have dependencies on either, and it's
    possible
    to reverse the transition painlessly in the future if
    necessary.

    I think.

    That would be my approach, fwiw.

    J.

    I think what you suggested is mostly aligned with case #6 in [1]
    - it
    uses `Breaks' and `Replaces', while `Provides' is optional and
    useful
    when there are other packages depending on it (currently only
    elpa-magit depends on elpa-git-commit.)

    FYI I have implemented these in [2] and [3] (hopefully
    correctly.)

    [1] https://wiki.debian.org/PackageTransition
    [2] https://salsa.debian.org/emacsen-team/magit/-/commit/2bfb89369fdc09b243b6cdd75ffbc4528d7b2521
    [3] https://salsa.debian.org/emacsen-team/magit/-/commit/b90235ed21ab967f6e72e64d2767abc1cf5d88cf

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