Towards a Vendor-Lock-In-Free conda Experience
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.