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.

Reply via email to