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

Add basic "build nightly wheels" instructions #185

Merged
merged 2 commits into from
May 23, 2023

Conversation

betatim
Copy link
Contributor

@betatim betatim commented May 22, 2023

This adds a basic amount of instructions for how to build and upload nightly wheels for your project.

This is a start, we probably need to flesh it out a bit, but we need some kind of starting point :D


I sorted the authors alphabetically by surname. If there is some other sorting mechanism you prefer let me know.

Copy link
Member

@bsipocz bsipocz left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'll commit the linter fixes, which hopefully will trigger netlify and the rendering.

spec-0005/index.md Outdated Show resolved Hide resolved
Comment on lines +36 to +38
1. Get access to the area that nightly wheels are uploaded to
2. Setup a CI step that builds wheels for your project
3. Setup a CI step that uploads wheels to https://anaconda.org/scientific-python-nightly-wheels/
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would reorder these and put no2 in the first position as no1 and no3 kind of belongs together

Copy link
Contributor

@pllim pllim left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should expectation of what is a "minimally viable" wheel look like? Example: At the very least, please publish manylinux wheel and so on?

Maybe have a section that lists your core projects with wheels so people can use them as examples? Or maybe point to a package template with that info?

they find.

There are a few steps to implementing this for your project:
1. Get access to the area that nightly wheels are uploaded to
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This needs to be elaborated. Which area? What URL?


There are a few steps to implementing this for your project:
1. Get access to the area that nightly wheels are uploaded to
2. Setup a CI step that builds wheels for your project
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Would be nice to link to some doc that teaches people how to build wheel for universal (pure Python) and specific arch (if they have Cython, C-ext, Fortran, etc). Perhaps already some guides out there? Eyes the cookiecutters group...

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do you know a good guide? I don't unfortunately.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would not hold up the PR on this, after all we're really focusing on the core or big libraries here, if they have complex dependencies, they should have figured out their builds already for normal releases.

2. Setup a CI step that builds wheels for your project
3. Setup a CI step that uploads wheels to https://anaconda.org/scientific-python-nightly-wheels/

For step (1) contact XXX. Deposit the token you get as a [secret on your repository](https://docs.github.com/en/actions/security-guides/encrypted-secrets) named `UPLOAD_TOKEN`.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Put a placeholder so #168 can be mentioned here when it is accepted?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't know what is best here. In some way there is no need for this token to be stored in a readable way. If for some reason you need the value of the token you can have it regenerated. However, people might not realise that the GitHub Secrets are read-only?


For step (1) contact XXX. Deposit the token you get as a [secret on your repository](https://docs.github.com/en/actions/security-guides/encrypted-secrets) named `UPLOAD_TOKEN`.

The work for step (2) depends on your project. You are probably already doing this for your
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actually, I am not sure if you should make this assumption. A lot of smaller project might just push their sdist tarball and call it a release. Maybe link to some external doc related to Python releases?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't know what good advice to give to people about this is. Should we tell people to use https://cibuildwheel.readthedocs.io/en/stable/?

once a week.

For step (3) there is a GitHub Action that you can use. You can find the action at
https://github.com/scientific-python/upload-nightly-action. To use it in your "build wheels
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks pretty barebones. Any interest to adopt or collaborate with https://github.com/OpenAstronomy/github-actions-workflows ?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Something for @Carreau maybe who created the GitHub action

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sure, we can look into that as well. No particular objections. Those action seem pretty complex ?

@bsipocz
Copy link
Member

bsipocz commented May 23, 2023

I'm opening issues for core projects that don't yet test with dev upstream, it would be super useful to be able to link to this docs, even if it's the unfinished version. So, can I merge as is with the understanding of we'll follow-up with the comments above?

@bsipocz bsipocz merged commit f19b7ca into scientific-python:main May 23, 2023
1 check passed
@betatim betatim deleted the patch-1 branch May 23, 2023 22:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants