mirror of
https://github.com/kuhyx/utils.git
synced 2026-11-10 19:07:17 +01:00
Some checks are pending
crdt_sync_dart tests / test (push) Waiting to run
crdt_sync_flutter tests / test (push) Waiting to run
crdt-sync pre-commit / pre-commit (push) Waiting to run
crdt-sync tests / test (push) Waiting to run
dependency freshness / dependencies on newest stable (push) Waiting to run
design_system tests / test (push) Waiting to run
file length / file-length (push) Waiting to run
freedays pre-commit / pre-commit (push) Waiting to run
freedays tests / test (push) Waiting to run
gatelock pre-commit / pre-commit (push) Waiting to run
gatelock tests / test (push) Waiting to run
github_device_auth tests / test (push) Waiting to run
md-naming / markdown naming convention (push) Waiting to run
music_theory tests / test (push) Waiting to run
palette drift / palette (push) Waiting to run
shared gate tests / gate unit tests (push) Waiting to run
sync_settings_ui tests / test (push) Waiting to run
web_ui tests / test (push) Waiting to run
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AwtowrowDXx6ccmWVPkCaF
46 lines
1.9 KiB
Markdown
46 lines
1.9 KiB
Markdown
# aur-publish
|
|
|
|
Hands-off publishing of kuhy's Flutter apps to the AUR.
|
|
|
|
```bash
|
|
~/src/utils/aur-publish/publish.sh # wait for registration, then publish
|
|
~/src/utils/aur-publish/publish.sh --dry-run # everything except the push
|
|
~/src/utils/aur-publish/publish.sh --skip-wait # account already works
|
|
~/src/utils/aur-publish/publish.sh --only habit-stack
|
|
```
|
|
|
|
## What it does
|
|
|
|
1. Polls `/register` until AUR signup reopens, opens it in a browser and
|
|
prints the SSH key to paste. **Signup is the only manual step** — it
|
|
requires email confirmation.
|
|
2. Waits for `ssh aur@aur.archlinux.org` to authenticate.
|
|
3. Then, unattended, per package: resolve the newest `vX.Y.Z` tag → set
|
|
`pkgver` → `updpkgsums` → `makepkg -C` → `namcap` → AUR rule check →
|
|
`pacman -U` → launch check → `.SRCINFO` → commit → push.
|
|
|
|
Every package is built, installed and **launched** before it is pushed, so a
|
|
broken package cannot reach the AUR. A package failing any gate is skipped and
|
|
reported; the others still publish. Safe to re-run.
|
|
|
|
## anubis_gate.py
|
|
|
|
The AUR sits behind [Anubis](https://anubis.techaro.lol/), which answers HTML
|
|
requests with a proof-of-work challenge page carrying **HTTP 200**. A plain
|
|
`curl` therefore reports 200 for a page that is actually unreachable — which is
|
|
exactly how "is registration back?" gets answered wrong. This module solves the
|
|
challenge and reports the status of the *real* page behind it.
|
|
|
|
```bash
|
|
python3 anubis_gate.py /register # prints the true status code
|
|
```
|
|
|
|
## AUR rules enforced before pushing
|
|
|
|
The AUR does not review uploads, but per the submission guidelines "packages
|
|
that violate the rules may be deleted without warning". `check_aur_rules()`
|
|
blocks a push on the mechanically checkable ones: `# Maintainer:` line,
|
|
`x86_64` in `arch`, no `replaces=` (reserved for renames — use `conflicts`),
|
|
not already in an official repo, `pkgdesc`/`url`/`license` present, and
|
|
`.SRCINFO` matching the PKGBUILD.
|