A Newbie’s Guide To conda-forge

Hello, Darling Readers!
If you’ve been following my blogs, you’d know that I am contributing to conda-forge as an Outreachy intern.
If you hadn’t heard of conda-forge before, the first thing I’d want you to know is; I am not making any grammatical errors when I write ‘conda-forge’ and not ‘Conda-forge’ or ‘Conda-Forge’.
That’s the convention that the community uses. We call the conda-forge community, the conda-forge channel, and the conda-forge organization just that — conda-forge. All lowercase. I don’t know if that might change in the future.

When I first came across conda-forge during the Outreachy contribution period, I did not quite understand what it was. I had no prior experience with packaging and only briefly knew about Anaconda.
My mentor was kind enough to do away with my ignorance and confusion by giving me a detailed explanation. The process of understanding the conda-forge ecosystem and contributing to it then became smoother for me.
In this blog I try to introduce newbies to conda-forge. Keep reading.

Okay first things first. Do you know what a ‘package’ is?
A package is a software or a functional piece of code that someone wrote and published so that others can use it too.
How can others use it?
By ‘importing’ that package into their own code.

For example:

import numpy as np

Now where are these packages published?
They are published on various channels. Read this section from the conda documentation to learn more about channels.
When the conda command is used to install packages, for example;

conda install abc

The search for the package abc will, by default, be done in the default channel of conda.
But sometimes, it’s possible that the package we are looking for is not available in the default channel. What then?
Well then you’ll have to find out on your own which channel your package is located in. And let me warn you sweetie, it is possible that the channel you locate your package in, was long abandoned and the packages are not up to date. Another thing to keep in mind is that combining packages across channels is not always possible due to binary incompatibilities.

All these problems and more arose before there was conda-forge.

conda-forge created a single channel namely — conda-forge where all the packages are shared. conda-forge makes sure that all the packages are up-to-date. The core team at conda-forge also makes an effort to take over and maintain abandoned packages.

Cool, isn’t it?
To set conda-forge as your default channel for package search and installation follow these steps.
conda-forge is community driven, it is the community that helps it expand and grow. You too can contribute to conda-forge by adding your own, or any other package to conda-forge; just follow this tutorial.

conda-forge is a warm and welcoming community of intelligent and dedicated members. There is a lot of opportunity for everyone to learn and grow. At conda-forge I received help promptly whenever I got stuck and was encouraged when I got demotivated. My experience at conda-forge has been nothing but enriching.

I hope all this information makes for a good enough intro to conda-forge.
If you’d like to know more, feel free to drop your questions in the comment section below or reach me out on Twitter.

I write about what I learn.