Spinning this off from the conversation started here: conda/conda-build#5919
I'm not saying we have to or we should create this tool. The Conda Community already has a few similar projects:
And then there's rattler-build generate, outside of the Conda org.
BUT Conda Recipe Manager is well positioned as a V0 (and hopefully soon a V1) Conda recipe parser able to generate recipe files from scratch. crm bump-recipe already exists as a tool that can "bump" a recipe from one software version to the next.
A crm bootstrap would look something along the lines of this psuedo code:
# Or `RecipeParserDeps` if dependency functions are needed.
from conda_recipe_manager.parser.recipe_parser import RecipeParser
from pathlib import Path
parser = RecipeParser("")
parser.set_variable("version", "1.2.3")
parser.patch({"op": "add", "path": "/build", "value": {})
parser.patch({"op": "add", "path": "/build/number", "value": 0)
# Do this for all values you could want, branch on V0/V1 ...
Path("/path/to/recipe/file/meta.yaml").write_text(parser.render(), encoding="utf-8")
At the very least, CRM could (and IMO should if we don't make crm bootstrap) be used to expand our current recipe bootstrapping/templating abilities in another tool. CRM has a very flexible and well documented set of tooling to make recipe editing easy and consistent.
Spinning this off from the conversation started here: conda/conda-build#5919
I'm not saying we have to or we should create this tool. The Conda Community already has a few similar projects:
And then there's
rattler-buildgenerate, outside of the Conda org.BUT Conda Recipe Manager is well positioned as a V0 (and hopefully soon a V1) Conda recipe parser able to generate recipe files from scratch.
crm bump-recipealready exists as a tool that can "bump" a recipe from one software version to the next.A
crm bootstrapwould look something along the lines of this psuedo code:At the very least, CRM could (and IMO should if we don't make
crm bootstrap) be used to expand our current recipe bootstrapping/templating abilities in another tool. CRM has a very flexible and well documented set of tooling to make recipe editing easy and consistent.