For the full story, read the complete conversation. Note that we’ve added section headers for readability. For the TL;DR, go straight to the “Can we summarize?” section.
Conda: An Imagined Conversation
Fiona: Is conda free?
Dave: Yes. Absolutely and always.
F: Then why do some people say conda is not free? Where does this story come from?
Conda Packages and the conda Ecosystem
D: There is a distinction between the conda program that installs packages and manages environments, and the conda-compatible software packages that you install using conda.
F: Wait. I heard a fixed-width
font when you said “conda,” but not when you said “conda-compatible.” What’s that about?
D. Ah, good catch. The word “conda” can refer to several things. conda
in fixed-width font refers to the actual conda program. The word “conda” without any extra annotation refers to the conda ecosystem and community. The conda ecosystem is much bigger than just conda
(see the conda and conda-incubator repos for some examples). The conda ecosystem also includes other conda-compatible package managers like mamba and the just-released pixi (these package managers are free and open source too).
F. Got it.
D. Now, back to packages:
conda
, the package installation and environment management software, is free to use by anyone and always has been. It’s also open source (and always has been). Conda-compatible packages that you install with conda
are also usually free, but some specific conda channels (places where you find conda-compatible software packages) impose restrictions on who can use packages from those channels.
F: Dave, your answer went from four words (“Yes. Absolutely and always.”) to like, a hundred words. I liked the four-word answer. Everyone will like the four-word answer. Why complicate things?
Conda Channels
D: Supporting restricted channels enables two big use cases: First, while conda is all about open source (and is used to publish, install, and manage tens of thousands of open-source packages), it is also possible to distribute proprietary software using conda. This allows vendors to better support their customers who are already conda users, and vendors get the benefits of conda package management too. This case is straightforward for us because proprietary channels are login protected. You can’t accidentally use them.
F. So, avoiding proprietary channels is easy because I would need a login. What’s the other case?
D: It’s more complicated.
F: I knew it.
The default
Channel
D: Well, it’s not that complicated:
Anaconda, where conda
was first created, generates revenue by charging for access to specific channels containing packages that are curated, built, maintained, and served by Anaconda’s engineers on its secure cloud infrastructure. Anaconda’s default
channel is one of these. The default
channel emphasizes security and stability.
Most channels, including conda-forge and Bioconda, are run by volunteer communities and offer best effort security; they are not recommended for use in sensitive environments. This can work well for research projects, prototypes, and education. In these scenarios, you probably aren’t working with sensitive data such as personally identifiable or financial information, or in a regulated industry. Getting hacked is still a huge pain, but you are unlikely to go bankrupt, get sued for a data breach, or cause traffic lights to stop working. Anaconda’s default
channel uses a secure open-source software supply chain, thus helping prevent security breaches that community processes can be vulnerable to.
F: Ah, so Anaconda generates revenue by selling access to default
for those who need more security and stability than community channels can provide?
D: Yes, and part of that revenue is funneled back into the conda ecosystem to pay Anaconda engineers to maintain default
, work on conda
, support anaconda.org (where conda-forge, Bioconda, and many other community channels are hosted), and support many other open source communities as well.
F: That’s great Dave, but I have installed and used conda before, and I am pretty sure I have used the default channel without paying for it. Is that right?
D: Yes.
Distributions: Anaconda, Miniconda, and the default
Channel
F: I’m confused.
D: I know. It’s confusing. Some background will help make everything crystal clear, I promise.
You probably installed conda
using Anaconda Distribution or the Miniconda installer. These install conda
and configure it to pull packages from the default channel. (You can also install conda
using the Miniforge installer, which configures conda
(and mamba) to pull packages from the conda-forge channel instead.
F: Wait. Why is Anaconda called a distribution, while Miniconda and Miniforge are installers?
D. Well, all three include conda
. Miniconda and Minforge are installers because they only install conda plus the minimal amount of accompanying software needed to run conda. With these two, you then build out your environment by installing additional packages as you need them.
Anaconda is a distribution because it includes conda
, plus conda’s supporting software, plus a large set of additional packages that are curated by Anaconda. It’s actually also installed with an installer, we just call the whole thing a “distribution” since it distributes more than just conda (all these other packages). You can use Anaconda Distribution for many tasks “out of the box,” without needing to install additional packages. These packages all come from the default channel and emphasize data science and artificial intelligence applications.
F. Got it.
The default
Channel and Anaconda’s Terms of Service
D: Now, let’s talk about the default channel.
From 2016 to 2020, the default channel and Anaconda Distribution (which uses default) were available free of charge to everyone. Supporting the default channel, Anaconda Distribution, conda, and anaconda.org actually consumed a fair amount of funds and employee time. In 2020, to help make this effort sustainable, Anaconda added terms of service to the default channel and to Anaconda Distribution, but not to conda itself. As of 2020, certain organizations have to pay to access default or use Anaconda Distribution, while others could continue to use it for free.
F: Ah, so default
and Anaconda Distribution both have free users and paid users?
D. Yes.
F: So, who has to pay?
D. It’s defined in the terms of service!
F: Dave, the terms of service are like, a thousand pages long. Nobody reads terms of service documents.
D: You weren’t supposed to follow the link. You were supposed to just say, “Great!”
The key parts of the terms of service are in the Purchased vs Free Offerings section, which is actually pretty straightforward for a legal document. It basically says that if your organization has 200 or more people in it, then you need to pay for access to the default channel and Anaconda Distribution. The terms of service also carve out some notable exceptions on who has to pay:
Students and educational entities may use our free offerings in curriculum-based courses.
F: So if my organization has less than 200 people, then I can use default for free. Otherwise, I need to pay to use default
, unless my organization meets one of the exceptions.
D: YES!
Can we summarize?
F: Can we summarize?
D: Indeed we can.
conda
, the software program for package and environment management, is free to use by anyone. It’s open source, too.- The conda-compatible packages in conda-forge, Bioconda, and almost all other publicly accessible channels are free to use by any one.
- The conda-compatible packages in the
default
channel and Anaconda Distribution are free to use if:- Your organization has less than 200 people, or
- Your organization has 200 or more people, but qualifies as an exempt organization in Anaconda’s terms of service:
Students and educational entities may use our free offerings in curriculum-based courses.
F: That’s it?
D: That’s it.
Talk to an Expert
Talk to one of our experts to find solutions for your AI journey.