Catalogue tool: stats walks the source tree once per language #724

Closed
opened 2026-10-04 20:43:14 +00:00 by tiagoagueda · 0 comments
Owner

Measured from Forgejo's task API and job logs, runs 561–710 (24 Sep – 4 Oct 2026): wall time per push about 52–55 min, up from about 15; the browser suite grew from 149 to 645 tests in five days and runs serially (29 min); the runner takes two jobs at a time, in the order the workflow file lists them, so the browser job starts 19–22 min after the push; and Forgejo cancels the older push run when a newer push lands, which stopped 18 of 56 browser jobs before they gave a verdict.

scripts/messages.py stats --check takes 45 s on a Windows desktop, against 8 s for check. build_report calls catalogue_sets() inside its loop over the 68 languages (scripts/messages_tool.py:921-926), and each call walks src/postulo to find the catalogue sets again (about 0.46 s each). The sets do not change during a run: found once, outside the loop, the report is the same and the walk happens once.

Done when

  • stats finds the catalogue sets once per run, and its report is byte-identical to today's.
Measured from Forgejo's task API and job logs, runs 561–710 (24 Sep – 4 Oct 2026): wall time per push about 52–55 min, up from about 15; the browser suite grew from 149 to 645 tests in five days and runs serially (29 min); the runner takes **two jobs at a time, in the order the workflow file lists them**, so the browser job starts 19–22 min after the push; and Forgejo cancels the older push run when a newer push lands, which stopped 18 of 56 browser jobs before they gave a verdict. `scripts/messages.py stats --check` takes 45 s on a Windows desktop, against 8 s for `check`. `build_report` calls `catalogue_sets()` inside its loop over the 68 languages (`scripts/messages_tool.py:921-926`), and each call walks `src/postulo` to find the catalogue sets again (about 0.46 s each). The sets do not change during a run: found once, outside the loop, the report is the same and the walk happens once. ## Done when - `stats` finds the catalogue sets once per run, and its report is byte-identical to today's.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
Postulo/postulo#724
No description provided.