Package Bootstrap Workflow
When adding a new package to packages/:
Create the package directory and a minimal
PKGBUILD. For packages that mirror an existing Arch or AUR package, define the upstream source variable and the maintainer demotion flag:_upstream_aur_pkgfor AUR packages_upstream_arch_repofor official Arch GitLab packages_demote_upstream_maintainer=trueto automatically demote upstream maintainers to contributors_pkgname=<canonical-name>to declare the canonical software name (set on ALL packages in a variant family, including the base). If the package is standalone with no variants, omit_pkgname.- For
gemini-clivariants, add_use_common_gemini_settings=true _deploy_aur=trueif this package should be published to the AUR by the CI/CD pipeline- For CPU-optimization variants, set
_repo_subarch(e.g.,"x86_64_v3") — mutually exclusive with_deploy_aurIf the package is entirely custom and does not mirror any upstream PKGBUILD, omit the_upstream_*variables and define a standardsourcearray directly. In this case, skip step 2 and proceed to step 3.
For mirrored packages, run the bootstrap script. Look up the upstream version from the source repository (AUR web interface, Arch GitLab tags, or release page) before running:
bash scripts/sync-package.sh <pkgname> <version>This fetches the upstream PKGBUILD, initializes tracking state, applies declarative identity rules (demotion, asset sync), and updates hashes. Only one invocation is needed.
Set up version checking from within the package directory:
pkgctl version setupThis generates a valid
.nvchecker.tomlfrom the PKGBUILD source array.Create a package-local
AGENTS.mdONLY if the package has non-standard build requirements, undocumented quirks, or specific environmental constraints. Otherwise skip this step. The file must follow the Hierarchical Policies in the rootAGENTS.md.Register the package in the root
.nvchecker.tomlfor global version monitoring.Run the full verification sequence:
namcap PKGBUILD makepkg --printsrcinfo > .SRCINFO pkgctl build pkgctl diff --list
Gotchas
- The
sync-package.shscript expects the upstream source variable to be set correctly. If the upstream package uses a non-standard name, verify the variable before bootstrapping. pkgctl version setupmust be run inside the package directory. The.nvchecker.tomlit generates is package-specific.