Closed oscarbenjamin closed 1 month ago
Hi 👋 I am voting +1 😃
I agree we should do this.
Im confused about the Anaconda.org accounts, though. Do they come into play here?
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.
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
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.
I'm also +1 and this seems like an easy enough approve that we can move forward:
ANACONDA_ORG_UPLOAD_TOKEN
sympy
nightly wheel for me to upload to create the package in the registrypython-flint
nightly wheel for me to upload to create the package in the registrysympy
team "Group" on https://anaconda.org/scientific-python-nightly-wheelspython-flint
team "Group" on https://anaconda.org/scientific-python-nightly-wheelsscientific-python-nightly-wheels/sympy
to the sympy
team "Group"scientific-python-nightly-wheels/python-flint
to the python-flint
team "Group"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.
@oscarbenjamin mentioned that my anaconda.org account is anaconda.org/asmeurer (this is correct). But does this actually matter for this?
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.
If it helps, I'll be happy to set up the CI job to upload wheels for the SymPy community within my PR (https://github.com/sympy/sympy/pull/27183) itself, as linked above in the PR description.
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.
- [ ] 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
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):
@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.
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.
SymPy upload is successful after https://github.com/sympy/sympy/pull/27186
https://anaconda.org/scientific-python-nightly-wheels/sympy/files
And the python-flint upload was successful after https://github.com/flintlib/python-flint/pull/235
https://anaconda.org/scientific-python-nightly-wheels/python-flint/files
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:
- Verify that I have added you to the
sympy
team "Group" on https://anaconda.org/scientific-python-nightly-wheels- [x] Verify that I have added you to the
python-flint
team "Group" on https://anaconda.org/scientific-python-nightly-wheels
I don't seem to be able to view these group pages. I get:
You don't have permission to view this page.
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.
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: https://github.com/sympy/sympy/pull/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!
CC @asmeurer @agriyakhetarpal
Following discussions at https://github.com/sympy/sympy/pull/27183#issuecomment-2429325021 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 - https://github.com/conda-forge/sympy-feedstock/issues/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