Skip to content
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

[WIP] Automate release process #5045

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

alexdesiqueira
Copy link
Member

Description

Starting a discussion: some machinery to automate our releasing process.
Kindly stolen from our friends at napari.

Checklist

For reviewers

  • Check that the PR title is short, concise, and will make sense 1 year
    later.
  • Check that new functions are imported in corresponding __init__.py.
  • Check that new features, API changes, and deprecations are mentioned in
    doc/release/release_dev.rst.

@alexdesiqueira alexdesiqueira added the 🤖 type: Infrastructure CI, packaging, tools and automation label Nov 2, 2020
@jni
Copy link
Member

jni commented Nov 2, 2020

❤️ !!!

@hmaarrfk
Copy link
Member

hmaarrfk commented Nov 2, 2020

I think Napari is a pure python package correct?

If so, this will need to be adapted to compile manylinux and windows.

Which begs the question, is it more appropriate to do this in the wheel builder?

@alexdesiqueira
Copy link
Member Author

@hmaarrfk no idea at all, this is really out of my scope. Just want to start the discussion 🙂

@jni
Copy link
Member

jni commented Nov 3, 2020

Yes, napari is pure Python. @hmaarrfk does GitHub actions not allow compiling on Linux and Windows? I know we (napari) also create our app bundles on GitHub actions and iirc that is machine dependent.

My goal is to bring wheel building to this repo. The multiple repo dance at release time is frustrating to say the least.

@hmaarrfk
Copy link
Member

hmaarrfk commented Nov 3, 2020

I should probably add this to the README or some knowledge base location. Let me know if you have an appropriate file for it.

The reason behind the original wheel builder is that publishing binary wheels to pypi requires the wheels to abide by certain standards. Whether that be older versions of OSX, or older versions of libc (for linux) so that they may be installable on a wide variety of computers.Therefore, it requires some care as to exactly what compilers, and what versions of linux are used at that time. This added complexity to a main repo isn't always desirable. In fact, being able to iterate on the release process seperately is one reason why conda-forge has been able to release nearly the full scientific for python 3.9 so quickly.

So the wheel building process is interested in building with backward compatibility as the #1 priority, with 1 build for each python + platform combination, but the development repo is more interested in testing software on the types of machines most users will actually use: Qt/NoQt, Python Optimize, and we can make assumptions that we probably don't need 3 builds for arm, but rather test ARM on Python 3.8 and assume that the wheel builder should be bale to take care of 3.6, and 3.7 rather easily.

@jni
Copy link
Member

jni commented Nov 4, 2020

So the wheel building process is interested in building with backward compatibility

sure, but wheel builds happen on tags, or on a schedule, rather than on each PR. I don't see the independence of the wheel builds as a blocker — they would simply live in different config files.

@emmanuelle
Copy link
Member

Thanks for making these points @hmaarrfk (and for the work of setting up the wheels repo). I agree with @jni that I can't see a good reason why we could not have some separate actions and config (including compilers versions etc.) for the wheels, but still in the main repo?

Base automatically changed from master to main February 18, 2021 18:23
@alexdesiqueira
Copy link
Member Author

Hey @scikit-image/core,
does this clash with #5397? Please close this one if it does. Thank you!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
🤖 type: Infrastructure CI, packaging, tools and automation
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants