From recipe to feedstock#
What is a feedstock?#
A feedstock is a code repository containing a Pangeo Forge recipe along with associated metadata files.
The feedstock repo should contain a subdirectory named
which contains at minimum the following three files:
. └── feedstock ├── meta.yaml ├── recipe.py └── requirements.txt
recipe.py file is the recipe itself
(see Recipe Composition for how to create this file).
The other two files are described below.
At minimum, this file requires a
recipes section with
# meta.yaml recipes: - id: "unique-recipe-id" object: "recipe_module_name:recipe_object_name"
id field is a unique identifier for your recipe, and can be any
descriptive or memorable name of your choosing.
object field records the name of the Python module which
contains your recipe and the name of the recipe (i.e., transforms)
object within that module to deploy.
recipes section is the minimum requirement for a
this file is also intended to contain additional provenance information about the
dataset. Documentation of this aspect is pending implementation of a schema
for these fields: pangeo-forge/pangeo-forge-runner#93.
# TODO: Document `dict_object` usage pattern.
This file should contain the list of dependencies required
to run your recipe, including
pangeo-forge-recipes, and should follow
pip’s requirements file format.
It is advisable for all packages listed here to be pinned to a specific version, which is beneficial for reproducible deployments. For example:
# requirements.txt pangeo-forge-recipes==<version>