Giter Site home page Giter Site logo

Comments (7)

minrk avatar minrk commented on June 2, 2024 1

This is fixed in #1884, making the build dependency on setuptools>=61 explicit. The version requirement in 25.1.1 ought to be >=59.

from pyzmq.

nalt avatar nalt commented on June 2, 2024

Anyone with an old version of setuptools still gets 25.1.1, which will then fail.

Can the 25.1.1 version be yanked to avoid that?

from pyzmq.

minrk avatar minrk commented on June 2, 2024

I don't think it should be yanked, but I will publish a 25.1.2 with the version bound, though.

from pyzmq.

minrk avatar minrk commented on June 2, 2024

Anyone with an old version of setuptools still gets 25.1.1

This is also not true most of the time, because any standard install will get the latest setuptools during build:

python3 -m venv test-pyzmq
source test-setuptools/bin/activate
pip install setuptools==58.*
pip install --no-cache --no-binary pyzmq pyzmq

gives:

Using pip 23.2.1 from /Users/minrk/env/test-pyzmq/lib/python3.11/site-packages/pip (python 3.11)
Collecting pyzmq
  Downloading pyzmq-25.1.1.tar.gz (1.4 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.4/1.4 MB 31.8 MB/s eta 0:00:00
  Running command pip subprocess to install build dependencies
  Ignoring cffi: markers 'implementation_name == "pypy"' don't match your environment
  Ignoring cython: markers 'implementation_name == "cpython" and python_version >= "3.12"' don't match your environment
  Collecting setuptools
    Obtaining dependency information for setuptools from https://files.pythonhosted.org/packages/4f/ab/0bcfebdfc3bfa8554b2b2c97a555569c4c1ebc74ea288741ea8326c51906/setuptools-68.1.2-py3-none-any.whl.metadata
    Downloading setuptools-68.1.2-py3-none-any.whl.metadata (6.2 kB)
  Collecting setuptools_scm[toml]
    Downloading setuptools_scm-7.1.0-py3-none-any.whl (43 kB)
       ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 43.8/43.8 kB 3.3 MB/s eta 0:00:00
  Collecting wheel
    Obtaining dependency information for wheel from https://files.pythonhosted.org/packages/b8/8b/31273bf66016be6ad22bb7345c37ff350276cfd46e389a0c2ac5da9d9073/wheel-0.41.2-py3-none-any.whl.metadata
    Downloading wheel-0.41.2-py3-none-any.whl.metadata (2.2 kB)
  Collecting packaging
    Downloading packaging-23.1-py3-none-any.whl (48 kB)
       ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 48.9/48.9 kB 6.0 MB/s eta 0:00:00
  Collecting cython>=0.29
    Obtaining dependency information for cython>=0.29 from https://files.pythonhosted.org/packages/03/e9/9cc0c4f0d8a566089d096254cd25168a0db02dd047863a7f995d8d3eefa7/Cython-3.0.2-py2.py3-none-any.whl.metadata
    Downloading Cython-3.0.2-py2.py3-none-any.whl.metadata (3.1 kB)
  Collecting typing-extensions (from setuptools_scm[toml])
    Obtaining dependency information for typing-extensions from https://files.pythonhosted.org/packages/ec/6b/63cc3df74987c36fe26157ee12e09e8f9db4de771e0f3404263117e75b95/typing_extensions-4.7.1-py3-none-any.whl.metadata
    Downloading typing_extensions-4.7.1-py3-none-any.whl.metadata (3.1 kB)
  Downloading setuptools-68.1.2-py3-none-any.whl (805 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 805.1/805.1 kB 24.4 MB/s eta 0:00:00
  Downloading wheel-0.41.2-py3-none-any.whl (64 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 64.8/64.8 kB 5.5 MB/s eta 0:00:00
  Downloading Cython-3.0.2-py2.py3-none-any.whl (1.2 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.2/1.2 MB 31.8 MB/s eta 0:00:00
  Downloading typing_extensions-4.7.1-py3-none-any.whl (33 kB)
  Installing collected packages: wheel, typing-extensions, setuptools, packaging, cython, setuptools_scm
  Successfully installed cython-3.0.2 packaging-23.1 setuptools-68.1.2 setuptools_scm-7.1.0 typing-extensions-4.7.1 wheel-0.41.2
  Installing build dependencies ... done
...

so the vast majority of installs will either

  1. get a wheel, or
  2. build from source, in which case the latest setuptools will be downloaded, not an outdated version

neither of which encounter any errors. The same goes for the documented "install from source", which should use pip install ., not the deprecated and discouraged (throughout all Python packaging, not just pyzmq) direct invocation of setup.py install that encounter any errors, which would also ignore the version specification in pyproject.toml, anyway.

from pyzmq.

nalt avatar nalt commented on June 2, 2024

If there is another package in your software project that needs an older setuptools, pip would keep that version. In larger projects there are many version requirements, so it would be nice if version resolving works reliably.

But you are right, it only appears in special situations.

from pyzmq.

minrk avatar minrk commented on June 2, 2024

Can you point to a concrete example? I might be missing something, because there really are so many ways to install packages. Since pip's standard behavior is isolated environments for each package, pyzmq's build dependencies shouldn't be related to any other package in your environment. The dependency is only shared across packages if each package's build environment is ignored (e.g. --no-build-isolation), in which case expressing an explicit build dependency on setuptools>=59 won't solve anything because that pin is still ignored. It becomes an only "for humans" dependency communication.

from pyzmq.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.