Repository navigation
Release v1.9.2: take PyPI publish out of the tag flow; re-record hero GIF - #63
Merged
Merged
Conversation
… GIF publish-pypi.yml no longer triggers on `push: tags`. It is workflow_dispatch only, taking the tag as an input: gh workflow run publish-pypi.yml --ref vX.Y.Z -f tag_name=vX.Y.Z The automatic form was self-defeating: the tag push started the publish at the moment the tag appeared, so the run raced the release it was meant to ship instead of publishing a settled one. Dispatching against a tag that already exists removes the ordering problem. The `pypi` environment admits only `v*` refs, so --ref must be the tag — which preserves the "only a tagged commit reaches PyPI" guarantee rather than weakening it. OIDC is unchanged; no long-lived token is introduced. Also re-records the hero GIF for the v1.9.x dashboard and pins the binary the tape records. The tape typed a bare `actop`, resolving to whatever was installed on PATH — it had been capturing a stale Homebrew build with no Network/Disk sections. It now requires .venv/bin/actop, records the default grid layout at 1800x930 (stack pushed the new I/O boxes below the fold), and covers the mirrored Network/Disk pair, per-core panels, both glyph modes, process watt attribution, and the theme cycle. Co-Authored-By: Claude Opus 5 (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.
PyPI publishing is no longer part of the tag flow
publish-pypi.ymlno longer triggers onpush: tags. It isworkflow_dispatchonly, taking the tag as an input:Why. The automatic form was self-defeating. The tag push started the publish at the same moment the tag appeared, so the run raced the release it was meant to ship rather than publishing a settled one — publishing could never be ordered after the tag and its CI, which is the only point at which you actually know what you're shipping. Making it a dispatch that names an already-existing tag removes the ordering problem instead of retrying around it.
--refmust be the tag, not a branch. Thepypienvironment's deployment policy admits onlyv*refs (verified:custom_branch_policies: true, one policy,v*), so a dispatch frommainis rejected before the job starts. Pointing it at the tag satisfies the policy — so the "only a tagged commit ever reaches PyPI" guarantee the automatic trigger provided is preserved, not weakened.OIDC trusted publishing is unchanged and no long-lived token is introduced. The workflow already validated that the tag matches
pyproject.toml, and that check still runs on the dispatch path.Release flow is now three steps: merge the bump PR →
scripts/tag_release.sh→ dispatch the publish.Hero GIF re-recorded — and the tape had been recording the wrong binary
The tape typed a bare
actop, which resolved to whatever was installed onPATH. On this machine that was a Homebrew v1.8.0 build, so the capture showed a dashboard with no Network/Disk sections at all — the demo had silently drifted from the code. The tape nowRequires.venv/bin/actopand launches through it, so it always records the repo build.The capture also moved from
stackto the defaultgridlayout at 1800x930:psplits the dashboard against the fixed 74-col process table, and below ~96 colsgridauto-degrades tostack. At 1400px the dashboard dropped to ~80 cols and degraded mid-take; 1800px leaves it ~122 and grid survives the whole recording.Now covers the mirrored Network/Disk pair side by side, per-core panels (
c), both glyph modes (g), the process table with watt attribution (p), and the theme cycle (t). 4.3 MB / 39.8 s.Recording needed real external I/O: the GPU workload runs against a router on localhost, and loopback is excluded from the
if_datacounters by design, so the new sections would otherwise have recorded flat.Known issue, not introduced here
The final frame shows truncated metric rows (
max 41without%,idle60 low1 mid2withouthigh). That is the pre-existing narrow-grid-column clipping, now visible in the hero because the process table halves the dashboard width. Not addressed in this PR.Tested
macOS 15 (Darwin 25.5.0), Apple M4 Max.
Workflow trigger verified: no
push:block remains,workflow_dispatchpresent. Environment policy confirmed viagh api /repos/binlecode/actop/environments/pypi.🤖 Generated with Claude Code