This is version 0.1.
This is a small tool intended to do linting, pre-rendering, and analysis of conda recipes. It supports some jinja2 features (be aware it doesn't support full python-language feature) It outputs files in yaml format.
Right now build scripts are only available for Unix-like operating systems. Nevertheless the adjustments required for Windows are pretty straight-forward, and just a few adjustments might be necessary for it.
- Build
Jinja2Cpp
by executing thebldJinja2Cpp.sh
script (or run its cmake manually). Note: Test test-suite is not adjusted, so don't wonder if it fails right now.
$ ./bldJinja2Cpp.sh
- Build
yaml-cpp
by executing thebldYaml-cpp.sh
script.
$ ./bldYaml-cpp.sh
- Build
crender
itself by executing thebld.sh
script.
$ ./bld.sh
- Confirm that
crender
is working.
$ ./bin/crender --help
-
After building you will find 2 new directories in
crender
's git root directory.pref/
: Contains all binaries created byJinja2Cpp
andyaml-cpp
.bin/
: Contains the createdcrender
binary.
The
crender
binary assumes there is adata/
directory at the same level as thebin/
directory. So if you movecrender
somewhere else, don't forget to also move thedata/
directory and its content accordingly.
Example (querying all of the feedstocks for linux-aarch64
):
$ ./bin/crender -a linux-aarch64 -o ./output_linux-aarch64 -i -S -p 3.8 ../aggregate/*-feedstock
NB1: You will ned to make sure the output directory (-o
) exists before running the command.
NB2: You can specify multiple python versions using the -p
parameter, and multiple architectures/subdirs with the -a
parameter.
info_envs.yaml
- Lists environment variables set by feedstocks' meta.yaml
files.
info_notes.yaml
- Tells you for each recipe things that might be wrong. Like a linter.
nfo_o2p.yaml
- "Output to package." The individual output from a recipe, and underneath that is the recipe from which it came. Example:
libcurl:
- curl_split_recipe
curl:
- curl_split_recipe
curl_split_recipe:
- curl_split_recipe
- Basically tells you which output belongs to which recipe.
info_p_dependson.yaml
- "This package depends on the following packages."
info_p_dependson.yaml
- Splits up by dependency type/kind (e.g. build, host, run, test).
info_p_usedby.yaml
- "All these packages use this package" (represented by the key).
info_pv.yaml
- Specific versions of packages used among the feedstocks scanned in AnacondaRecipes.
info_pv2o.yaml
- "This recipe version produces these outputs." Example:
curl_split_recipe 7.71.1:
- libcurl
- curl
- curl_split_recipe
info_urls.yaml
- Maps URLs (in the meta.yamls) to their types (e.g. source, home, dev, doc).
- Can be used to verify the URLs are valid.
For Jinja2Cpp and yaml-cpp see its README. The crender was written by Kai Tietz in 2021/05/21
Jinja2Cpp is under Mozilla Public License Version 2.0. For further information see Jinja2Cpp's sources. This sources were majorly extended by Kai Tietz by using the same license for its source.
yaml-cpp is released under MIT-like license by Jesse Beder.
crender is released under MIT-like license. See LICENSE for more details.