Cover image for Towards a Vendor-Lock-In-Free conda Experience

Towards a Vendor-Lock-In-Free conda Experience

Tim de Jager
Tim de Jager
Ruben Arts
Ruben Arts

TL;DR: conda-forge, an open-source conda package repository managed by a dedicated group of volunteers, is expected to remain free and open source in the foreseeable future. While nothing is guaranteed in the open-source world, conda-forge's governance model, along with its technical setup, is designed to uphold this commitment. It's important to note that concerns about Anaconda's pay-for-user policy only affect their defaults channels, not conda-forge.

A recently published article by The Register re-ignited a lot of concern amongst conda users. The article mentions that Anaconda is contacting some instances that are making use of the “defaults” Anaconda Distribution channels and are requesting payment. This pertains to their terms of service change in 2020. In turn this has led to renewed discussion on X, reddit and other social media that users may have to pay, or might have to pay in the future for access to packages, even those making use of an alternative channel: conda-forge.

So, what about conda-forge?

Conda-forge is a 100% community created and maintained channel and a valid alternative to the “defaults channel”. Anaconda is currently generously hosting the artifacts of conda-forge on their servers and this makes it available for everyone to enjoy. We’re grateful to Anaconda for this, along with so many other things they have done and continue to do for the community. In addition, Anaconda has stated that it has the stance that access to conda (the package and environment manager) and conda-forge (hosting of artifacts) will remain free.

What people are concerned about is only part of the conda ecosystem and concerns the defaults channels, often confusingly referred to as “the default” channel, which are main, r, msys2, and thus not conda-forge.

Anaconda is responsible for the creation and curation of the packages on the defaults channels and thus holds the opportunity to monetize these. As a summary of the difference between the two, take a look at this table:

defaults channels

conda-forge channel

Packages maintained by:

Anaconda

6000+ Open source contributors

Governed by:

Anaconda

Governing group of individuals

Artifacts available on:

repo.anaconda.com

Mainly anaconda.org, but mirrors are available, to avoid single point of failure: Github OCI Mirror Prefix mirror Create your own: Quetz

Package build instructions (recipes):

GitHub org: AnacondaRecipes

GitHub org: conda-forge Single repo that is easy to fork: feedstocks

Included channels:

main, r, msys2

conda-forge

Paid by:

Anaconda

Sponsors

Pricing:

Anaconda Pricing

Free, but feel free to donate

Commercial Support:

Anaconda

Not Available

There are currently different ways of installing the different conda based package managers and that determines which channels they use by default, this is illustrated in the table below:

Installer:

Package Manager:

Automatically sets as default:

Anaconda Distribution

conda

defaults channels

Miniconda

conda

defaults channels

Miniforge

conda/mamba

conda-forge

Micromamba

mamba

None

Pixi

pixi

conda-forge

If you want to switch channels in your conda environment you can follow the conda documentation.

Why are we writing this?

We care a lot about conda-forge, it’s the backbone of the open source conda-ecosystem. We’re working on advancing the channel and thus want to make sure everybody understands the situation correctly. Here is some of the work we’re doing:

  • CEP Proposal: A Conda Enhancement Proposal (CEP) aims to enable all tools to install from the GitHub OCI Mirror, enhancing alternative hosting options for artifacts. Along with others: #84, #74, #71, #63

  • Build Process Innovation: Ongoing efforts to improve the conda-forge build process include the introduction of rattler-build, a new tool designed to boost CI speeds and usability.

  • Transition rattler to the community: We have transitioned our foundational rattler library to the conda organization, ensuring its long-term sustainability.

  • Active Governance Participation: We actively participate in the "conda-community," an open-source governing body under the NumFOCUS umbrella. This community allows every company, including Anaconda, a maximum of two seats; we currently hold both of our allocated seats.

Conclusions

As part of our community efforts, we are still figuring out how to do things best. So we think these kinds of situations only help make us think about how we can further ensure sustainable open access to data in the future. At prefix.dev we are also committed to this. This event has also made us reflect on how we can ensure the sustainability and open access of pixi and other open source tools we are creating, and see that we still have some work to do there. We will get back to you on this in the near future.

We hope that this blog has given you some further insight into the situation, and hopefully alleviated some of your concerns. Thank you for your time reading this article :)! And we can’t stress enough, you can reach us on X, join our Discord and have a chat, shoot us an e-mail or follow projects on our GitHub.