Feedstocks and other package-building repositories
Most packages in conda-forge come from a repository named <package_name>-feedstock, but a very small subset comes from specific, non-feedstock, repositories.
Feedstocksโ
- โ๏ธ Deployed in Github repositories
- ๐ Has access to Azure Pipelines, Github Actions, Anaconda.org (cf-staging)
- ๐ Might have access to Travis CI, Cirun via
admin-requests(WIP) - ๐ค Integrated with
admin-migrations,admin-requests,autotick-bot,webservices.
conda-forge has thousands of feedstocks. Each feedstock hosts a recipe plus the required pipelines, supporting scripts and configuration metadata.
The contents of a feedstock are well specified. Only two locations are user-managed:
recipe/: Contains the conda-build instructions to build packages. It needs, at least, ameta.yamlfile. This directory is managed by the user. This is whereconda_build_config.yamlusually goes.conda-forge.yml: The feedstock configuration file.
You should never manually edit files not listed above! Changes will be overridden in the next feedstock rerender.
Combining these two sources with some external components, conda-smithy will generate (render) the contents of the feedstock. Many of the directories are named like that because it is what the external service (e.g. Azure) requests. However, there are some conda-smithy-unique directories that are worth discussing:
.ci_support/: Contains the renderedconda_build_config.yamlfiles, passed toconda-buildvia the-mflag. Each file here corresponds to one job in the CI build matrix..ci_support/migrations/: Special YAML files that instructconda-smithyhow to update the.ci_support/*.yamlfiles. These migration files are usually put here by theautotick-botinfrastructure, and removed once the migration is considered finished..scripts/: Common logic and code supporting the steps you can find in the CI pipelines and local debugging tools.build-locally.py: A Python script to debug recipes in your machine, roughly equivalent to what's done in the CI pipelines.
- Rerendering a feedstock
- Recommended workflow
cdt-buildsโ
- โ๏ธ Deployed in Azure Pipelines via
conda-forge/cdt-builds - ๐ Has access to Azure Pipelines, Anaconda.org (cf-staging)
This special repository builds Core Dependency Tree packages for conda-forge (Linux only). It doesn't use the feedstock automated machinery. Instead, it has its own Azure Pipelines workflow and a well documented README.
msys2-recipesโ
- โ๏ธ Deployed manually from
conda-forge/msys2-recipes
This is a fork of the old community recipes repository at Anaconda, which includes the msys2 recipes under the msys2/ directory.
Note also the supporting scripts in the common-scripts/ folder.