Skip to main content

7 posts tagged with "infrastructure"

View All Tags

R support in conda-forge

· One min read
conda-forge/r
The maintainers of the R ecosystem in conda-forge

Earlier this month, Anaconda announced that they are deprecating the r channel bundled in the defaults multichannel. This decision does not impact R packages in conda-forge, which continue to be available without any changes.

gcc, g++ builds on macos

· 3 min read
Isuru Fernando
Member of conda-forge/core

On macOS, conda-forge has provided clang, clangxx as the sole compiler for C and C++ sources. We have also provided gfortran to compile FORTRAN sources. Unlike other package managers like homebrew we have not provided gcc nor g++ on macos. The reason to not provide those have been to avoid incompatibility with the clang based toolchain and also the maintenance burden. There are two main incompatibilities. First, clang++ uses libc++ as the standard C++ library and g++ uses libstdc++ as the standard C++ library. Second, clang uses libomp as the OpenMP library whereas gcc uses libgomp as the OpenMP library.

Today, we announce the availability of gcc, g++ compilers on macos. You can install them using

conda install gcc gxx

Currently we support only gcc 15 and will not support gcc 14 or previous versions.

The main difference between these packages and a vanilla gcc installation or the installation from Homebew is that they use libomp as the default OpenMP library and libc++ as the default standard C++ library. This difference makes binaries compiled with gcc, g++ compatible with binaries compiled with clang, clang++.

Another interesting consequence of the infrastructure work done to enable this is that this enables cross compilation of C/C++ sources using gcc, g++ to cross-compile macOS binaries from Linux (previously only clang supported this) and also cross-compile windows binaries from macOS using the GCC/MinGW compilers.

To use them in conda-build recipes, you can use

requirements:
build:
- {{ compiler('gcc') }} # [osx]
- {{ compiler('gxx') }} # [osx]
- {{ stdlib('c') }}

You can also do

c_compiler:             # [osx]
- gcc # [osx]
c_compiler_version: # [osx]
- 15 # [osx]
cxx_compiler: # [osx]
- gxx # [osx]
cxx_compiler_version: # [osx]
- 15 # [osx]

in conda_build_config.yaml and continue to use the well-established {{ compiler("c") }} and {{ compiler("cxx") }} macros in the recipe; be aware that you're then responsible for updating the version roughly once per year (to keep pace with the rest of conda-forge).

When you are using gcc locally, similar to clang, we make some guesses about where the macOS SDK is located. This might fail sometimes and setting the environment variable SDKROOT to the root of the macOS SDK should make gcc look in that folder.

We also add by default -L $CONDA_PREFIX/lib -Wl,-rpath,$CONDA_PREFIX/lib when linkingfor local builds with the conda-gcc-specs package that is installed by deault with gcc package. If you want to avoid that you can install the gcc-no-conda-specs package alongside gcc.

Python 3.14 is already usable on conda-forge (not just available)

· 4 min read
Uwe L. Korn
Member of conda-forge/core

With yesterday's release of Python 3.14, we not only have Python 3.14 itself available on conda-forge, but also a wide selection of packages to make use of it. As the conda ecosystem is based on binary packages, this means that several packages are already built for Python 3.14.

You can create a new environment by using:

conda create -n py314 python=3.14 -c conda-forge

At the time of writing, the Python 3.14 migration is 77% progressed. This means that:

  • 1273 (41%) packages that needed a rebuild were built for Python 3.14
  • 1115 (36%) have an open PR to get rebuilt for Python 3.14
  • 704 (23%) packages are still waiting for a dependency to be rebuilt.

Announcing the new recipe format on conda-forge

· 5 min read
Wolf Vollprecht
Member of conda-forge/core

The conda-forge team is excited to announce that the v1 recipe format is available on conda-forge. The v1 recipe format is a community initiative dating back over 3 years to improve the recipe format for conda packages. If you are a maintainer of a feedstock on conda-forge, you have probably dealt with meta.yaml files that conda-build utilizes. The file format has some limitations which is why the community has come together to come up with an improved version of the format: the v1 format.

PyPy builds on conda-forge

· 3 min read
Isuru Fernando
Member of conda-forge/core

conda-forge now supports PyPy3.6 as the python interpreter in a conda environment

Supported platforms are,

  • Linux-x86_64 (glibc 2.12 or newer)
  • OSX-x86_64 (OSX 10.9 or newer)
  • Linux-aarch64 (glibc 2.17 or newer)
  • Linux-ppc64le (glibc 2.17 or newer)