On Mon, Feb 19, 2024 at 7:34 PM Matthias Koeppe <matthiaskoe...@gmail.com> wrote:
> 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 > <https://groups.google.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.txt > files, as it clear for all to see in your own PR making pytest* into > standard packages: > https://github.com/sagemath/sage/pull/37301 > > > "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-packages > But for convenience I'll include an explanation below. > your explanation is not very clear. E.g. 'Pinning to specific versions is done using a file "requirements.txt"' should read 'Pinning to specific versions, or to version ranges, can be done using a file "requirements.txt"' > > (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. > A mess is still a mess. The purpose of "install-requires.txt" is rather unclear, especially in presence of "package-version.txt". What is it even doing, in the presence of hard version numbers in package-version.txt ? By the way, "you must have missed that ..." is certainly a rhetorical, and I'd say, patronizing, device. > > Pip package versions need not to be explicit, however, and one won't need > to > worry 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+unsubscr...@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 > <https://groups.google.com/d/msgid/sage-devel/94060e30-f224-44fd-841e-7b2060a222f1n%40googlegroups.com?utm_medium=email&utm_source=footer> > . > -- 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/CAAWYfq2yw6wLHsyMyaWYWAYjAbzo9VSc_B8Xkac-iw%3DQ5%2BpYgQ%40mail.gmail.com.