Tracked publish wrapper to wire release Slack alerts#179
Merged
Conversation
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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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/_UKare 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 aroundpopulace-publish-release(args pass straight through). Loads webhook URLs from a gitignoredtools/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 totools/release.env..gitignore— ignores the realtools/release.env.After
cp tools/release.env.example tools/release.env(filled in) once on the build machine, everytools/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 withtools/release.envpresent passes the URL through to the publish process (where the hook uses it).bash -nclean.Operator action
On the machine that publishes releases (the one with the HF token), copy the example to
tools/release.envand paste the#populace-us/#populace-ukincoming-webhook URLs. That's the only manual step.🤖 Generated with Claude Code