FazBrowse GitHub Viewer | Trending |
URL:
| Home
Tools: [Download Repo ZIP]   [Original HTTPS Page]

[ENH]: Add a nightly wheel build · Issue #21635 · matplotlib/matplotlib · GitHub

Repository navigation

[ENH]: Add a nightly wheel build #21635

Closed

Description

Problem

Automated testing of third party packages against the latest matplotlib currently requires installing from source which takes quite a while.

Proposed solution

Add a github action (with cibuildwheel maybe?) that builds the latest matplotlib on one or a few OSes x python versions. Somethign like:

Python 3.8 and 3.9 on latest ubuntu

These wheels should then be uploaded to a consistent place (maybe somewhere on maptlotlib.org?) with a clear naming scheme so it's easy to install then from a scheduled github action.

Activity

  1. tacaswell commented on Nov 15, 2021

    Member

    I think we build them already (https://github.com/matplotlib/matplotlib/actions/workflows/cibuildwheel.yml) on every merge to main and 3.5.x, but do not upload them anyplace yet.

  2. ianhi commented on Nov 15, 2021

    ContributorAuthor

    oooooh - Thats almost perfect!

    You can get a list of them with:

    curl   -H "Accept: application/vnd.github.v3+json"   https://api.github.com/repos/matplotlib/matplotlib/actions/artifacts
    

    ( following https://docs.github.com/en/rest/reference/actions) and from there it should be possible to install the correct version. The only issue is then that the download is pretty large (284 MB!).

    So an amended version of this request is to upload two artifacts from that workflow:

    1. The current wheels as is
    2. A subset of the wheels (e.g. Ubuntu, x86_64, CPython) named something like CI-test-wheels
  3. matthewfeickert commented on Mar 30, 2022

    Contributor

    Coming here from #21637 (comment), I have a branch on my fork that, inspired by h5py (c.f. #21637 (comment)), adds a GitHub action workflow that is able to:

    • Run on a scheduled CRON job and also on demand through workflow dispatch.
    • Find the latest completed build of the wheels that originated from main.
    • Download that builds "wheels" artifact that contains all of the wheels built.
    • Install anaconda-client (from GitHub and not PyPI given Update anaconda-client release on PyPI anaconda/anaconda-client#540).
    • Use the anaconda-client CLI API to upload the subset of all the wheels that are x86_64.manylinux wheels, given

    A subset of the wheels (e.g. Ubuntu, x86_64, CPython) named something like CI-test-wheels

    , to the scipy-wheels-nightly Anaconda Cloud organization as nightlies. This gets all the way up to the actual upload and then fails as the value of ANACONDA_ORG_UPLOAD_TOKEN that I currently have in my fork's repo secrets is just "FAKETOKEN" as I'm not a maintainer.

    Example:

    So to my mind this is working and as it doesn't need to build anything it is pretty fast too. 👍

    @tacaswell, @QuLogic, @jklymak, @greglucas, @ianhi if this approach sounds good to you I can PR (though I should also add docs given #21637 (comment)). It looks like the other projects in the scipy-wheels-nightly Anaconda Cloud organization are uploading all of their wheels though, so if you'd like me to have this also upload all of the wheels instead of just the x86_64.manylinux I can certainly do that.

  4. added this to the v3.6.0 milestone on Mar 31, 2022
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


      Back | FazBrowse Home | New Git URL