QuantEcon / QuantEcon/actions

HTML Recovery Tool: Restore lecture sites from GitHub Release assets

Open
#27 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement low-priority
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 via softprops/action-gh-release SHA-pinned to v3.0.2 at :147 (#101)
  • publish-gh-pages/README.md:76-92 describes the triple; workflow-backups (S3 git mirror backups) is the likely destination

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.