Re: [gentoo-dev] Please port your packages to Python 3.8
On 2020-09-04 09:22, Rich Freeman wrote: > > Current Gentoo policy: > > ...if the changes are likely to cause problems for end users." If you're willing to ignore the user reports of problems, and ignore the mailing list threads telling you that it will cause problems, and avoid running any tests, then it becomes possible to construct a fortress of flawed reasoning to defend the claim that "this won't cause problems for end users."
Re: [gentoo-dev] Please port your packages to Python 3.8
On Fri, Sep 4, 2020 at 9:06 AM Michael Orlitzky wrote: > > It's easy to say "well this is not an issue because it can be solved by > ..." > > If it's easy, get it added to the PMS and I'll agree with you. > Current Gentoo policy: "Maintainers must not assume that dynamic dependencies will be applied by the package manager. When changing runtime dependencies the maintainer should revision the ebuild if the changes are likely to cause problems for end users." [1] Certainly having a discussion about whether this could change down the road is reasonable, but keep in mind this would require package managers to actually be changed, which requires code. Out of the box portage has issues with dynamic deps[2] so it isn't a solved problem on any package manager, let alone all of them. In the interim, devs MUST revbump in these situations. The Council left some room for discretion, and as a result I end up having portage rebuild everything on changed deps because frankly I don't trust people to get it right, since if people can't see for themselves the reason for a rule it seems to be a reason to ignore it. The rule is also documented in the devmanual[3]. 1 - https://projects.gentoo.org/council/meeting-logs/20151011-summary.txt 2 - https://wiki.gentoo.org/wiki/Project:Portage/Changed_Deps#Ebuild_Revision_Bumps 3 - https://devmanual.gentoo.org/general-concepts/ebuild-revisions/index.html -- Rich
Re: [gentoo-dev] Please port your packages to Python 3.8
On Fri, 4 Sep 2020 09:06:46 -0400 Michael Orlitzky wrote: > On 2020-09-04 08:54, Alexis Ballier wrote: > > > > py37 will (*) still be installed as it cannot be depcleaned because > > of 1. emerge won't fail since deps are satisfied. > > > > > > (*) or rather should, but I think the only case that matters is a > > valid system state where noone forced uninstall of a needed package > > or manually rm'ed some random files > > > > There's no need to speculate; use pkgcore for a month and come back > and tell me how much comfort these hypotheticals were. there's no speculation in assuming a consistent set of installed packages (consistent as specified in... PMS ;) ); there is, however, speculation in the hypothetical error messages when the installed set of packages is inconsistent > >> or.. > >> > >> 3b. Some reverse dependency of foo-1.2.3 gets python-3.8 support. > >> 4b. A user tries to install that revdep, but the PM sees that > >> the latest version of foo is already installed, and it (the > >> installed version) doesn't support python-3.8. Mysterious > >> error messages and manual intervention ensue. > > > > > > precisely the case I wrote above: unsatisfied dep -> pull ebuild. > > non-issue too. > > It's easy to say "well this is not an issue because it can be solved > by ..." are you kidding ? are you seriously suggesting adding to PMS that PM needs to pull ebuilds to install packages ? good luck with that ;)
Re: [gentoo-dev] Please port your packages to Python 3.8
On 2020-09-04 08:54, Alexis Ballier wrote: > > py37 will (*) still be installed as it cannot be depcleaned because of > 1. emerge won't fail since deps are satisfied. > > > (*) or rather should, but I think the only case that matters is a valid > system state where noone forced uninstall of a needed package or > manually rm'ed some random files > There's no need to speculate; use pkgcore for a month and come back and tell me how much comfort these hypotheticals were. >> or.. >> >> 3b. Some reverse dependency of foo-1.2.3 gets python-3.8 support. >> 4b. A user tries to install that revdep, but the PM sees that >> the latest version of foo is already installed, and it (the >> installed version) doesn't support python-3.8. Mysterious >> error messages and manual intervention ensue. > > > precisely the case I wrote above: unsatisfied dep -> pull ebuild. > non-issue too. It's easy to say "well this is not an issue because it can be solved by ..." If it's easy, get it added to the PMS and I'll agree with you.
Re: [gentoo-dev] Please port your packages to Python 3.8
On Thu, 3 Sep 2020 14:17:06 -0400 Michael Orlitzky wrote: > On 2020-09-03 12:38, Alexis Ballier wrote: > > > > if some upgrade wants a package with unmatched deps (e.g. not > > installed at all or py38 usedep not satisfied), $PM will surely try > > to satisfy it by installing an ebuild. I don't think PMS specifies > > this, nor should it. > > > > It's not an upgrade per se. The situation is roughly this: > > 1. User installs foo-1.2.3.ebuild, which supports python-3.7. > 2. Developer ninja-edits the ebuild to support python-3.8. > 3a. (crickets) > 4a. Developer removes python-3.7 support from foo-1.2.3.ebuild. > 5a. The next time something pulls foo-1.2.3 into the depgraph, > the PM will see that the installed version of foo-1.2.3 depends > on python-3.7, but that there is no python-3.7 in the tree or that > it's masked. Now emerge always fails. py37 will (*) still be installed as it cannot be depcleaned because of 1. emerge won't fail since deps are satisfied. (*) or rather should, but I think the only case that matters is a valid system state where noone forced uninstall of a needed package or manually rm'ed some random files > > or.. > > 3b. Some reverse dependency of foo-1.2.3 gets python-3.8 support. > 4b. A user tries to install that revdep, but the PM sees that > the latest version of foo is already installed, and it (the > installed version) doesn't support python-3.8. Mysterious > error messages and manual intervention ensue. precisely the case I wrote above: unsatisfied dep -> pull ebuild. non-issue too. > What's happening is that the PM is using the metadata from the > installed version of the package, rather than the ninja-edited > metadata in the repo (how would it know which ebuilds were edited > meaningfully?). That's completely legal according to the PMS, and > also the smart thing to do: sourcing a few thousand lines of bash > *just in case* there was an important change in some ebuild is a huge > waste of users' time. you seem to be confusing dynamic deps and unsatisfied deps here. A package installed with py38 disabled (e.g. after a revbump) or no py38 support at all (e.g. without revbump) will not satisfy a [py38] usedep in any case so will work just the same > Developers have an easy way to signal that there was an important > change: to bump the "r" number at the end of the ebuild. This forces > any upgrade involving e.g. foo-1.2.3 to pull in foo-1.2.3-r1, and the > fact that an upgrade is available is evident from `ls`, rather than > from sourcing a mountain of bash. One developer makes a change, and > it saves thousands of users each a lot of time. That's what we're all > here for. fixing non-issues does not seem so important to me :/ [...]
Re: [gentoo-dev] Please port your packages to Python 3.8
On 2020-09-03 12:38, Alexis Ballier wrote: > > if some upgrade wants a package with unmatched deps (e.g. not installed > at all or py38 usedep not satisfied), $PM will surely try to satisfy > it by installing an ebuild. I don't think PMS specifies this, nor should > it. > It's not an upgrade per se. The situation is roughly this: 1. User installs foo-1.2.3.ebuild, which supports python-3.7. 2. Developer ninja-edits the ebuild to support python-3.8. 3a. (crickets) 4a. Developer removes python-3.7 support from foo-1.2.3.ebuild. 5a. The next time something pulls foo-1.2.3 into the depgraph, the PM will see that the installed version of foo-1.2.3 depends on python-3.7, but that there is no python-3.7 in the tree or that it's masked. Now emerge always fails. or.. 3b. Some reverse dependency of foo-1.2.3 gets python-3.8 support. 4b. A user tries to install that revdep, but the PM sees that the latest version of foo is already installed, and it (the installed version) doesn't support python-3.8. Mysterious error messages and manual intervention ensue. What's happening is that the PM is using the metadata from the installed version of the package, rather than the ninja-edited metadata in the repo (how would it know which ebuilds were edited meaningfully?). That's completely legal according to the PMS, and also the smart thing to do: sourcing a few thousand lines of bash *just in case* there was an important change in some ebuild is a huge waste of users' time. Developers have an easy way to signal that there was an important change: to bump the "r" number at the end of the ebuild. This forces any upgrade involving e.g. foo-1.2.3 to pull in foo-1.2.3-r1, and the fact that an upgrade is available is evident from `ls`, rather than from sourcing a mountain of bash. One developer makes a change, and it saves thousands of users each a lot of time. That's what we're all here for. A package manager that uses the installed metadata is acting within its rights (both pkgcore and portage without dynamic deps do it), so we shouldn't be doing anything to break them in ::gentoo. Requiring --changed-use is both insisting that users' waste time finding out something that the developer could have told them, and also precluding the use of a package manager that doesn't implement the (unspecified) --changed-use flag in the same way portage does. tl;dr the name of an ebuild is the only sensible (and PMS-compliant) way to determine if something important changed inside it. The PMS says that a new revision will be noticed by the PM, and it doesn't specify any heuristics like --changed-use that ask the PM to (slowly) guess at it. So, we should use revisions for these things.
Re: [gentoo-dev] Please port your packages to Python 3.8
On Wed, 2 Sep 2020 15:00:27 -0400 Michael Orlitzky wrote: > On 2020-09-02 14:08, Andreas Sturmlechner wrote: > > On Wednesday, 2 September 2020 19:42:33 CEST Michael Orlitzky wrote: > >> New USE flags generally change dependencies (as is the case here), > >> so a new revision ensures that people are forced to install the > >> ebuild that supports python-3.8. Otherwise, you will eventually > >> find a lot of people stuck unable to upgrade because they have an > >> ebuild installed that only supports <=python-3.7, and were never > >> prompted to install the copy that supports python-3.8. > > > > Python target changes must be done with -U, also documented by the > > accompanying repository news item, not really a problem. > > > > If you want to write the GLEP that obsoletes the PMS, I might even > support it at this point. But until then, requiring --changed-use to > have a functional system is not allowed. Any PMS-compliant package > manager must be able to use ::gentoo, including one that does not > implement portage-only heuristics. > ? if some upgrade wants a package with unmatched deps (e.g. not installed at all or py38 usedep not satisfied), $PM will surely try to satisfy it by installing an ebuild. I don't think PMS specifies this, nor should it.
Re: [gentoo-dev] Please port your packages to Python 3.8
On 2020-09-02 14:08, Andreas Sturmlechner wrote: > On Wednesday, 2 September 2020 19:42:33 CEST Michael Orlitzky wrote: >> New USE flags generally change dependencies (as is the case here), so a >> new revision ensures that people are forced to install the ebuild that >> supports python-3.8. Otherwise, you will eventually find a lot of people >> stuck unable to upgrade because they have an ebuild installed that only >> supports <=python-3.7, and were never prompted to install the copy that >> supports python-3.8. > > Python target changes must be done with -U, also documented by the > accompanying repository news item, not really a problem. > If you want to write the GLEP that obsoletes the PMS, I might even support it at this point. But until then, requiring --changed-use to have a functional system is not allowed. Any PMS-compliant package manager must be able to use ::gentoo, including one that does not implement portage-only heuristics.
Re: [gentoo-dev] Please port your packages to Python 3.8
On Wednesday, 2 September 2020 19:42:33 CEST Michael Orlitzky wrote: > New USE flags generally change dependencies (as is the case here), so a > new revision ensures that people are forced to install the ebuild that > supports python-3.8. Otherwise, you will eventually find a lot of people > stuck unable to upgrade because they have an ebuild installed that only > supports <=python-3.7, and were never prompted to install the copy that > supports python-3.8. Python target changes must be done with -U, also documented by the accompanying repository news item, not really a problem. signature.asc Description: This is a digitally signed message part.
Re: [gentoo-dev] Please port your packages to Python 3.8
On 2020-09-02 13:23, Sam James wrote: > > Please request stabilisation of your Python 3.8+ changes at the 30 days > point, or earlier if it’s a trivial revbump > (as new Python targets are equivalent to new USE flags, there is no real need > for a revbump unless doing other tidying > whilst there). > New USE flags generally change dependencies (as is the case here), so a new revision ensures that people are forced to install the ebuild that supports python-3.8. Otherwise, you will eventually find a lot of people stuck unable to upgrade because they have an ebuild installed that only supports <=python-3.7, and were never prompted to install the copy that supports python-3.8.
Re: [gentoo-dev] Please port your packages to Python 3.8
> On 1 Sep 2020, at 12:02, Michał Górny wrote: > > Hello, > > [snip] > Python 3.8 is planned to become the default on 2020-12-01. > Note that this means we need to keep in mind stabilisation of Python 3.8+ supporting-packages going forward. Please request stabilisation of your Python 3.8+ changes at the 30 days point, or earlier if it’s a trivial revbump (as new Python targets are equivalent to new USE flags, there is no real need for a revbump unless doing other tidying whilst there). Stabling Python 3.8 packages also makes things a bit easier for people who do testing of their packages on a stable system - mostly thinking of proxy-maintainers or casual user contributions here. I’m sure you’ve all already seen my annoying bugs to keep track of needed stabilisations; it will however be worth it to ensure a smooth transition when the default changes. The danger of insufficient stabled changes is users having to understand possibly complex Portage conflicts and add large numbers of package.use exceptions on a temporary basis which is unnecessary confusion. Again a reminder to add Python 3.9 whenever you can too. > Thank you all for your hard work! > -- > Best regards, > Michał Górny > Thanks, Sam signature.asc Description: Message signed with OpenPGP
Re: [gentoo-dev] Please port your packages to Python 3.8
On Tue, 2020-09-01 at 08:06 -0400, Rich Freeman wrote: > On Tue, Sep 1, 2020 at 7:02 AM Michał Górny wrote: > > QA reports provide a list [2] and a graph [3] of packages needing > > porting. > > These lists would be far more useful if they actually listed the > maintainer(s) of each package. Then devs could just grep to discover > if any of their packages need fixing. > > Otherwise I fear that you're just going to run into the same issue as > last time - most devs will just wait until you take the time to do > this and file bugs. > ...and done. Now you can grep by your name. -- Best regards, Michał Górny signature.asc Description: This is a digitally signed message part
Re: [gentoo-dev] Please port your packages to Python 3.8
вт, 1 сент. 2020 г. в 13:06, Rich Freeman : > > On Tue, Sep 1, 2020 at 7:02 AM Michał Górny wrote: > > > > QA reports provide a list [2] and a graph [3] of packages needing > > porting. > > These lists would be far more useful if they actually listed the > maintainer(s) of each package. Then devs could just grep to discover > if any of their packages need fixing. > > Otherwise I fear that you're just going to run into the same issue as > last time - most devs will just wait until you take the time to do > this and file bugs. > I would also like a warning shown in p.g.o if the package is in one of these qa lists
Re: [gentoo-dev] Please port your packages to Python 3.8
On Tue, 2020-09-01 at 08:06 -0400, Rich Freeman wrote: > On Tue, Sep 1, 2020 at 7:02 AM Michał Górny wrote: > > QA reports provide a list [2] and a graph [3] of packages needing > > porting. > > These lists would be far more useful if they actually listed the > maintainer(s) of each package. Then devs could just grep to discover > if any of their packages need fixing. > > Otherwise I fear that you're just going to run into the same issue as > last time - most devs will just wait until you take the time to do > this and file bugs. Hmm, I suppose this won't be hard to add. -- Best regards, Michał Górny signature.asc Description: This is a digitally signed message part
Re: [gentoo-dev] Please port your packages to Python 3.8
On Tue, Sep 1, 2020 at 7:02 AM Michał Górny wrote: > > QA reports provide a list [2] and a graph [3] of packages needing > porting. These lists would be far more useful if they actually listed the maintainer(s) of each package. Then devs could just grep to discover if any of their packages need fixing. Otherwise I fear that you're just going to run into the same issue as last time - most devs will just wait until you take the time to do this and file bugs. -- Rich
[gentoo-dev] Please port your packages to Python 3.8
Hello, Following the timeline published earlier (and copied to [1]), Python 3.7 deprecation starts today. All developers are requested to install Python 3.8 and start testing their packages against it. While at it, testing against Python 3.9 would also be welcome. QA reports provide a list [2] and a graph [3] of packages needing porting. To be honest, the only major nuisance in Python 3.8 I can recall right now is that 'python-3.8' pkg-config file no longer includes '-lpython3.8' and packages that need it need to switch to 'python-3.8-embed' instead. If you can think of other problems, please ping me and I'll add some tips to python-guide [4] soonish. As usual, please add or fix tests to your packages. Python 3.8 is planned to become the default on 2020-12-01. Thank you all for your hard work! [1] https://wiki.gentoo.org/wiki/Project:Python/Implementations#Implementation_support_timeline [2] https://qa-reports.gentoo.org/output/gpyutils/37-to-38.txt [3] https://qa-reports.gentoo.org/output/gpyutils/37-to-38.svg [4] https://dev.gentoo.org/~mgorny/python-guide/ -- Best regards, Michał Górny signature.asc Description: This is a digitally signed message part