public inbox for gentoo-dev@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Michał Górny" <mgorny@gentoo.org>
To: gentoo-dev@lists.gentoo.org
Cc: python@gentoo.org
Subject: [gentoo-dev] [RFC] Splitting dev-lang/python into per-slot packages, starting with 3.14
Date: Sat, 12 Oct 2024 10:12:56 +0200	[thread overview]
Message-ID: <d3fb6b685e511bce4183b674dd171c9e710765d8.camel@gentoo.org> (raw)

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

Hello,

Historically, all versions of CPython were slotted in a single package,
i.e.:

  dev-lang/python:3.N

This approach has been causing a major annoyance for users -- due to
Portage "greedy" upgrade behavior, any time a new Python version was
keyworded, Portage insisted on installing it, even though user's
selected targets did not request the specific version.  The potentially
worst consequence of that would be random user scripts stopping to work,
as they suddenly start using new Python, while all their dependencies
are still installed per PYTHON_TARGETS.

Upstream has recently added freethreading support to CPython.  Since
this support is not ABI compatible with the regular build, we need to
introduce a separate target for it, and to package it separately.
In the planned patchset, I've already put it as a separate package (dev-
lang/python-freethreading), because otherwise Portage would insist
on upgrading to it!

However, I think the cleanest way forward would be to stop slotting
CPython like this, and instead have a separate package for each version,
just like the vast majority of distributions do, i.e.:

  dev-lang/python3_N

This naturally means that only the specific version requested (e.g. via
targets) would be installed, and no cross-slot autoupgrades would
happen.  Ideally, I'd like to start doing that with Python 3.14 whose
first alpha is expected next week.  Depending on how they handle
freethreading, we'd end up having the first or both of:

  dev-lang/python3_14
  dev-lang/python3_14t

(Alternatives: python-3_14, python-freethreading-3_14? Though I think
following PYTHON_TARGETS is cleaner here.)

As a side notice, the existing versions would probably remain as-is
until removal, since there's really no gain in splitting them, given
we'd have to retain compatibility with existing depstrings.

Comments?

-- 
Best regards,
Michał Górny


[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 512 bytes --]

             reply	other threads:[~2024-10-12  8:13 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-10-12  8:12 Michał Górny [this message]
2024-10-12  8:50 ` [gentoo-dev] Re: [RFC] Splitting dev-lang/python into per-slot packages, starting with 3.14 Luca Barbato
2024-10-12  9:13   ` Michał Górny
2024-10-12 12:30     ` Anna (cybertailor) Vyalkova
2024-10-12 13:07       ` Michał Górny
2024-10-12 13:00     ` Luca Barbato
2024-10-12 13:03       ` Michał Górny
2024-10-12 17:36         ` Luca Barbato
2024-10-12 13:12     ` Sam James
2024-10-12  9:49 ` [gentoo-dev] " Eray Aslan
2024-10-12  9:51   ` Michał Górny
2024-10-12  9:59 ` Ulrich Mueller
2024-10-12 10:03   ` Ulrich Mueller
2024-10-12 10:06     ` Michał Górny
2024-10-12 10:05   ` Michał Górny
2024-10-12 10:13     ` Ulrich Mueller
2024-10-12 10:22       ` Michał Górny
2024-10-12 11:23         ` Mitchell Dorrell
2024-10-12 11:49           ` Michał Górny
2024-10-12 15:01     ` Mitchell Dorrell
2024-10-12 15:10       ` Sam James
2024-10-12 17:21     ` Anna (navi) Figueiredo Gomes
2024-10-12 13:52 ` orbea
2024-10-12 14:32   ` Andreas Sturmlechner
2024-10-12 17:37 ` Nowa Ammerlaan
2024-10-12 18:03 ` Michał Górny
2024-10-12 22:57   ` Mitchell Dorrell
2024-10-14  0:43 ` Sam James
2024-10-14  3:49   ` Michał Górny
2024-10-14  4:09     ` Sam James

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

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

  git send-email \
    --in-reply-to=d3fb6b685e511bce4183b674dd171c9e710765d8.camel@gentoo.org \
    --to=mgorny@gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    --cc=python@gentoo.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.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox