Skip to content

⬆️ Bump QuantEcon/action-translation from 0.13.1 to 0.15.0#112

Merged
mmcky merged 1 commit into
mainfrom
dependabot/github_actions/QuantEcon/action-translation-0.15.0
May 14, 2026
Merged

⬆️ Bump QuantEcon/action-translation from 0.13.1 to 0.15.0#112
mmcky merged 1 commit into
mainfrom
dependabot/github_actions/QuantEcon/action-translation-0.15.0

Conversation

@dependabot
Copy link
Copy Markdown
Contributor

@dependabot dependabot Bot commented on behalf of github Apr 15, 2026

Bumps QuantEcon/action-translation from 0.13.1 to 0.15.0.

Release notes

Sourced from QuantEcon/action-translation's releases.

v0.15.0 — Rebase Mode

Rebase Mode — Automatic conflict resolution for translation PRs

This release adds rebase mode, which eliminates merge conflicts when multiple upstream PRs modify the same translated file. Previously, 62% of translation-sync PRs conflicted because they replace entire files — merging one makes any sibling PR's "unchanged sections" stale.

How it works

When a translation-sync-* PR is merged in the target repo, rebase mode:

  1. Finds sibling translation-sync PRs with overlapping files
  2. Re-runs the translation pipeline against updated main
  3. Reuses cached translations for unchanged sections (zero Claude API calls in the common case)
  4. Force-pushes the rebased result

Setup

Add examples/rebase-translations.yml to your target repo's .github/workflows/ directory (see template).

What's new

  • Rebase mode (mode: rebase) — triggered by pull_request.closed on translation-sync- branches
  • Translation cache — section-level cache using targetBaseSha in PR metadata; unchanged sections skip Claude entirely
  • Structured PR metadata — machine-readable JSON in PR body for pipeline reconstruction
  • File type metadata — supports markdown, renamed, removed, and toc files during rebase
  • Rebase workflow templateexamples/rebase-translations.yml with concurrency group
  • 29 new tests (976 → 1005 total, 39 suites)

Fixes #63

v0.14.1

Fixed

  • Heading-map injection for new files: processFull() now builds and injects a translation: frontmatter block (heading-map + title) into newly translated files. Previously, only section-based updates via processSectionBased got heading-maps; new files were missing them.
  • MISSING_HEADINGMAP false positive for title-only files: translate status no longer flags files with no ## sections as missing a heading-map. These files have only a title — an empty heading-map is expected.

Refactored

  • Moved buildHeadingMap from CLI module (headingmap.ts) to shared module (heading-map.ts) to avoid coupling the Action bundle to CLI-only dependencies.
  • Added try/catch around heading-map injection in processFull so malformed translations fall back gracefully.

Documentation

  • Documented language-targeted \translate-resync syntax across README, quickstart, action-reference, and FAQ (e.g., \translate-resync fa to retrigger only Farsi).

Tests

976 pass (39 suites) — 4 new tests added.

v0.14.0

Fixed

  • Retry on Anthropic overloaded_error: The overloaded_error (APIError with status: undefined) is now retried with exponential backoff instead of failing immediately. Narrowed to match overloaded in the error message so unrelated status-less errors are not retried. Improved formatApiError to show a clear message when retries are exhausted. Fixes #57

... (truncated)

Changelog

Sourced from QuantEcon/action-translation's changelog.

[0.15.0] - 2025-07-14

Added

  • Rebase mode (mode: rebase): Automatically rebases open translation-sync PRs when a sibling PR is merged. Eliminates the 62% merge conflict rate from issue #63. Runs in the target repo, triggered by pull_request.closed events on translation-sync- branches. Detects file overlap via PR metadata, re-runs the sync pipeline against updated main, and force-pushes the result. Posts success/failure comments on rebased PRs.
  • Translation cache for rebase: Stores targetBaseSha in PR metadata to enable section-level cache during rebase. Before re-translating, compares each section's target content between the original baseline and current main. Unchanged sections reuse cached translations from the PR branch — zero Claude API calls in the common case (PRs modifying different sections). Added sections matched via heading map. Graceful fallback to re-translation if cache parsing fails.
  • Structured PR metadata: Translation-sync PR bodies now include a <!-- translation-sync-metadata --> HTML comment block with machine-readable JSON: sourceRepo, sourcePR, sourceCommitSha, targetBaseSha, sourceLanguage, targetLanguage, claudeModel, and file list. Used by rebase mode to reconstruct pipeline inputs. Invisible on GitHub. Backward compatible — PRs without metadata are skipped during rebase.
  • Rebase workflow template: Ready-to-use examples/rebase-translations.yml for target repos. Includes concurrency group to prevent overlapping rebases.
  • File type metadata: PR metadata now includes file types (markdown, renamed, removed, toc) and previousPath for renamed files. Rebase mode uses this to correctly reconstruct all file types, not just markdown.
  • RebaseInputs type: New action inputs for rebase mode (anthropic-api-key, github-token, optional docs-folder and glossary-path).
  • 29 tests: 8 for metadata/rebase inputs, 2 for targetBaseSha, 7 for translation cache, 2 for cache subsections and heading-map correctness, 1 for CRLF metadata parsing, 3 for file type metadata, 6 additional cache and integration tests (976 → 1005 total, 39 suites)

[0.14.1] - 2026-04-09

Fixed

  • Heading-map injection for new files: processFull() now builds and injects a translation: frontmatter block (heading-map + title) into newly translated files. Previously, only section-based updates via processSectionBased got heading-maps; new files were missing them.
  • MISSING_HEADINGMAP false positive for title-only files: translate status no longer flags files with no ## sections as missing a heading-map. These files have only a title — an empty heading-map is expected.

Added

  • 4 tests: 3 for processFull heading-map injection, 1 for title-only status check (972 → 976 total)

[0.14.0] - 2026-04-09

Fixed

  • Retry on Anthropic overloaded_error: The overloaded_error (APIError with status: undefined) is now retried with exponential backoff instead of failing immediately. Narrowed to match overloaded in the error message so unrelated status-less errors are not retried. Improved formatApiError to show a clear message when retries are exhausted. Updated JSDoc to document the new retry case. Fixes #57

Added

  • Language-targeted \translate-resync command: \translate-resync fa triggers only the Farsi workflow; \translate-resync zh-cn triggers only zh-cn. Bare \translate-resync (no argument) still triggers all languages for backward compatibility. Language argument is validated against supported languages; unsupported values are ignored with a warning and fall back to all-language resync. Fixes #58
  • Copilot PR review workflow in copilot-instructions.md: Documented the fetch → fix → reply → resolve process for addressing Copilot review comments
  • 5 tests: 2 for overloaded_error retry, 3 for language-targeted resync parsing (967 → 972 total)

[0.13.1] - 2026-03-26

Fixed

  • Headingmap CLI MyST role stripping: cleanHeading() in the headingmap CLI now strips MyST inline roles via MystParser.stripMystRoles(), matching the sync pipeline behavior from v0.12.5. Previously, roles like {index}`Mutable <single: Mutable>` appeared verbatim in heading-map keys/values when running npx translate headingmap.

Added

  • 1 test for MyST role stripping in buildHeadingMap (966 → 967 total)

[0.13.0] - 2026-03-26

Changed

  • Heading-map → translation frontmatter: Replaced flat heading-map: YAML block with structured translation: { title, headings } format. Title is now stored as an explicit field instead of a heading-map entry, resolving the inconsistency between the sync pipeline and the headingmap CLI. Reads both formats (backward compatible); always writes new format. Affected: heading-map.ts, file-processor.ts, headingmap CLI, init CLI, reviewer prompts (954 → 966 tests)

[0.12.5] - 2026-03-26

Fixed

  • Heading-map MyST role pollution: Headings with MyST inline roles like {index}\Pandas <single: Pandas>` were stored verbatim as heading-map keys/values instead of the clean display text (Pandas). Added MystParser.stripMystRoles()static method using global regex replacement to handle single roles, multiple roles, and mixed role+text headings. Applied across all heading-map paths: parser title extraction, file-processor heading-map updates,cleanHeadinginupdateHeadingMap, and lookupTargetHeading. Covers #titles and##+ section/subsection headings. Affects 7 lectures in lecture-python-programming that use {index}` roles in titles.

Added

  • 19 tests for MyST role stripping — unit tests for stripMystRoles (including mixed role+text headings), title extraction integration, and heading-map operations with role syntax (935 → 954 total)

... (truncated)

Commits
  • b2403c6 chore: release v0.15.0
  • 5a80d96 Merge pull request #64 from QuantEcon/fix/issue-63-rebase-on-merge
  • 63b3950 fix: store file types in PR metadata for correct rebase reconstruction
  • 590c3c5 fix: address Copilot review — pagination, state SHAs, CRLF, MyST roles
  • 49fef4b docs: update changelog, copilot-instructions, and build output
  • 39dbe74 Phase 4: Add rebase workflow template for target repos
  • bbcda54 Phase 3: Translation cache for rebase mode
  • 0eed2e3 Phase 2: Add rebase mode for resolving translation PR conflicts
  • edefffb Phase 1: Embed structured metadata in translation sync PR bodies
  • 842b47a release: v0.14.1
  • Additional commits viewable in compare view

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

Bumps [QuantEcon/action-translation](https://github.com/quantecon/action-translation) from 0.13.1 to 0.15.0.
- [Release notes](https://github.com/quantecon/action-translation/releases)
- [Changelog](https://github.com/QuantEcon/action-translation/blob/main/CHANGELOG.md)
- [Commits](QuantEcon/action-translation@v0.13.1...v0.15.0)

---
updated-dependencies:
- dependency-name: QuantEcon/action-translation
  dependency-version: 0.15.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot added dependencies Pull requests that update a dependency file github_actions Pull requests that update GitHub Actions code labels Apr 15, 2026
@netlify
Copy link
Copy Markdown

netlify Bot commented Apr 15, 2026

Deploy Preview for majestic-griffin-10b166 ready!

Name Link
🔨 Latest commit 826cdd6
🔍 Latest deploy log https://app.netlify.com/projects/majestic-griffin-10b166/deploys/69df146fe633dd0008ba5496
😎 Deploy Preview https://deploy-preview-112--majestic-griffin-10b166.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@mmcky mmcky merged commit 8ba99e4 into main May 14, 2026
10 checks passed
@mmcky mmcky deleted the dependabot/github_actions/QuantEcon/action-translation-0.15.0 branch May 14, 2026 10:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file github_actions Pull requests that update GitHub Actions code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant