conda-forge Contributions π
ππ Advent of Open Source β Day 11/24: Maintaining over 40 conda-forge recipes, enabling easy installation of scientific software.
(See my intro post)
Unlike other projects in this advent calendar, I want to celebrate being part of something much bigger: the conda-forge community, where thousands of volunteers maintain the packages that power scientific Python.
π Origin Story
I started with conda-forge in 2016 during my PhD work with Kwant, a quantum transport simulator. Installing it was a nightmare - it required system-level numerical libraries like MUMPS and Scotch which required a special config file to link. When I discovered conda-forge and its mission to make scientific software installation painless, I knew this was the solution!
π§ Technical Highlights
Over the past 8 years, I’ve maintained over 40 build recipes, including:
- Major scientific packages like VTK, MUMPS, and Scotch
- Quantum physics tools like Qsim, Qcodes, and Kwant
- Visualization libraries like HoloViews
- Plus all the packages I’ve authored myself
The real magic of conda-forge is its infrastructure:
- Automated builds across Linux, macOS, and Windows
- Strict dependency version management
- Comprehensive CI/CD pipelines
- Community-driven quality control
π Impact
What makes conda-forge truly special is how initial contributions blossom into collaborative efforts. I’ve experienced this firsthand: after creating the initial MUMPS feedstock, 25 other contributors joined in, each bringing their unique expertise.
A recent experience also illustrates this: I added CUDA support to both Google’s Qsim and IBM’s Cirq packages. Shortly after, Leo Fang, an engineer from NVIDIA who knows CUDA far better than I do, stepped up and made significant improvements. This is the beauty of open source - experts naturally gravitate to where they can make the biggest impact.
This collaborative approach solves a problem I’ve encountered at several companies: the tendency to maintain complicated build systems internally with custom hacks. Instead of each organization reinventing the wheel, conda-forge provides a shared platform where:
- Maintenance burden is distributed
- Expert knowledge flows freely
- Build practices are standardized
- Infrastructure is public and reusable
π― Challenges and Solutions
- Keeping up with upstream changes
- Managing complex dependency trees
- Cross-platform compatibility
- Coordinating with upstream maintainers
π‘ Lessons Learned
- Community effort beats solo work for infrastructure
- Automation is crucial for reliability
- Small contributions compound over time
- Being part of something bigger is rewarding
Want to contribute to scientific Python? Check out conda-forge and the staged-recipes repository!
#OpenSource #Python #Scientific #Programming #Community