New action: sync-notebooks (internal git) — standardize notebook publishing
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 48/100
Direzione di ricerca
Inizia con i passaggi «Prepare» e «Commit» in lecture-jax/.github/workflows/publish.yml:101-122 e lecture-python.myst/.github/workflows/publish.yml:120-141, quindi esamina .github/workflows/test-actions.yml. L’attività è completata quando i relativi smoke test coprono i percorsi con modifiche e quelli con commit vuoti, gli input mancanti causano un errore chiaro, le credenziali vengono gestite in modo sicuro e vengono prodotti gli output documentati.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Feature request — a sync-notebooks composite action
Publishing executed notebooks to the companion <repo>.notebooks repo is hand-rolled per repo in publish.yml — two mechanisms, inconsistent pinning:
- internal
git clone+push—lecture-jax,lecture-python.myst,lecture-python-programming cpina/github-action-push-to-another-repository—lecture-python-introandlecture-python-advanced.mystat unpinned@main,continuous_time_mcsat@v1.7
A composite action gives one implementation, org-wide upgrades via a single tag bump, and no floating third-party dependency pushing with our service PAT. Consumer side is QuantEcon/workspace-lectures#12, Phase 1 of which is shipping this action — section D of the family tracker QuantEcon/workspace-lectures#31. The publish-gh-pages bump QuantEcon/workspace-lectures#11 is closed, superseded by section A there.
Sequencing — build it
CHANGELOG.md:365-374 (v0.6.0) and PLAN.md:173 record the opposite direction: eliminate the .notebooks repos for gh-pages notebooks plus theme-generated Colab URLs, gated on quantecon-book-theme#359 — zero comments since it opened 2026-02-09, while the theme repo stayed active (commits through 2026-08-06) and the .notebooks repos remain live production (Colab flat-directory constraint, #102). Build now; the eventual theme change deletes the step.
Design — internal git
Generalize the "Prepare … sync" + "Commit notebooks" steps at lecture-jax/.github/workflows/publish.yml:101-122 and lecture-python.myst/.github/workflows/publish.yml:120-141, rather than a marketplace push action — we keep control of auth, the empty-commit case and commit identity.
- uses: quantecon/actions/sync-notebooks@v0
with:
notebooks-dir: _build/jupyter
destination-repo: QuantEcon/lecture-jax.notebooks
github-token: ${{ secrets.QUANTECON_SERVICES_PAT }}
# optional, with defaults:
destination-branch: main
commit-message: 'auto publishing updates to notebooks'
git-user-name: 'QuantEcon Services'
git-user-email: '[email protected]'
Outputs: committed (bool — commit/push happened) and commit-sha.
Behaviour & hardening
- Internal git only — clone the destination, copy notebooks, commit, push.
- Empty-commit guard — unchanged notebooks must exit 0;
lecture-jax/.github/workflows/publish.yml:121runsgit commitwith nogit diff --staged --quietguard, so an unchanged set errorsnothing to commitmid-step. - Token out of the remote URL — use
http.extraheader;lecture-jax/.github/workflows/publish.yml:113embeds the PAT in the clone URL, where it lands in.git/configand error output. - Shallow clone (
--depth 1) of the destination — the three internal-git consumers clone full history today;cpinaalready does--single-branch --depth 1. - Fail fast on a missing token or a missing/empty
notebooks-dir, with a clear message. - Decide what happens to
_notebook_repo/. QuantEcon/workspace-lectures#12 lists "drop the vestigial_notebook_repocopy" as a hardening item; that is wrong and must not be implemented. It is checked into all six source repos and holdsREADME.mdandenvironment.yml; for the threecpinaconsumers it is load-bearing — that action moves.gitaside,rm -rfs the destination and copiessource-directorywholesale (entrypoint.sh:101,:107,:139), so those two files in the companion repos come from this step. Copying only*.ipynbfreezes them — add an input for extra files, or record dropping them as deliberate.
Smoke-test in .github/workflows/test-actions.yml, whose Action harness: all checks job is a required check on main; cover the changed and empty-commit paths — this pushes to another repo with a privileged PAT. Post-release @v0 is covered by the canary (#100).
Migrate all six repos above once released (QuantEcon/workspace-lectures#12). Interim, recorded there: SHA-pin the floating @main consumers lecture-python-intro/.github/workflows/publish.yml:126 and lecture-python-advanced.myst/.github/workflows/publish.yml:115; continuous_time_mcs/.github/workflows/publish.yml:110 is already @v1.7.
- Lingua principale
- Shell
- Stelle
- 0
- Fork
- 1
- Merge medio
- 20h 3m
- PR unite (30g)
- 48
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di QuantEcon/actions
-
low-priority
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
I maintainer di solito rispondono entro 1 giorno
-
documentation
Difficoltà 1/5 1-3 ore Idoneità per principianti 85/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
I maintainer di solito rispondono entro 1 giorno
-
enhancement
Difficoltà 4/5 3-5 giorni Idoneità per principianti 48/100
I maintainer di solito rispondono entro 1 giorno
-
bug infrastructure
Difficoltà 3/5 1-2 giorni Idoneità per principianti 48/100
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di QuantEcon/actions
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
fullsend-ai/agents#1932 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
I maintainer di solito rispondono entro 1 giorno
-
status: ready
Difficoltà 2/5 1-3 ore Idoneità per principianti 64/100
melodic-software/claude-code-plugins#15008 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Blacklist | solotogel.orgAperta
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 60/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
I maintainer di solito rispondono entro 1 giorno