Skip to main content

Rust 1.75 requires setting newer MACOSX_DEPLOYMENT_TARGET

With the release of rust 1.75, we now require setting the minimal MACOSX_DEPLOYMENT_TARGET to at least 10.12. You can do this by appending recipe/conda_build_config.yaml with the following content:

c_stdlib_version:       # [osx and x86]
- '10.12' # [osx and x86]

and adding {{ stdlib("c") }} as build dependency next to your compiler jinja:

  build:
- {{ compiler("rust") }}
- {{ stdlib("c") }}

Note: This entry was update in April 2024 to reflect the new infrastructure for setting MACOSX_DEPLOYMENT_TARGET, see here.

Python 3.12 migration and Python 3.11 by default

With the Python 3.12 release approaching, we have already started the rebuild of packages for it. Although, there is no offical Python 3.12 release yet, the release candidates of it will have the same ABI. Thus packages built with the release candidate can be safely used with the later offical release. To support rebuilding packages on conda-forge while ensuring Python release candidates don't end up in end-user solves, we have uploaded the Python 3.12.0rc2 and rc3 builds to the conda-forge/label/python_rc channel. The python312 migration adds this channel in the feedstock builds to the Python 3.12 matrix entry. On the offical release of Python 3.12, we will adjust the migration and remove the channel again. Then (on a rerender), feedstock will only consume the main channel again.

Overall, this approach allows us to provide Python 3.12 for a wide range of packages already on the day of the offical Python 3.12 release. At the same time, we have stopped the Python 3.11 migration and added it to the list of default Python versions on conda-forge.

Bumping Minimum MacOS version to 10.13

We will bump the minimum MacOS version from 10.9 (released in Oct. 2013, end-of-life since Dec. 2016) to 10.13 (released Sept. 2017, end-of-life since Dec. 2020). The main reason we managed to support 10.9 this long at all, is that conda-forge is able to ship an up-to-date C++ standard library for OSX, libcxx, superseding the old one present in the MacOS SDK on the system (at least from the point-of-view of the respective conda environments).

However, several core packages in the ecosystem now require at least 10.13 (or will very soon), in a way that we cannot be circumvent. These packages include libcxx, starting with version 17.0. This change will not affect already published artifacts, but in the near future, all new builds for OSX will require at least 10.13. This constraint will be implemented through the __osx virtual package, but the details of how we will achieve this are still being worked out. Only conda versions 4.8.0 or newer have this virtual package. If you are using a system with MacOS older than 10.13 and are using conda older than 4.8.0, you will need to either upgrade conda to at least 4.8.0 or upgrade your system to at least MacOS 10.13.

End-of-life for CentOS 6

As you may be aware, we have delayed the deprecation of our CentOS 6 build system the linux64 platform several times. We have now set a formal deprecation date to be June 30, 2024. This date matches the end of extended life-cycle support from RedHat for RHEL 6. After this date, we build packages against CentOS 7 by default for linux64.

Moving to .conda Artifacts

conda-forge is moving to producing conda artifacts in the version 2 package format (also known as .conda). These artifacts allow for more efficient indexing and maintenance of the ecosystem. Our admin migrations bot will begin making PRs to feedstocks to change them over to the new artifact format. You will need conda version 4.7 or later to use the new .conda artifacts. Please leave a comment on this issue if you encounter problems or have feedback.

Releasing Python 3.8.14, 3.9.14, and 3.10.7

The CPython versions 3.8.14, 3.9.14, and 3.10.7 were released some weeks ago to mitigate CVE-2020-10735. The chosen mitigation strategy might cause errors (e.g. ValueError: Exceeds the limit (4300) for integer string conversion) in some libraries. If you are affected, please read the announcement and learn about the available workarounds in the CPython documentation.

The conda-forge team has decided to build and publish these releases with no additional changes. The new packages will be made available on or after 2022-11-10, following Anaconda's decision.

Conda Moving to CalVer

Conda is moving to CalVer per CEP 8. The first CalVer and last SemVer should be 22.9.0 and 4.14.0 respectively. This change maintains version order so you should not expect any issues.

Dropping Python 3.7

Conda-Forge has been providing support for Python 3.7 for 4 years now.

Increasingly projects are moving off it (particularly in the PyData community). With Python 3.11's release coming around the corner (October 3rd), conda-forge plans to drop Python 3.7 support when Python 3.11 comes out. This will lighten the load on conda-forge infrastructure and make room for the new versions the community would like to support.

More details can be found in issue conda-forge-pinning-feedstock#2623. Feedback is welcome there.