diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 26b2e4f5..af23c32a 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -195,6 +195,17 @@ jobs: miniforge-variant: Mambaforge use-mamba: true if: ${{ ! contains(matrix.OS_NAME, 'Linux') }} + + - name: Patch license for Mambaforge deprecation + if: matrix.MINIFORGE_NAME == 'Mambaforge' || matrix.MINIFORGE_NAME == 'Mambaforge-pypy3' + run: | + echo "!!!!!! Mambaforge is now deprecated !!!!!" > Miniforge3/MAMBAFORGE_LICENSE.txt + echo "Future Miniforge releases will NOT build Mambaforge installers." >> Miniforge3/MAMBAFORGE_LICENSE.txt + echo "We advise you switch to Miniforge at your earliest convenience." >> Miniforge3/MAMBAFORGE_LICENSE.txt + echo "More details at https://conda-forge.org/news/2024/07/29/sunsetting-mambaforge/." >> Miniforge3/MAMBAFORGE_LICENSE.txt + echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" >> Miniforge3/MAMBAFORGE_LICENSE.txt + cat LICENSE >> Miniforge3/MAMBAFORGE_LICENSE.txt + echo "MINIFORGE_LICENSE_OVERRIDE=MAMBAFORGE_LICENSE.txt" >> $GITHUB_ENV - name: Build and test miniforge env: diff --git a/Miniforge3/construct.yaml b/Miniforge3/construct.yaml index 703cc492..100d893c 100644 --- a/Miniforge3/construct.yaml +++ b/Miniforge3/construct.yaml @@ -17,7 +17,7 @@ write_condarc: True # keep pkgs for space-saving implications for hardlinks when create new environments # and keep the same with Miniconda keep_pkgs: True -license_file: ../LICENSE +license_file: {{ os.environ.get("MINIFORGE_LICENSE_OVERRIDE", "../LICENSE") }} # During the interactive installation, these variables are checked. # During batch installation, conda is never initialized @@ -48,3 +48,6 @@ specs: - pip - miniforge_console_shortcut 1.* # [win] + +pre_install: mambaforge_deprecation.sh # [unix] +pre_install: mambaforge_deprecation.bat # [win] diff --git a/Miniforge3/mambaforge_deprecation.bat b/Miniforge3/mambaforge_deprecation.bat new file mode 100644 index 00000000..fe1fb2c8 --- /dev/null +++ b/Miniforge3/mambaforge_deprecation.bat @@ -0,0 +1,25 @@ +if "%GITHUB_ACTIONS%"=="true" ( + echo ::warning title=Mambaforge is now deprecated!::Future Miniforge releases will NOT build Mambaforge installers. We advise you switch to Miniforge at your earliest convenience. More details at https://conda-forge.org/news/2024/07/29/sunsetting-mambaforge/. +) +else ( + msg "%sessionname%" Mambaforge is now deprecated! Future Miniforge releases will NOT build Mambaforge installers. We advise you switch to Miniforge at your earliest convenience. More details at https://conda-forge.org/news/2024/07/29/sunsetting-mambaforge/. +) + +for /f "delims=" %%# in ('powershell get-date -format "{yyyy-MM-dd}"') do @set _date=%%# +if "%_date%"=="2024-10-01" exit 1 +if "%_date%"=="2024-10-15" exit 1 +if "%_date%"=="2024-11-01" exit 1 +if "%_date%"=="2024-11-10" exit 1 +if "%_date%"=="2024-11-20" exit 1 +if "%_date%"=="2024-11-30" exit 1 +if "%_date%"=="2024-12-05" exit 1 +if "%_date%"=="2024-12-10" exit 1 +if "%_date%"=="2024-12-15" exit 1 +if "%_date%"=="2024-12-20" exit 1 +if "%_date%"=="2024-12-25" exit 1 +if "%_date%"=="2024-12-30" exit 1 +if "%_date%"=="2024-12-31" exit 1 +if "%_date:~0,4%"=="2025" exit 1 + +echo Sleeping for 30s... +powershell -nop -c "& {sleep 30}" diff --git a/Miniforge3/mambaforge_deprecation.sh b/Miniforge3/mambaforge_deprecation.sh new file mode 100644 index 00000000..d4b419d5 --- /dev/null +++ b/Miniforge3/mambaforge_deprecation.sh @@ -0,0 +1,21 @@ +#!/bin/bash + +if [[ "$GITHUB_ACTIONS" == "true" ]]; then + echo "::warning title=Mambaforge is now deprecated!::Future Miniforge releases will NOT build Mambaforge installers. We advise you switch to Miniforge at your earliest convenience. More details at https://conda-forge.org/news/2024/07/29/sunsetting-mambaforge/." +else + echo "!!!!!! Mambaforge is now deprecated !!!!!" + echo "Future Miniforge releases will NOT build Mambaforge installers." + echo "We advise you switch to Miniforge at your earliest convenience." + echo "More details at https://conda-forge.org/news/2024/07/29/sunsetting-mambaforge/." +fi + +case $(date +%F) in + # Brownouts + 2024-10-01|2024-10-15|2024-11-01|2024-11-10|2024-11-20|2024-11-30|2024-12-05|2024-12-10|2024-12-15|2024-12-20|2024-12-25|2024-12-30|2024-12-31|2025-*) + exit 1 + ;; + *) + echo "Sleeping for 30s..." + sleep 30 + ;; +esac diff --git a/README.md b/README.md index ecbc142b..ed82a9bb 100644 --- a/README.md +++ b/README.md @@ -49,7 +49,9 @@ Latest installers with PyPy 3.9 in the base environment: | OS X | x86_64 | macOS >= 10.13 | [Miniforge-pypy3-MacOSX-x86_64](https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge-pypy3-MacOSX-x86_64.sh) | | Windows | x86_64 | Windows >= 7 | [Miniforge-pypy3-Windows-x86_64](https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge-pypy3-Windows-x86_64.exe) | -
Mambaforge (Discouraged as of September 2023) +
+ +🚨 Mambaforge (Deprecated as of July 2024) 🚨 With the [release](https://github.com/conda-forge/miniforge/releases/tag/23.3.1-0) of `Miniforge3-23.3.1-0`, that incorporated the changes in @@ -58,12 +60,14 @@ configuration of `Mambaforge` and `Miniforge3` are now **identical**. The only difference between the two is the name of the installer and, subsequently, the default installation directory. -Given its wide usage, there are no plans to deprecate Mambaforge. If at some -point we decide to deprecate Mambaforge, it will be appropriately announced and -communicated with sufficient time in advance. +We recommend switching to `Miniforge3` immediately. These installers will be +retired in January 2025. To assist in the migration to Miniforge3 for CI users, we've stopped +the latest Mambaforge (24.5+) installer from proceeding with following schedule -As of September 2023, the new usage of Mambaforge is thus discouraged. Bug -reports specific to Mambaforge will be closed as won't fix. +* Every two weeks in October +* Every ten days in November +* Every five days in December +* Never in 2025 #### Mambaforge diff --git a/build_miniforge.sh b/build_miniforge.sh index f42d2426..8fb15a13 100755 --- a/build_miniforge.sh +++ b/build_miniforge.sh @@ -30,7 +30,7 @@ docker run --privileged --rm tonistiigi/binfmt --install all echo "============= Build the installer =============" docker run --rm -v "$(pwd):/construct" \ - -e CONSTRUCT_ROOT -e MINIFORGE_VERSION -e MINIFORGE_NAME -e TARGET_PLATFORM \ + -e CONSTRUCT_ROOT -e MINIFORGE_VERSION -e MINIFORGE_NAME -e TARGET_PLATFORM -e MINIFORGE_LICENSE_OVERRIDE \ "${DOCKERIMAGE}" /construct/scripts/build.sh echo "============= Test the installer ============="