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

conda-forge feedstock? #378

Closed
MilesCranmer opened this issue Oct 6, 2023 · 11 comments
Closed

conda-forge feedstock? #378

MilesCranmer opened this issue Oct 6, 2023 · 11 comments
Labels
enhancement New feature or request

Comments

@MilesCranmer
Copy link
Contributor

MilesCranmer commented Oct 6, 2023

Hi @cjdoris,

I'm eager to try porting PySR to PythonCall.jl from PyJulia. However, the last major hurdle is conda-forge support. Would it be possible to create a juliacall feedstock, similar to https://github.com/conda-forge/pyjulia-feedstock/? This would allow Python+Julia packages like PySR to depend on PythonCall in conda builds. (Similar to how other high-performance Python packages depend on a C++ backend)

For what it's worth, the conda-forge version of PySR has made up about 1/3rd of its total downloads while pip makes up 2/3rds. So I think conda, despite being slightly less popular, still captures a decent portion of Python users.

cc @mkitti

Thanks!
Miles

@MilesCranmer MilesCranmer added the enhancement New feature or request label Oct 6, 2023
@MilesCranmer
Copy link
Contributor Author

By the way, I didn't realize you were at Alan Turing institute! I visit there sometimes (Im a prof at Cambridge). Next time I visit Turing institute I will let you know and maybe we can get a coffee.

@mkitti
Copy link
Member

mkitti commented Oct 6, 2023

Did you want PythonCall.jl or (py)juliacall in conda-forge?

@MilesCranmer
Copy link
Contributor Author

juliacall (but it would have to package PythonCall.jl). I think it would have to depend on the julia-feedstock and use the Python that comes with the environment, rather than setting up its own CondaPkg.

@cjdoris
Copy link
Collaborator

cjdoris commented Oct 10, 2023

There have been PRs around for adding JuliaPkg and JuliaCall to conda-forge for a while, but they seem to have stalled: conda-forge/staged-recipes#20379, conda-forge/staged-recipes#20380.

I don't have the time to contribute to the PRs myself (it's not simple) but you could team up with mkitti to get them through. I'm happy to provide opinions though.

@mkitti
Copy link
Member

mkitti commented Oct 11, 2023

My main objections there was the name since conda-forge is supposed to be language agnostic. There is also an R package called juliacall, thus I think we should call the Python package pyjuliacall and the R package r-juliacall.

I will see about resubmitted those staged recipes with the naming scheme above.

@MilesCranmer
Copy link
Contributor Author

Pinging this thread again. I should mention that I'm happy to maintain the feedstock once it's running. I just have no time to set up the initial build due to teaching this term. Maybe that makes things a bit easier to push through. Once it's running I can maintain it, as I would presumably be able to switch away from PyJulia at that point, and can support PythonCall instead.

@MilesCranmer
Copy link
Contributor Author

MilesCranmer commented Jan 21, 2024

cc @schlichtanders too.

@cjdoris if you could help in getting the initial conda-forge working, I can take over maintaining it (and perhaps @mkitti as well). I can also help you long-term in maintaining PythonCall.jl/juliacall because I would depend on those for PySR. I've been good about keeping PyJulia working as it is my key dependency (https://github.com/JuliaPy/pyjulia/commits/master/). I am basically offering I could do the same for PythonCall.jl once it is ready for me to use in PySR.

I really just need your help in making the initial scheme work because it requires deep knowledge of the internals!

I don't have the time to contribute to the PRs myself (it's not simple) but you could team up with mkitti to get them through. I'm happy to provide opinions though.

I can help with maintaining the ecosystem longer term, so if you can help now, I think would actually save net time.

@cjdoris
Copy link
Collaborator

cjdoris commented Jan 27, 2024

Sure, what help do you need? The PR to add juliacall and juliapkg to conda-forge looks good to me.

Help maintaining PythonCall/JuliaCall is most welcome - my available time to spend on it fluctuates a lot over the year! I'm slowly working towards v1 but there's a lot to do.

@MilesCranmer
Copy link
Contributor Author

Thanks! I think at this point, just helping get conda-forge/staged-recipes#25097 pushed through as soon as possible would be best.

@mkitti
Copy link
Member

mkitti commented Jan 28, 2024

Here's the prototype

conda install julialang::pyjuliacall

@MilesCranmer
Copy link
Contributor Author

Thanks to @mkitti, this is all done!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

3 participants