)]}'
{"/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"},{"author":{"_account_id":10089,"name":"Anil Shashikumar Belur","email":"abelur@linuxfoundation.org","username":"askb"},"change_message_id":"4e559c91fa45d867c071cafba17dd9b63a38aed8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":16,"id":"057744b2_aa29d3e2","updated":"2026-09-21 04:10:58.000000000","message":"Picking this up - it\u0027s been quiet since over a month, and the dependency it was waiting on (openstack-zuul-jobs 991432, prepare-weblate-client) merged on 2026-08-22, so it\u0027s worth another look.\n\nI\u0027ve replied inline on the two open points. The role question has a concrete fix I\u0027m happy to push; the WEBLATE_URL one just needs a decision. \n\nThe duplicate job definitions were dropped in PS15 and @frickler@offenerstapel.de confirmed he was fine with that, and the PS14 -1 is no longer active - assuming the project-template idea is a follow-up rather than a blocker, I don\u0027t think anything structural is contested here.","commit_id":"40c0201e23180be181d8fdd1a5319e32604e8449"},{"author":{"_account_id":23279,"name":"Seongsoo Cho","display_name":"Seongsoo Cho","email":"ppiyakk2@printf.kr","username":"seongsoo.cho"},"change_message_id":"99446f198fb46c56642af69f1691558e70ce5759","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":17,"id":"c5937303_a76420d7","updated":"2026-09-24 14:01:24.000000000","message":"Thanks Anil for picking this up, and for fixing the upper-constraints part yourself.\n\nAbout the secret: only the URL is in there for now, because that is all this playbook\nneeds. We need to put the API key in it too - the script uses the key to talk to\nWeblate. I will add it when I send the patch that adds\npropose_translation_update_weblate.sh.","commit_id":"ee214ee2a956ebcbd535625d833e4517c0348604"},{"author":{"_account_id":10089,"name":"Anil Shashikumar Belur","email":"abelur@linuxfoundation.org","username":"askb"},"change_message_id":"4229bc239f1e1011a6e43e597b2e1ed7c10412d5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":17,"id":"e9e9e880_10715004","updated":"2026-09-23 10:44:04.000000000","message":"recheck","commit_id":"ee214ee2a956ebcbd535625d833e4517c0348604"}],"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"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"d1e71db74dfed0a56608a36652e97a38c8c1f545","unresolved":true,"context_lines":[{"line_number":2,"context_line":"  hosts: all"},{"line_number":3,"context_line":"  roles:"},{"line_number":4,"context_line":"    - prepare-weblate-client"},{"line_number":5,"context_line":"    - legacy-zuul-git-prep-upper-constraints"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"  tasks:"},{"line_number":8,"context_line":"    - name: Run propose_translation_update_weblate.sh script - Weblate"}],"source_content_type":"text/x-yaml","patch_set":16,"id":"476ae21b_acbf9f3f","line":5,"updated":"2026-08-04 16:54:21.000000000","message":"the readme for this role says: \n```\n.. note:: This role is deprecated and only exists for transition purposes.                                                                                      \n          It should not be used for new jobs.                                                                                                                   \n```\nI admit I do not know what the replacement would be, but likely it is not a good idea to simply copy this from the old playbook","commit_id":"40c0201e23180be181d8fdd1a5319e32604e8449"},{"author":{"_account_id":10089,"name":"Anil Shashikumar Belur","email":"abelur@linuxfoundation.org","username":"askb"},"change_message_id":"4e559c91fa45d867c071cafba17dd9b63a38aed8","unresolved":true,"context_lines":[{"line_number":2,"context_line":"  hosts: all"},{"line_number":3,"context_line":"  roles:"},{"line_number":4,"context_line":"    - prepare-weblate-client"},{"line_number":5,"context_line":"    - legacy-zuul-git-prep-upper-constraints"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"  tasks:"},{"line_number":8,"context_line":"    - name: Run propose_translation_update_weblate.sh script - Weblate"}],"source_content_type":"text/x-yaml","patch_set":16,"id":"a884d460_0ed0cbc1","line":5,"in_reply_to":"476ae21b_acbf9f3f","updated":"2026-09-21 04:10:58.000000000","message":"Fair concern, and I think it\u0027s easy to close out rather than debate the replacement.\n\nThe role is a single task, and despite the name it does no git prep:\n- name: Copy the upper-constraints.txt file to the project dir\n  copy:\n    remote_src: yes\n    src: \"{{ ansible_user_dir }}/src/opendev.org/openstack/requirements/upper-constraints.txt\"\n    dest: \"{{ zuul.project.src_dir }}/upper-constraints.txt\"\n\nIts only two consumers in the repo are propose-translation-update.yaml and upstream-translation-update.yaml - both zanata, both retired by this migration. So the weblate playbook can just inline the copy instead: same behaviour, no new consumer for a deprecated role, and once zanata goes away the role can be deleted outright rather than inherited.\n\nHappy to push that as the next PS if nobody objects.","commit_id":"40c0201e23180be181d8fdd1a5319e32604e8449"},{"author":{"_account_id":10089,"name":"Anil Shashikumar Belur","email":"abelur@linuxfoundation.org","username":"askb"},"change_message_id":"4e559c91fa45d867c071cafba17dd9b63a38aed8","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: \"{{ weblate_api_credentials.url }}\""}],"source_content_type":"text/x-yaml","patch_set":16,"id":"537c1ae0_0176d843","line":13,"range":{"start_line":13,"start_character":8,"end_line":13,"end_character":19},"updated":"2026-09-21 04:10:58.000000000","message":"This looks like the one genuinely unanswered question. Seongsoo confirmed the URL holds no secret (it\u0027s just https://.../api), but the follow-up still stands: if it isn\u0027t sensitive, does it need to come from the zuul secret at all, or would a plain var do?\n\nIMU either works - it just needs stating so the no_log handling can be settled and this thread closed.","commit_id":"40c0201e23180be181d8fdd1a5319e32604e8449"},{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"47a6594805a3adf44b4cd37cfa419b9553d632c4","unresolved":false,"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: \"{{ weblate_api_credentials.url }}\""}],"source_content_type":"text/x-yaml","patch_set":16,"id":"293ce4da_e812ba59","line":13,"range":{"start_line":13,"start_character":8,"end_line":13,"end_character":19},"in_reply_to":"18722eb6_860a2e8c","updated":"2026-10-27 22:55:55.000000000","message":"Done","commit_id":"40c0201e23180be181d8fdd1a5319e32604e8449"},{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"e3ed51a26055b1caa3e456f4890b86e67850fc3f","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: \"{{ weblate_api_credentials.url }}\""}],"source_content_type":"text/x-yaml","patch_set":16,"id":"18722eb6_860a2e8c","line":13,"range":{"start_line":13,"start_character":8,"end_line":13,"end_character":19},"in_reply_to":"537c1ae0_0176d843","updated":"2026-09-21 21:52:50.000000000","message":"Zuul secrets can contain both plaintext and encrypted values. It is often useful to aggregate components into a secret. For example if you were sharing an ssh key the pubkey component would be plaintext and the private key would be encrypted. You might also have the username in plaintext etc. In this case I think it is ok to aggregate them together in a logical variable container, but only the actual private secret portion of the logical secret needs to be encrypted.\n\nAll that to say the edit to use weblate_api_credentials.url should be fine here.","commit_id":"40c0201e23180be181d8fdd1a5319e32604e8449"},{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"47a6594805a3adf44b4cd37cfa419b9553d632c4","unresolved":true,"context_lines":[{"line_number":13,"context_line":"    - name: Copy upper-constraints.txt to the project dir"},{"line_number":14,"context_line":"      copy:"},{"line_number":15,"context_line":"        remote_src: yes"},{"line_number":16,"context_line":"        src: \"{{ constraints_file }}\""},{"line_number":17,"context_line":"        dest: \"{{ zuul.project.src_dir }}/upper-constraints.txt\""},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"    - name: Run propose_translation_update_weblate.sh script - Weblate"}],"source_content_type":"text/x-yaml","patch_set":17,"id":"373ade47_4e72f8c8","line":16,"updated":"2026-10-27 22:55:55.000000000","message":"This constraints_file variable is defined at the job level. Now that we are vendoring the task we can probably hard code the source instead. But this should work just fine. I\u0027m not sure one approach is more readable than the other so wouldn\u0027t change it. I just wanted to call out where the var is defined.","commit_id":"ee214ee2a956ebcbd535625d833e4517c0348604"}],"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"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"d1e71db74dfed0a56608a36652e97a38c8c1f545","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":"a162457c_5d65110f","line":1147,"in_reply_to":"cb7f6b7d_4cc26cbc","updated":"2026-08-04 16:54:21.000000000","message":"well the current PS has dropped the duplication, so I\u0027m fine with that. maybe the branch-specific migration steps would rather be done in a project-template than in the job definition?","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"}]}
