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

Switch to juliaup #256

Open
MilesCranmer opened this issue Jul 23, 2023 · 7 comments
Open

Switch to juliaup #256

MilesCranmer opened this issue Jul 23, 2023 · 7 comments

Comments

@MilesCranmer
Copy link

I am wondering if this feedstock can switch to a juliaup-based distribution on conda forge? Here are the reasons for doing so:

  1. Apple is completely switching their computers to Apple silicon, so I think it is important we get osx-arm working.
  2. Windows is not yet integrated Initial Windows build attempt #168, and seems difficult to get working.
  3. Significantly lower maintenance burden.

What do you think @mkitti @ngam @staticfloat @stevengj? How hard would it be to switch to juliaup? Are there any attempts at doing so?

@MilesCranmer
Copy link
Author

MilesCranmer commented Jul 23, 2023

There is this feedstock: https://github.com/conda-forge/juliaup-feedstock. I guess one option is to depend on that feedstock, and use it to install a specific julia version?

@mkitti
Copy link
Contributor

mkitti commented Jul 23, 2023

What @ngam and I discussed in the past is creating an alternative label for this. I'm not sure how to do this myself at the moment.

Perhaps another solution is to just put this in another conda channel that is not conda-forge. julia-forge?

@ngam
Copy link
Contributor

ngam commented Jul 23, 2023

This would be akin to "binary repackaging" and usually it is highly not recommended in conda-forge. However, your points are valid and that's why we discussed doing this in the past. A few pointers:

**

I believe the bigger problem with Julia (in this feedstock here) is that in the future we want interoperability between shared libraries and that's pretty difficult to achieve. I also am not entirely sure we will be able to get to a consensus about how to fully package and distribute Julia packages in conda-forge ecosystem anytime soon. I am bringing these issues up to actually support binary repackaging (i.e., what you're proposing). We are building Julia from source by doing a lot of work, with no particular value because we cannot take this source-building further...

@mkitti
Copy link
Contributor

mkitti commented Jul 23, 2023

I'm not absolutely sure it would be binary repackaging because we might end up downloading Julia from the user's computer instead of during build. Instead we might just install an activate script that would ensure the correct Julia version is enabled.

@mkitti
Copy link
Contributor

mkitti commented Aug 29, 2023

@ngam would it be easier to provide an alternate label here or just upload this to a different channel?

For the label approach, could you point me to the documentation.

@MilesCranmer
Copy link
Author

You know how you can install pip packages in a conda environment with:

dependencies:
  - ...
  - conda-forge::pip
  - pip:
    - my-pip-package1
    - my-pip-package2

I wonder if we could do something similar with Julia?

@ngam
Copy link
Contributor

ngam commented Sep 1, 2023

To make a wrapper package to install Julia via juliaup, right, @mkitti?

I think we can start with a label here if you prefer, but ideally, it should be migrated elsewhere. Things will be much slower to migrate elsewhere, so it is easier to just do it here first imo to see how far one could get. Recall, we already actually do this in our dev branches. See how dev or rc branches. In particular, you just need

channel_targets:
  - conda-forge julia_dev

in recipe/conda_build_config.yaml for the dev branch. I am not sure if we have better docs than this bit: https://conda-forge.org/docs/maintainer/knowledge_base.html#creating-a-pre-release-build. I would encourage you to experiment in the dev branch if you'd like. Or open a PR against the dev branch and edit. I will have a look as needed. Making a totally new branch is also okay (e.g., if you prefer a different name than dev); just make the edit as above and rerender then push into a new branch (or I can do it too)

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

3 participants