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

Recommend mambaforge + mamba in the installation instructions and contributing guides #2368

Closed
seisman opened this issue Feb 15, 2023 · 5 comments · Fixed by #2385
Closed
Labels
documentation Improvements or additions to documentation
Milestone

Comments

@seisman
Copy link
Member

seisman commented Feb 15, 2023

In the installation instructions, we recommend using Anaconda:

We recommend using the Anaconda Python distribution to ensure you have all dependencies installed and the conda package manager is available. Installing Anaconda does not require administrative rights to your computer and doesn’t interfere with any other Python installations on your system.

Here is a comparison between Anaconda and miniconda: https://stackoverflow.com/a/45421527.

From my own experience, Anaconda packages too many packages by default, which causes slow installation, large disk spaces and potential package conflicts.

I wonder if we should recommend miniconda instead.

@seisman seisman added the question Further information is requested label Feb 15, 2023
@maxrjones
Copy link
Member

Yes, I think we should recommend miniconda or micromamba.

IMO we should also recommend mamba for contributors in https://www.pygmt.org/latest/contributing.html#setting-up-your-environment, since the conda solver can get tedious with the number of development dependencies that we have.

@seisman seisman added documentation Improvements or additions to documentation and removed question Further information is requested labels Feb 16, 2023
@seisman seisman added this to the 0.9.0 milestone Feb 16, 2023
@seisman seisman added the help wanted Helping hands are appreciated label Feb 16, 2023
@seisman
Copy link
Member Author

seisman commented Feb 16, 2023

IMO we should also recommend mamba for contributors in pygmt.org/latest/contributing.html#setting-up-your-environment, since the conda solver can get tedious with the number of development dependencies that we have.

I agree.

Yes, I think we should recommend miniconda or micromamba.

micromamba is not a good option, because (https://mamba.readthedocs.io/en/latest/user_guide/micromamba.html):

Still at early stage, it’s main usage is in continous integration pipelines: since it’s a single executable, it reduces dramatically bandwidth usage and provide fast operations.

@weiji14
Copy link
Member

weiji14 commented Feb 17, 2023

Related thread at https://discourse.pangeo.io/t/mamba-mature-enough/3154/4 on how mamba is pretty stable already. Agree that micromamba isn't a good option (mostly because you'd have to call commands using micromamba install instead of mamba install), but I'd prefer mambaforge instead of miniconda as recommended by https://mamba.readthedocs.io/en/stable/installation.html#fresh-install.

@seisman
Copy link
Member Author

seisman commented Feb 17, 2023

Related thread at discourse.pangeo.io/t/mamba-mature-enough/3154/4 on how mamba is pretty stable already. Agree that micromamba isn't a good option (mostly because you'd have to call commands using micromamba install instead of mamba install), but I'd prefer mambaforge instead of miniconda as recommended by mamba.readthedocs.io/en/stable/installation.html#fresh-install.

Sounds great. mambaforge + mamba is the way to go.

@seisman seisman removed the help wanted Helping hands are appreciated label Feb 18, 2023
@seisman seisman assigned seisman and unassigned seisman Feb 18, 2023
@seisman seisman added the help wanted Helping hands are appreciated label Feb 18, 2023
@seisman seisman changed the title Recommend miniconda instead of Anaconda in the installation instructions? Recommend mambaforge + mamba in the installation instructions and contributing guides Feb 22, 2023
@weiji14
Copy link
Member

weiji14 commented Mar 2, 2023

Kinda unrelated, but I just found out about https://prefix.dev/blog/online_environment_solving today and was playing with solving a PyGMT development environment (conda-lock.yml file) at https://prefix.dev/envs/weiji14/pygmt. This is today's resolved environment at https://prefix.dev/envs/weiji14/pygmt/285fy5jawbs0, installable using micromamba create -f https://prefix.dev/envs/weiji14/pygmt/285fy5jawbs0/conda-lock.yml -n pygmt:

image

It's still a very young project built by the mamba folks, but it might be useful for your own projects if you ever need to quickly test out solving an environment without messing with your local environment, or do cross-platform solves. They also do versioning of generated conda-lock.yml, which might be useful for reproducibility.

P.S. Couldn't get linux-aarch64 nor linux-ppc64le to solve for some reason, but that's for another issue.

@seisman seisman removed the help wanted Helping hands are appreciated label Mar 2, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation Improvements or additions to documentation
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants