[sage-devel] Re: Proposal (redo): Make pytest, pytest_mock, pytest_xdist + dependencies standard packages
I consider this approved. The PR is open for review at https://github.com/sagemath/sage/pull/37301 On Thursday, May 30, 2024 at 3:25:08 PM UTC-7 Matthias Koeppe wrote: > We added the packages as optional "pip" packages (see > https://deploy-livedoc--sagemath.netlify.app/html/en/developer/packaging#package-types > for > the terminology), each more than 1 year ago. > > - > https://deploy-livedoc--sagemath.netlify.app/html/en/reference/spkg/pytest#spkg-pytest > (added > in 2020) > - > https://deploy-livedoc--sagemath.netlify.app/html/en/reference/spkg/pytest_mock#spkg-pytest-mock > (added > in 2022) > - > https://deploy-livedoc--sagemath.netlify.app/html/en/reference/spkg/pytest_xdist#spkg-pytest-xdist > (added > in 2022) > > "pytest" is the current gold standard for running tests of Python > packages. Various standard packages in the Sage distribution already > declare pytest in "dependencies_check" as a conditional dependency for use > when SAGE_CHECK=yes is set. The support for testing parts of the Sage > library with pytest was from an effort largely stalled after 2022 -- and > which has been completely broken since early 2024 with the arrival of > pytest 8.x, which I have just fixed in > https://github.com/sagemath/sage/pull/37999 (to be merged). I'll note > that recent versions of pytest have added support for PEP-420 implicit > namespace package, which the Sage library uses as part of the > modularization effort. > > By making pytest a standard package, I would hope to help revive this > effort, and thus the larger effort to "adopt mainstream Python > testing/linting infrastructure" (see > https://github.com/sagemath/sage/issues/28936). > > I'm proposing to make the packages (and their dependencies) standard > (wheel) packages according to the procedures in our developer guide. > - Reference to previous such proposals following our project's procedures: > https://groups.google.com/g/sage-devel/c/EMeTJ6Hwgns/m/KyOOQzkzAAAJ > - Link to our packaging documentation and explanation how making it a > standard package compares to version pinning done for example using > conda-lock: > https://groups.google.com/g/sage-devel/c/MIU-xo9b7pc/m/N2vuKb-TAAAJ > > The other pytest_* packages are related technical packages. > The PR that implements it: https://github.com/sagemath/sage/pull/37301 > > This is a redo of the 2nd part of my proposal > https://groups.google.com/g/sage-devel/c/MIU-xo9b7pc/m/NsyUa7iXAgAJ from > Feb 10, which was stalled. (The 1st part (on python_build) was redone in > https://groups.google.com/g/sage-devel/c/EMeTJ6Hwgns/m/9_zh6usoAAAJ and > approved.) > > > I ask everyone to focus on the specifics of this proposal. > > -- You received this message because you are subscribed to the Google Groups "sage-devel" group. To unsubscribe from this group and stop receiving emails from it, send an email to sage-devel+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/sage-devel/5ced2571-da78-434a-a770-0efa6972aedcn%40googlegroups.com.
[sage-devel] Re: Proposal (redo): Make pytest, pytest_mock, pytest_xdist + dependencies standard packages
All, please send your comments on this proposal. I hope that we can count votes here by the end of the week. On Thursday, May 30, 2024 at 3:25:08 PM UTC-7 Matthias Koeppe wrote: > We added the packages as optional "pip" packages (see > https://deploy-livedoc--sagemath.netlify.app/html/en/developer/packaging#package-types > for > the terminology), each more than 1 year ago. > > - > https://deploy-livedoc--sagemath.netlify.app/html/en/reference/spkg/pytest#spkg-pytest > (added > in 2020) > - > https://deploy-livedoc--sagemath.netlify.app/html/en/reference/spkg/pytest_mock#spkg-pytest-mock > (added > in 2022) > - > https://deploy-livedoc--sagemath.netlify.app/html/en/reference/spkg/pytest_xdist#spkg-pytest-xdist > (added > in 2022) > > "pytest" is the current gold standard for running tests of Python > packages. Various standard packages in the Sage distribution already > declare pytest in "dependencies_check" as a conditional dependency for use > when SAGE_CHECK=yes is set. The support for testing parts of the Sage > library with pytest was from an effort largely stalled after 2022 -- and > which has been completely broken since early 2024 with the arrival of > pytest 8.x, which I have just fixed in > https://github.com/sagemath/sage/pull/37999 (to be merged). I'll note > that recent versions of pytest have added support for PEP-420 implicit > namespace package, which the Sage library uses as part of the > modularization effort. > > By making pytest a standard package, I would hope to help revive this > effort, and thus the larger effort to "adopt mainstream Python > testing/linting infrastructure" (see > https://github.com/sagemath/sage/issues/28936). > > I'm proposing to make the packages (and their dependencies) standard > (wheel) packages according to the procedures in our developer guide. > - Reference to previous such proposals following our project's procedures: > https://groups.google.com/g/sage-devel/c/EMeTJ6Hwgns/m/KyOOQzkzAAAJ > - Link to our packaging documentation and explanation how making it a > standard package compares to version pinning done for example using > conda-lock: > https://groups.google.com/g/sage-devel/c/MIU-xo9b7pc/m/N2vuKb-TAAAJ > > The other pytest_* packages are related technical packages. > The PR that implements it: https://github.com/sagemath/sage/pull/37301 > > This is a redo of the 2nd part of my proposal > https://groups.google.com/g/sage-devel/c/MIU-xo9b7pc/m/NsyUa7iXAgAJ from > Feb 10, which was stalled. (The 1st part (on python_build) was redone in > https://groups.google.com/g/sage-devel/c/EMeTJ6Hwgns/m/9_zh6usoAAAJ and > approved.) > > > I ask everyone to focus on the specifics of this proposal. > > -- You received this message because you are subscribed to the Google Groups "sage-devel" group. To unsubscribe from this group and stop receiving emails from it, send an email to sage-devel+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/sage-devel/c9fbfdc6-acb2-4f79-87fb-1eab4c43de4dn%40googlegroups.com.
[sage-devel] Re: Proposal (redo): Make pytest, pytest_mock, pytest_xdist + dependencies standard packages
I'll share some additional facts for everyone's convenience. The total size of these 5 wheel packages to be added in https://github.com/sagemath/sage/pull/37301is about 500 kilobytes. (As a comparison, that's 10% of the size of our "configure" script.) -rw-r--r-- 1 mkoeppe staff 40612 May 22 12:47 upstream/execnet-2.1.1-py3-none-any.whl -rw-r--r-- 1 mkoeppe staff5892 May 22 12:57 upstream/iniconfig-2.0.0-py3-none-any.whl -rw-r--r-- 1 mkoeppe staff 339593 May 22 12:48 upstream/pytest-8.2.1-py3-none-any.whl -rw-r--r-- 1 mkoeppe staff9863 May 22 12:47 upstream/pytest_mock-3.14.0-py3-none-any.whl -rw-r--r-- 1 mkoeppe staff 46108 May 22 12:48 upstream/pytest_xdist-3.6.1-py3-none-any.whl On Thursday, May 30, 2024 at 3:25:08 PM UTC-7 Matthias Koeppe wrote: I ask everyone to focus on the specifics of this proposal. In particular, I'll suggest to refrain from engaging with generic warnings about "bloat", hypothetical scenarios about expensive bandwidth and storage, "backdooring", etc. -- You received this message because you are subscribed to the Google Groups "sage-devel" group. To unsubscribe from this group and stop receiving emails from it, send an email to sage-devel+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/sage-devel/e43816ba-a3eb-4b45-a0c9-b365d8b569c9n%40googlegroups.com.
Re: [sage-devel] Re: Proposal (redo): Make pytest, pytest_mock, pytest_xdist + dependencies standard packages
I don't argue against making them standard - I argue against vendoring them, which buys us essentially nothing but an extra headache. On 1 June 2024 15:10:21 CEST, Nathan Dunfield wrote: >The six packages proposed for addition are all pure-Python and collectively >take up 4M installed (about a 450K download); for scale, I think a full >Sage installation is about 3G (1.25G download). They all seem to be >well-maintained, and common enough that all are available on conda-forge. >Using pytest to test Sage sounds like a good thing to me, and I think it >makes sense to promote them standard packages. > >Best, > >Nathan > >-- >You received this message because you are subscribed to the Google Groups >"sage-devel" group. >To unsubscribe from this group and stop receiving emails from it, send an >email to sage-devel+unsubscr...@googlegroups.com. >To view this discussion on the web visit >https://groups.google.com/d/msgid/sage-devel/c5ab0d5a-55c0-4f55-abc1-60b4f23b6ad4n%40googlegroups.com. -- You received this message because you are subscribed to the Google Groups "sage-devel" group. To unsubscribe from this group and stop receiving emails from it, send an email to sage-devel+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/sage-devel/A3CBA6CF-2C59-42EA-AB9D-5C5D6FB9EA8A%40gmail.com.
[sage-devel] Re: Proposal (redo): Make pytest, pytest_mock, pytest_xdist + dependencies standard packages
The six packages proposed for addition are all pure-Python and collectively take up 4M installed (about a 450K download); for scale, I think a full Sage installation is about 3G (1.25G download). They all seem to be well-maintained, and common enough that all are available on conda-forge. Using pytest to test Sage sounds like a good thing to me, and I think it makes sense to promote them standard packages. Best, Nathan -- You received this message because you are subscribed to the Google Groups "sage-devel" group. To unsubscribe from this group and stop receiving emails from it, send an email to sage-devel+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/sage-devel/c5ab0d5a-55c0-4f55-abc1-60b4f23b6ad4n%40googlegroups.com.