Thanks to visit codestin.com
Credit goes to github.com

Skip to content

[ENH]: Add a nightly wheel build #21635

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
ianhi opened this issue Nov 14, 2021 · 3 comments · Fixed by #22733
Closed

[ENH]: Add a nightly wheel build #21635

ianhi opened this issue Nov 14, 2021 · 3 comments · Fixed by #22733
Milestone

Comments

@ianhi
Copy link
Contributor

ianhi commented Nov 14, 2021

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.

@tacaswell
Copy link
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.

@ianhi
Copy link
Contributor Author

ianhi commented Nov 15, 2021

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

@matthewfeickert
Copy link
Contributor

matthewfeickert commented Mar 30, 2022

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:

passes_until_expected_fail

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
4 participants