From 23492fde620df4ffadcee0c1f00f5c77ce56d00b Mon Sep 17 00:00:00 2001 From: "alvarez.mauriciotm@gmail.com" Date: Sat, 25 Jan 2025 12:36:39 -0800 Subject: [PATCH 1/8] remove update_translations from scons --- selfdrive/ui/SConscript | 24 +----------------------- 1 file changed, 1 insertion(+), 23 deletions(-) diff --git a/selfdrive/ui/SConscript b/selfdrive/ui/SConscript index 1695e60cd54b3c..5877c8e134716d 100644 --- a/selfdrive/ui/SConscript +++ b/selfdrive/ui/SConscript @@ -33,32 +33,10 @@ qt_src = ["main.cc", "ui.cc", "qt/sidebar.cc", "qt/body.cc", "qt/onroad/onroad_home.cc", "qt/onroad/annotated_camera.cc", "qt/onroad/model.cc", "qt/onroad/buttons.cc", "qt/onroad/alerts.cc", "qt/onroad/driver_monitoring.cc", "qt/onroad/hud.cc"] -# build translation files -with open(File("translations/languages.json").abspath) as f: - languages = json.loads(f.read()) -translation_sources = [f"#selfdrive/ui/translations/{l}.ts" for l in languages.values()] -translation_targets = [src.replace(".ts", ".qm") for src in translation_sources] -lrelease_bin = 'third_party/qt5/larch64/bin/lrelease' if arch == 'larch64' else 'lrelease' - -lupdate = qt_env.Command(translation_sources + ["translations/alerts_generated.h"], qt_src + widgets_src, "selfdrive/ui/update_translations.py") -lrelease = qt_env.Command(translation_targets, translation_sources, f"{lrelease_bin} $SOURCES") -qt_env.Depends(lrelease, lupdate) -qt_env.NoClean(translation_sources) -qt_env.Precious(translation_sources) -qt_env.NoCache(lupdate) - -# create qrc file for compiled translations to include with assets -translations_assets_src = "#selfdrive/assets/translations_assets.qrc" -with open(File(translations_assets_src).abspath, 'w') as f: - f.write('\n\n') - f.write('\n'.join([f'../ui/translations/{l}.qm' for l in languages.values()])) - f.write('\n\n') - # build assets assets = "#selfdrive/assets/assets.cc" assets_src = "#selfdrive/assets/assets.qrc" -qt_env.Command(assets, [assets_src, translations_assets_src], f"rcc $SOURCES -o $TARGET") -qt_env.Depends(assets, Glob('#selfdrive/assets/*', exclude=[assets, assets_src, translations_assets_src, "#selfdrive/assets/assets.o"]) + [lrelease]) +qt_env.Depends(assets, Glob('#selfdrive/assets/*', exclude=[assets, assets_src, "#selfdrive/assets/assets.o"])) asset_obj = qt_env.Object("assets", assets) # build main UI From 28e3c773f656182a92b6ba090947df9ab418272d Mon Sep 17 00:00:00 2001 From: "alvarez.mauriciotm@gmail.com" Date: Sat, 25 Jan 2025 12:57:31 -0800 Subject: [PATCH 2/8] update_translations GHA --- .github/workflows/update-translations.yaml | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 .github/workflows/update-translations.yaml diff --git a/.github/workflows/update-translations.yaml b/.github/workflows/update-translations.yaml new file mode 100644 index 00000000000000..71e05bfeace373 --- /dev/null +++ b/.github/workflows/update-translations.yaml @@ -0,0 +1,20 @@ +name: "update translations" +on: + push: + branches: + - master + paths: + - 'selfdrive/ui/**' + workflow_dispatch: +jobs: + build: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - name: Update translations + id: update + run: ./selfdrive/ui/update_translations.py + + - uses: stefanzweifel/git-auto-commit-action@v5 + with: + commit_message: "[GHA]Update translations" \ No newline at end of file From f2698bf640a071d36bc4f11e2bcc406b9520d602 Mon Sep 17 00:00:00 2001 From: "alvarez.mauriciotm@gmail.com" Date: Sat, 25 Jan 2025 14:49:00 -0800 Subject: [PATCH 3/8] working GHA --- .github/workflows/update-translations.yaml | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/.github/workflows/update-translations.yaml b/.github/workflows/update-translations.yaml index 71e05bfeace373..433c43ae174147 100644 --- a/.github/workflows/update-translations.yaml +++ b/.github/workflows/update-translations.yaml @@ -3,18 +3,26 @@ on: push: branches: - master - paths: - - 'selfdrive/ui/**' + paths: + - 'selfdrive/ui/**' workflow_dispatch: + +env: + BASE_IMAGE: openpilot-base + BUILD: selfdrive/test/docker_build.sh base + RUN: docker run --shm-size 2G -v $PWD:/tmp/openpilot -w /tmp/openpilot -e CI=1 -e PYTHONWARNINGS=error -e FILEREADER_CACHE=1 -e PYTHONPATH=/tmp/openpilot -e NUM_JOBS -e JOB_ID -e GITHUB_ACTION -e GITHUB_REF -e GITHUB_HEAD_REF -e GITHUB_SHA -e GITHUB_REPOSITORY -e GITHUB_RUN_ID -v $GITHUB_WORKSPACE/.ci_cache/scons_cache:/tmp/scons_cache -v $GITHUB_WORKSPACE/.ci_cache/comma_download_cache:/tmp/comma_download_cache -v $GITHUB_WORKSPACE/.ci_cache/openpilot_cache:/tmp/openpilot_cache $BASE_IMAGE /bin/bash -c + jobs: build: runs-on: ubuntu-latest + permissions: + contents: write steps: - uses: actions/checkout@v4 + - uses: ./.github/workflows/setup-with-retry - name: Update translations - id: update - run: ./selfdrive/ui/update_translations.py - + run: | + ${{ env.RUN }} "python3 selfdrive/ui/update_translations.py" - uses: stefanzweifel/git-auto-commit-action@v5 with: - commit_message: "[GHA]Update translations" \ No newline at end of file + commit_message: "[GHA] Update translations" \ No newline at end of file From 298c42f5261b45a0d7191f2725d3e77be8abd656 Mon Sep 17 00:00:00 2001 From: "alvarez.mauriciotm@gmail.com" Date: Sat, 25 Jan 2025 15:12:48 -0800 Subject: [PATCH 4/8] fix scons fails --- selfdrive/ui/SConscript | 1 + 1 file changed, 1 insertion(+) diff --git a/selfdrive/ui/SConscript b/selfdrive/ui/SConscript index 5877c8e134716d..6436106dc55112 100644 --- a/selfdrive/ui/SConscript +++ b/selfdrive/ui/SConscript @@ -36,6 +36,7 @@ qt_src = ["main.cc", "ui.cc", "qt/sidebar.cc", "qt/body.cc", # build assets assets = "#selfdrive/assets/assets.cc" assets_src = "#selfdrive/assets/assets.qrc" +qt_env.Command(assets, [assets_src], f"rcc $SOURCES -o $TARGET") qt_env.Depends(assets, Glob('#selfdrive/assets/*', exclude=[assets, assets_src, "#selfdrive/assets/assets.o"])) asset_obj = qt_env.Object("assets", assets) From 17e1b4ad71a24d02200ef3efc2314b88819cea60 Mon Sep 17 00:00:00 2001 From: "alvarez.mauriciotm@gmail.com" Date: Wed, 12 Feb 2025 00:59:21 -0800 Subject: [PATCH 5/8] job name --- .github/workflows/update-translations.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/update-translations.yaml b/.github/workflows/update-translations.yaml index 433c43ae174147..b25728ab318d79 100644 --- a/.github/workflows/update-translations.yaml +++ b/.github/workflows/update-translations.yaml @@ -13,7 +13,7 @@ env: RUN: docker run --shm-size 2G -v $PWD:/tmp/openpilot -w /tmp/openpilot -e CI=1 -e PYTHONWARNINGS=error -e FILEREADER_CACHE=1 -e PYTHONPATH=/tmp/openpilot -e NUM_JOBS -e JOB_ID -e GITHUB_ACTION -e GITHUB_REF -e GITHUB_HEAD_REF -e GITHUB_SHA -e GITHUB_REPOSITORY -e GITHUB_RUN_ID -v $GITHUB_WORKSPACE/.ci_cache/scons_cache:/tmp/scons_cache -v $GITHUB_WORKSPACE/.ci_cache/comma_download_cache:/tmp/comma_download_cache -v $GITHUB_WORKSPACE/.ci_cache/openpilot_cache:/tmp/openpilot_cache $BASE_IMAGE /bin/bash -c jobs: - build: + update_translations: runs-on: ubuntu-latest permissions: contents: write From 682954a1b71504395e56821585b70530b8223b3e Mon Sep 17 00:00:00 2001 From: "alvarez.mauriciotm@gmail.com" Date: Wed, 12 Feb 2025 01:19:02 -0800 Subject: [PATCH 6/8] remove test_update_translations --- selfdrive/ui/tests/test_translations.py | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/selfdrive/ui/tests/test_translations.py b/selfdrive/ui/tests/test_translations.py index 0967152fa4bb95..a7c5377fee6534 100644 --- a/selfdrive/ui/tests/test_translations.py +++ b/selfdrive/ui/tests/test_translations.py @@ -34,16 +34,6 @@ def test_missing_translation_files(self): assert os.path.exists(os.path.join(TRANSLATIONS_DIR, f"{self.file}.ts")), \ f"{self.name} has no XML translation file, run selfdrive/ui/update_translations.py" - def test_translations_updated(self): - with tempfile.TemporaryDirectory() as tmpdir: - shutil.copytree(TRANSLATIONS_DIR, tmpdir, dirs_exist_ok=True) - update_translations(translation_files=[self.file], translations_dir=tmpdir) - - cur_translations = self._read_translation_file(TRANSLATIONS_DIR, self.file) - new_translations = self._read_translation_file(tmpdir, self.file) - assert cur_translations == new_translations, \ - f"{self.file} ({self.name}) XML translation file out of date. Run selfdrive/ui/update_translations.py to update the translation files" - @pytest.mark.skip("Only test unfinished translations before going to release") def test_unfinished_translations(self): cur_translations = self._read_translation_file(TRANSLATIONS_DIR, self.file) From f536e7a504b057c5cf2cbb0ff208efe179c2e49d Mon Sep 17 00:00:00 2001 From: "alvarez.mauriciotm@gmail.com" Date: Wed, 12 Feb 2025 01:22:29 -0800 Subject: [PATCH 7/8] cleanup --- selfdrive/ui/tests/test_translations.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/selfdrive/ui/tests/test_translations.py b/selfdrive/ui/tests/test_translations.py index a7c5377fee6534..09dd7c5d8b9aef 100644 --- a/selfdrive/ui/tests/test_translations.py +++ b/selfdrive/ui/tests/test_translations.py @@ -2,14 +2,12 @@ import json import os import re -import shutil -import tempfile import xml.etree.ElementTree as ET import string import requests from parameterized import parameterized_class -from openpilot.selfdrive.ui.update_translations import TRANSLATIONS_DIR, LANGUAGES_FILE, update_translations +from openpilot.selfdrive.ui.update_translations import TRANSLATIONS_DIR, LANGUAGES_FILE with open(LANGUAGES_FILE) as f: translation_files = json.load(f) From 9cdabade3ed3dbdc10174c361bafb58d645e6a7d Mon Sep 17 00:00:00 2001 From: "alvarez.mauriciotm@gmail.com" Date: Wed, 12 Feb 2025 16:18:57 -0800 Subject: [PATCH 8/8] move to repo-maintenance --- .github/workflows/repo-maintenance.yaml | 25 +++++++++++++++++++ .github/workflows/update-translations.yaml | 28 ---------------------- 2 files changed, 25 insertions(+), 28 deletions(-) delete mode 100644 .github/workflows/update-translations.yaml diff --git a/.github/workflows/repo-maintenance.yaml b/.github/workflows/repo-maintenance.yaml index ab0f3c1beebb9a..e5a4d7a9879b70 100644 --- a/.github/workflows/repo-maintenance.yaml +++ b/.github/workflows/repo-maintenance.yaml @@ -5,7 +5,32 @@ on: - cron: "0 14 * * 1" # every Monday at 2am UTC (6am PST) workflow_dispatch: +env: + BASE_IMAGE: openpilot-base + BUILD: selfdrive/test/docker_build.sh base + RUN: docker run --shm-size 2G -v $PWD:/tmp/openpilot -w /tmp/openpilot -e CI=1 -e PYTHONWARNINGS=error -e FILEREADER_CACHE=1 -e PYTHONPATH=/tmp/openpilot -e NUM_JOBS -e JOB_ID -e GITHUB_ACTION -e GITHUB_REF -e GITHUB_HEAD_REF -e GITHUB_SHA -e GITHUB_REPOSITORY -e GITHUB_RUN_ID -v $GITHUB_WORKSPACE/.ci_cache/scons_cache:/tmp/scons_cache -v $GITHUB_WORKSPACE/.ci_cache/comma_download_cache:/tmp/comma_download_cache -v $GITHUB_WORKSPACE/.ci_cache/openpilot_cache:/tmp/openpilot_cache $BASE_IMAGE /bin/bash -c + jobs: + update_translations: + runs-on: ubuntu-latest + if: github.repository == 'commaai/openpilot' + steps: + - uses: actions/checkout@v4 + - uses: ./.github/workflows/setup-with-retry + - name: Update translations + run: | + ${{ env.RUN }} "python3 selfdrive/ui/update_translations.py" + - name: Create Pull Request + uses: peter-evans/create-pull-request@9153d834b60caba6d51c9b9510b087acf9f33f83 + with: + author: Vehicle Researcher + commit-message: "Update translations" + title: "[bot]Update translations" + body: "Automatic PR from repo-maintenance -> update_translations" + branch: "update-translations" + base: "master" + delete-branch: true + labels: bot package_updates: name: package_updates runs-on: ubuntu-latest diff --git a/.github/workflows/update-translations.yaml b/.github/workflows/update-translations.yaml deleted file mode 100644 index b25728ab318d79..00000000000000 --- a/.github/workflows/update-translations.yaml +++ /dev/null @@ -1,28 +0,0 @@ -name: "update translations" -on: - push: - branches: - - master - paths: - - 'selfdrive/ui/**' - workflow_dispatch: - -env: - BASE_IMAGE: openpilot-base - BUILD: selfdrive/test/docker_build.sh base - RUN: docker run --shm-size 2G -v $PWD:/tmp/openpilot -w /tmp/openpilot -e CI=1 -e PYTHONWARNINGS=error -e FILEREADER_CACHE=1 -e PYTHONPATH=/tmp/openpilot -e NUM_JOBS -e JOB_ID -e GITHUB_ACTION -e GITHUB_REF -e GITHUB_HEAD_REF -e GITHUB_SHA -e GITHUB_REPOSITORY -e GITHUB_RUN_ID -v $GITHUB_WORKSPACE/.ci_cache/scons_cache:/tmp/scons_cache -v $GITHUB_WORKSPACE/.ci_cache/comma_download_cache:/tmp/comma_download_cache -v $GITHUB_WORKSPACE/.ci_cache/openpilot_cache:/tmp/openpilot_cache $BASE_IMAGE /bin/bash -c - -jobs: - update_translations: - runs-on: ubuntu-latest - permissions: - contents: write - steps: - - uses: actions/checkout@v4 - - uses: ./.github/workflows/setup-with-retry - - name: Update translations - run: | - ${{ env.RUN }} "python3 selfdrive/ui/update_translations.py" - - uses: stefanzweifel/git-auto-commit-action@v5 - with: - commit_message: "[GHA] Update translations" \ No newline at end of file