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

Deprecate PyPy3 installers #657

Merged
merged 3 commits into from
Oct 12, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 12 additions & 5 deletions Miniforge3/construct.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -29,31 +29,38 @@ initialize_by_default: False
user_requested_specs:
{% if name.endswith("pypy3") %}
- python 3.9.* *_pypy
- conda >=24.7.1
- mamba >=1.5.9
{% else %}
- python 3.12.*
- conda >={{ version.split("-")[0] }}
- mamba >={{ mamba_version }}
{% endif %}
- pip
- conda >={{ version.split("-")[0] }}
# Omit conda-libmamba-solver so that conda is free to remove it later
- mamba >={{ mamba_version }}
- miniforge_console_shortcut 1.* # [win]

specs:
{% if name.endswith("pypy3") %}
- python 3.9.* *_pypy
- conda 24.7.1
- mamba 1.5.9
- conda-libmamba-solver 24.7.0
{% else %}
- python 3.12.*
{% endif %}
- conda {{ version.split("-")[0] }}
- conda-libmamba-solver {{ conda_libmamba_solver_version }}
- mamba {{ mamba_version }}

- conda-libmamba-solver {{ conda_libmamba_solver_version }}
{% endif %}
- pip
- miniforge_console_shortcut 1.* # [win]

{% if name.startswith("Mambaforge") %}
pre_install: mambaforge_deprecation.sh # [unix]
pre_install: mambaforge_deprecation.bat # [win]
{% elif name.endswith("pypy3") %}
pre_install: pypy_deprecation.sh # [unix]
pre_install: pypy_deprecation.bat # [win]
{% endif %}

virtual_specs:
Expand Down
27 changes: 27 additions & 0 deletions Miniforge3/pypy_deprecation.bat
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
@ECHO OFF
set "title=PyPy support is now deprecated!"
set "message=PyPy support is now deprecated! Future Miniforge releases will NOT build installers with PyPy in their base environment. We advise you switch to Miniforge at your earliest convenience. More details at https://conda-forge.org/news/2024/08/14/sunsetting-pypy/. If you require PyPy, you may pin your installer to one found in https://github.com/conda-forge/miniforge/releases/tag/24.7.1-0"
if "%GITHUB_ACTIONS%"=="true" (
echo ::warning title=%title%::%message%
) else (
powershell "(New-Object -ComObject Wscript.Shell).Popup('%message%',0,'%title%',0x30)" >NUL
)

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 -c "& {sleep 30}"
27 changes: 27 additions & 0 deletions Miniforge3/pypy_deprecation.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
#!/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 "!!!!!! Conda-Forge PyPy is now deprecated !!!!!"
echo "Future Miniforge releases will NOT build with PyPy in the base environment installers."
echo "We advise you switch to Miniforge3 at your earliest convenience."
echo "More details at https://conda-forge.org/news/2024/08/14/sunsetting-pypy/"
echo "If you are unable to switch to Miniforge, you may pin your installer version to one found in "
echo "https://github.com/conda-forge/miniforge/releases/tag/24.3.0-1"
echo "or if you lack the system requirements (Linux glibc >= 2.17, or macOS + x86-64bit >= 10.13)"
echo "you may pin your installer to one older version found in "
echo "https://github.com/conda-forge/miniforge/releases/tag/24.3.0-0"
echo "This Miniforge installer will ceese to work in 2025."
fi
Comment on lines +3 to +16
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's put this in a text file that ships with the installer. Then all platforms can echo the test file and we can get the wording to match with both

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would rather not overbuild for a depreation that will only last 3 months.

The challenge is that the wording MUST be different for different platforms.

Windows, linux, and OSX have different recommendations.

Generic recommendations REALLY confuse first time users.

Is there a word here that you are concerned with getting correct?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

My windows skills are also seriously lacking..... so I would rather not try something new....

My main goal for this week is to give time for somebody that might care for this installer to stepup, but not to create more organizational work. "2" notices is not enough to reorganize things IMO.


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
33 changes: 33 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,22 @@ The versions listed as "System: 32-bit" are not compatible with the installers o

`(***)` Apple silicon builds are experimental and haven't had testing like the other platforms.

<details>

<summary>🚨 PyPy support is deprecated (<b>Deprecated</b> as of August 2024) 🚨</summary>

TL;DR: We are planning to remove PyPy from conda-forge feedstock recipes in a
few weeks (and thus to stop building new releases of packages for PyPy), unless
there is substantial enough interest to justify the continued maintenance
effort.

To help with this transition, the latest installers will:

* The installer will refuse to proceed every two weeks in October
* The installer will refuse to proceed every ten days in November
* The installer will refuse to proceed every five days in December
* The installer will refuse to proceed in 2025+

#### Miniforge-pypy3

Latest installers with PyPy 3.9 in the base environment:
Expand All @@ -49,6 +65,23 @@ Latest installers with PyPy 3.9 in the base environment:
| macOS | 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) |

However, the latest installers will cease to work and will stop being made available in 2025. You should therefore pin to 24.7.0 if you require PyPy3.

https://github.com/conda-forge/miniforge/releases/download/24.7.1-0/Mambaforge-24.7.1-0-Linux-aarch64.sh
| OS | Architecture | Minimum Version | Miniforge Version | Download |
| --------|--------------------|------------------|-------------------|-----------|
| Linux | x86_64 (amd64) | glibc >= 2.17 | 24.7.1-0 | [Miniforge-pypy3-24.7.1-0-Linux-x86_64](https://github.com/conda-forge/miniforge/releases/download/24.7.1-0/Miniforge-pypy3-24.7.1-0-Linux-x86_64.sh) |
| Linux | x86_64 (amd64) | glibc >= 2.12 | 24.3.0-0 | [Miniforge-pypy3-24.3.0-0-Linux-x86_64](https://github.com/conda-forge/miniforge/releases/download/24.3.0-0/Miniforge-pypy3-24.3.0-0-Linux-x86_64.sh) |
| Linux | aarch64 (arm64) | glibc >= 2.17 | 24.7.1-0 | [Miniforge-pypy3-24.7.1-0-Linux-aarch64](https://github.com/conda-forge/miniforge/releases/download/24.7.1-0/Miniforge-pypy3-24.7.1-0-Linux-aarch64.sh) |
| Linux | aarch64 (arm64) | glibc >= 2.12 | 24.3.0-0 | [Miniforge-pypy3-24.3.0-0-Linux-aarch64](https://github.com/conda-forge/miniforge/releases/download/24.3.0-0/Miniforge-pypy3-24.3.0-0-Linux-aarch64.sh) |
| Linux | ppc64le (POWER8/9) | glibc >= 2.17 | 24.7.1-0 | [Miniforge-pypy3-24.7.1-0-Linux-ppc64le](https://github.com/conda-forge/miniforge/releases/download/24.7.1-0/Miniforge-pypy3-24.7.1-0-Linux-ppc64le.sh) |
| Linux | ppc64le (POWER8/9) | glibc >= 2.12 | 24.3.0-0 | [Miniforge-pypy3-24.3.0-0-Linux-ppc64le](https://github.com/conda-forge/miniforge/releases/download/24.3.0-0/Miniforge-pypy3-24.3.0-0-Linux-ppc64le.sh) |
| macOS | x86_64 | macOS >= 10.13 | 24.7.1-0 | [Miniforge-pypy3-24.7.1-0-MacOSX-x86_64](https://github.com/conda-forge/miniforge/releases/download/24.7.1-0/Miniforge-pypy3-24.7.1-0-MacOSX-x86_64.sh) |
| macOS | x86_64 | macOS >= 10.9 | 24.3.0-0 | [Miniforge-pypy3-24.3.0-0-MacOSX-x86_64](https://github.com/conda-forge/miniforge/releases/download/24.3.0-0/Miniforge-pypy3-24.3.0-0-MacOSX-x86_64.sh) |
| Windows | x86_64 | Windows >= 7 | 24.7.1-0 | [Miniforge-pypy3-24.7.1-0-Windows-x86_64](https://github.com/conda-forge/miniforge/releases/download/24.7.1-0/Miniforge-pypy3-24.7.1-0-Windows-x86_64.exe) |

</summary>

<details>

<summary>🚨 Mambaforge (<b>Deprecated</b> as of July 2024) 🚨</summary>
Expand Down
Loading