Similar to base-system@'s EAPI update policy [1], the Python project should have a policy that requires an update path for packages that are dependencies of portage. This came up because this commit commit ed03371d924942731bff158665b05d19e8651369 Author: Michał Górny <mgorny@gentoo.org> Date: Sat Aug 7 16:56:01 2021 +0200 dev-python/setuptools: Remove old Signed-off-by: Michał Górny <mgorny@gentoo.org> removed the last remaining version of setuptools with EAPI=7. At this moment all versions in tree are EAPI=8, so if you have even a relatively recent version of portage that doesn't support EAPI=8 you can be prevented from updating the system. [1] https://wiki.gentoo.org/wiki/Project:Base#Rules_and_limitations
This is becoming an issue with Perl too.
The bug has been referenced in the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=b50370810362b852aa2aa58d2a7ad5609bd63187 commit b50370810362b852aa2aa58d2a7ad5609bd63187 Author: Matt Turner <mattst88@gentoo.org> AuthorDate: 2021-08-07 21:07:36 +0000 Commit: Matt Turner <mattst88@gentoo.org> CommitDate: 2021-08-07 21:09:11 +0000 dev-python/setuptools: Revert to EAPI=7 Having only EAPI=8 setuptools in tree makes upgrading impossible if portage is more than two months old. Bug: https://bugs.gentoo.org/807043 Signed-off-by: Matt Turner <mattst88@gentoo.org> .../{setuptools-57.4.0-r1.ebuild => setuptools-57.4.0-r2.ebuild} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
Hmm, how about adding a comment above EAPI line in packages that are Portage's deps? That should be the easiest way to keep track of it. Do we need this to cover test dependencies too? Setuptools has a lot of them.
(In reply to Michał Górny from comment #3) > Hmm, how about adding a comment above EAPI line in packages that are > Portage's deps? That should be the easiest way to keep track of it. That seems good to me. > Do we need this to cover test dependencies too? Setuptools has a lot of > them. I would say no, since the purpose of the policy is to ensure upgrades are possible and test dependencies aren't required for updates.
Traversed Portage's deps and added a comment above EAPI line in them. Will look into adding something to the Python Guide later today.
Added to the Guide: https://dev.gentoo.org/~mgorny/python-guide/package-maintenance.html#porting-packages-to-a-new-eapi