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

Update to python 3.12 #603

Merged
merged 11 commits into from
Jul 24, 2024
6 changes: 3 additions & 3 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,7 @@ jobs:
# The time consuming operation is an attempt a full solve of conda/mamba/boa
# for as a compatibility
# xref https://github.com/conda-forge/miniforge/pull/361
TEST_IMAGE_NAMES: "ubuntu:22.04"
TEST_IMAGE_NAMES: "ubuntu:24.04"

- os: ubuntu-latest
ARCH: x86_64
Expand Down Expand Up @@ -125,7 +125,7 @@ jobs:
# The time consuming operation is an attempt a full solve of conda/mamba/boa
# for as a compatibility
# xref https://github.com/conda-forge/miniforge/pull/361
TEST_IMAGE_NAMES: "ubuntu:22.04"
TEST_IMAGE_NAMES: "ubuntu:24.04"

- os: ubuntu-latest
ARCH: aarch64
Expand All @@ -146,7 +146,7 @@ jobs:
# The time consuming operation is an attempt a full solve of conda/mamba/boa
# for as a compatibility
# xref https://github.com/conda-forge/miniforge/pull/361
TEST_IMAGE_NAMES: "ubuntu:22.04"
TEST_IMAGE_NAMES: "ubuntu:24.04"

- os: ubuntu-latest
ARCH: x86_64
Expand Down
6 changes: 3 additions & 3 deletions Miniforge3/construct.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{% set name = os.environ.get("MINIFORGE_NAME", "Miniforge3") %}
{% set version = os.environ.get("MINIFORGE_VERSION", "24.3.0-0") %}
{% set version = os.environ.get("MINIFORGE_VERSION", "24.5.0-0") %}
{% set conda_libmamba_solver_version = "24.1.0"%}
{% set mamba_version = "1.5.8"%}

Expand Down Expand Up @@ -28,7 +28,7 @@ user_requested_specs:
{% if name.endswith("pypy3") %}
- python 3.9.* *_pypy
{% else %}
- python 3.10.*
- python 3.12.*
{% endif %}
- pip
- conda >={{ version.split("-")[0] }}
Expand All @@ -40,7 +40,7 @@ specs:
{% if name.endswith("pypy3") %}
- python 3.9.* *_pypy
{% else %}
- python 3.10.*
- python 3.12.*
{% endif %}
- conda {{ version.split("-")[0] }}
- conda-libmamba-solver {{ conda_libmamba_solver_version }}
Expand Down
47 changes: 30 additions & 17 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,16 +15,16 @@ Miniforge installers are available here: https://github.com/conda-forge/miniforg

#### Miniforge3

Latest installers with Python 3.10 `(*)` in the base environment:
Latest installers with Python 3.12 `(*)` in the base environment:

| OS | Architecture | Download |
| --------|-----------------------|-----------|
| Linux | x86_64 (amd64) | [Miniforge3-Linux-x86_64](https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-Linux-x86_64.sh) |
| Linux | aarch64 (arm64) `(**)` | [Miniforge3-Linux-aarch64](https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-Linux-aarch64.sh) |
| Linux | ppc64le (POWER8/9) | [Miniforge3-Linux-ppc64le](https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-Linux-ppc64le.sh) |
| OS X | x86_64 | [Miniforge3-MacOSX-x86_64](https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-MacOSX-x86_64.sh) |
| OS X | arm64 (Apple Silicon) `(***)` | [Miniforge3-MacOSX-arm64](https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-MacOSX-arm64.sh) |
| Windows | x86_64 | [Miniforge3-Windows-x86_64](https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-Windows-x86_64.exe) |
| OS | Architecture | Minimum Version | Download |
| --------|-------------------------------|------------------|-----------|
| Linux | x86_64 (amd64) | glibc >= 2.17 | [Miniforge3-Linux-x86_64](https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-Linux-x86_64.sh) |
| Linux | aarch64 (arm64) `(**)` | glibc >= 2.17 | [Miniforge3-Linux-aarch64](https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-Linux-aarch64.sh) |
| Linux | ppc64le (POWER8/9) | glibc >= 2.17 | [Miniforge3-Linux-ppc64le](https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-Linux-ppc64le.sh) |
| OS X | x86_64 | macOS >= 10.13 | [Miniforge3-MacOSX-x86_64](https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-MacOSX-x86_64.sh) |
| OS X | arm64 (Apple Silicon) `(***)` | macOS >= 11.0 | [Miniforge3-MacOSX-arm64](https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-MacOSX-arm64.sh) |
Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
| OS X | arm64 (Apple Silicon) `(***)` | macOS >= 11.0 | [Miniforge3-MacOSX-arm64](https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-MacOSX-arm64.sh) |
| OS X | arm64 (Apple Silicon) | macOS >= 11.0 | [Miniforge3-MacOSX-arm64](https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-MacOSX-arm64.sh) |

Copy link
Member

Choose a reason for hiding this comment

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

Do we still need that footnote?

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

Copy link
Member

Choose a reason for hiding this comment

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

We don't have CI for macOS ARM

That said, maybe we can relax this note a bit

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'm not opposed to this, but I think a new PR is warranted if we want to review the language around OSX + arm.

Lets start the builds for this as they take a while already.

| Windows | x86_64 | Windows >= 7 | [Miniforge3-Windows-x86_64](https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-Windows-x86_64.exe) |
Copy link
Member

@mbargull mbargull Jun 23, 2024

Choose a reason for hiding this comment

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

@isuruf, do you know if this is still accurate or do we have things that bump this to 10?


`(*)` The Python version is specific only to the base environment. Conda can create new environments with different Python versions and implementations.

Expand All @@ -41,13 +41,13 @@ The versions listed as "System: 32-bit" are not compatible with the installers o

Latest installers with PyPy 3.9 in the base environment:

| OS | Architecture | Download |
| --------|-----------------------|-----------|
| Linux | x86_64 (amd64) | [Miniforge-pypy3-Linux-x86_64](https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge-pypy3-Linux-x86_64.sh) |
| Linux | aarch64 (arm64) | [Miniforge-pypy3-Linux-aarch64](https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge-pypy3-Linux-aarch64.sh) |
| Linux | ppc64le (POWER8/9) | [Miniforge-pypy3-Linux-ppc64le](https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge-pypy3-Linux-ppc64le.sh) |
| OS X | x86_64 | [Miniforge-pypy3-MacOSX-x86_64](https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge-pypy3-MacOSX-x86_64.sh) |
| Windows | x86_64 | [Miniforge-pypy3-Windows-x86_64](https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge-pypy3-Windows-x86_64.exe) |
| OS | Architecture | Minimum Version | Download |
| --------|--------------------|------------------|-----------|
| Linux | x86_64 (amd64) | glibc >= 2.17 | [Miniforge-pypy3-Linux-x86_64](https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge-pypy3-Linux-x86_64.sh) |
| Linux | aarch64 (arm64) | glibc >= 2.17 | [Miniforge-pypy3-Linux-aarch64](https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge-pypy3-Linux-aarch64.sh) |
| Linux | ppc64le (POWER8/9) | glibc >= 2.17 | [Miniforge-pypy3-Linux-ppc64le](https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge-pypy3-Linux-ppc64le.sh) |
| 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) |

<details><summary>Mambaforge (Discouraged as of September 2023)</summary>

Expand Down Expand Up @@ -240,8 +240,8 @@ after installation so the software may be used more conveniently from any comman
After construction on the CI, the installer is tested against a range of distribution that match the installer architecture (`$ARCH`). For example when architecture is `aarch64`, the constructed installer is tested against:

- Centos 7
- Debian Buster (10)
- Debian Bullseye (11)
- Debian Bookworm (12)
- Ubuntu 16.04 ([LTS](https://ubuntu.com/about/release-cycle))
- Ubuntu 18.04 ([LTS](https://ubuntu.com/about/release-cycle))
- Ubuntu 20.04 ([LTS](https://ubuntu.com/about/release-cycle))
Expand All @@ -259,6 +259,19 @@ export DOCKERIMAGE=condaforge/linux-anvil-aarch64
bash build_miniforge.sh
```

## Support for older operating systems

### Support for macOS 10.9-10.12
If you require support for macOS 10.9 through 10.12 you may download version
24.3.0-0 of miniforge available at
https://github.com/conda-forge/miniforge/releases/tag/24.3.0-0

### Support for glibc 2.12-2.16

If you require support for glibc 2.12 through 2.16 you may download version
24.3.0-0 of miniforge available at
https://github.com/conda-forge/miniforge/releases/tag/24.3.0-0

## FAQ

### What's the difference between Mambaforge and Miniforge?
Expand Down
2 changes: 1 addition & 1 deletion build_miniforge.sh
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ DOCKERIMAGE=${DOCKERIMAGE:-condaforge/linux-anvil-aarch64}
export MINIFORGE_NAME=${MINIFORGE_NAME:-Miniforge3}
OS_NAME=${OS_NAME:-Linux}
EXT=${EXT:-sh}
TEST_IMAGE_NAMES=${TEST_IMAGE_NAMES:-ubuntu:22.04 ubuntu:20.04 ubuntu:18.04 ubuntu:16.04 centos:7 debian:bullseye debian:buster}
TEST_IMAGE_NAMES=${TEST_IMAGE_NAMES:-ubuntu:24.04 ubuntu:22.04 ubuntu:20.04 ubuntu:18.04 ubuntu:16.04 centos:7 debian:bookworm debian:bullseye}
export CONSTRUCT_ROOT=/construct

echo "============= Create build directory ============="
Expand Down
9 changes: 8 additions & 1 deletion scripts/build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ cp LICENSE "${TEMP_DIR}/"
ls -al "${TEMP_DIR}"

if [[ "${TARGET_PLATFORM}" != win-* ]]; then
MICROMAMBA_VERSION=1.5.7
MICROMAMBA_VERSION=1.5.8
MICROMAMBA_BUILD=0
mkdir "${TEMP_DIR}/micromamba"
pushd "${TEMP_DIR}/micromamba"
Expand All @@ -53,6 +53,13 @@ if [[ "${TARGET_PLATFORM}" != win-* ]]; then
EXTRA_CONSTRUCTOR_ARGS="${EXTRA_CONSTRUCTOR_ARGS} --conda-exe ${MICROMAMBA_FILE} --platform ${TARGET_PLATFORM}"
fi

echo "***** Set virtual package versions *****"
if [[ "${TARGET_PLATFORM}" == linux-* ]]; then
export CONDA_OVERRIDE_GLIBC=2.12
hmaarrfk marked this conversation as resolved.
Show resolved Hide resolved
elif [[ "${TARGET_PLATFORM}" == linux-* ]]; then
export CONDA_OVERRIDE_OSX=10.9
Copy link
Member

@mbargull mbargull Jun 24, 2024

Choose a reason for hiding this comment

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

Suggested change
elif [[ "${TARGET_PLATFORM}" == linux-* ]]; then
export CONDA_OVERRIDE_OSX=10.9
elif [[ "${TARGET_PLATFORM}" == osx-64 ]]; then
export CONDA_OVERRIDE_OSX=10.9
elif [[ "${TARGET_PLATFORM}" == osx-arm64 ]]; then
export CONDA_OVERRIDE_OSX=11.0

I'm fine with that change.
I generally makes sense to but the overrides in.
As for 10.9 concretely, I've also thought about doing that but didn't consider it too be of relevance -- what's the reasoning for going with that still (in light that we changed the default nearly 2 months ago)?

Copy link
Member

Choose a reason for hiding this comment

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

It was to see if this propagated. Apparently not.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

if this does nothing, should we remove it entirely?

Copy link
Member

Choose a reason for hiding this comment

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

It does work; there was just a typo in the initial commit (linux-* instead of osx-*).
Even makes the PyPy builds fail -- haven't looked into why yet.

Copy link
Member

Choose a reason for hiding this comment

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

conda=24.1.1 onward has dep pypy3.9 >=7.3.15 and that one has been built against 10.13 already.
So, we need target 10.13 for that one.

refs:
https://github.com/conda-forge/pypy3.6-feedstock/pull/116/files#diff-92d4214334555338c6e098e1462e4dec3ca2032a9f2973bf5558d6b8c00503ceR2

mbargull marked this conversation as resolved.
Show resolved Hide resolved
fi

echo "***** Construct the installer *****"
# Transmutation requires the current directory is writable
cd "${TEMP_DIR}"
Expand Down