Skip to content

[ENH]: matplotlib 3.12 prelease wheels  #26736

Closed

Description

@jarrodmillman

Problem

Now that #26647 is merged, would it be possible to have a matplotlib 3.8.0rc2 release with 3.12 wheels soon. It would be helpful for folks (like me) trying to test downstream (from matplotlib) packages against 3.12.

Proposed solution

No response

Activity

  1. greglucas commented on Sep 11, 2023

    @greglucas
    Contributor

    I would be bold as to say we should just release 3.8 without another rc? @ksunden do you have an expected release date for either of these.

  2. jarrodmillman commented on Sep 11, 2023

    @jarrodmillman
    ContributorAuthor

    Also, I noticed that when you updated the version number after the 3.8.0rc1 release, you used 3.8.0.dev. That is less than the older release candidate. So if you try to install matplotlib with

    $ pip install --pre --upgrade --extra-index-url https://pypi.anaconda.org/scientific-python-nightly-wheels/simple matplotlib
    Looking in indexes: https://pypi.org/simple, https://pypi.anaconda.org/scientific-python-nightly-wheels/simple
    Collecting matplotlib
      Using cached matplotlib-3.8.0rc1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (11.6 MB)
    Collecting contourpy>=1.0.1
      Using cached contourpy-1.1.1rc1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (302 kB)
    Collecting cycler>=0.10
      Using cached cycler-0.11.0-py3-none-any.whl (6.4 kB)
    Collecting fonttools>=4.22.0
      Using cached fonttools-4.42.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.9 MB)
    Collecting kiwisolver>=1.0.1
      Using cached kiwisolver-1.4.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.4 MB)
    Collecting numpy>=1.21
      Downloading https://pypi.anaconda.org/scientific-python-nightly-wheels/simple/numpy/2.0.0.dev0/numpy-2.0.0.dev0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (18.3 MB)
         ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 18.3/18.3 MB 16.6 MB/s eta 0:00:00
    Collecting packaging>=20.0
      Using cached packaging-23.1-py3-none-any.whl (48 kB)
    Collecting pillow>=6.2.0
      Using cached Pillow-10.0.0-cp311-cp311-manylinux_2_28_x86_64.whl (3.4 MB)
    Collecting pyparsing>=2.3.1
      Using cached pyparsing-3.1.1-py3-none-any.whl (103 kB)
    Collecting python-dateutil>=2.7
      Using cached python_dateutil-2.8.2-py2.py3-none-any.whl (247 kB)
    Collecting numpy>=1.21
      Using cached numpy-1.26.0rc1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (18.2 MB)
    Collecting six>=1.5
      Using cached six-1.16.0-py2.py3-none-any.whl (11 kB)
    Installing collected packages: six, pyparsing, pillow, packaging, numpy, kiwisolver, fonttools, cycler, python-dateutil, contourpy, matplotlib
    Successfully installed contourpy-1.1.1rc1 cycler-0.11.0 fonttools-4.42.1 kiwisolver-1.4.5 matplotlib-3.8.0rc1 numpy-1.26.0rc1 packaging-23.1 pillow-10.0.0 pyparsing-3.1.1 python-dateutil-2.8.2 six-1.16.0
    

    If I try to ignore pypi, I get:

    $ pip install --pre --upgrade --index https://pypi.anaconda.org/scientific-python-nightly-wheels/simple matplotlib
    Looking in indexes: https://pypi.anaconda.org/scientific-python-nightly-wheels/simple
    Collecting matplotlib
      Downloading https://pypi.anaconda.org/scientific-python-nightly-wheels/simple/matplotlib/3.8.0.dev1966%2Bge9f1d7b984/matplotlib-3.8.0.dev1966%2Bge9f1d7b984-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (11.6 MB)
         ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 11.6/11.6 MB 15.0 MB/s eta 0:00:00
    INFO: pip is looking at multiple versions of matplotlib to determine which version is compatible with other requirements. This could take a while.
      Downloading https://pypi.anaconda.org/scientific-python-nightly-wheels/simple/matplotlib/3.8.0.dev1960%2Bgac376ea1a6/matplotlib-3.8.0.dev1960%2Bgac376ea1a6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (11.6 MB)
         ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 11.6/11.6 MB 14.3 MB/s eta 0:00:00
      Downloading https://pypi.anaconda.org/scientific-python-nightly-wheels/simple/matplotlib/3.8.0.dev1958%2Bg75ef6e2196/matplotlib-3.8.0.dev1958%2Bg75ef6e2196-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (11.6 MB)
         ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 11.6/11.6 MB 15.5 MB/s eta 0:00:00
      Downloading https://pypi.anaconda.org/scientific-python-nightly-wheels/simple/matplotlib/3.8.0.dev1953%2Bgb1e16f3741/matplotlib-3.8.0.dev1953%2Bgb1e16f3741-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (11.6 MB)
         ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 11.6/11.6 MB 13.3 MB/s eta 0:00:00
      Downloading https://pypi.anaconda.org/scientific-python-nightly-wheels/simple/matplotlib/3.8.0.dev1951%2Bg5f785e3e19/matplotlib-3.8.0.dev1951%2Bg5f785e3e19-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (11.6 MB)
         ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 11.6/11.6 MB 14.0 MB/s eta 0:00:00
    ERROR: Cannot install matplotlib==3.8.0.dev1951+g5f785e3e19, matplotlib==3.8.0.dev1953+gb1e16f3741, matplotlib==3.8.0.dev1958+g75ef6e2196, matplotlib==3.8.0.dev1960+gac376ea1a6 and matplotlib==3.8.0.dev1966+ge9f1d7b984 because these package versions have conflicting dependencies.
    
    The conflict is caused by:
        matplotlib 3.8.0.dev1966+ge9f1d7b984 depends on contourpy>=1.0.1
        matplotlib 3.8.0.dev1960+gac376ea1a6 depends on contourpy>=1.0.1
        matplotlib 3.8.0.dev1958+g75ef6e2196 depends on contourpy>=1.0.1
        matplotlib 3.8.0.dev1953+gb1e16f3741 depends on contourpy>=1.0.1
        matplotlib 3.8.0.dev1951+g5f785e3e19 depends on contourpy>=1.0.1
    
    To fix this you could try to:
    1. loosen the range of package versions you've specified
    2. remove package versions to allow pip attempt to solve the dependency conflict
    
    ERROR: ResolutionImpossible: for help visit https://pip.pypa.io/en/latest/topics/dependency-resolution/#dealing-with-dependency-conflicts
    

    If I use the command recommend in the upload-nightly-action's README (https://github.com/scientific-python/upload-nightly-action), I get:

    $ python -m pip install \
      --upgrade \
      --pre \
      --index-url https://pypi.anaconda.org/scientific-python-nightly-wheels/simple \
      --extra-index-url https://pypi.org/simple \
      matplotlib
    Looking in indexes: https://pypi.anaconda.org/scientific-python-nightly-wheels/simple, https://pypi.org/simple
    Collecting matplotlib
      Obtaining dependency information for matplotlib from https://files.pythonhosted.org/packages/b7/11/cad15f28ac27fdf6ff934ef9ec234b3de901a5d92bdc5b89cd58260a6f72/matplotlib-3.8.0rc1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata
      Downloading matplotlib-3.8.0rc1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (5.7 kB)
    Collecting contourpy>=1.0.1 (from matplotlib)
      Obtaining dependency information for contourpy>=1.0.1 from https://files.pythonhosted.org/packages/c4/98/5b929ae19caa8f05984943ea67e7a8782da935f4de722e95cb399ba7bea8/contourpy-1.1.1rc1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata
      Downloading contourpy-1.1.1rc1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (5.9 kB)
    Collecting cycler>=0.10 (from matplotlib)
      Using cached cycler-0.11.0-py3-none-any.whl (6.4 kB)
    Collecting fonttools>=4.22.0 (from matplotlib)
      Obtaining dependency information for fonttools>=4.22.0 from https://files.pythonhosted.org/packages/07/fb/c507a09ab93642224417c31a3acd2806bfa53f4d723cf5d6cbdf62f2f337/fonttools-4.42.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata
      Downloading fonttools-4.42.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (150 kB)
         ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 151.0/151.0 kB 9.4 MB/s eta 0:00:00
    Collecting kiwisolver>=1.0.1 (from matplotlib)
      Obtaining dependency information for kiwisolver>=1.0.1 from https://files.pythonhosted.org/packages/17/ba/17a706b232308e65f57deeccae503c268292e6a091313f6ce833a23093ea/kiwisolver-1.4.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata
      Downloading kiwisolver-1.4.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (6.4 kB)
    Collecting numpy>=1.21 (from matplotlib)
      Downloading https://pypi.anaconda.org/scientific-python-nightly-wheels/simple/numpy/2.0.0.dev0/numpy-2.0.0.dev0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (18.3 MB)
         ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 18.3/18.3 MB 13.8 MB/s eta 0:00:00
    Collecting packaging>=20.0 (from matplotlib)
      Using cached packaging-23.1-py3-none-any.whl (48 kB)
    Collecting pillow>=6.2.0 (from matplotlib)
      Obtaining dependency information for pillow>=6.2.0 from https://files.pythonhosted.org/packages/16/89/818fa238e37a47a29bb8495ca2cafdd514599a89f19ada7916348a74b5f9/Pillow-10.0.0-cp311-cp311-manylinux_2_28_x86_64.whl.metadata
      Downloading Pillow-10.0.0-cp311-cp311-manylinux_2_28_x86_64.whl.metadata (9.5 kB)
    Collecting pyparsing>=2.3.1 (from matplotlib)
      Obtaining dependency information for pyparsing>=2.3.1 from https://files.pythonhosted.org/packages/39/92/8486ede85fcc088f1b3dba4ce92dd29d126fd96b0008ea213167940a2475/pyparsing-3.1.1-py3-none-any.whl.metadata
      Downloading pyparsing-3.1.1-py3-none-any.whl.metadata (5.1 kB)
    Collecting python-dateutil>=2.7 (from matplotlib)
      Using cached python_dateutil-2.8.2-py2.py3-none-any.whl (247 kB)
    Collecting numpy>=1.21 (from matplotlib)
      Obtaining dependency information for numpy>=1.21 from https://files.pythonhosted.org/packages/e4/89/b770201fe08656adcac4283599d5f628317abd2d8cf99a7e465521510914/numpy-1.26.0rc1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata
      Downloading numpy-1.26.0rc1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (58 kB)
         ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 58.5/58.5 kB 16.7 MB/s eta 0:00:00
    Collecting six>=1.5 (from python-dateutil>=2.7->matplotlib)
      Using cached six-1.16.0-py2.py3-none-any.whl (11 kB)
    Using cached matplotlib-3.8.0rc1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (11.6 MB)
    Using cached contourpy-1.1.1rc1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (302 kB)
    Using cached fonttools-4.42.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.9 MB)
    Using cached kiwisolver-1.4.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.4 MB)
    Using cached numpy-1.26.0rc1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (18.2 MB)
    Using cached Pillow-10.0.0-cp311-cp311-manylinux_2_28_x86_64.whl (3.4 MB)
    Using cached pyparsing-3.1.1-py3-none-any.whl (103 kB)
    Installing collected packages: six, pyparsing, pillow, packaging, numpy, kiwisolver, fonttools, cycler, python-dateutil, contourpy, matplotlib
    Successfully installed contourpy-1.1.1rc1 cycler-0.11.0 fonttools-4.42.1 kiwisolver-1.4.5 matplotlib-3.8.0rc1 numpy-1.26.0rc1 packaging-23.1 pillow-10.0.0 pyparsing-3.1.1 python-dateutil-2.8.2 six-1.16.0
    
  3. jarrodmillman commented on Sep 11, 2023

    @jarrodmillman
    ContributorAuthor
    >>> from packaging import version
    >>> version.parse("3.8.0rc1") < version.parse("3.8.0.dev1951+g5f785e3e19")
    False
    >>> version.parse("3.8.0rc1") < version.parse("3.8.0rc1.dev1951+g5f785e3e19")
    False
    >>> version.parse("3.8.0rc1") < version.parse("3.8.0rc1.dev0")
    False
    >>> version.parse("3.8.0rc1") < version.parse("3.8.0rc2.dev0")
    True
    >>> version.parse("3.8.0rc1") < version.parse("3.8.0rc2.dev1951+g5f785e3e19")
    True
    

    So after releasing 3.8.0rc1 the basic version number should be updated to 3.8.0rc2.dev0 or 3.8.0rc2.dev.

  4. ksunden commented on Sep 11, 2023

    @ksunden
    Member

    The version number precedence things is because we have not merged the rc's tag into main, which as I understand is always how we have done it, waiting for final before doing that merge process. See also astropy/astropy#15284

    Yes, I intend to do a final release of 3.8.0 this week.

    I was to a certain degree waiting for pydata/xarray#8030 which I think has now gotten everything mpl-related sorted, though has not been merged yet, but I feel less bad about releasing when they have their fixes ready if not fully in place.

    I also would tend to want 3.7.3 out prior, but I suppose there is no real requirement of that (@QuLogic opinions?). I think that is ready to go, the milestone is even closed, but it has not been tagged.

  5. QuLogic commented on Sep 12, 2023

    @QuLogic
    Member

    Well, 3.7.3 is out now, so you can feel free to release 3.8.0 whenever.

  6. QuLogic commented on Sep 12, 2023

    @QuLogic
    Member

    Now that #26647 is merged, would it be possible to have a matplotlib 3.8.0rc2 release with 3.12 wheels soon. It would be helpful for folks (like me) trying to test downstream (from matplotlib) packages against 3.12.

    Do you need Matplotlib 3.8.0(rc) wheels or Python 3.12 wheels? The latter is already covered by Matplotlib 3.7.3.

  7. jarrodmillman commented on Sep 12, 2023

    @jarrodmillman
    ContributorAuthor

    Matplotlib 3.8.0 Python 3.12 wheels would be the most convenient. We are using --pre to get numpy 1.26.0rc1 in our CI, but that means we also get matplotlib 3.8.0rc1 (and then have to wait for it to build Python 3.12 wheels).

    Are you still planning to release matplotlib 3.8 this week? If so, we will probably just wait until that happens before merging PyWavelets/pywt#683 and trying to get pywavelets 1.5 out, which is needed before we can release scikit-image 0.22.

  8. added this to the v3.8.0 milestone on Sep 15, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions