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

Abierto Apto para principiantes
#37 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
2/5
Tiempo estimado
1-3 horas
Aptitud para principiantes
78/100
Tipo de issue
Error
Claridad
Bien especificado
Estado de actividad
Activo
Stack tecnológico
python
Área
tooling

Línea de trabajo

Lee la fase 5 de tools/promote alrededor de las líneas 1554–1585, donde las ramas de simulación y escritura cuentan las clases promovidas y sin cambios. Compara el texto del pool de cada plan con el archivo del pool y comprueba cómo afecta eso al resumen y a las líneas del plan. Añade una prueba que confirme que los resúmenes de la simulación y de la ejecución real coinciden para las clases sin cambios; la tarea estará terminada cuando coincidan sus recuentos de clases promovidas y sin cambios.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

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.

Lenguaje dominante
Python
Estrellas
1
Forks
0
Merge medio
1 d 3 h
PR fusionados (30 d)
17

Preparar el entorno

Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de QuantEcon/lectures

Todos los issues de QuantEcon/lectures

Issues similares

Más issues de Python

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.