Migrate translation workflows to @v0, adopt the review template, enable -W#137
Merged
Conversation
…le -W Moves review and rebase off the exact `@v0.16.1` pin onto the floating `@v0` tag, per the pin policy settled in QuantEcon/project-translation#9, and aligns the review workflow with the upstream template in action-translation docs/user/tutorials/connect-existing.md. Two substantive changes beyond the pin: **Concurrency moves from workflow level to job level**, and `cancel-in-progress` from false to true. The previous comment argued that job-level `true` was unsafe because an 'automated' label event would cancel the in-flight review for 'action-translation' and then skip its own job via the filter, leaving no review at all. That was reasoned from the GitHub docs and never tested, and production disproved it: across roughly 15 live opportunities on lecture-intro.zh-cn the group was entered only after the `if` passed, the 'automated' event skipped without cancelling, and a review was posted every time. The stale rationale is replaced rather than left in place. **A `permissions` block is added** — v0.17.0's review dedupe deletes superseded comments, which requires `pull-requests: write`. The pin was two releases behind, which matters here: v0.18.0 carries the fix for a review-mode defect where a model response missing a criterion score became NaN and rendered as an automatic FAIL on otherwise clean PRs. See QuantEcon/action-translation#102. Separately, `ci.yml` gains `-W` on the notebook build. This repo's publish.yml already builds strict, so the PR gate was weaker than the publish gate — a corrupted sync could merge green and then break the published site. Coverage is 26 of 26 lectures with a `_toc.yml` identical to source, so there are no untranslated-lecture references for the flag to trip on. The strict build is the last line of defence against the silent-corruption class in QuantEcon/action-translation#118 and #119, both of which surfaced only because a downstream repo built with -n -W. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
✅ Deploy Preview for majestic-griffin-10b166 ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
Contributor
There was a problem hiding this comment.
Pull request overview
Updates this repository’s translation automation workflows to follow the current QuantEcon/action-translation guidance (moving off a hard pin to @v0), and tightens CI by treating Jupyter Book warnings as errors to better catch broken builds before merge.
Changes:
- Migrate translation workflows from
QuantEcon/action-translation@v0.16.1to the floating@v0tag. - Align the translation review workflow with the upstream template (job-level concurrency + required
permissions). - Enable strict Jupyter Book builds in CI by adding
-Wto the build command.
Reviewed changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated 1 comment.
| File | Description |
|---|---|
| .github/workflows/review-translations.yml | Switches to action-translation@v0, adds job-level concurrency + permissions, and refreshes the review trigger filter logic. |
| .github/workflows/rebase-translations.yml | Switches the rebase workflow to action-translation@v0. |
| .github/workflows/ci.yml | Makes CI’s Jupyter Book build strict by adding -W (warnings as errors). |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
This was referenced Jul 21, 2026
The rebase workflow only fired for `translation-sync-*` branches, which
the Action's sync mode creates. The CLI's `translate forward --github`
creates `resync/{stem}` branches, so merging one resync PR never
rebased its siblings — during a drift-recovery wave that leaves a stack
of open PRs whose bases go stale with every merge.
Fixed engine-side in action-translation v0.18.1, but the action-side
half is not sufficient on its own: this `if` gates whether the job runs
at all, and it runs before the action does. Both layers must list both
prefixes or the result is a job that never starts.
Brings this file in step with the upstream template as of that release.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
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.
Moves review and rebase off the exact
@v0.16.1pin onto the floating@v0tag — the policy settled in QuantEcon/project-translation#9 — and aligns the review workflow with the upstream template inaction-translationdocs/user/tutorials/connect-existing.md.Why the pin matters here, not just as hygiene
The pin was two releases behind. v0.18.0 carries the fix for action-translation#102, a review-mode defect: a model response missing a criterion score became
NaNand rendered as an automatic FAIL ("undefined/10") on otherwise clean PRs. This repo is exposed to that today.Two substantive workflow changes beyond the pin
Concurrency moves from workflow level to job level, and
cancel-in-progressfromfalsetotrue. The previous comment argued that job-leveltruewas unsafe: anautomatedlabel event would cancel the in-flight review foraction-translationand then skip its own job via the filter, leaving no review at all. That was reasoned from the GitHub docs and never tested — and production disproved it. Across roughly 15 live opportunities onlecture-intro.zh-cn, the group was entered only after theifpassed, theautomatedevent skipped without cancelling, and a review was posted every time. The stale rationale is replaced rather than left in the file.A
permissionsblock is added. v0.17.0's review dedupe deletes superseded comments, which requirespull-requests: write.Separately:
-Won the notebook buildpublish.ymlin this repo already builds strict, so the PR gate was weaker than the publish gate — a corrupted sync could merge green and then break the published site. This aligns them.Coverage is 26 of 26 lectures with a
_toc.ymlidentical to source, so there are no untranslated-lecture references for the flag to trip on. The strict build is the last line of defence against the silent-corruption class in action-translation#118 and #119, both of which surfaced only because a downstream repo built with-n -W.CI on this PR is the test of the
-Whalf; any warning is either a translation defect to fix or a false positive to waive deliberately.Part of Stage 1 of the translation program work plan. See QuantEcon/project-translation#9.
🤖 Generated with Claude Code