You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
question: restore the release notes and v1.5.0b9 conda assets that Conda Update and Create Release overwrote? #1681
Question, carried over from #1657 (fixed by #1678) and #1640 (fixed by #1656): should the damage already done be repaired?
What was lost.
Release notes. Before fix(ci): Conda Update keeps the release's name and notes when it uploads (#1657) #1678, every Conda Update upload reset a release's name to its tag and emptied its body. gh api repos/JarryShaw/PyPCAPKit/releases --paginate now finds 38 releases whose name equals the tag and whose body is empty, among them v1.5.0a1 and v1.4.1. The notes for each version are still in CHANGELOG.md and docs/source/changelog/.
v1.5.0b9 conda assets. Before ci(release): Create Release tags and builds the commit its run was created for (#1634) #1656, Create Release rebuilt the four linux-64 GitHub assets of v1.5.0b9 on every push, so they no longer match the anaconda.org files of the same name (py311: 12,323,830 vs 12,357,661 bytes). The anaconda.org files are the originals, uploaded at 01:43-01:47Z on 2026-10-13.
Options.
Restore both:
re-set each release's name to PyPCAPKit vX and its body from the changelog;
re-upload the four v1.5.0b9 assets from anaconda.org.
I can script this through the API, dry-run first.
Restore the notes only.
Leave both as they are.
Recommended: (1), with a dry-run listing posted here before anything is written.
Recorded: option (1), restore both, dry-run first. A worker is writing the restore script.
Releases: for each of the 38 releases, the name goes back to PyPCAPKit vX. The body is rebuilt from the changelog the way Create Release's "Select release body" step builds it, and the prerelease flag is set from the version.
v1.5.0b9 assets: the four linux-64 conda assets are re-uploaded from the anaconda.org originals.
The dry-run listing goes up here before anything is written.
Dry run for the restore (GETs only; nothing written). A Sonnet check of the plan came back GOOD TO GO.
38 releases are still wiped (name equals the tag, empty body). Each gets its name back as PyPCAPKit <tag>.
Bodies are rebuilt the way each release's own workflow generated them:
the 2023-24 commit lists, reproduced byte for byte on 30 of 30 unwiped neighbours;
GitHub's generated notes for the four 2026 releases.
Changelog entries go first in four bodies: v1.0.3, v1.2.2, v1.3.1 and v1.4.1 gain their docs/source/changelog/ entry ahead of the notes, as Create Release joins them today.
Prerelease flips to true for v1.3.1.dev0, dev1, dev2 and dev4, matching dev3 and dev5.
Inferred: six bodies rest on an inference (marked †‡§ below), and none of the notes is lost outright.
v1.5.0b9 assets: four linux-64 assets are replaced by the anaconda.org originals, uploaded 01:43-01:45Z on 2026-10-13. py315 is identical on both sides, so it stays.
Each write re-checks first: each PATCH sends only name, body and prerelease, and re-reads the release first, skipping it unless it is still wiped. The latest release stays v1.4.1.post2.
I'll apply this at the next sweep, in about 13 minutes, unless you object. Say if you'd rather drop the changelog prefix from those four.
† tag-push range v1.2.2..v1.2.2 was empty (git sorts v1.2.2 before v1.2.2.dev0), so the workflow_run range is used. ‡ sha abbrev 9 inferred (8 measured through post19, 9 from post23). § previous tag inferred: every era-2 prerelease got a compare range, every full release a full list.
Restored, at about 21:56Z, from the dry run above, with no objection in the window.
Releases: all 38 PATCHed (name, body and prerelease only). Read back, 0 of 160 releases are still wiped, and the latest release is still v1.4.1.post2. Spot checks: v1.3.1.dev0 is now a prerelease, and v1.4.1 and v1.0.3 carry their changelog entry followed by the notes.
v1.5.0b9 assets: py311, py312, py313 and py314 were re-uploaded from anaconda.org. GitHub's digests now equal the originals (16cfdb04…, 0db5257f…, 83812156…, 309208d1…), and py315 is untouched.
The script, plan and log are kept in /tmp/restore-1681/ on the bot's host. Closing as done.
Activity
JarryShaw commentedon Oct 13, 2026
Take your recommendations
JarryShaw commentedon Oct 13, 2026
Recorded: option (1), restore both, dry-run first. A worker is writing the restore script.
PyPCAPKit vX. The body is rebuilt from the changelog the way Create Release's "Select release body" step builds it, and the prerelease flag is set from the version.The dry-run listing goes up here before anything is written.
JarryShaw commentedon Oct 13, 2026
Dry run for the restore (GETs only; nothing written). A Sonnet check of the plan came back GOOD TO GO.
PyPCAPKit <tag>.v1.0.3,v1.2.2,v1.3.1andv1.4.1gain theirdocs/source/changelog/entry ahead of the notes, as Create Release joins them today.v1.3.1.dev0,dev1,dev2anddev4, matching dev3 and dev5.v1.4.1.post2.I'll apply this at the next sweep, in about 13 minutes, unless you object. Say if you'd rather drop the changelog prefix from those four.
Per-release plan
† tag-push range v1.2.2..v1.2.2 was empty (git sorts v1.2.2 before v1.2.2.dev0), so the workflow_run range is used. ‡ sha abbrev 9 inferred (8 measured through post19, 9 from post23). § previous tag inferred: every era-2 prerelease got a compare range, every full release a full list.
Assets
pypcapkit-1.5.0b9-py311_0.tar.bz2REPLACE: GitHub 123660072b7ecd653412d85596c88b9a7f1e7a6cce37ab00013ef3ca3fb1c0d260e50447→ anaconda.org 12357661
16cfdb041dc440b0248f3c26d7fbf9a43fc376cedc5e7c06c091a4b200834b63(01:45:31Z)pypcapkit-1.5.0b9-py312_0.tar.bz2REPLACE: GitHub 119937932b8b21cdce70355748f29ecabc5efa114405b2bb6fc8568cda787c7d8fa24af3→ anaconda.org 11994477
0db5257f5ecb6f28644172886cbe9975b6f2ab86ffcbaf01ae52e26b18357049(01:43:49Z)pypcapkit-1.5.0b9-py313_0.tar.bz2REPLACE: GitHub 120216109c0a4e7bef53f890a0017d582b7d2bf78baa3b0ddf7d0eef2a6b7986af4312f4→ anaconda.org 11997102
838121563ddaaed0760a3e37f948f2599b45f26d82706dab9fd8df2d9055152d(01:45:20Z)pypcapkit-1.5.0b9-py314_0.tar.bz2REPLACE: GitHub 123841855381ee96f96e693e7c05d22059b8f4770a01e2f0459985132345e53da9b2e55e→ anaconda.org 12296050
309208d15ad976621621ca02c8ce5b5716eb996405748b28d817dad6c4569f8d(01:45:40Z)pypcapkit-1.5.0b9-py315_0.tar.bz2keep (identical): GitHub 123562410b81678222644a05304614441eca55f4aa0e4a6670ba191cc6d818aa117187f3JarryShaw commentedon Oct 13, 2026
Restored, at about 21:56Z, from the dry run above, with no objection in the window.
v1.4.1.post2. Spot checks:v1.3.1.dev0is now a prerelease, andv1.4.1andv1.0.3carry their changelog entry followed by the notes.16cfdb04…,0db5257f…,83812156…,309208d1…), and py315 is untouched.The script, plan and log are kept in
/tmp/restore-1681/on the bot's host. Closing as done.