conda-forge Core Dependency Tree (CDT) builds
The following options are available when adding a CDT in the configuration file:
custom(boolean): Set totrueto declare the CDT as a custom CDT. This will cause the CDT generation code to remove any instance of the CDT that appears in thecdtsdirectory.license_file(str or list of str or null): Sets the license file for a CDT. If set to a string or a list of strings giving the paths to the files, it will copy the licenses to the recipe and modify the recipemeta.yamlappropriately. If set tonull, it will remove thelicense_filekey from themeta.yaml.build_append(dict mapping dist-arch to a string): Set this key to append code to thebuild.shfile for a given distribution and platform. For example, one might set a keycos6-x86_64in this mapping and set the value toecho 'hi!'to addecho 'hi!'to the build script for onlycos6-x86_64.dep_remove(list of strings): Set to a list of strings for deps that should be removedep_replace(dict mapping dep to replace to new dep): Set to a dict of deps to be replaced by another dep. this can be used for aliased RPMs.
To add a CDT package, make a PR on this repo with the following changes.
- Add the name of the CDT
cdt_slugs.yamlfile. - Run the python script
gen_cdt_recipes.py. This script will generate the CDT recipes that do not exist. Pass--forceto regenerate all of the CDT recipes (takes about 10-20 minutes to complete). - Commit any changes from steps 1+2 and open the PR.
The CI service will build the CDTs, report any errors, etc.
If you make changes to the CDT generation script, make a PR on this repo using the following steps.
- Make sure the bump the
cdt_build_numbervariable in theconda_build_config.yamlfile. - Run the python script
gen_cdt_recipes.py. This script will generate the CDT recipes that do not exist. Pass--forceto regenerate all of the CDT recipes (takes about 10-20 minutes to complete). - Commit any changes from steps 1+2 and open the PR.
The CI service will build the CDTs, report any errors, etc.
If you have a CDT recipe that is not autogenerated, it can be added as follows.
- Add the CDT name to the
cdt_slugs.yamlfile. Make sure to setcustom: truein the metadata in the file. - Add the CDT recipe in a directory under the full CDT package name in the
custom_cdtsfolder. If you do not know, ask someone onconda-forge/core. - Commit any changes from steps 1+2 and open the PR.
The CI service will build the CDTs, report any errors, etc.
CDTs are meant to work with conda-forge compilers that depend on the
sysroot_{conda subdir} packages.
- needs to have
no_hoistin the source sections - sysroot directory has
condaonly in the path - needs to have a
runrequirement on the proper version of thesysroot_{subdir}package so that it is only installed with CDTs from the right version of CentOS - the versions of
sysroot_{conda subdir}are 2.17 for CentOS 7 and 2.28 for Alma 8
This bit of code was run to setup azure.
from conda_smithy.azure_ci_utils import register_repo, AzureConfig
cfg = AzureConfig(project_name='cdt-builds')
register_repo("conda-forge", "cdt-builds", config=cfg)