Skip to content

A submission already in the target branch fails as an empty commit and the thread is told the translation could not be used #695

Closed

Description

@openvoiceos-bot

🤖 Auto-generated by Claude from the re-run of the open translation submissions. The text is tool-generated and is not reviewed by a maintainer.

Observed

A submission whose text is already in the target branch fails, and the thread tells the translator that the work could not be used.

Two submissions on ovos-skill-alerts show it:

issue language path in the submission text in the target branch
#472 kab locale/kab/dialog/words/whole_day.dialog byte-identical
#479 kab locale/kab/dialog/at_time.dialog byte-identical

Both reach Create branch and commit with every earlier step green: the path and language check passes, Validate submitted content passes, the App token is minted and the target repository is checked out. The step then writes the file, git add stages nothing, and git commit exits non-zero because there is no change. The step fails, Create Pull Request and Close issue with PR link are skipped, and Report failure on the issue posts the generic note:

⚠️ This translation could not be turned into a pull request. Your translation is safe ... A maintainer has been alerted and will re-run it.

That note is wrong in both directions. The translation is not waiting for anything: it is shipped. A re-run can only fail the same way, because the text is already in the branch. The thread stays open and reads as a fault in the app or in the submission, and a maintainer who re-runs it gets the same failure again.

Expected

An empty commit is a success for the translator, not a failure. The job sees that the submitted text equals the text in the target branch, posts a note saying the translation is already in the branch and naming the commit or the pull request that landed it, and closes the issue. No pull request is needed and no failure note goes out.

Reproduce

  1. Dispatch submit_translation.yml with issues=ALL. Run 36878698113 is the one measured here.
  2. Read the job for [translate] kab: OpenVoiceOS/ovos-skill-alerts — whole_day.dialog #472. Every step is green up to Create branch and commit, which fails.
  3. Read the TRANSLATION_META block and the <content> block of [translate] kab: OpenVoiceOS/ovos-skill-alerts — whole_day.dialog #472, decode the base64, and read locale/kab/dialog/words/whole_day.dialog on the dev branch of OpenVoiceOS/ovos-skill-alerts. The two are byte-identical, ass kamel\nkra yekka wass\n.
  4. The same holds for [translate] kab: OpenVoiceOS/ovos-skill-alerts — at_time.dialog #479 and locale/kab/dialog/at_time.dialog, af {begin}\n.

Where

Create branch and commit in the create-pr job of .github/workflows/submit_translation.yml. The step runs git add and then git commit with no guard for an empty index.

Also worth checking

Whether the failure note can carry the cause instead of one generic sentence. Five causes are on record from one run: a missing App installation on the target repository, a target repository that no longer exists, a target repository that is archived, a path whose language disagrees with the submission, and this one. All five produce the same note, so a thread cannot be triaged without opening the run.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions