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

Migrate to Miniforge #22

Merged
merged 16 commits into from
Sep 10, 2024
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -8,3 +8,6 @@
Anaconda2/
Anaconda3/
Miniconda2/
xor*
tmp-for-ffnet/
*.png
30 changes: 27 additions & 3 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,19 +11,43 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

### Changed

- Update to Miniconda version to 24.5.0-0
### Added

### Removed

### Deprecated

## [24.7.0] - 2024-09-10

### Changed

- Migrated to use Miniforge instead of Miniconda
- "Update" to Miniforge version to 24.7.1-0
- Note: Miniforge is often behind Miniconda in version numbers, so this is not a downgrade, but rather
the latest version of Miniforge
- Make a symlink of `f2py` to `f2py3` to fix an issue with the wrong `f2py` being found sometimes on discover
- Update both `.condarc` and `.mambarc` to use the `conda-forge` channel as the default channel
- Add a test at the end to ensure no `defaults` channel packages are installed
- Add `-ffnet-hack` for a hack to install `ffnet` on bucy (nothing else seems to need it)
- This flag uses a fork of ffnet with hardcoded references to gfortran

### Added

- Explicit Conda Packages
- Explicit Mamba Packages
- uxarray
- Explicit Pip Packages
- basemap
- redis (moved from Mamba to Pip)
- Added basemap example

### Removed

### Deprecated
- Removed `--conda` option
- Explicit Mamba Packages
- redis (moved from Mamba to Pip)
- redis-py (seems not to exist in the conda-forge channel or in PyPI)
- sphinxcontrib (seems not to exist in the conda-forge channel or in PyPI)
- get_terminal_size (built-in to Python 3.3+ in the `shutil` module)

## [24.4.0] - 2024-05-30

Expand Down
3 changes: 3 additions & 0 deletions Miniconda3/.gitignore → Miniforge3/.gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
*.log
pygrads-3.0.b1/
Miniconda?-*.sh
Miniforge?-*.sh
Mambaforge?-*.sh

File renamed without changes.
25 changes: 14 additions & 11 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,16 @@
GEOSpyD is the "GEOS Python Distribution". It is a collection of many, many packages that was inherited from SIVOpyD, a set of
scripts for installing Python maintained by @JulesKouatchou.

We do not
This script now uses Miniforge and restricts the installation to use `conda-forge` and `nodefaults` as the channels. Moreover,
to prevent infection from the Anaconda `defaults` channel, the script at the end checks the output of `mamba list` to make sure no
`defaults` packages appear. If they do, the script will exit with an error message.

## Installation

In order to use the install script, you can run:

```
./install_miniconda.bash --python_version 3.12 --miniconda_version 24.5.0-0 --prefix /opt/GEOSpyD
./install_miniforge.bash --python_version 3.12 --miniforge_version 24.5.0-0 --prefix /opt/GEOSpyD
```

will create an install at:
Expand All @@ -26,35 +28,36 @@ the stack is re-installed, the previous install is not overwritten.
## Usage

```
Usage: ./install_miniconda.bash --python_version <python version> --miniconda_version <miniconda_version> --prefix <prefix> [--conda]
Usage: ./install_miniforge.bash --python_version <python version> --miniforge_version <miniforge> --prefix <prefix> [--micromamba | --mamba] [--blas <blas>]

Required arguments:
--python_version <python version> (e.g., 3.12)
--miniconda_version <miniconda_version version> (e.g., 24.5.0-0)
--miniforge_version <miniforge_version version> (e.g., 24.5.0-0)
--prefix <full path to installation directory> (e.g, /opt/GEOSpyD)

Optional arguments:
--blas <blas> (default: accelerate, options: mkl, openblas, accelerate, blis)
--micromamba: Use micromamba installer (default)
--mamba: Use mamba installer
--conda: Use conda installer (NOT recommended, only for legacy support)
--help: Print this message

By default we use the micromamba installer on both Linux and macOS
For BLAS, we use accelerate on macOS and MKL on Linux

NOTE 1: This script installs within /opt/GEOSpyD with a path based on:

1. The Miniconda version
1. The Miniforge version
2. The Python version
3. The date of the installation

For example: ./install_miniconda.bash --python_version 3.12 --miniconda_version 24.5.0-0 --prefix /opt/GEOSpyD
For example: ./install_miniforge.bash --python_version 3.12 --miniforge_version 24.5.0-0 --prefix /opt/GEOSpyD

will create an install at:
/opt/GEOSpyD/24.5.0-0_py3.12/2024-03-08
/opt/GEOSpyD/24.5.0-0_py3.12/2024-08-29

NOTE 2: This script will create or substitute a .condarc file in the user's home directory.
If you have an existing .condarc file, it will be restored after installation.
We do this to ensure that the installation uses conda-forge as the default channel.
NOTE 2: This script will create or substitute a .mambarc
and .condarc file in the user's home directory. If you
have an existing .mambarc and/or .condarc file, it will be
restored after installation. We do this to ensure that the
installation uses conda-forge as the default channel.
```
Loading