id = "rattler-build"
name = "Rattler-Build"
homepage = "https://rattler.build"
description = "Universal conda package builder"
executables = ["rattler-build"]
[dotfiles]
paths = ["[configHome]/rattler-build/config.toml", "~/.rattler-build/config.toml"]
secret = []
[commands]
format = 1
label = "Build conda packages"
description = "Build a conda package from a recipe.yaml. Test strategy, skip-existing, platform overrides, auth and rarely used rendering options are left out."
quality = "ai-draft"
parser = { end_of_options = "--", interleave = "permute", long_equals = true, short_attached = true, short_bundles = false }
[[commands.subcommand]]
path = ["build"]
label = "Build a package"
description = "Build the recipe in a file or directory (current directory by default)."
[[commands.subcommand.source]]
id = "src"
kind = "help"
url = "https://github.com/prefix-dev/rattler-build/blob/main/src/opt.rs"
revision = "main 2026-10-27"
evidence = '''
Build options.
--recipe, -r The recipe file or directory containing `recipe.yaml`. Defaults to the current directory.
--recipe-dir The directory that contains recipes.
--target-platform The target platform for the build.
--channel, -c Add a channel to search for dependencies in.
--variant-config, -m Variant configuration files for the build.
--variant Override specific variant values (e.g. --variant python=3.12 or --variant python=3.12,3.11).
--render-only Render the recipe files without executing the build.
--keep-build Keep intermediate build artifacts after the build.
--output-dir Output directory for build artifacts.
--package-format The package format to use for the build. Can be one of `tar-bz2` or `conda`.
'''
[[commands.subcommand.field]]
id = "recipe"
label = "Recipe"
type = "path"
description = "Recipe file or directory containing recipe.yaml. Defaults to the current directory."
option = ["--recipe", "-r"]
path = { kind = "any", role = "input" }
multiple = true
sources = ["src"]
[[commands.subcommand.field]]
id = "recipe_dir"
label = "Directory of recipes"
type = "path"
option = ["--recipe-dir"]
path = { kind = "directory", role = "input" }
sources = ["src"]
[[commands.subcommand.field]]
id = "channel"
label = "Channels"
type = "string"
option = ["--channel", "-c"]
multiple = true
suggestions = [{ value = "conda-forge", label = "conda-forge" }]
sources = ["src"]
[[commands.subcommand.field]]
id = "variant_config"
label = "Variant config files"
type = "path"
option = ["--variant-config", "-m"]
path = { kind = "file", role = "input" }
multiple = true
sources = ["src"]
[[commands.subcommand.field]]
id = "variant"
label = "Variant override"
type = "string"
description = "name=value or name=v1,v2, e.g. python=3.12."
option = ["--variant"]
multiple = true
sources = ["src"]
[[commands.subcommand.field]]
id = "target_platform"
label = "Target platform"
type = "string"
option = ["--target-platform"]
suggestions = [{ value = "linux-64", label = "linux-64" }, { value = "linux-aarch64", label = "linux-aarch64" }, { value = "osx-arm64", label = "osx-arm64" }, { value = "osx-64", label = "osx-64" }, { value = "win-64", label = "win-64" }, { value = "noarch", label = "noarch" }]
sources = ["src"]
[[commands.subcommand.field]]
id = "output_dir"
label = "Output directory"
type = "path"
option = ["--output-dir"]
path = { kind = "directory", role = "output" }
sources = ["src"]
[[commands.subcommand.field]]
id = "render_only"
label = "Render only, do not build"
type = "boolean"
option = ["--render-only"]
sources = ["src"]
[[commands.subcommand.field]]
id = "keep_build"
label = "Keep build artifacts"
type = "boolean"
option = ["--keep-build"]
sources = ["src"]
[[commands.subcommand.field]]
id = "package_format"
label = "Package format"
type = "string"
option = ["--package-format"]
suggestions = [{ value = "conda", label = "conda" }, { value = "tar-bz2", label = "tar-bz2" }]
sources = ["src"]
[[commands.subcommand.task]]
id = "build"
label = "Build from conda-forge"
fields = ["recipe", "channel", "output_dir"]
required = []
set = { channel = ["conda-forge"] }
[[commands.subcommand.task]]
id = "render"
label = "Render recipe only"
fields = ["recipe", "render_only", "variant"]
required = []
set = { render_only = [true] }
[[commands.subcommand.group]]
id = "basic"
label = "Basic"
fields = ["recipe", "channel", "output_dir", "render_only"]
[[commands.subcommand.group]]
id = "advanced"
label = "Advanced"
fields = ["recipe_dir", "variant_config", "variant", "target_platform", "keep_build", "package_format"]