conda-forge Core Dependency Tree (CDT) builds
The following options are available when adding a CDT in the configuration file:
custom
(boolean): Set totrue
to declare the CDT as a custom CDT. This will cause the CDT generation code to remove any instance of the CDT that appears in thecdts
directory.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.yaml
appropriately. If set tonull
, it will remove thelicense_file
key from themeta.yaml
.build_append
(dict mapping dist-arch to a string): Set this key to append code to thebuild.sh
file for a given distribution and platform. For example, one might set a keycos6-x86_64
in 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.yaml
file. - Run the python script
gen_cdt_recipes.py
. This script will generate the CDT recipes that do not exist. Pass--force
to 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_number
variable in theconda_build_config.yaml
file. - Run the python script
gen_cdt_recipes.py
. This script will generate the CDT recipes that do not exist. Pass--force
to 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.yaml
file. Make sure to setcustom: true
in the metadata in the file. - Add the CDT recipe in a directory under the full CDT package name in the
custom_cdts
folder. 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_hoist
in the source sections - sysroot directory has
conda
only in the path - needs to have a
run
requirement 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)