Skip to content

Tracked publish wrapper to wire release Slack alerts#179

Merged
PavelMakarchuk merged 1 commit into
mainfrom
release-alert-publish-wrapper
Jun 24, 2026
Merged

Tracked publish wrapper to wire release Slack alerts#179
PavelMakarchuk merged 1 commit into
mainfrom
release-alert-publish-wrapper

Conversation

@PavelMakarchuk

Copy link
Copy Markdown
Contributor

Why

We want an automatic Slack message on every dataset ship. The publish-time hook (#178) already posts the alert, but only if SLACK_WEBHOOK_POPULACE_US/_UK are set in the publish environment — easy to forget, with no signal when it's missing.

A CI release workflow isn't an option: the build is RAM-bound (can't run on GitHub runners per SYSTEM_REQUIREMENTS.md), publish needs the freshly built ~333 MB H5 that only lives on the build machine, and the release tag is created on Hugging Face, not git — so there's no event for a workflow to trigger on. Publishing inherently runs on the build machine.

What

Routes shipping through a tracked path so the alert is reliable:

  • tools/publish_release.sh — thin wrapper around populace-publish-release (args pass straight through). Loads webhook URLs from a gitignored tools/release.env (or the shell), and prints a warning if neither is set so a misconfigured machine is obvious.
  • tools/release.env.example — template to copy to tools/release.env.
  • .gitignore — ignores the real tools/release.env.
  • README "Releasing & alerts" — documents the one-time setup.

After cp tools/release.env.example tools/release.env (filled in) once on the build machine, every tools/publish_release.sh … publishes with an automatic Slack alert.

Tested

Wrapper exercised against a stub populace-publish-release: warns when no webhook env is set (and still publishes), and with tools/release.env present passes the URL through to the publish process (where the hook uses it). bash -n clean.

Operator action

On the machine that publishes releases (the one with the HF token), copy the example to tools/release.env and paste the #populace-us / #populace-uk incoming-webhook URLs. That's the only manual step.

🤖 Generated with Claude Code

Publishing runs on the build machine (it needs the freshly built H5), so
it can't be a CI step and there's no git event on ship. To make the
publish-time Slack alert reliable rather than a remembered export, route
shipping through tools/publish_release.sh: it loads the channel webhook
URLs from a gitignored tools/release.env (or the shell) and warns if
neither is set, then execs populace-publish-release unchanged. Adds
release.env.example and a README 'Releasing & alerts' section.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@PavelMakarchuk PavelMakarchuk merged commit 5a7435d into main Jun 24, 2026
4 checks passed
@PavelMakarchuk PavelMakarchuk deleted the release-alert-publish-wrapper branch June 24, 2026 11:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant