mirror of
https://git.pumpin.online/funkpower/typikon.git
synced 2026-10-23 03:07:12 +00:00
Tag-driven releases. main is always releasable, a vX.Y.Z tag on it builds the sdist and the manylinux wheels and publishes them; Cargo.toml carries the version and the first job refuses to go on if the tag disagrees with it, because PyPI will not let a version be reused even after it is yanked. CI fires on push and on nothing else. This forge is public and takes pull requests from strangers, and a runner executes whatever the workflow checks out, so a pull_request trigger would run unread code from a stranger on the runner host. Push-only means the runner only ever runs what someone with push rights put there. A pull request therefore gets no automatic check: read it, push the branch, let it run then. No cargo fmt gate. The tables here are aligned by hand and rustfmt wants one entry per line, which loses the shape that makes MONTHS and JURISDICTIONS readable — a gate that fights the house style is a gate that gets ignored. Clippy stays, and passes. The Python job builds the bindings against the CLI it just built and runs them against each other, because they are one engine and the only way that stays true is if something checks. docs/releasing.md covers what does not exist yet: Actions is off on this forge on purpose, there is no runner, and PyPI's trusted publishing does not speak to Forgejo — so a long-lived token has to live here, project-scoped rather than account-wide so a compromised forge costs this package rather than all of them.