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

Request access for sympy and python-flint #111

Closed
oscarbenjamin opened this issue Oct 22, 2024 · 19 comments
Closed

Request access for sympy and python-flint #111

oscarbenjamin opened this issue Oct 22, 2024 · 19 comments

Comments

@oscarbenjamin
Copy link

CC @asmeurer @agriyakhetarpal

Following discussions at sympy/sympy#27183 (comment) I am wondering if it would be possible to begin uploading nightly wheels for SymPy and python-flint.

SymPy is not hard to build but it now makes use of python-flint as an optional dependency (and will do so more extensively in future - conda-forge/sympy-feedstock#57) and python-flint is a lot more difficult to build. Without python-flint it is still useful for downstream projects to be able to test nightly builds of SymPy plus other dependencies like NumPy etc all installed from the same index.

I have just made an Anaconda account:
https://anaconda.org/oscarbenjamin

I assume that this is Aaron's Anaconda account:
https://anaconda.org/asmeurer

@tupui
Copy link
Member

tupui commented Oct 22, 2024

Hi 👋 I am voting +1 😃

@asmeurer
Copy link

I agree we should do this.

Im confused about the Anaconda.org accounts, though. Do they come into play here?

@tupui
Copy link
Member

tupui commented Oct 22, 2024

What do you mean exactly?

Scientific Python has an Anaconda account yes. They support us by providing us a bit more storage than a normal account. There is nothing more besides that.

@oscarbenjamin
Copy link
Author

I'm not sure I fully understand how all this works but let me try to explain:

Uploads to the Anaconda scientific-python nightly index are authenticated by a secret associated with an Anaconda account. This issue is to request that our Anaconda accounts have the permission to upload these wheels. Then we can generate secrets and add them to SymPy's GitHub and use those in CI to upload the wheels.

https://scientific-python.org/specs/spec-0004/#process-for-adding-new-projects

@tupui
Copy link
Member

tupui commented Oct 22, 2024

That's correct 👍 And the first step is this issue where some admins vote to say if we think we should add your wheels or not to this org. The Scientific Python org (scientific-python-nightly-wheels: https://anaconda.org/scientific-python-nightly-wheels) is an org on Anaconda, not on conda-forge, in case that could also be a confusion. https://anaconda.org/scientific-python-nightly-wheels.

@matthewfeickert
Copy link
Member

matthewfeickert commented Oct 22, 2024

I'm also +1 and this seems like an easy enough approve that we can move forward:

Steps to gain upload access to https://anaconda.org/scientific-python-nightly-wheels/

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.

@asmeurer
Copy link

@oscarbenjamin mentioned that my anaconda.org account is anaconda.org/asmeurer (this is correct). But does this actually matter for this?

@tupui
Copy link
Member

tupui commented Oct 22, 2024

It does, see the message from @matthewfeickert. We need to create a team and put at least 2 people in it so that you can upload wheels. You have to create personal tokens and use them to upload wheels. These tokens only give you the ability to upload wheels to your own projects.

@agriyakhetarpal
Copy link

If it helps, I'll be happy to set up the CI job to upload wheels for the SymPy community within my PR (sympy/sympy#27183) itself, as linked above in the PR description.

@oscarbenjamin
Copy link
Author

my anaconda.org account is anaconda.org/asmeurer (this is correct). But does this actually matter for this?

I have just created a token under my Anaconda account as described above and added it to the SymPy GitHub repo. I don't think you need to do that as well. The token has an expiry date of 1 year though. After that time the token would need updating and it is better if more than one person can do that. I should have discussed this with you before but for SymPy if we need two names for this then you and me are the obvious choices.

@oscarbenjamin
Copy link
Author

  • Direct me (@matthewfeickert) to a sympy nightly wheel for me to upload to create the package in the registry
  • Direct me (@matthewfeickert) to a python-flint nightly wheel for me to upload to create the package in the registry

Can we just use any of the wheels from the most recent releases for now?

https://pypi.org/project/python-flint/#files
https://pypi.org/project/sympy/#files

Otherwise for SymPy I could build a wheel and put it somewhere. For python-flint the wheels from the most recent build are available as artifacts in CI:
https://github.com/flintlib/python-flint/actions/runs/11184443410

@oscarbenjamin
Copy link
Author

Otherwise for SymPy I could build a wheel and put it somewhere.

Here is a SymPy wheel (I had to add the .zip extension for GitHub to allow upload):

sympy-1.14.dev0-py3-none-any.whl.zip

@matthewfeickert
Copy link
Member

@oscarbenjamin @asmeurer You should be good to go with uploading using the token you generated to https://anaconda.org/scientific-python-nightly-wheels/sympy and https://anaconda.org/scientific-python-nightly-wheels/python-flint. Please verify this and let us know.

@oscarbenjamin
Copy link
Author

Thanks @matthewfeickert (and everyone else!), I confirm I got the notification emails from Anaconda.

I'm going to bed now but in the next few days I will try to get the upload working.

@oscarbenjamin
Copy link
Author

@oscarbenjamin
Copy link
Author

And the python-flint upload was successful after flintlib/python-flint#235

https://anaconda.org/scientific-python-nightly-wheels/python-flint/files

@oscarbenjamin
Copy link
Author

I think that is everything done. Thanks everyone and I guess this can be closed.

The only thing I am not sure about is this:

I don't seem to be able to view these group pages. I get:

You don't have permission to view this page.

@Carreau
Copy link
Collaborator

Carreau commented Oct 23, 2024

If you go to https://anaconda.org/oscarbenjamin/groups you should be able to see all your groups.

To be fair I can't see https://anaconda.org/scientific-python-nightly-wheels/groups/ipykernel and I'm part of it; I think it's only a page for the org admin to see the groups.

@oscarbenjamin
Copy link
Author

If you go to https://anaconda.org/oscarbenjamin/groups you should be able to see all your groups.

Thanks, I can see them there although it only tells me who is in the group and not what packages are connected to it although it is obvious from the group names.

I assume then that everything is done so I will close this.

SymPy itself now becomes the first consumer of python-flint nightly wheels along with the numpy and scipy ones: sympy/sympy#27188. I know that other projects test against the SymPy master branch and this will make it a bit easier for them as well as allowing them to test with latest python-flint at the same time.

Once we have a WASM build there as well we can make it possible to test the development versions of both SymPy and python-flint in the browser which will be very helpful for bug reports from less technical users.

Thanks all!

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

No branches or pull requests

6 participants