You know what GNU Radio is, but I'd like to introduce you to conda. Conda is a cross-platform package manager (supporting Linux, macOS, and Windows) that makes it easy to install packages in self-contained environments, separate from your system installation and other package managers. Conda is popular for installing Python packages, particularly for scientific computing and machine learning, but it has broader applications than those. If you've struggled with installing GNU Radio by other methods, you want to use GNU Radio with other bleeding-edge software and don't want to compile everything from source, or you want to try out a new version without affecting your tried-and-true system installation, conda may be right for you!
With this talk, I'd like to share everything I've learned in going from a casual conda user to the maintainer of the entire GNU Radio stack on conda-forge. I will cover the following:
- How to install GNU Radio on Linux, macOS, and Windows (!!) with conda
- The relationship between conda (the package manager), Anaconda (the software distribution), conda-forge (the community-supported packages), and Radioconda (my radio-focused installer/distribution)
- Common conda pitfalls and how to avoid them
- Why you should actually use mamba, conda's faster, better cousin
- How conda environments work
- How to build GNU Radio from source, including out-of-tree (OOT) modules, within a conda environment
- How to write your own recipe for creating a conda package
- The amazing infrastructure for maintaining recipes through conda-forge
- How we can create a cross-platform utopia of compiled GNU Radio OOT packages by banding together and submitting more recipes to conda-forge
I might be exaggerating a bit with that last topic, but I do hope that you will have learned enough that you could become a happy user of, and occasional contributor to, the (radio + conda) ecosystem.