yes, make them standard, but keep them pip packages (i.e. no version
pinning, no tarballs/checksums).
How about we initiate a vote on letting standard packages be pip packages?
I believe I'm the person who introduced that long standing policy. It
was indeed motivated by a significant paying customer's requirement
to install Sage entirely from source, and without an external network.
I believe no such customers have supported the Sage project for about
a decade, so I'm very supportive of removing this policy.
How about we initiate a vote on letting standard packages be pip packages?
Sage 10.2 tarball is 1.3Gb, of which upstream/ subdirectory takes 80%.
(for some reason there's also .git/ - something I don't get the reason for having at all
It seems you had one vote for, and one against. Is it enough to declare these packages accepted as standard now?
By the way, pytest inclusion already adds 5 standard packages, not one.
>On Friday, February 16, 2024 at 9:38:16 AM UTC-8 Dima Pasechnik wrote:
My vote for is conditional on them remaining pip packages, and that's not what your PRs do.
Tobias, you must have missed that making the package standard does set a version "constraint". Those are set in "install-requires.txt" files, and in https://github.com/sagemath/sage/pull/37301 you can see that the packages remain unconstrained.
On Monday, February 19, 2024 at 5:47:46 AM UTC-8 Tobia...@gmx.de wrote:+1 for the one-line change of the type from "optional" to "standard". -1 on everything ("standard pip" or "standard wheel") that involves an unnecessary version constraint and an explicit declaration of the runtime dependencies.On Saturday, February 17, 2024 at 4:51:45 PM UTC+8 Dima Pasechnik wrote:I have made it clear under what condition you can count my vote as +1.
To make it clear: it is -1 if the condition is not met.On 17 February 2024 04:26:14 GMT, Matthias Koeppe <matthia...@gmail.com> wrote:Note that posting a proposal here on sage-devel to make the packages standard followed the policies of our project."optional packages stay in that status for at least a year, after which they can be proposed to be included as standard packages in Sage. For this a GitHub PR is opened with the label c: packages: standard. Then make a proposal in the Google Group sage-devel." https://doc.sagemath.org/html/en/developer/packaging.html#inclusion-procedure-for-new-and-updated-packagesMulticasting "negative reviews" to tickets is not part of the procedures of our project; cf. https://github.com/sagemath/sage/pull/36726#issuecomment-1820148873 on the emergence of this idea.On Friday, February 16, 2024 at 4:34:12 PM UTC-8 Dima Pasechnik wrote:
On 16 February 2024 23:33:48 GMT, Matthias Koeppe <matthia...@gmail.com> wrote:
>On Friday, February 16, 2024 at 1:25:13 PM UTC-8 Dima Pasechnik wrote:
>
>>On Friday, February 16, 2024 at 9:38:16 AM UTC-8 Dima Pasechnik wrote:
>My vote for is conditional on them remaining pip packages, and that's not
>what your PRs do.
>
>
>I'll count that as 0.
you can count that as negative reviews on your PRs
as they are now.
>
--
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+...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/sage-devel/0b84b09a-3a20-4a5f-91ea-f38566b33ed4n%40googlegroups.com.
On Mon, Feb 19, 2024 at 5:31 PM Matthias Koeppe <matthia...@gmail.com> wrote:
On Monday, February 19, 2024 at 5:47:46 AM UTC-8 Tobia...@gmx.de wrote:+1 for the one-line change of the type from "optional" to "standard". -1 on everything ("standard pip" or "standard wheel") that involves an unnecessary version constraint and an explicit declaration of the runtime dependencies.
Tobias, you must have missed that making the package standard does set a version "constraint". Those are set in "install-requires.txt" files, and in https://github.com/sagemath/sage/pull/37301 you can see that the packages remain unconstrained.What does this comment have to do with the question at hand?
Package versions of standard packages at the moment are set up in package-version.txtfiles, as it clear for all to see in your own PR making pytest* into standard packages:
(with all the mess of checksums, tarballs/wheels, etc etc)
Pip package versions need not to be explicit, however, and one won't need toworry about checksums, tarballs/wheels (unless installing Sage on an air-gap system...)
On Monday, February 19, 2024 at 10:35:45 AM UTC-8 Dima Pasechnik wrote:On Mon, Feb 19, 2024 at 5:31 PM Matthias Koeppe <matthia...@gmail.com> wrote:On Monday, February 19, 2024 at 5:47:46 AM UTC-8 Tobia...@gmx.de wrote:+1 for the one-line change of the type from "optional" to "standard". -1 on everything ("standard pip" or "standard wheel") that involves an unnecessary version constraint and an explicit declaration of the runtime dependencies.Tobias, you must have missed that making the package standard does set a version "constraint". Those are set in "install-requires.txt" files, and in https://github.com/sagemath/sage/pull/37301 you can see that the packages remain unconstrained.What does this comment have to do with the question at hand?Not sure what you're asking. I've clearly quoted what I'm responding to.Package versions of standard packages at the moment are set up in package-version.txtfiles, as it clear for all to see in your own PR making pytest* into standard packages:"For all to see" in the PRs also that there are the files "install-requires.txt" that I mentioned.Their purpose is documented in our Developer Guide - https://deploy-livedoc--sagemath.netlify.app/html/en/developer/packaging#python-based-packagesBut for convenience I'll include an explanation below.
(with all the mess of checksums, tarballs/wheels, etc etc)Calling it a "mess" is not helpful for the discussion.I'd ask for using much more restraint in using such rhetorical devices.
Pip package versions need not to be explicit, however, and one won't need toworry about checksums, tarballs/wheels (unless installing Sage on an air-gap system...)In the Python (pip) world:- Version constraints of dependencies of a Python project are declared in pyproject.toml [project] dependencies (https://setuptools.pypa.io/en/latest/userguide/dependency_management.html#declaring-required-dependency); or, equivalently. in the older formats: setup.cfg install-requires, or setup.py install_requires- Pinning to specific versions is done using a file "requirements.txt" (https://pip.pypa.io/en/stable/reference/requirements-file-format/)- This file can be created and updated by using "pip freeze".In the conda world:- Version constraints of dependencies of a project are declared in environment.yml- Pinning to specific versions can be done in separate environment file such as conda-lock.yml- Updating the lock file can be done using conda-lock (https://github.com/conda/conda-lock?tab=readme-ov-file#why)- Example in Sage: https://github.com/sagemath/sage/blob/develop/src/environment-dev-3.11-macos-arm64.yml#L329 pins "pytest=7.4.3=pyhd8ed1ab_0" and its dependency "iniconfig=2.0.0=pyhd8ed1ab_0" (https://github.com/sagemath/sage/blob/develop/src/environment-dev-3.11-macos-arm64.yml#L194)In the Sage distribution:- Version constraints of normal Python packages are declared in files build/pkgs/*/install-requires.txt- Pinning to specific versions is done in the files build/pkgs/*/package-version.txt- Updating the pins is done using "sage --package update" or "sage --package update-latest".
--
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+...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/sage-devel/94060e30-f224-44fd-841e-7b2060a222f1n%40googlegroups.com.
The purpose of "install-requires.txt" is rather unclear, especially in presenceof "package-version.txt". What is it even doing, in the presence of hard version numbers inpackage-version.txt ?
--
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+...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/sage-devel/26d4ab2d-8982-47b9-8707-1ed1d29f8e0en%40googlegroups.com.
On Mon, Feb 19, 2024 at 8:27 PM Matthias Koeppe <matthia...@gmail.com> wrote:On Monday, February 19, 2024 at 11:51:46 AM UTC-8 Dima Pasechnik wrote:The purpose of "install-requires.txt" is rather unclear, especially in presenceof "package-version.txt". What is it even doing, in the presence of hard version numbers inpackage-version.txt ?Just so I know where I need to improve the explanations -- is it unclear *before* or *after* reading the documentation in https://deploy-livedoc--sagemath.netlify.app/html/en/developer/packaging#python-based-packages?I don't think the docs describe the interaction between package-version.txt and install-requires.txt(and between potential version constraints in spkg-configure.m4)