promote: `--dry-run` reports lectures whose pool text would not change as promoted

Aperta Adatta ai principianti
#37 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
2/5
Tempo stimato
1-3 ore
Idoneità per principianti
78/100
Tipo di issue
Bug
Chiarezza
Specificata chiaramente
Stato di attività
Attiva
Stack tecnologico
python
Ambito
tooling

Direzione di ricerca

Leggi la fase 5 di tools/promote intorno alle righe 1554–1585, dove i rami di simulazione e scrittura contano le lezioni promosse e invariate. Confronta il testo del pool di ciascun piano con il file del pool e verifica come ciò influisce sul riepilogo e sulle righe del piano. Aggiungi un test che verifichi che i riepiloghi della simulazione e dell’esecuzione reale concordino per le lezioni invariate; il lavoro è completato quando i conteggi delle lezioni promosse e invariate corrispondono.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

bug

A dry run reports every lecture it plans as promoted, and always 0 unchanged, so its summary overstates what a real run would write. The real run counts a lecture whose pool text is already byte-identical as unchanged. Found while preparing step 2 of QuantEcon/project-monorepo#24, measured on 2026-11-04 in a scratch copy at that night's pins:

tools/promote --toc --dry-run Real run
intro 53 promoted, 0 unchanged 51 promoted, 2 unchanged
programming 24 promoted, 0 unchanged 24 promoted, 0 unchanged
intermediate 149 promoted, 0 unchanged 118 promoted, 31 unchanged
advanced 71 promoted, 0 unchanged 51 promoted, 20 unchanged
jax 28 promoted, 0 unchanged 27 promoted, 1 unchanged

The skips and failures agree between the two.

The cause is in phase 5 of tools/promote (lines 1554–1585): the byte comparison that fills unchanged runs only in the branch that writes, so under --dry-run the list stays empty and the summary counts every planned lecture as promoted.

The change: compare each plan's pool text with the pool file before branching, so a dry run reports the same promoted and unchanged split as the real run and marks the unchanged lectures in its plan lines, with a test that the two summaries agree.

It does not block that step, whose counts come from real runs in a scratch copy.

Lingua principale
Python
Stelle
1
Fork
0
Merge medio
1g 3h
PR unite (30g)
17

Preparare l'ambiente

Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di QuantEcon/lectures

Tutte le issue di QuantEcon/lectures

Issue simili

Altre issue su Python

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.