Skip to content

Wait for merges to finish after extraction - #452

Draft
oliver-kriska wants to merge 1 commit into
elixir-gettext:mainfrom
oliver-kriska:wait-for-gettext-merge
Draft

oliver-kriska wants to merge 1 commit into
elixir-gettext:mainfrom
oliver-kriska:wait-for-gettext-merge

Conversation

@oliver-kriska

Copy link
Copy Markdown
Contributor

Remove the 120-second timeout around the merge tasks launched by gettext.extract --merge and gettext.generate --merge. Both use the same extraction post-processing path. Standalone gettext.merge already waits indefinitely for its merge tasks.

Fixes #440 and follows José's suggestion there to use :infinity. Faster fuzzy matching helps but cannot make a fixed deadline safe for every catalog. A stalled merge still needs to be interrupted by the user or the enclosing CI job's timeout; this change does not make file updates transactional.

Validation:

  • Exercised the actual shared process/4 entry point and real merge task with a public plural callback that delayed completion for 122 seconds. The original code exited with the stream timeout at 120.001 seconds. The changed code completed at 122.009 seconds and preserved the PO translation.
  • mix test --warnings-as-errors: 193 passed (5 doctests, 188 tests), including the existing extract/generate/merge integration tests.
  • Formatting and whitespace checks pass.

The two-minute boundary probe was temporary validation, not a permanent two-minute addition to the test suite. No configuration option or other merge behavior changes are introduced.

Match standalone gettext.merge by waiting without a fixed timeout in the
shared extract/generate post-processing path. Large catalogs can exceed
the previous 120-second deadline even when the merge is making progress.
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.

mix gettext.extract --merge still times out on large projects (120s limit from #417)

1 participant