Skip to content

0.13.1: lupdate names the .ts it rewrites as its output instead of claiming the file's directory - #30

Merged
speak-agent merged 1 commit into
mainfrom
fix/qt-lupdate-source
Sep 26, 2026
Merged

speak-agent merged 1 commit into
mainfrom
fix/qt-lupdate-source

Conversation

@speak-agent

Copy link
Copy Markdown
Member

rules-qt ran lupdate (translations::update_sources) as a prepare action whose output directory was the .ts file's directory. A project that keeps its .ts in the package root, as GalTranslPP does, therefore declared its whole source directory as a construction output. mcpp 2026.9.26.2 reports this for every file the build program watches ("build.mcpp re-runs on … which is inside …, the directory package … declared with a prepare action's output_dir"), measured on Sunrisepeak/GalTranslPP#2.

lupdate writes one file whose name is known when the build program runs. It is therefore an action that names that file as its output (SPEC-007 R3.2): no stamp and no directory. lrelease takes the same file as its input, which orders the two.

  • tests/qt-consumer keeps its .ts in the package root and turns update_sources on. The committed file is lupdate's own output, so a build leaves it unchanged.
  • New criteria: lupdate runs before lrelease, the build reports no construction directory over the package's sources, and a second build runs neither tool. Against 0.13.0's rule the second criterion fails with the warning above; with this change all three hold.
  • The roles of the rule's other actions are written as mcpp::roles::source (SPEC-007 R3.6).

The engine floor does not move: mcpp 2026.9.26.2.

… a prepare action over the .ts file's directory
@speak-agent
speak-agent merged commit 25e5c11 into main Sep 26, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants