scientific-python / upload-nightly-action

This action is used to upload nightly builds of your package.
https://anaconda.org/scientific-python-nightly-wheels
BSD 3-Clause "New" or "Revised" License
7 stars 10 forks source link

Request access for Cython #80

Closed lysnikolaou closed 5 months ago

lysnikolaou commented 5 months ago

Hi all, now that there's ongoing work on making Cython work with the free-threaded build of CPython, it'd be nice for the other projects that are trying to do the same (NumPy, SciPy, scikit-learn, etc.) to be able to install Cython nightly.

The extra load should be minimal, since we only plan to upload the non-compiled wheel, which means we'll only upload one wheel per version, so no platform-specific wheels.

Cython issue: https://github.com/cython/cython/issues/6223

tupui commented 5 months ago

Hi @lysnikolaou, when you say non compiled wheel, does it mean someone could just install main with pip? Or is there something specific to do?

Otherwise, in general I am +1 for Cython.

If your request goes through, you will need to provide us with anaconda handles of the maintainers you want to have in the team over there.

matthewfeickert commented 5 months ago

@lysnikolaou I think this sounds good, so assuming no one has objections, please complete the missing items from the checklist to get started.

image

If you'd also like to use the scientific/upload-nightly-action GitHub Action please check out the action repo's README. If you need to collect wheels from different CI jobs, consider creating a new GitHub Actions workflow with logic similar to matplotlib's or Awkward's.

If you have any questions please just ask here!

lysnikolaou commented 5 months ago

when you say non compiled wheel, does it mean someone could just install main with pip? Or is there something specific to do?

I'm not sure if I understand the question, but my understanding is this (correct me if I'm wrong):

Cython basically ships two different types of wheels. Firstly, note that Cython, the compiler, is basically a pure-Python package. One set of wheels, where the Python modules of Cython themselves get compiled with Cython and therefore the wheels have to be platform and version-specific. Additionally, there's a version where the Python sources are shipped themselves without any sort of compilation, therefore that is a py3-none-any wheel. The only difference between the two is basically performance, like @da-woods described on the Cython issue.

I think this sounds good, so assuming no one has objections, please complete the missing items from the checklist to get started.

Since I'm not a maintainer of Cython, it'd be best if @scoder or @da-woods did this. I'm just helping set this up and I'll open a Cython PR with the needed CI shortly.

tupui commented 5 months ago

To clarify, the original intent of this anaconda channel is to provide a place where wheels of difficult projects to build (in our ecosystem) can be hosted. We are in a better situation as our quota was increased, but it still good if we are conscious about that.

TL;DR if someone can just do pip install git+https://github.com/... then to me there is little advantage to use this conda channel.

That being said, considering the importance of Cython in our ecosystem, I would personally don't mind 😃

da-woods commented 5 months ago

TL;DR if someone can just do pip install git+https://github.com/... then to me there is little advantage to use this conda channel.

or NO_CYTHON_COMPILE=true pip install git+https://github.com/... if they don't want to spend time building Cython (just emphasising this because I think it makes sense for people who just want to test the current master).

But yes - now you mention it I'm slightly unclear what a wheel gives that a link to github doesn't.

I'm definitely keen to encourage/help people test with the latest version of Cython so I'll go through the steps above if people do want a wheel.

matthewfeickert commented 5 months ago

I'm definitely keen to encourage/help people test with the latest version of Cython so I'll go through the steps above if people do want a wheel.

That's enough in my mind, so please feel free to proceed.

lysnikolaou commented 5 months ago

now you mention it I'm slightly unclear what a wheel gives that a link to github doesn't

FWIW I think that giving people the ability to do pip install -i https://pypi.anaconda.org/scientific-python-nightly-wheels/simple cython in their CI without having to install from master directly (probably a few more breakages than wheels built twice a week, plus people generally avoid it) and also not pin to a specific commit that they'll have to go back and change afterwards will encourage them to test early (both Cython and the free-threaded build itself).

da-woods commented 5 months ago

Right - I've created an Anaconda account with username da-woods.

matthewfeickert commented 5 months ago

@lysnikolaou I've got everything setup on the backend now, so if you can get the API token and then a workflow to upload the nightly wheels you're good to go. :+1:

lysnikolaou commented 5 months ago

Thanks @matthewfeickert! @da-woods Will you please add the repository secret so that we can test cython/cython#6229?

matthewfeickert commented 5 months ago

@lysnikolaou if you have an Anaconda cloud account I can add you to the team as well, which would be preferred so that package teams on the nightly index don't have just a single maintainer.

lysnikolaou commented 5 months ago

@matthewfeickert The second person should probably be @scoder. I'm okay to be added but I feel that that decision should lie with the maintainers.

matthewfeickert commented 5 months ago

Thanks. 👍 @scoder do you have an Anaconda Cloud account?

matthewfeickert commented 5 months ago

PR https://github.com/cython/cython/pull/6229 is in and wheels got uploaded, so closing as everything looks good. :+1: