-
-
Notifications
You must be signed in to change notification settings - Fork 284
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
pypy next steps #867
Comments
Hi. I believe this is a follow up to conda-forge/conda-forge-pinning-feedstock#225 which proposed (as far as I understand it, I may be wrong):
|
I think there are some things on the migration/bot side that need to be done (not that this is blocking the other steps except for the rebuild).
Aside from these the migration will look like the arch rebuild. |
Once the Python 3.8 rollout activity dies down, I would love to move this issue forward. |
@CJ-Wright @ocefpaf ping |
@mariusvniekerk do you think it better to enhance the current cfep9 migration spec in the bot or make a bespoke migrator class? |
@mattip do you have a list of packages that you want to build this out for? You don't need to list everything, we can get the needed deps for the packages you want to rebuild. |
numpy, scipy, pandas, matplotlib would be a great start |
Anyone got a link to the mentioned "spec"? |
Perhaps the reference is to this meeting's minutes which reference this plan |
Also: dask, streamz, and xonsh. Are there issues with the library search order and noarch support? |
I put together this slightly more fleshed-out plan: https://github.com/msarahan/pypy-python-structure Compared to the earlier plan, it is much less disruptive in terms of hotfixes. However, renaming the python package is rather dramatic (though completely reasonable in my opinion) and this probably needs a lot of community review. I hope it's enough to help you push forward. |
I commented there. How does this affect user's experience? Would a user ever get into a situation where they have two interpreters in the same conda environment? |
A couple of questions.
|
I am not sure what this means. Pure python packages will work as-is. C-extension packages will need to be rebuilt with the relevant PyPy interpreter each time PyPy releases a new major.minor version, since the c-extension modules built with CPython cannot be loaded into PyPy and visa-versa. In fact. each time PyPy changes its major.minor version, the modules will need rebuilding. Those changes should happen less frequently now that |
Ah, I must have read about |
@mattip, thanks for the link to the Google Doc.
xref: msarahan/pypy-python-structure@7b71aed#r36041947 (just so that those comments don't get lost) When I have further questions, I'll post them at https://github.com/msarahan/pypy-python-structure/issues |
I don't think so, unfortunately. There must be a metapackage above to provide the users the choice of implementations and to stand in for the existing references to "python". That can't serve as the mutex, because then you'd have a cyclical dependency. So, you also need a layer below that also converges on one name (that's the mutex part). If you see a better way, I'm all for it, but I think 3 packages is the minimum. |
If I understand @msarahan's correctly, all the existing Similarly, adding the cpython metapackage to Along these lines I think it is possible to retain the name of the |
Noticed that @mbargull made the same observation about inconsistent environment in msarahan/pypy-python-structure#3. |
Yes, adding hard dependencies via hotfixing is a too disrupting thing, esp. when we are talking about one of the most common packages, |
Here's a less intrusive plan,
With this, no existing recipes need to change. 2, 3 - conda-forge/python-feedstock#309 Above two PRs can be merged as is, if you agree. |
Also, |
Building for pypy would look like https://github.com/conda-forge/conda-forge-pinning-feedstock/pull/225/files |
@mbargull, can you have a look at #867 (comment) ? |
Depending on Rather than using build string for the mutex why not add a constrains on the python implementation type via a selector package? Specifically:
This allows hotfixing in the future and the |
I suppose there is also: |
Hey all, we are seeing some issues where PyPy is being pulled in for Python 3.6 where CPython was pulled in before. Am a little unclear if this is expected or if we should be doing something differently. Thoughts? 🙂 Edit: Here's a no-op PR ( conda-forge/distributed-feedstock#118 ) with a build with demonstrating this issue. |
Proposing pulling the new Python 3.6 packages until someone has time to debug this further. ( conda-forge/admin-requests#15 ) |
FWIW at a package level, this seems to be a viable workaround. Not the prettiest thing though # filename: recipe/meta.yaml
package:
name: blah
version: 1
requirements:
host:
- python
- python_abi * *_cp36m # [py36]
run:
- python
- python_abi * *_cp36m # [py36] |
Maybe this is the missing piece ( conda-forge/python-feedstock#321 )? Edit: Looks like Python 2.7 may need this too ( conda-forge/python-feedstock#322 ). |
Also it seems like these changes were not applied to Python 3.7. Is that expected? |
First PR to add a pypy build conda-forge/certifi-feedstock#53 |
Thanks for all the tireless work on this, @isuruf! |
Closing now. See https://conda-forge.org/docs/maintainer/knowledge_base.html#pypy-builds for docs Only remaining issue is patching defaults. To work around that use strict channel priority as indicated in the docs. |
Thanks @isuruf! 😄 |
Thanks again to the conda forge team for the buildout of PyPy packages. PyPy has released 7.3.2 which is binary-compatible with 7.3.1.
Is there a process flow for doing any of the above? |
That makes sense. Yeah we dropped Windows 32-bit support a long time ago. So I think we would need to wait for 64-bit support for Windows. Adding Python 3.7 PyPy would be great! Updating the existing Python 3.6 PyPy, should just be a matter of adding a PR to this feedstock. Adding Python 3.7 would be done through a new recipe to staged-recipes, which could be based of the If anyone else sees something we would need to do here, please hop in :) |
What is the support plan for pypy3.6? Should we build it with pypy3.7? |
For the time being that sounds like a good idea. It's the only PyPy version that we have a decent number of packages built for. |
This is the ultimate proof of readiness for PyPy and it's time that we could simply use it they have put so much work into it over the last 15 years can you guys automate kicking off builds of everything for PyPy? |
@brianmingus2 My reply may be inappropriate, please clarify your intention if I missed. This issue describes the extensive work conda forge completed to make PyPy3.6 available. On Sept 26 I used the closed issue to bring up the new release of PyPy3.7, I probably should have opened a new issue instead. In the mean time, the migration for PyPy3.7 has begun. Some 3.7 packages are already available, more are coming. |
Thank you for the reply, what is the hangup, lack of integration tests requiring manual review? |
See the conda forge status page: conda-forge.org/status It lists the packages that are done, in pr etc. help fixing failed builds is appreciated! |
The PyPy3.7 migration only began 4 days ago. It takes a while for the bot to churn through all the packages. |
The pypy guys just released an updated 3.7 version that now includes Windows 64-bit support. Is there something that needs help to get this integrated? |
@asteppke see conda-forge/pypy3.6-feedstock#39. We need to expand the recipe to download the windows64 pypy2.7 in order to build pypy3.7 |
TODO:
python
output topypy
- Add pypy meta package staged-recipes#10828Then, start building packages
The text was updated successfully, but these errors were encountered: