Speed up the coverage job (about 25 minutes since coverage became real)
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 1-2 días
- Aptitud para principiantes
- 55/100
- Tipo de issue
- Error
- Claridad
- Bastante claro
- Estado de actividad
- Activo
- Stack tecnológico
- github-actions, python
- Área
- ci-cd, performance, testing
Línea de trabajo
Start with the coverage job in ci.yml and inspect its step timings in the run for main, especially the analytic IK tests. Try COVERAGE_CORE=sysmon in the coverage step and compare the reported total with 85.98%. Done means the job runs faster and the coverage change is measured and explained; the issue also lists larger follow-up options if that first trial is insufficient.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Since #897 made coverage real, the coverage job in ci.yml takes about 25 minutes (1,503 s on the run for main), where the other jobs take 10 to 15. It runs on every pull request and every push to main, since the job has no if:. It is not a required check, so it never blocks a merge, but it is the last job to finish on every run, and the one that tells the Codecov number.
Why it is slow
It runs the whole suite with coverage tracing, including the tests marked slow (the analytic IK tests that compile generated C and C++ code, about 110 s untraced), and it runs them under the default tracing core.
Ideas, cheapest first
-
COVERAGE_CORE=sysmonin the coverage step. Python 3.12 has a lighter tracing core. Try it on the job, and compare the totals with the current 85.98%, since a different core can change which lines count. - Do not trace the slow tests: run them in the matrix job on Linux with no coverage, and take coverage from the fast tests only. Check what the analytic IK tests contribute (they exercise about 4,000 lines).
- Split the job with
pytest-xdistand combine the data (coverage combine), as the tests are independent. - Run coverage on pushes to
mainand weekly, not on every PR. The PR would lose its Codecov patch status, which is informational now anyway. - Cache what is rebuilt on every run: the package install,
robot_descriptionsassets (already cached).
Measure first
The job log has the timing for each step. Note the compile-based tests in particular: on the Windows runner they were slow enough to hit the 50 s limit, so a Linux job that traces them may be paying the same cost.
Related: #894 (code-quality follow-ups), petercorke/rvc-ecosystem#26 (the CI audit that found the coverage problem).
- Lenguaje dominante
- C++
- Estrellas
- 3.6k
- Forks
- 649
- Merge medio
- 1 d 8 h
- PR fusionados (30 d)
- 145
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de petercorke/robotics-toolbox-python
-
plt.pause(0) waits for ever: PoseGraph.plot_scan(pause=0) and Vehicle animation may hangPosiblemente ocupada @huxiaoyi-ovo la tomó hace 3 días. Abiertobug
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
petercorke/robotics-toolbox-python#876 · 1 comentario · 1 asignado ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
petercorke/robotics-toolbox-python#709 ·
Los mantenedores suelen responder en 1 día
-
Isaac Sim backendAbiertoenhancement
Dificultad 5/5 Más de una semana Aptitud para principiantes 25/100
petercorke/robotics-toolbox-python#903 · 1 comentario · 1 reacción ·
Los mantenedores suelen responder en 1 día
-
Backend registry: single name → constructor dispatchPosiblemente ocupada @petercorke la tomó hace 3 días. Abiertoenhancement
petercorke/robotics-toolbox-python#902 · 3 comentarios · 1 asignado ·
Los mantenedores suelen responder en 1 día
-
LatticePlanner: integer headings, and motion primitives with finer turn steps (design first)Posiblemente ocupada @kVinsom la tomó hace 6 días. Abiertoenhancement help wanted
Dificultad 5/5 Más de una semana Aptitud para principiantes 25/100
petercorke/robotics-toolbox-python#895 · 2 comentarios ·
Los mantenedores suelen responder en 1 día
Todos los issues de petercorke/robotics-toolbox-python
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Los mantenedores suelen responder en 3 días
-
status:needs-triage
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
PX4/PX4-Autopilot#29496 ·
Los mantenedores suelen responder en 1 día
-
Missing icon for .cpp2 filesAbierto
Dificultad 1/5 Menos de una hora Aptitud para principiantes 66/100
madskristensen/FileIcons#385 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
microsoft/SysmonCommon#26 ·
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 90/100
espressif/esp-matter#1913 ·