From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id 2C8E7158046 for ; Sat, 12 Oct 2024 15:01:18 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id BAEB8E2A50; Sat, 12 Oct 2024 15:01:13 +0000 (UTC) Received: from mail-pg1-x536.google.com (mail-pg1-x536.google.com [IPv6:2607:f8b0:4864:20::536]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id 8F440E2A40 for ; Sat, 12 Oct 2024 15:01:12 +0000 (UTC) Received: by mail-pg1-x536.google.com with SMTP id 41be03b00d2f7-7ea56070f86so936041a12.0 for ; Sat, 12 Oct 2024 08:01:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=psc.edu; s=google; t=1728745271; x=1729350071; darn=lists.gentoo.org; h=to:subject:message-id:date:from:in-reply-to:references:mime-version :from:to:cc:subject:date:message-id:reply-to; bh=mQBYmQxpOv4KX2kfMZ8pHR7cRGB2namVesyPHCcJiwU=; b=JmFTT0nTWfqR844H3ZNqVPDPks5JNgfsFzUiecE6PJgP86WS44JkdAJ/vbpaH6gQl8 VeiwCqtL4kFsjJ4/rlZ+lJk/eAubSv/yBVtNqhP+y6W1QyH28fBRXEDqlq2LHtxvKyWZ ZkCl5SzAeYSTmwKS4sXdk6FWf/JOUQsiMCTPA= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1728745271; x=1729350071; h=to:subject:message-id:date:from:in-reply-to:references:mime-version :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=mQBYmQxpOv4KX2kfMZ8pHR7cRGB2namVesyPHCcJiwU=; b=Q1biItdPcLjU8Y8zuF3AmLZn7MHSj9diFOtggQ0474XqH4spCuJVMb9PHt66z1+liI +t1zbOuMxl5pbhYc63X/v3EW0YwRsIgynE8sRg/s0U4WLZv/cgWnD7DUi+fOXXrcE/CG 8f3RYjDKRSzjZtRLVoYrWtzYrP82SWuEOXJx2zBVuDScR8dU3YqW+q4ex/MHSQSvZZDH 7sOM7lUI4milt1615aesyzcuddxWajEBHwTjsrbhVxyG7n3PvNSZdpkZ3amF+1t/kkh2 bXxOceegRYtEhmJ4qgxIMtdou7h7J4NfVxFBs6ShC4aMX7G/gfAsOrJhTlIQxGJKvx1B 5iag== X-Gm-Message-State: AOJu0YwVtAEVgiAZoTnxSRdYtKhEAd7HTJUgcBAbqj7+pdENrUm/Qq3S /G3ro1IrZ0/TVUvB+QPXXQ8EXMd6RhlFzoLJy/cUhfyynU8i7Crk4GD4/MkMDVoK/qVWGc69nMp BfU6wQHeX0WRYBFvwEaHNxGHdwT4jid1lcHUP5IiBMCBRW5VZ X-Google-Smtp-Source: AGHT+IHV+u9VriHbionpPj4r8UGrRokmFjx8g04myiHFzIYdIuIE6NHW5sPjKAEzRIBrLqeo3KUn0iKZy6kUVIpXjDs= X-Received: by 2002:a05:6a20:f82:b0:1d8:d194:b11 with SMTP id adf61e73a8af0-1d8d1940b38mr868299637.2.1728745271327; Sat, 12 Oct 2024 08:01:11 -0700 (PDT) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-dev@lists.gentoo.org Reply-to: gentoo-dev@lists.gentoo.org X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply MIME-Version: 1.0 References: In-Reply-To: From: Mitchell Dorrell Date: Sat, 12 Oct 2024 11:01:02 -0400 Message-ID: Subject: Re: [gentoo-dev] [RFC] Splitting dev-lang/python into per-slot packages, starting with 3.14 To: gentoo-dev@lists.gentoo.org Content-Type: multipart/alternative; boundary="000000000000ce198e062448dff0" X-Archives-Salt: d0342863-2604-43ab-b402-388c269863fe X-Archives-Hash: 9363085f5f21b3133f3622ef3f80a0b0 --000000000000ce198e062448dff0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable How will the upgrade path look, from e.g. 3.16 to 3.17? What will the typical Gentoo user experience be? What will the experience be for a Python developer with a local overlay containing custom Python packages? I didn't like this idea at first, but I'm warming up to it. On Sat, Oct 12, 2024, 06:05 Micha=C5=82 G=C3=B3rny wrot= e: > On Sat, 2024-10-12 at 11:59 +0200, Ulrich Mueller wrote: > > > > > > > On Sat, 12 Oct 2024, Micha=C5=82 G=C3=B3rny wrote: > > > > > 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 > > > > That other distributions do it that way is not an argument because most > > other distributions don't have slots. > > > > > This naturally means that only the specific version requested (e.g. v= ia > > > 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 > > > > IMHO this would abuse the package name for information that absolutely > > doesn't belong there. It belongs in PV or SLOT. > > > > To me it seems that you try to work around a problem (greedy upgrade > > behaviour) that should really be solved in the package manager. > > In my opinion, it's the other way around. We have slots, that are a fit > solution for packages that are roughly compatible between every major > release, and we keep abusing them for every single thing we can bend > enough to make it fit. > > Greedy upgrade behavior makes sense when you have packages where :=3D > and :* operators are applicable. It doesn't make sense when every > single dependency is expected to specify an explicit slot. In fact, > when you are never supposed to depend on the package without specifying > a slot, why would you think slots are the right solution? > > In fact, the "freethreading" variation already implies that there could > be more than one "slot" per package version. > > It's as meaningless as having sqlite3 packaged as sqlite:3, or gtk that > is now randomly split between gtk+:2, gtk+:3 and gtk:4. > > -- > Best regards, > Micha=C5=82 G=C3=B3rny > > --000000000000ce198e062448dff0 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
How will the upgrade path look, from e.g. 3.16 to 3.= 17? What will the typical Gentoo user experience be? What will the experien= ce be for a Python developer with a local overlay containing custom Python = packages?

I didn't l= ike this idea at first, but I'm warming up to it.

On Sat, Oct= 12, 2024, 06:05 Micha=C5=82 G=C3=B3rny <mgorny@gentoo.org> wrote:
On Sat, 2024-10-12 at 11:59 +0200, Ulrich Mueller wrote:
> > > > > > On Sat, 12 Oct 2024, Micha=C5=82 G=C3=B3rny w= rote:
>
> > However, I think the cleanest way forward would be to stop slotti= ng
> > CPython like this, and instead have a separate package for each v= ersion,
> > just like the vast majority of distributions do, i.e.:
>
> > =C2=A0=C2=A0dev-lang/python3_N
>
> That other distributions do it that way is not an argument because mos= t
> other distributions don't have slots.
>
> > This naturally means that only the specific version requested (e.= g. via
> > targets) would be installed, and no cross-slot autoupgrades would=
> > happen.=C2=A0 Ideally, I'd like to start doing that with Pyth= on 3.14 whose
> > first alpha is expected next week.=C2=A0 Depending on how they ha= ndle
> > freethreading, we'd end up having the first or both of:
>
> > =C2=A0=C2=A0dev-lang/python3_14
> > =C2=A0=C2=A0dev-lang/python3_14t
>
> IMHO this would abuse the package name for information that absolutely=
> doesn't belong there. It belongs in PV or SLOT.
>
> To me it seems that you try to work around a problem (greedy upgrade > behaviour) that should really be solved in the package manager.

In my opinion, it's the other way around.=C2=A0 We have slots, that are= a fit
solution for packages that are roughly compatible between every major
release, and we keep abusing them for every single thing we can bend
enough to make it fit.

Greedy upgrade behavior makes sense when you have packages where :=3D
and :* operators are applicable.=C2=A0 It doesn't make sense when every=
single dependency is expected to specify an explicit slot.=C2=A0 In fact, when you are never supposed to depend on the package without specifying
a slot, why would you think slots are the right solution?

In fact, the "freethreading" variation already implies that there= could
be more than one "slot" per package version.

It's as meaningless as having sqlite3 packaged as sqlite:3, or gtk that=
is now randomly split between gtk+:2, gtk+:3 and gtk:4.

--
Best regards,
Micha=C5=82 G=C3=B3rny

--000000000000ce198e062448dff0--