Auto-Update
PACE includes a built-in update system that checks GitHub Releases for newer versions. You can configure it to notify only, apply updates automatically, or disable checks entirely.
How it works
- Once per day (configurable via
cron.update_check), PACE queries the GitHub Releases API for thepace-framework-org/pace-framework-starterrepository. - The result is cached for 23 hours to avoid rate-limiting.
- If a newer version is found on the configured release channel (
stableorbeta), PACE checks for local customisations usinggit diff. - Depending on
updates.auto_applyand the presence of local changes, PACE either applies the update or sends a notification.
Configuration
updates: channel: stable # "stable" or "beta" auto_apply: false # apply updates without prompting notify_only: true # log and alert, but never apply automatically| Field | Default | Description |
|---|---|---|
channel | stable | Release channel. stable follows tagged releases. beta includes pre-release builds. |
auto_apply | false | If true, apply updates automatically when no local customisations are detected. |
notify_only | true | If true, only log/alert about updates. Overrides auto_apply. |
Release channels
| Channel | Description |
|---|---|
stable | Tagged releases only (e.g. v3.0.0). Recommended for production use. |
beta | Pre-release and release candidate builds (e.g. v3.1.0-rc.1). |
Customisation detection
Before applying an update, PACE runs git diff HEAD -- pace/ to check for local modifications to the pace/ directory. If any files are modified, PACE:
- Skips the auto-apply step (even if
auto_apply: true). - Logs a warning listing the modified files.
- Sends an
update_availablenotification (if configured inalerts:).
This prevents automatic updates from overwriting your custom agents, hooks, or configuration.
Manual update check
cd pacepython pace/updater.py --checkOutput:
[UPDATER] Current version: v3.0.0[UPDATER] Latest stable: v3.1.0[UPDATER] Changelog: https://github.com/pace-framework-org/pace-framework-starter/releases/tag/v3.1.0[UPDATER] Run with --apply to update.Manual update apply
python pace/updater.py --applyThis runs git fetch and git merge (fast-forward only) on the pace/ directory. If your local changes conflict, the merge is aborted and no files are modified.
Disabling update checks
To turn off all update activity:
updates: notify_only: false auto_apply: falseAnd omit cron.update_check (or set it to an empty string).
Update notifications
Configure an alert rule to receive a Slack or email message when a new version is available:
alerts: - event: update_available channels: [slack]The notification includes the current version, new version, and a link to the release changelog.