Skip to content
zoryn/ maintainer-assistant

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

OptionDescription
nameDisplay name for the batch (default: config filename)
basedirBase directory for packages, supports ~ expansion
specsubstDefault specsubst for gear-create-tag (e.g. phpver=8.4)
mainMain package name for version/tag derivation
main_branchGit branch to read main package spec from
tag_formatTag name template (default: {main_name}-{main_version}-{main_release})
tag_messageTag 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

OptionDescription
pathCustom path (overrides basedir/name), supports ~
modebuild (default) or rebuild
excludeTOML array or comma-separated string of repos where package is excluded
onlyTOML array or comma-separated string of repos where package is included (exclusive)
skiptrue to temporarily disable
specsubstOverride 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:

zoryn task genbatch 404784 --main php --output ~/.config/zoryn/batch/php-8.4.conf