Bumping Minimum MacOS version to 11.0
We will bump the minimum MacOS version from 10.13 (released in Sept. 2017, end-of-life since Dec. 2020) to 11.0 (released Nov. 2020, end-of-life since Sept. 2023) sometime next week.
This will not affect already-published artefacts, and you will not receive incompatible builds even when still using an older Mac. However, going forward, to be able to keep using the most recent packages from conda-forge, you will need to update your OS to at least 11.0.
The reason conda-forge is able to support macOS versions far beyond their end-of-life is due to the
fact that -- unlike many other paradigms -- we are able to always ship an up-to-date C++ standard
library (libcxx on OSX) in user environments, superseding the system library (at least from the
point of view of packages in the respective conda environments) that's usually too outdated for
contemporary packaging needs.
However, several core packages in the ecosystem have begun requiring 11.0 or newer, in a way
that we cannot be circumvent. The key driver for this is libcxx itself; it has a foundational
role in our infrastructure, and many aspects depend on this library being up-to-date. Given that
libcxx itself will begin requiring macOS 11.0 as of v22.1, we need to follow suit.
Other fundamental packages that already require a newer deployment target is the qt ecosystem,
languages like go, nodejs, dotnet, zig, and key libraries like libabseil and libprotobuf.
Since go already requires a deployment target of at least 12.0, we have added a custom
migrator
that will send PRs to update go-feedstocks without having to do manual modifications.
As soon as we make the switch, all new builds (on properly rerendered feedstocks) in conda-forge
for OSX will require at least 11.0. This constraint is implemented via the {{ stdlib("c") }}
meta-package, which picks up c_stdlib_version from our global pinning (unless
overridden
on the feedstock in recipe/conda_build_config.yaml), and will inject (on OSX) a corresponding constraint
on __osx >=11 in the package metadata. This instructs the resolver to ignore such artefacts on
older systems, ensuring that no incompatible packages get installed.
If you are overriding c_stdlib_version or MACOSX_SDK_VERSION to values <=11.0 in your feedstock,
please remove that configuration, as it has become redundant.
For more details (or questions) about this, see https://github.com/conda-forge/conda-forge.github.io/issues/2467.