Speed up the coverage job (about 25 minutes since coverage became real)
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 1-2 giorni
- Idoneità per principianti
- 55/100
- Tipo di issue
- Bug
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Attiva
- Stack tecnologico
- github-actions, python
- Ambito
- ci-cd, performance, testing
Direzione di ricerca
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.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
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).
- Lingua principale
- C++
- Stelle
- 3.6k
- Fork
- 645
- Merge medio
- 1g 8h
- PR unite (30g)
- 145
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Ha un 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 petercorke/robotics-toolbox-python
-
plt.pause(0) waits for ever: PoseGraph.plot_scan(pause=0) and Vehicle animation may hangForse già presa @huxiaoyi-ovo l’ha presa oggi. Apertabug
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
petercorke/robotics-toolbox-python#876 · 1 commento · 1 assegnatario ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
petercorke/robotics-toolbox-python#709 ·
I maintainer di solito rispondono entro 1 giorno
-
Isaac Sim backendApertaenhancement
Difficoltà 5/5 Più di una settimana Idoneità per principianti 25/100
petercorke/robotics-toolbox-python#903 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Backend registry: single name → constructor dispatchForse già presa @petercorke l’ha presa oggi. Apertaenhancement
petercorke/robotics-toolbox-python#902 · 1 assegnatario ·
I maintainer di solito rispondono entro 1 giorno
-
LatticePlanner: integer headings, and motion primitives with finer turn steps (design first)Forse già presa @kVinsom l’ha presa 3 giorni fa. Apertaenhancement help wanted
Difficoltà 5/5 Più di una settimana Idoneità per principianti 25/100
petercorke/robotics-toolbox-python#895 · 2 commenti ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di petercorke/robotics-toolbox-python
Issue simili
-
[Bug] [Go] Ack returns nil when the server answers with a non-OK statusForse già presa @leizhiyuan l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
apache/rocketmq-clients#1465 ·
I maintainer di solito rispondono entro 2 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
KhronosGroup/Vulkan-Tutorial#534 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
I maintainer di solito rispondono entro 2 giorni
-
bug IO
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
MrNeRF/LichtFeld-Studio#3824 ·
I maintainer di solito rispondono entro 1 giorno
-
pnnx: manual tanh GELU fusion loses the approximation modeForse già presa @ktz03 l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
Tencent/ncnn#7175 · 1 reazione ·
I maintainer di solito rispondono entro 1 giorno