On Thu, 2024-10-17 at 14:12 +0200, Michał Górny wrote:
> The ebuilds could now depend e.g. on:
> 
>   >=dev-lang/pypy-3.10:=
> 
> This would ensure that only slots newer than 3.10 are acceptable,
> and that packages are rebuilt (as they are right now) once we introduce
> 3.11 slot.  Then, after the transitional period we'd update it to:
> 
>   >=dev-lang/pypy-3.11:=
> 
> and so on.
> 

Ok, I've missed something significant here.

Along all the reshuffling, dev-python/pypy3 is not really a virtual
package but supplies /usr/bin/pypy3 (vs. pypy3.x supplied by dev-
python/pypy3_x).  Switching to one-package model would require us to
install "pypy3" as part of the baseline package, and that is going to
make transitions less friendly.

In other words, with the old approach, you could have pypy3.10
and pypy3.11 installed simultaneously, and switch to 3.11 via upgrading
dev-python/pypy3 metapackage.  With the new approach, we won't be able
to have fully coexisting pypy3.10 and pypy3.11 packages without them
conflicting over /usr/bin/pypy3.  During the transition period, we'd
have to have something like USE=symlink to clearly distinguish the PyPy
version that satisfies PYTHON_TARGETS from the other one.

Not saying it's a fatal flaw but certainly makes things less nice.
I don't see any "obviously nice" solutions, other than having a separate
metapackage for the purpose of keeping /usr/bin/pypy3.  But then,
merging dev-python/pypy3_x becomes a meaningless implementation detail.

-- 
Best regards,
Michał Górny

Attachment: signature.asc
Description: This is a digitally signed message part

Reply via email to