How to submit a recipe to conda-forge

July 10th, 2018

conda-forge

It is a community led collection of recipes, build infrastructure, and packages for the conda package manager.

The problem we are trying to solve

$ conda search my-awesome-pkg

PackagesNotFoundError: The following packages are not available from current channels:

  - my-awesome-pkg

We want to avoid this scenario!

xkcd 1654
xkcd 1654

conda-skeleton to the rescue

conda skeleton pypi my-awesome-pkg

or

conda skeleton cran my-awesome-pkg
To use 'conda skeleton', install conda-build.

The recipe

The recipe

The recipe

The recipe

Build the recipe locally or with CIs

  • docker pull condaforge/linux-anvil
  • conda build my-awesome-pkg
  • enable Travis-CI and AppVeyor on your fork

Submit the recipes to conda-forge

What happens next…

  • the recipe will be built for OS X (Travis-CI), Linux (CircleCI), and Windows (AppVeyor)
  • the community volunteers will review and merge the recipe
  • once merged the recipe will be removed from staged-recipes
  • a new repository, feedstock, will be created and the recipe maintainers will have write access to it

Maintaining a package

  • the maintainer is not responsible updating, reviewing and merging PRs to the feedstock
  • some of those PRs will be automatic updates to conda-forge’s boilerplate CI configuration
  • in the near-future PRs updating the package will also be automatic, reducing the burden on the maintainer.

Hands on exercise!

  • install conda-build
  • choose a package from CRAN or PyPI
  • run the conda-skeleton command for the package
  • “clean” the recipe for conda-forge
  • submit a PR to staged-recipes