)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},"change_message_id":"ccd78dcc0197148755bd14004a0f5e2510352bad","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"e55042eb_1e5c23e6","updated":"2025-11-26 11:20:45.000000000","message":"@fungi@yuggoth.org Jeremy hello, please review this, we need start receive updates translations from weblate, lot of projects already moved.","commit_id":"fc393ccb1da247cfc05096d675928e232ec7d600"},{"author":{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},"change_message_id":"ea1437959bb46d06845c34b296a58b4af7366054","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"1e7b58fd_f865612f","updated":"2025-11-26 16:52:53.000000000","message":"@fungi@yuggoth.org thank you, just interested final results ;))","commit_id":"fc393ccb1da247cfc05096d675928e232ec7d600"},{"author":{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},"change_message_id":"01793299338144caaec88149a10f641b746ff1b2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"350687eb_627097f4","updated":"2025-11-26 16:51:45.000000000","message":"@tony@bakeyournoodle.com hello, please review this MR.","commit_id":"fc393ccb1da247cfc05096d675928e232ec7d600"},{"author":{"_account_id":14482,"name":"Ian Y. Choi","email":"ianyrchoi@gmail.com","username":"ianychoi"},"change_message_id":"6e13d47066bb21adf5a41920e4cbf9beeb709496","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"b176ae0d_5adf6333","updated":"2025-10-12 16:46:37.000000000","message":"I resolved Zuul errors and simplified the commit message.\n\nNote that my WIP patch https://review.opendev.org/c/openstack/project-config/+/954377 is not abandoned.","commit_id":"fc393ccb1da247cfc05096d675928e232ec7d600"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"338c225704d999a1bc3e127cb0a3d209956d3bab","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"2533c605_828cc365","updated":"2026-06-06 11:03:51.000000000","message":"my comments from PS8 are still relevant afaict and not answered, voting -1 to highlight","commit_id":"44245ab9a672b6678daffb51a0508013daae1445"}],"playbooks/translation/propose-translation-update-weblate.yaml":[{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"bb3eaf0ff01bbac31f172b4c520e0e885410d14e","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":9,"id":"f707d87e_fb3efdcc","line":15,"range":{"start_line":12,"start_character":0,"end_line":15,"end_character":1},"updated":"2026-06-03 15:47:13.000000000","message":"If we are no longer authenticating to weblate to download the translation before proposing them to Gerrit then we won\u0027t need these environment variables anymore.\n\nThat will simplify things a bit and it avoids us needing to set no_log: true to avoid disclosing these vars through the ansible json logs.","commit_id":"6a2ea16851f3a459cb44dc62a80b8ee9f010f972"},{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"9bd3f4b9ec9039b9b529b0f4b5997d186b579160","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":9,"id":"e6477563_5a89da48","line":15,"range":{"start_line":12,"start_character":0,"end_line":15,"end_character":1},"in_reply_to":"4cf263ea_a60c9d77","updated":"2026-06-03 15:55:11.000000000","message":"My previous comment highlighted too many lines of code. We want to keep environment: for the url but we should remove the key as we are not authenticating.","commit_id":"6a2ea16851f3a459cb44dc62a80b8ee9f010f972"},{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"1f87555545165ef7b1508a85ae4f63b1b7b407f7","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"8caf9d68_3de5bafa","line":15,"range":{"start_line":12,"start_character":0,"end_line":15,"end_character":1},"in_reply_to":"e6477563_5a89da48","updated":"2026-06-03 18:35:10.000000000","message":"Done","commit_id":"6a2ea16851f3a459cb44dc62a80b8ee9f010f972"},{"author":{"_account_id":23279,"name":"Seongsoo Cho","display_name":"Seongsoo Cho","email":"ppiyakk2@printf.kr","username":"seongsoo.cho"},"change_message_id":"264686cb79c2144060ce2a47d7e57d761d1a6e71","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":9,"id":"04a2dc86_f989a9e3","line":15,"range":{"start_line":12,"start_character":0,"end_line":15,"end_character":1},"in_reply_to":"e6477563_5a89da48","updated":"2026-06-03 16:00:49.000000000","message":"I restored the code (only WEBLATE_URL) in patchset 11.","commit_id":"6a2ea16851f3a459cb44dc62a80b8ee9f010f972"},{"author":{"_account_id":23279,"name":"Seongsoo Cho","display_name":"Seongsoo Cho","email":"ppiyakk2@printf.kr","username":"seongsoo.cho"},"change_message_id":"e17a84907f67ed527462fdc4221ff441f9513afb","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":9,"id":"4cf263ea_a60c9d77","line":15,"range":{"start_line":12,"start_character":0,"end_line":15,"end_character":1},"in_reply_to":"f707d87e_fb3efdcc","updated":"2026-06-03 15:49:13.000000000","message":"I removed it in patchset 10","commit_id":"6a2ea16851f3a459cb44dc62a80b8ee9f010f972"},{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"1f87555545165ef7b1508a85ae4f63b1b7b407f7","unresolved":true,"context_lines":[{"line_number":10,"context_line":"      args:"},{"line_number":11,"context_line":"        chdir: \"{{ zuul.project.src_dir }}\""},{"line_number":12,"context_line":"      environment:"},{"line_number":13,"context_line":"        WEBLATE_URL: \"{{ url }}\""}],"source_content_type":"text/x-yaml","patch_set":13,"id":"b755320e_9d4e22af","line":13,"updated":"2026-06-03 18:35:10.000000000","message":"The prepare-weblate-client role expects there to be a `weblate_api_credentials.url` value that it writes to the config ini file. I also don\u0027t see a bare `url` defined as a value in this change. Should we define `url` somewhere or reuse the value from the `weblate_api_credentials.url` value?","commit_id":"5af169a1ad783b44597a94d38754937e277f712d"},{"author":{"_account_id":23279,"name":"Seongsoo Cho","display_name":"Seongsoo Cho","email":"ppiyakk2@printf.kr","username":"seongsoo.cho"},"change_message_id":"6544bd3b6b59bcf7a91398b5dc540aed09c4aa12","unresolved":true,"context_lines":[{"line_number":10,"context_line":"      args:"},{"line_number":11,"context_line":"        chdir: \"{{ zuul.project.src_dir }}\""},{"line_number":12,"context_line":"      environment:"},{"line_number":13,"context_line":"        WEBLATE_URL: \"{{ url }}\""}],"source_content_type":"text/x-yaml","patch_set":13,"id":"bcb1f568_36395467","line":13,"in_reply_to":"ad22032d_aa8502bd","updated":"2026-06-10 15:11:28.000000000","message":"The URL doesn\u0027t contain any secrets. It only has a value like https://weblate.com/api","commit_id":"5af169a1ad783b44597a94d38754937e277f712d"},{"author":{"_account_id":23279,"name":"Seongsoo Cho","display_name":"Seongsoo Cho","email":"ppiyakk2@printf.kr","username":"seongsoo.cho"},"change_message_id":"20f8a237714b64d5f43a6d55bc9aef3ca6b3ea20","unresolved":true,"context_lines":[{"line_number":10,"context_line":"      args:"},{"line_number":11,"context_line":"        chdir: \"{{ zuul.project.src_dir }}\""},{"line_number":12,"context_line":"      environment:"},{"line_number":13,"context_line":"        WEBLATE_URL: \"{{ url }}\""}],"source_content_type":"text/x-yaml","patch_set":13,"id":"f6cf2d9c_910d3e66","line":13,"in_reply_to":"b755320e_9d4e22af","updated":"2026-06-04 15:33:38.000000000","message":"You are absolutely right. It should use weblate_api_credentials.url here. I\u0027ve updated it in patchset 14.","commit_id":"5af169a1ad783b44597a94d38754937e277f712d"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"338c225704d999a1bc3e127cb0a3d209956d3bab","unresolved":true,"context_lines":[{"line_number":10,"context_line":"      args:"},{"line_number":11,"context_line":"        chdir: \"{{ zuul.project.src_dir }}\""},{"line_number":12,"context_line":"      environment:"},{"line_number":13,"context_line":"        WEBLATE_URL: \"{{ url }}\""}],"source_content_type":"text/x-yaml","patch_set":13,"id":"ad22032d_aa8502bd","line":13,"in_reply_to":"f6cf2d9c_910d3e66","updated":"2026-06-06 11:03:51.000000000","message":"does the URL contain some kind of secret? if yes, we need to keep the no_log. if no, why do we keep it in a secret in the zuul config? could be a simple var as well?","commit_id":"5af169a1ad783b44597a94d38754937e277f712d"}],"zuul.d/jobs.yaml":[{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"780ff15e315bc48c3dd151f1d6b3b086fe52222a","unresolved":true,"context_lines":[{"line_number":1135,"context_line":"      - openstack/horizon"},{"line_number":1136,"context_line":"      - openstack/requirements"},{"line_number":1137,"context_line":"    branches: master"},{"line_number":1138,"context_line":"    # Zanata-cli needs Java 8 and will fail with newer Java. Noble still ships OpenJDK 8."},{"line_number":1139,"context_line":"    # This was tested with Zanata up to version 4.6.2 (current release in March 2019)."},{"line_number":1140,"context_line":"    nodeset: ubuntu-noble"},{"line_number":1141,"context_line":"    secrets:"},{"line_number":1142,"context_line":"      - weblate_api_credentials"}],"source_content_type":"text/x-yaml","patch_set":8,"id":"85e3e156_650a8fc7","line":1139,"range":{"start_line":1138,"start_character":4,"end_line":1139,"end_character":86},"updated":"2026-02-04 09:53:33.000000000","message":"this comment was copied from the zanata job and likely isn\u0027t relevant here?","commit_id":"8f18b1094ec559ff956f9a61fe774f347a7dd329"},{"author":{"_account_id":23279,"name":"Seongsoo Cho","display_name":"Seongsoo Cho","email":"ppiyakk2@printf.kr","username":"seongsoo.cho"},"change_message_id":"36df73df593733210dbb5fcfd2cd8097d126f68f","unresolved":true,"context_lines":[{"line_number":1135,"context_line":"      - openstack/horizon"},{"line_number":1136,"context_line":"      - openstack/requirements"},{"line_number":1137,"context_line":"    branches: master"},{"line_number":1138,"context_line":"    # Zanata-cli needs Java 8 and will fail with newer Java. Noble still ships OpenJDK 8."},{"line_number":1139,"context_line":"    # This was tested with Zanata up to version 4.6.2 (current release in March 2019)."},{"line_number":1140,"context_line":"    nodeset: ubuntu-noble"},{"line_number":1141,"context_line":"    secrets:"},{"line_number":1142,"context_line":"      - weblate_api_credentials"}],"source_content_type":"text/x-yaml","patch_set":8,"id":"eccaf58d_6c3ce531","line":1139,"range":{"start_line":1138,"start_character":4,"end_line":1139,"end_character":86},"in_reply_to":"85e3e156_650a8fc7","updated":"2026-06-10 15:32:22.000000000","message":"I removed this comment in patchset 15","commit_id":"8f18b1094ec559ff956f9a61fe774f347a7dd329"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"780ff15e315bc48c3dd151f1d6b3b086fe52222a","unresolved":true,"context_lines":[{"line_number":1144,"context_line":"        name: afs"},{"line_number":1145,"context_line":""},{"line_number":1146,"context_line":"- job:"},{"line_number":1147,"context_line":"    name: upstream-translation-update"},{"line_number":1148,"context_line":"    parent: propose-updates"},{"line_number":1149,"context_line":"    description: |"},{"line_number":1150,"context_line":"      Push strings for translation to translation server."}],"source_content_type":"text/x-yaml","patch_set":8,"id":"a4e909f5_c5bec730","line":1147,"updated":"2026-02-04 09:53:33.000000000","message":"this looks like just the same job definition that already exists. did you mean to modify it for weblate? in the current state this seems broken.\n\nI also don\u0027t understand why different job definitions for master and !\u003dmaster are needed at all if the remainder of the jobs look exactly the same?","commit_id":"8f18b1094ec559ff956f9a61fe774f347a7dd329"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"30e08db56173f6f0d04f9b7380a26e5c9af98862","unresolved":true,"context_lines":[{"line_number":1144,"context_line":"        name: afs"},{"line_number":1145,"context_line":""},{"line_number":1146,"context_line":"- job:"},{"line_number":1147,"context_line":"    name: upstream-translation-update"},{"line_number":1148,"context_line":"    parent: propose-updates"},{"line_number":1149,"context_line":"    description: |"},{"line_number":1150,"context_line":"      Push strings for translation to translation server."}],"source_content_type":"text/x-yaml","patch_set":8,"id":"aac83859_c552cea0","line":1147,"in_reply_to":"24cdea99_025d5483","updated":"2026-06-23 15:33:36.000000000","message":"I think it is very much within the scope of this patch to check whether a job-definition is added just once or twice in a duplicated, redundant way. I\u0027d very much like to see the former. this discussion also is completely unrelated to the question whether other job definitions in this file or elsewhere might also be redundant","commit_id":"8f18b1094ec559ff956f9a61fe774f347a7dd329"},{"author":{"_account_id":14482,"name":"Ian Y. Choi","email":"ianyrchoi@gmail.com","username":"ianychoi"},"change_message_id":"2c4a9a063a1ecde5b6e4b2ca56382498f946a2c0","unresolved":true,"context_lines":[{"line_number":1144,"context_line":"        name: afs"},{"line_number":1145,"context_line":""},{"line_number":1146,"context_line":"- job:"},{"line_number":1147,"context_line":"    name: upstream-translation-update"},{"line_number":1148,"context_line":"    parent: propose-updates"},{"line_number":1149,"context_line":"    description: |"},{"line_number":1150,"context_line":"      Push strings for translation to translation server."}],"source_content_type":"text/x-yaml","patch_set":8,"id":"cb7f6b7d_4cc26cbc","line":1147,"in_reply_to":"4d52e334_1b7a5231","updated":"2026-07-03 07:37:43.000000000","message":"Hi all, I\u0027d like to add some context from the I18n SIG perspective, as I don\u0027t think this has been clearly shared during this review.\n\nAlthough these two jobs may appear functionally similar, they are both needed during the migration period. The migration from Zanata to Weblate is expected to be incremental rather than an immediate cutover. Zanata and Weblate will coexist while individual OpenStack projects are migrated over time, so both jobs are expected to coexist during the transition period. This apparent duplication is intentional and reflects the migration strategy rather than a long-term direction. The I18n SIG aims to retire the Zanata job definitions once the migration is complete, with the current goal of doing so within this year, around the middle of the Hibiscus release cycle.\n\n@frickler: Would this additional context help address your concern? If you still think there is a better approach, could you share what you have in mind (e.g., using a single job definition with different arguments)?","commit_id":"8f18b1094ec559ff956f9a61fe774f347a7dd329"},{"author":{"_account_id":23279,"name":"Seongsoo Cho","display_name":"Seongsoo Cho","email":"ppiyakk2@printf.kr","username":"seongsoo.cho"},"change_message_id":"36df73df593733210dbb5fcfd2cd8097d126f68f","unresolved":true,"context_lines":[{"line_number":1144,"context_line":"        name: afs"},{"line_number":1145,"context_line":""},{"line_number":1146,"context_line":"- job:"},{"line_number":1147,"context_line":"    name: upstream-translation-update"},{"line_number":1148,"context_line":"    parent: propose-updates"},{"line_number":1149,"context_line":"    description: |"},{"line_number":1150,"context_line":"      Push strings for translation to translation server."}],"source_content_type":"text/x-yaml","patch_set":8,"id":"24cdea99_025d5483","line":1147,"in_reply_to":"a4e909f5_c5bec730","updated":"2026-06-10 15:32:22.000000000","message":"The Weblate jobs are mostly the same as the existing Zanata jobs. The main difference is the playbook YAML file they run, so it is expected that many parts of the job definitions look the same.\n\nThis part was updated in patchset 15, so could you please check the latest version again?\n\n( This patch only adds the Weblate integration playbook for the propose-translation-update job. This job does not require Weblate credentials.)\n\nAs for the separate job definitions for master and !\u003dmaster, that was introduced in patch #934402. I need to investigate the reason for that further.\n\nSince that discussion is beyond the scope of this patch, would it be better to discuss it in the i18n SIG IRC channel or the Infra team IRC channel?","commit_id":"8f18b1094ec559ff956f9a61fe774f347a7dd329"},{"author":{"_account_id":23279,"name":"Seongsoo Cho","display_name":"Seongsoo Cho","email":"ppiyakk2@printf.kr","username":"seongsoo.cho"},"change_message_id":"63ce9e4c93fd0bcdfcd393bd30bb7d6c0a829c34","unresolved":true,"context_lines":[{"line_number":1144,"context_line":"        name: afs"},{"line_number":1145,"context_line":""},{"line_number":1146,"context_line":"- job:"},{"line_number":1147,"context_line":"    name: upstream-translation-update"},{"line_number":1148,"context_line":"    parent: propose-updates"},{"line_number":1149,"context_line":"    description: |"},{"line_number":1150,"context_line":"      Push strings for translation to translation server."}],"source_content_type":"text/x-yaml","patch_set":8,"id":"4d52e334_1b7a5231","line":1147,"in_reply_to":"aac83859_c552cea0","updated":"2026-06-29 16:11:15.000000000","message":"Sorry for the late reply. I first checked the git history to understand the split.\n\nI fixed it: the new weblate job is now only one definition. I removed the branches line, so it runs on all branches.\n\nThe old master !\u003dmaster split was useful before. At that time, only master used override-checkout: stable/2024.2 for openstack/requirements, so the two jobs were different. See https://review.opendev.org/c/openstack/project-config/+/934402\n\nLater, that override was removed in https://review.opendev.org/c/openstack/project-config/+/954747. After that, the two jobs became the same, so the split is now just duplication.\n\nWe can clean up the old Zanata jobs in the same way later, as a separate patch. As you said, that is a different question.","commit_id":"8f18b1094ec559ff956f9a61fe774f347a7dd329"}],"zuul.d/projects.yaml":[{"author":{"_account_id":23279,"name":"Seongsoo Cho","display_name":"Seongsoo Cho","email":"ppiyakk2@printf.kr","username":"seongsoo.cho"},"change_message_id":"c00ce22390bf5748563064974e24e892762b4716","unresolved":true,"context_lines":[{"line_number":2031,"context_line":"    templates:"},{"line_number":2032,"context_line":"      - official-openstack-repo-jobs"},{"line_number":2033,"context_line":"      - translation-jobs-master-only"},{"line_number":2034,"context_line":"      - translation-jobs-master-only-weblate"},{"line_number":2035,"context_line":""},{"line_number":2036,"context_line":"- project:"},{"line_number":2037,"context_line":"    name: openstack/ideas"}],"source_content_type":"text/x-yaml","patch_set":11,"id":"a0965dd5_9ca3890a","line":2034,"updated":"2026-06-03 16:03:54.000000000","message":"This templates defined in https://review.opendev.org/c/openstack/openstack-zuul-jobs/+/969379","commit_id":"6a33b833fe026114de0e6856e8bc1eaa6338f3c1"}]}
