HTML Recovery Tool: Restore lecture sites from GitHub Release assets
Nobody has claimed this yet.
- Dominant language
- Shell
- Stars
- 0
- Forks
- 1
- Avg merge
- 32m
- Merged PRs (30d)
- 3
Description
Producer live: lecture-python.myst, lecture-python-intro, lecture-python-advanced.myst, lecture-python-programming, lecture-python-programming.fr, lecture-jax and lecture-dp pass create-release-assets: 'true' to publish-gh-pages, and each latest release carries the triple — tarball, SHA256 checksum, JSON manifest (name, tag, commit, timestamp, size_mb, file_count, repository). The only publish-gh-pages/action.yml change from v0.8.0 to HEAD is an action-gh-release pin bump, so asset shape is identical across the pins those seven use (v0, v0.8.0, v0.9.0). Missing is the consumer; built HTML is costly to reproduce, so a downed site recovers fastest from the archive.
Scope
- Download latest release asset (HTML tar.gz) from any lecture repo
- Verify integrity via the SHA256 checksum asset
- Extract and optionally serve locally for verification
- Deploy to GitHub Pages or alternative hosting
- Batch recovery across multiple repos
- List available recovery points — this is just
gh release list
Gaps
Two asset formats. lecture-julia.myst, lecture-python.zh-cn, lecture-intro.zh-cn, lecture-python-programming.fa hand-roll the triple in their own publish.yml (tar + sha256sum + heredoc manifest, uploaded via softprops/action-gh-release directly, @v2 in the first, @v3 in the rest): same <name>-html-<tag>.tar.gz, but checksum and manifest are the bare html-checksum.txt / html-manifest.json with no asset-name prefix, and the manifest omits name and repository. Handle both, or migrate those four onto publish-gh-pages first.
Tag-triggered publishes only. publish-gh-pages/action.yml:90-94 skips off-tag with a warning, and lecture-dp also accepts workflow_dispatch (publish.yml:6), so a manual publish there leaves no recovery point. Nine active repos attach nothing — lecture-datascience.myst, lecture-dle, lecture-dps, lecture-dynamics, lecture-eqm, lecture-stats, lecture-tools-techniques, lecture-python-programming.ml, lecture-python-programming.zh-cn deploy via peaceiris/actions-gh-pages or actions/deploy-pages with no archive step, outside recovery until they adopt create-release-assets.
Checksum/manifest names carry no tag. publish-gh-pages/action.yml:116-117 builds both from ASSET_NAME alone while the archive at :108 includes it, so one repo's recovery points collide in a directory — namespace by repo and tag.
Where it lives
PLAN.md:116: "Decide home, then build". workflow-backups already has src/backup/repo_matcher.py for --org/--pattern selection, plus S3 and tests; if it goes there, this repo only keeps the producer contract stable.
- Decide the home — transfer to
workflow-backups(worth timing against QuantEcon/workflow-backups#14, which proposes renaming that repo) or build here - Either way, state in
publish-gh-pages/README.md(asset list at:89-92) that the triple and its naming are a compatibility contract for recovery — can ride #109
Related
- Producer
publish-gh-pages/action.yml:80-154(create-release-assets): guards:90-98, naming:100-108, checksum:123, manifest:126-136, upload viasoftprops/action-gh-releaseSHA-pinned to v3.0.2 at:147(#101) publish-gh-pages/README.md:76-92describes the triple;workflow-backups(S3 git mirror backups) is the likely destination
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with PLAN.md:116 and compare building here with transferring the work to workflow-backups, especially src/backup/repo_matcher.py, its S3 integration, and tests. Read publish-gh-pages/action.yml:80-154 and README.md:76-92 to confirm both release-asset formats and their naming; done means the home is decided, the producer contract is documented, and recovery can verify, extract, and deploy supported archives.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- git, github-actions, shell
- Domain
- devops, infrastructure, release
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100