Rattler-build
Rattler-build recipe
| Type | SimpleRecipe | ComplexRecipe |
|---|---|
| File match |
recipe.yaml
recipe.yml
|
| Schema URL | https://catalog.lintel.tools/schemas/schemastore/rattler-build/latest.json |
| Source | https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json |
Validate with Lintel
npx @lintel/lintel check
Any of
Definitions
Url of the homepage of the package.
Url that points to where the source code is hosted e.g. (github.com)
Url that points to where the documentation is hosted.
An license in SPDX format.
Paths to the license files of this package.
The license family (deprecated, but still used in some recipes).
A short description of the package.
Extended description of the package.
URL to download the attestation bundle from (e.g., .sigstore.json file). Auto-derived for PyPI sources if not specified.
Publisher identities to verify (e.g., 'github:owner/repo'). All specified publishers must match.
[]
The url that points to the git repository.
A list of patches to apply after fetching the source
[]
The location in the working directory to place the source
A value to use when shallow cloning the repository.
Should we LFS files be checked out as well
Whether to recursively initialize and update submodules.
An expected commit hash to verify after checkout.
Build number to version current build in addition to package version
The build string to identify build variant. This is usually omitted (can use ${{ hash }}) variable here)
List of conditions under which to skip the build of the package. If any of these condition returns true the build is skipped.
Can be either 'generic' or 'python'. A noarch 'python' package compiles .pyc files upon installation.
The script to execute to invoke the build. If the string is a single line and ends with .sh or .bat, then we interpret it as a file.
Merge the build and host environments (used in many R packages on Windows)
Files to be included even if they are present in the PREFIX before building.
[]
Do not soft- or hard-link these files but instead always copy them into the environment
[]
Options that influence how the different variants are computed.
Python specific build configuration
Configuration to post-process dynamically linked libraries and executables
Options that influence how the prefix replacement is done.
Glob patterns to include or exclude files from the package.
Post-processing operations using regex replacements on files.
[]
The source items to be downloaded and used for the cache build and subsequent outputs.
The dependencies needed at cache-build time.
Describes how the package should be build.
Name of the staging cache to inherit from.
Whether to inherit run_exports from the staging cache.
The recipe name, this is only used to identify the name of the recipe.
The version of each output, this can be overwritten per output
A list of outputs that are generated for this recipe.
The version of the YAML schema for a recipe. If the version is omitted it is assumed to be 1.
Defines arbitrary key-value pairs for Jinja interpolation
The source items to be downloaded and used for the build.
Describes how the package should be build.
A human readable description of the package information
An set of arbitrary values that are included in the package manifest
The package version.
The cache build that can be used as a common build step for all output.
Top-level tests that are inherited by outputs
A string or list of strings that is the scripts contents
The interpreter to use for the script.
Defaults to bash on unix and cmd.exe on Windows.
the script environment.
You can use Jinja to pass through environments variables with the env object (e.g. ${{ env.get("MYVAR") }})
{}
Secrets that are set as environment variables but never shown in the logs or the environment.
[]
The working directory to use when executing the script.
Install the package and use the output of this package to test if the tests in the downstream package still succeed.
linux only, list of rpaths (was rpath)
[
"lib/"
]
Whether to relocate binaries or not. If this is a list of paths then only the listed paths are relocated
Allow linking against libraries that are not in the run requirements
[]
Allow runpath/rpath to point to these locations outside of the environment
[]
What to do when detecting overdepending. Overdepending means that a requirement a run requirement is specified but none of the artifacts from the build link against any of the shared libraries of the requirement.
What to do when detecting overdepending. Overlinking occurs when an artifact links against a library that was not specified in the run requirements.
Files or glob patterns that must exist anywhere inside the package.
[]
Files or glob patterns that must NOT exist anywhere inside the package.
[]
The file to use as the script. Automatically adds the bat or sh to the filename on Windows or Unix respectively (if no file extension is given).
The interpreter to use for the script.
Defaults to bash on unix and cmd.exe on Windows.
the script environment.
You can use Jinja to pass through environments variables with the env object (e.g. ${{ env.get("MYVAR") }})
{}
Secrets that are set as environment variables but never shown in the logs or the environment.
[]
The working directory to use when executing the script.
force TEXT file type
[]
force BINARY file type
[]
The url that points to the git repository.
Branch to check out
A list of patches to apply after fetching the source
[]
The location in the working directory to place the source
A value to use when shallow cloning the repository.
Should we LFS files be checked out as well
Whether to recursively initialize and update submodules.
An expected commit hash to verify after checkout.
The url that points to the git repository.
Revision to checkout to (hash or ref)
A list of patches to apply after fetching the source
[]
The location in the working directory to place the source
A value to use when shallow cloning the repository.
Should we LFS files be checked out as well
Whether to recursively initialize and update submodules.
An expected commit hash to verify after checkout.
The url that points to the git repository.
Tag to checkout
A list of patches to apply after fetching the source
[]
The location in the working directory to place the source
A value to use when shallow cloning the repository.
Should we LFS files be checked out as well
Whether to recursively initialize and update submodules.
An expected commit hash to verify after checkout.
ignore run exports by name (e.g. libgcc-ng)
[]
ignore run exports that come from the specified packages
[]
A path on the local machine that contains the source.
A list of patches to apply after fetching the source
[]
The location in the working directory to place the source
The SHA256 hash of the source archive
The MD5 hash of the source archive
Whether or not to use the .gitignore file when copying the source.
A file name to rename the file to (does not apply to archives).
Glob patterns to include or exclude files from the package.
The package name and version, this overwrites any top-level fields.
Name of the staging cache to inherit from, or an object with from and run_exports options.
The source items to be downloaded and used for the build.
Describes how the package should be build.
The package dependencies
Tests to run after packaging
A human readable description of the package information. The values here are merged with the top level about field.
Test if the package contains the specified files.
Files expectations for the whole package. Can be a list of files/globs or an object with exists/not_exists.
Files that should be in the include/ folder of the package. This folder is found under $PREFIX/include on Unix and $PREFIX/Library/include on Windows.
[]
Files that should be in the site-packages/ folder of the package. This folder is found under $PREFIX/lib/pythonX.Y/site-packages on Unix and $PREFIX/Lib/site-packages on Windows.
[]
Files that should be in the bin/ folder of the package. This folder is found under $PREFIX/bin on Unix. On Windows this searches for files in %PREFIX, %PREFIX%/bin, %PREFIX%/Scripts, %PREFIX%/Library/bin, %PREFIX/Library/usr/bin and %PREFIX/Library/mingw-w64/bin.
[]
Files that should be in the lib/ folder of the package. This folder is found under $PREFIX/lib on Unix and %PREFIX%/Library/lib on Windows.
[]
When true, the package must not contain any files other than those specified.
A list of Perl modules to check after having installed the built package.
Files to apply post-processing to
Regular expression pattern to match
Replacement string
force the file type of the given files to be TEXT or BINARY
Ignore all or specific files for prefix replacement
Whether to detect binary files with prefix or not
[]
Specifies if python.app should be used as the entrypoint on macOS. (macOS only)
Skip compiling pyc for some files
[]
The path to the site-packages folder. This is advertised by Python to install noarch packages in the correct location. Only valid for a Python package.
Whether the package is version independent or not. This is useful for 'abi3' packages that are OS specific, but not Python version specific.
A list of Python imports to check after having installed the built package.
Whether or not to run pip check during the Python tests.
Python version(s) to test against. If not specified, the default python version is used.
A list of R libraries to check after having installed the built package.
Dependencies to install on the build platform architecture. Compilers, CMake, everything that needs to execute at build time.
Dependencies to install on the host platform architecture. All the packages that your build links against.
Dependencies that should be installed alongside this package. Dependencies in the host section with run_exports are also automatically added here.
constraints optional dependencies at runtime.
The run exports of this package
Ignore run-exports by name or from certain packages
A list of Ruby modules to check after having installed the built package.
Weak run exports apply from the host env to the run env
Strong run exports apply from the build and host env to the run env
Noarch run exports are the only ones looked at when building noarch packages
Weak run constraints add run_constraints from the host env
Strong run constraints add run_constraints from the build and host env
A script to run to perform the test.
Additional dependencies to install before running the test.
Additional files to include for the test.
The package name
The package version
The version of the YAML schema for a recipe. If the version is omitted it is assumed to be 1.
Defines arbitrary key-value pairs for Jinja interpolation
The source items to be downloaded and used for the build.
Describes how the package should be build.
A human readable description of the package information
An set of arbitrary values that are included in the package manifest
Tests to run after packaging
The package dependencies
The script to execute to invoke the staging build.
Unique name for this staging cache.
The source items to be downloaded and used for the staging build.
The dependencies needed for the staging build.
Build configuration for the staging output.
Dependencies to install on the build platform architecture for the staging build.
Dependencies to install on the host platform architecture for the staging build.
Ignore run-exports by name or from certain packages
extra files from $SRC_DIR
extra files from $RECIPE_DIR
extra requirements with build_platform architecture (emulators, ...)
extra run dependencies
Url pointing to the source tar.gz|zip|tar.bz2|... (this can be a list of mirrors that point to the same file)
A list of patches to apply after fetching the source
[]
The location in the working directory to place the source
The SHA256 hash of the source archive
The MD5 hash of the source archive
A file name to rename the downloaded file to (does not apply to archives).
Optional attestation verification configuration.
Keys to forcibly use for the variant computation (even if they are not in the dependencies)
[]
Keys to forcibly ignore for the variant computation (even if they are in the dependencies)
[]
used to prefer this variant less over other variants