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
orlegacy_cdts
directories.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
.skipped_cdts
(list of str): Set to a list of the distribution and platforms to skip for this CDT. For example, one might addcos6-x86_64
to this list to skip making this CDT for CentOS 6 onx86_64
architectures.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 either
the
custom_cdts
orlegacy_custom_cdts
folder depending on whether or not the CDT is targeted at the old-style CDT format or the new-style one. 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.
The old-style CDTs are targeted at the conda-forge compilers that do not use the
sysroot_{conda subdir}
packages (e.g., sysroot_linux-64
, sysroot_linux-aarch64
, etc.)
and build their own copy of glibc. These compilers also have cos6
or cos7
in the name of the sysroot directory. The new-style CDTs use a sysroot directory
without cos6
or cos7
and are meant to work with the new conda-forge
compilers that depend on the sysroot_{conda subdir}
packages.
old-style CDT specs
- needs to have
no_hoist
in the source sections - sysroot directory has
conda_cos6
orconda_cos7
in the path - needs to have
run_constrained
entry ofsysroot_{conda subdir} ==99999999999
to prevent it from being co-installed w/ the new compilers or CDTs
new-style CDT specs
- 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.12 for CentOS 6 and 2.17 for CentOS 7.
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)