Batch configs¶
Batch configs define groups of related packages for building together — PHP extensions, OCaml libraries sharing a common toolchain version, and similar situations where all packages share settings and should land in one task.
Used by zoryn task batch.
Location¶
Config files are stored in ~/.config/zoryn/batch/ with .conf extension. Reference them by name (without extension) or full path:
zoryn task batch php-8.4 # ~/.config/zoryn/batch/php-8.4.conf
zoryn task batch ~/configs/mypackages.conf # explicit path
Format¶
TOML: a [batch] table for global settings, one table per package.
[batch]
name = "PHP 8.4 extensions"
basedir = "~/packages/php8.4"
specsubst = "phpver=8.4"
main = "php"
main_branch = "8.4"
[php]
# Main package, version/tag derived from here
[php-memcached]
# Uses default settings
[pecl-imagick]
path = "~/packages/imagick"
# Custom path, not basedir/pecl-imagick
[php-unit]
mode = "rebuild"
# Rebuild instead of build from source
[php-xdebug]
skip = true
# Temporarily disabled
[php-pgsql]
exclude = ["p10", "c10f2"]
# Don't build for p10 and c10f2
[php-redis]
only = ["sisyphus", "p11"]
# Build only for sisyphus and p11
[php-sodium]
specsubst = "none"
# Disable specsubst for this package
[batch] section options¶
| Option | Description |
|---|---|
name | Display name for the batch (default: config filename) |
basedir | Base directory for packages, supports ~ expansion |
specsubst | Default specsubst for gear-create-tag (e.g. phpver=8.4) |
main | Main package name for version/tag derivation |
main_branch | Git branch to read main package spec from |
tag_format | Tag name template (default: {main_name}-{main_version}-{main_release}) |
tag_message | Tag message template (default: same as tag_format) |
Tag format placeholders¶
{main_name}— main package name (e.g.php8.4).{main_version}— main package version (e.g.8.4.17).{main_release}— main package release (e.g.alt1).{name}— current package name (e.g.php8.4-apcu).
Package section options¶
| Option | Description |
|---|---|
path | Custom path (overrides basedir/name), supports ~ |
mode | build (default) or rebuild |
exclude | TOML array or comma-separated string of repos where package is excluded |
only | TOML array or comma-separated string of repos where package is included (exclusive) |
skip | true to temporarily disable |
specsubst | Override specsubst, or none to disable |
Generating from an existing task¶
To bootstrap a batch config from a task you already have, use zoryn task genbatch: