unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Marius Bakke <marius@gnu.org>
To: "Tanguy LE CARROUR" <tanguy@bioneland.org>,
	"Ludovic Courtès" <ludo@gnu.org>
Cc: Guix-devel <guix-devel@gnu.org>
Subject: Re: Poetry upgrade and related packages
Date: Mon, 07 Dec 2020 23:59:12 +0100	[thread overview]
Message-ID: <87v9dd43zz.fsf@gnu.org> (raw)
In-Reply-To: <1607331131.vwxmd3587f.astroid@rafflesia.none>

[-- Attachment #1: Type: text/plain, Size: 3324 bytes --]

Tanguy LE CARROUR <tanguy@bioneland.org> skriver:

> Hi,
>
>
> Excerpts from Ludovic Courtès's message of December 5, 2020 4:44 pm:
>> Tanguy LE CARROUR <tanguy@bioneland.org> skribis:
>> 
>>> It's not yet clear to me how to handle (python) package updates:
>>> - when to update;
>>> - when not to update;
>>> - when to introduce "versionned" (`-x.y` suffix) package definitions;
>>> - when to introduce "next" (`/next` suffix) package definitions;
>>> - when to remove the two above suffixes;
>>> - …
>>>
>>> So I'm looking forward to reading the answers to this thread! :-)
>> 
>> When a change introduces too many rebuilds, the convention is to make
>> that change on a branch that will be merged “later” rather than on
>> ‘master’; this is bullet 8 here:
>> 
>>   https://guix.gnu.org/manual/devel/en/html_node/Submitting-Patches.html
>
> Thanks for pointing at, but this "just" tells me on which branch to put
> the changeset, not which of the above options should be used when a
> package needs to be updated.

There is no "one size fits all" rule.  With rare exceptions, Guix
"wants" to have only have a single version of each package (mainly to
ease maintenance).  As you found, that's not always feasible.

If a package depends on a newer version of something "deep in the graph"
such as Pytest, it's always OK to add a "/next" or "-x.y" variant
(though a convention about which to use would probably be a good idea).

If something depends on a *specific* (older) version of Pytest, it's
better to try and make it work with the newer version; but failing that,
adding a "-x.y" is fine too.

Then there are ecosystems such as Go and Rust that have fairly strict
semver rules, and require carrying many different versions of the same
package.

>> Yet, sometimes we want to introduce new versions that people can get in
>> their profile, even if the “default” one remains the older version to
>> avoid world rebuilds.
>
> That's exactly my point! If the default one lags behind, then after some
> time, nobody will use it any more and we will have introduced one or more
> `-x.y` package definitions!
> I would consider it to be a "saner" approach to have the default always
> "point" to the latest version, but then we would have to "fix" package
> depending on older versions by introducing `-x.y` package definitions
> for them.
>
> Or am I missing something?!

You got it right.  It might be saner to make the unversioned variable
refer to the newest version, but it would often require "pinning"
hundreds of packages to the old version to avoid rebuilds.  Thus, it's
typically more practical to use the "/next" variant until the next
rebuild cycle.

Again there is no hard rule here, I did such a change for 'libcap' in
9e1f5a263e4f6df4d075901c9b58a56f80c8b452 because only two packages
needed to pin the old version.

>> One example is GDB: gdb@8 has 1,671 dependents, but we added gdb@10 on
>> the side such that “guix install gdb” gives you version 10.
>
> The difference here is that it's a package added to a profile, not a
> dependency, so `gdb` means the latest available version of GDB, right?
>
> As you can see, everything is not yet clear to me! Sorry! ^_^'

Hope this clears things up a little more.  :-)

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 507 bytes --]

  reply	other threads:[~2020-12-07 22:59 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-12-02 11:49 Poetry upgrade and related packages Sébastien Lerique
2020-12-03 13:59 ` Tanguy LE CARROUR
2020-12-05 15:44   ` Ludovic Courtès
2020-12-07  9:07     ` Tanguy LE CARROUR
2020-12-07 22:59       ` Marius Bakke [this message]
2020-12-08 11:00         ` Tanguy LE CARROUR
2020-12-08 23:25           ` Marius Bakke
2020-12-10  7:28             ` Tanguy LE CARROUR

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://guix.gnu.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87v9dd43zz.fsf@gnu.org \
    --to=marius@gnu.org \
    --cc=guix-devel@gnu.org \
    --cc=ludo@gnu.org \
    --cc=tanguy@bioneland.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).