Example project pins
The template branches of raccoon-example (differential, mecanum) pin raccoon-cli and raccoon-library exactly in pyproject.toml. Every new project created from a template starts with those pins.
How they move
Only Create Bundle moves them: it sends bundle-released (bundle name, CLI tag, library tag) to raccoon-example, and bump-raccoon.yml there:
- strips the
vfrom the tags and waits until both versions are on PyPI (up to 10 minutes), - sets both pins to exactly those versions in each template branch, also when they are older than the current pins — the bundle is the tested truth,
- opens (or updates) one pull request per template branch on
bump/raccoon-pins-<branch>; title and text name the bundle and show was/now, - closes the superseded per-package pull requests (
bump/raccoon-cli-<branch>,bump/raccoon-library-<branch>) and deletes their branches.
A second bundle updates the open pull requests. If the pins already match, a leftover pull request is closed instead of staying open.
By hand: Actions → Bump raccoon pins with cli_version and lib_version; empty means the newest on PyPI.
The workflow lives on main on purpose: repository_dispatch only runs workflows from the default branch, and anything under .github/ in a template branch would be copied into every new project. The pin rewriting is a tested script, scripts/bump_pins.py.
Pull requests are opened by the Raccoon OS Bot so that checks run on them. You merge them; try the template with the new versions first.