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.yaml
file. This directory is managed by the user. This is whereconda_build_config.yaml
usually 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.yaml
files, passed toconda-build
via the-m
flag. Each file here corresponds to one job in the CI build matrix..ci_support/migrations/
: Special YAML files that instructconda-smithy
how to update the.ci_support/*.yaml
files. These migration files are usually put here by theautotick-bot
infrastructure, 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.