Skip to content

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

  1. Once per day (configurable via cron.update_check), PACE queries the GitHub Releases API for the pace-framework-org/pace-framework-starter repository.
  2. The result is cached for 23 hours to avoid rate-limiting.
  3. If a newer version is found on the configured release channel (stable or beta), PACE checks for local customisations using git diff.
  4. Depending on updates.auto_apply and 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
FieldDefaultDescription
channelstableRelease channel. stable follows tagged releases. beta includes pre-release builds.
auto_applyfalseIf true, apply updates automatically when no local customisations are detected.
notify_onlytrueIf true, only log/alert about updates. Overrides auto_apply.

Release channels

ChannelDescription
stableTagged releases only (e.g. v3.0.0). Recommended for production use.
betaPre-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:

  1. Skips the auto-apply step (even if auto_apply: true).
  2. Logs a warning listing the modified files.
  3. Sends an update_available notification (if configured in alerts:).

This prevents automatic updates from overwriting your custom agents, hooks, or configuration.


Manual update check

Terminal window
cd pace
python pace/updater.py --check

Output:

[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

Terminal window
python pace/updater.py --apply

This 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: false

And 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.