Fix crowdin syncing#20536
Merged
Merged
Conversation
SaschaCowley
force-pushed
the
crowdin-sync
branch
from
July 21, 2026 08:29
0fa535a to
641c513
Compare
added 17 commits
July 24, 2026 11:25
seanbudd
reviewed
Jul 24, 2026
seanbudd
approved these changes
Jul 24, 2026
SaschaCowley
enabled auto-merge (squash)
July 26, 2026 23:49
Open
5 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Link to issue number:
Fixes #20524
Summary of the issue:
The "Fetch tracked translations from Crowdin" workflow was successfully running, committing new translations that were valid, creating a PR, and sending an email to the l10n list, but the emails were being bounced. As there was no return path address, and the workflow runs didn't show that there were errors unless you reviewed the logs, these failures were essentially silent.
Description of user facing changes:
No end-user-facing changes.
Emails sent to the l10n list now include each failing locale's output as attachments, which should make reviewing the logs they are interested in much easier. The emails also now link to the generating workflow run.
Description of developer facing changes:
None to the NVDA API. Changes are limited to CI:
Description of development approach:
As best as I can tell, the sudden failure of this workflow was due to either Google tightening checks in Google Groups, or some change in our Workspace configuration that I'm not aware of. The end result was that messages to nvda-l10n@nvaccess.org from <nvda-l10n@nvaccess.org` were being bounced. Thus, the ultimate fix here is that the emails now come from noreply@nvaccess.org.
I also fixed some other problems with the workflow:
branchName) now includesgithub.run_attemptso re-runs don't collide.workflowRunUrlandworkflowRunNameenv vars for reuse in the PR body and emails, both of which refer to the specific run and attempt.<lang>.txtfile per failing locale. These files are then exposed via areport_filesstep output (JSON array) instead of the inlineinvalid_pofile_reportsblob.::group::/::endgroup::) and error annotations (::error file=...::) for each failing.pofile. This gives a clear indication of failures on the workflow run page, and makes the log output easier to read.L10N_EMAIL_TO,L10N_EMAIL_FROM). A return path address has been added (EMAIL_BOUNCE_ADDRESS) so that if something similar happens in future, we should hear about it.actions/checkoutfrom v4 to v7;actions/setup-pythonfrom v6 to v7;astral-sh/setup-uvfrom v6 to v8.3.2; anddawidd6/action-send-mailfrom v4 to v18. Addedactions/upload-artifactat v7.Testing strategy:
Iteratively validated by running the workflow in CI to confirm branch naming, artifact upload, PR title/body generation, and email delivery with attachments. Tests were run with the checkout branch set to
crowdin-syncso the updated CI script would be used, and were mostly run with the recipient being my email address rather than the l10n group, though that was tested too.Known issues with pull request:
The "Monitor Localisation File Changes" workflow will need some of the same changes. This should be done in a separate PR.
Code Review Checklist: