AlmaLinux modifications of the Fedora pungi package (autopatch config, helper scripts)
  • Python 94.3%
  • Shell 5.7%
Find a file
2026-09-30 12:00:54 +00:00
.forgejo/workflows Keep the token out of URLs, git config and non-authenticating CI steps 2026-09-30 14:27:27 +03:00
docs Add review candidates found during the rebase to 4.14.0 2026-09-30 13:17:12 +03:00
files Add AlmaLinux changelog history and review candidates 2026-09-29 22:46:45 +03:00
scripts Split the build script and run EL builds in parallel 2026-09-30 13:59:38 +03:00
src/autopatch_pungi Keep the streak count in the fetch-failure log 2026-09-30 14:50:09 +03:00
tests Keep the streak count in the fetch-failure log 2026-09-30 14:50:09 +03:00
.gitignore Add autopatch-pungi package skeleton with settings 2026-09-30 13:35:15 +03:00
config.yaml Make spec comparison fail loudly and drop the static changelog entry 2026-09-29 23:12:45 +03:00
pipeline.yaml Add autopatch-pungi package skeleton with settings 2026-09-30 13:35:15 +03:00
pyproject.toml Add autopatch-pungi package skeleton with settings 2026-09-30 13:35:15 +03:00
README.md Add sync and CI workflows 2026-09-30 14:12:09 +03:00
requirements-dev.txt Add autopatch-pungi package skeleton with settings 2026-09-30 13:35:15 +03:00
requirements.txt Add autopatch-pungi package skeleton with settings 2026-09-30 13:35:15 +03:00

autopatch/pungi

AlmaLinux modifications for the Fedora pungi package.

  • Code changes live on the patch-queue branches alma/<Version> of almalinux/pungi: the upstream tag pungi-<Version> plus one commit per patch.
  • Spec changes live in config.yaml and are applied with autopatch-tool.
  • files/changelog-alma.txt keeps the AlmaLinux changelog history, which is merged into the Fedora changelog by date.

Helper scripts

  • scripts/local-build.sh <package-dir> <9|10> <out-dir> builds a dist-git style directory in an AlmaLinux container with the repositories ALBS uses for pungi.
  • scripts/compare-spec.sh <spec-a> <spec-b> <9|10> compares the dependencies and metadata of two specs; exit status 0 means equivalent, 1 different (the diff is printed), 2 a spec could not be evaluated.

Scratch output goes to .work/, which is ignored by git.

Pipeline

autopatch-pungi (in src/autopatch_pungi/) keeps rpms/pungi in sync with the Fedora package. The design is in the almalinux/pungi repository, docs/superpowers/specs/2026-09-29-pungi-autopatch-design.md.

python3 -m venv --system-site-packages .venv
.venv/bin/pip install -r requirements-dev.txt -e .
.venv/bin/autopatch-pungi --dry-run run      # everything, nothing is pushed
.venv/bin/autopatch-pungi --dry-run watch-upstream

In dry-run mode the forge calls (issues, PRs) are written to .work/pipeline/forge.jsonl, and the package lands in .work/pipeline/package/.

The sync workflow runs daily, on manual dispatch, and on pushes to main. It needs:

  • a Forgejo runner registered for this repository with the label host, running in host mode with git, python3, and podman installed;
  • the secret BOT_TOKEN: an API token of the service user with write access to autopatch/pungi issues, the alma/* branches of almalinux/pungi, and rpms/pungi.

Settings are in pipeline.yaml; every field can be overridden with an environment variable AUTOPATCH_<FIELD>.