All Posts

macOS ARM builds on conda-forge

A new platform osx-arm64 has been added to the build matrix of conda-forge. osx-arm64 packages are built to run on upcoming macOS arm64 processors marketed as Apple Silicon. An installer for this platform can be found here.

Read more ...


The API Territory and Version Number Map

tl;dr Depending on specific version numbers of underlying libraries may be too inaccurate and cause headaches as upstream libraries evolve and change. A more detailed approach is needed. In this post I outline current and potential work on a path towards a more complete inspection of requirements based on APIs and dynamic pinning of libraries.

Read more ...


R 4.0 Migration Retrospective

While the R 4.0 migration has been functionally complete for quite a while, the recent migration of r-java and its dependents gives a good opportunity to write a retrospective on the technical issues with large-scale migrations in conda-forge and how we solved them.

Read more ...


Scipy 2020 Packaging BOF

Have some thoughts about conda-forge and how it can be expanded in a way that is sustainable? Join us in this virtual Birds of a Feather discussion where we’ll discuss maintenance, pain points, opportunities within conda-forge. Any and all are welcome, and we especially are seeking new viewpoints and opinions!

Read more ...


Conda-Forge Operational Risk

Recently I’ve been thinking about operational risk (op. risk). Operational risks arise from failures of processes, for instance a missing email, or an automated software system not running properly. Many commercial institutions are interested in minimizing op. risk, since it is risk that produces no value, as opposed to risks associated with investing. This is also something I think about in my job at Lab49, where I’m a software engineering consultant focusing on financial institutions. I think there is also a good analogy for Conda-Forge, even though we are not a commercial outfit. In this case the risk we incur isn’t the potential for lost earnings but frustration for our users and maintainers in the form of bugs and lackluster user experience. In this post I explore three main sources of operational risk for Conda-Forge: Automation, Top-Down Control, and Self-Service Structure.

Read more ...


PyPy builds on conda-forge

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

Read more ...


Google Summer of Code 2020 improved automatic maintenance of conda-forge

The conda-forge “autotick” bot is a crucial part of conda-forge’s infrastructure. It enables automatic maintenance of conda-forge packages by pushing version updates to the underlying software and enabling large migrations of packages from one dependency to another (e.g., Python 3.7 to Python 3.8). As conda-forg grows in size, with over 9,000 packages to date, automatic maintenance of the conda-forge ecosystem will become even more important.

Read more ...


By the power of Grayskull… I have the Conda recipe!

The main goal of the Skeletonr is to conquer Grayskull.

Read more ...


Automatically Deployed ABI Migrations

Handling application binary interface (ABI) migrations has always been a hassle for Conda-Forge. Maintaining ABI consistency helps enable the “just use conda-forge” experience for many of our users, making certain that numpy’s blas is the same as scipy’s. As libraries update their code, the new versions may be ABI incompatible, as function signatures and other symbols may have changed, leading to the dreaded SegmentationFault and other errors.

Read more ...