)]}'
{"id":"openstack%2Fansible-collections-openstack~835041","triplet_id":"openstack%2Fansible-collections-openstack~stable%2F1.0.0~I31f9607ab7e2e2ae8534429da7f5e5f235560c56","project":"openstack/ansible-collections-openstack","branch":"stable/1.0.0","topic":"fix_parent_job_branch_matching","attention_set":{},"removed_from_attention_set":{"32962":{"account":{"_account_id":32962,"name":"Jakob Meng","email":"code@jakobmeng.de","username":"jakobmeng@web.de"},"last_update":"2022-03-27 11:58:07.000000000","reason":"Jakob Meng replied on the change"},"10969":{"account":{"_account_id":10969,"name":"Shnaidman Sagi (Sergey)","display_name":"Shnaidman Sagi","email":"sshnaidm@redhat.com","username":"sergsh"},"last_update":"2022-03-25 12:46:43.000000000","reason":"Change was submitted"},"7353":{"account":{"_account_id":7353,"name":"Kevin Carter","email":"kevin@cloudnull.com","username":"cloudnull"},"last_update":"2022-03-25 12:46:43.000000000","reason":"Change was submitted"}},"hashtags":[],"change_id":"I31f9607ab7e2e2ae8534429da7f5e5f235560c56","subject":"Fixed branch matching for parent jobs when on stable/1.0.0 branch","status":"MERGED","created":"2022-03-24 11:13:43.000000000","updated":"2022-03-27 11:58:07.000000000","submitted":"2022-03-25 12:46:43.000000000","submitter":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"total_comment_count":4,"unresolved_comment_count":0,"has_review_started":true,"submission_id":"835041-fix_parent_job_branch_matching","meta_rev_id":"db90f1a8a19967a7f50b403b876f88e6be1aa385","_number":835041,"virtual_id_number":835041,"owner":{"_account_id":32962,"name":"Jakob Meng","email":"code@jakobmeng.de","username":"jakobmeng@web.de"},"actions":{},"labels":{"Verified":{"approved":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"value":0,"_account_id":32962,"name":"Jakob Meng","email":"code@jakobmeng.de","username":"jakobmeng@web.de"},{"tag":"autogenerated:zuul:gate","value":2,"date":"2022-03-25 12:46:43.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{"-2":"Fails","-1":"Doesn\u0027t seem to work"," 0":"No score","+1":"Works for me","+2":"Verified"},"description":"","default_value":0,"optional":true},"Code-Review":{"approved":{"_account_id":32962,"name":"Jakob Meng","email":"code@jakobmeng.de","username":"jakobmeng@web.de"},"all":[{"value":2,"date":"2022-03-24 18:35:43.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":32962,"name":"Jakob Meng","email":"code@jakobmeng.de","username":"jakobmeng@web.de"},{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{"-2":"Do not merge","-1":"This patch needs further work before it can be merged"," 0":"No score","+1":"Looks good to me, but someone else must approve","+2":"Looks good to me (core reviewer)"},"description":"","default_value":0,"optional":true},"Workflow":{"approved":{"_account_id":32962,"name":"Jakob Meng","email":"code@jakobmeng.de","username":"jakobmeng@web.de"},"all":[{"value":1,"date":"2022-03-24 18:35:43.000000000","permitted_voting_range":{"min":1,"max":1},"_account_id":32962,"name":"Jakob Meng","email":"code@jakobmeng.de","username":"jakobmeng@web.de"},{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{"-1":"Work in progress"," 0":"Ready for reviews","+1":"Approved"},"description":"","default_value":0,"optional":true}},"removable_reviewers":[{"_account_id":7353,"name":"Kevin Carter","email":"kevin@cloudnull.com","username":"cloudnull"},{"_account_id":10969,"name":"Shnaidman Sagi (Sergey)","display_name":"Shnaidman Sagi","email":"sshnaidm@redhat.com","username":"sergsh"}],"reviewers":{"REVIEWER":[{"_account_id":7353,"name":"Kevin Carter","email":"kevin@cloudnull.com","username":"cloudnull"},{"_account_id":10969,"name":"Shnaidman Sagi (Sergey)","display_name":"Shnaidman Sagi","email":"sshnaidm@redhat.com","username":"sergsh"},{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"_account_id":32962,"name":"Jakob Meng","email":"code@jakobmeng.de","username":"jakobmeng@web.de"}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2022-03-24 11:15:15.000000000","updated_by":{"_account_id":32962,"name":"Jakob Meng","email":"code@jakobmeng.de","username":"jakobmeng@web.de"},"reviewer":{"_account_id":7353,"name":"Kevin Carter","email":"kevin@cloudnull.com","username":"cloudnull"},"state":"REVIEWER"},{"updated":"2022-03-24 11:15:15.000000000","updated_by":{"_account_id":32962,"name":"Jakob Meng","email":"code@jakobmeng.de","username":"jakobmeng@web.de"},"reviewer":{"_account_id":10969,"name":"Shnaidman Sagi (Sergey)","display_name":"Shnaidman Sagi","email":"sshnaidm@redhat.com","username":"sergsh"},"state":"REVIEWER"},{"updated":"2022-03-24 14:08:04.000000000","updated_by":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"reviewer":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"state":"REVIEWER"}],"messages":[{"id":"b28b88518340b8fda8464ca815d2326a44a973ca","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":32962,"name":"Jakob Meng","email":"code@jakobmeng.de","username":"jakobmeng@web.de"},"date":"2022-03-24 11:13:43.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"1ad5f26b8a3a9619febcf498f1a946c65a62cb68","author":{"_account_id":32962,"name":"Jakob Meng","email":"code@jakobmeng.de","username":"jakobmeng@web.de"},"date":"2022-03-24 11:15:15.000000000","message":"Patch Set 1:\n\n(1 comment)","accounts_in_message":[],"_revision_number":1},{"id":"771ee837dbe132b37bf66b68b01c5b49b040b7f0","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2022-03-24 14:08:04.000000000","message":"Patch Set 1: Verified-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttps://docs.opendev.org/opendev/infra-manual/latest/developers.html#automated-testing\n\n\n- tox-pep8 https://zuul.opendev.org/t/openstack/build/6f7e2b046f434b1dae978759978f4267 : SUCCESS in 4m 53s\n- openstack-tox-linters-ansible-devel https://zuul.opendev.org/t/openstack/build/baa54670ea714acfb1ba0f2d85a613c0 : FAILURE in 9m 30s (non-voting)\n- openstack-tox-linters-ansible-2.12 https://zuul.opendev.org/t/openstack/build/823ff3663a4e417b8a2c813e87456253 : SUCCESS in 9m 07s\n- openstack-tox-linters-ansible-2.9 https://zuul.opendev.org/t/openstack/build/c3e9718238cb4e839a2252e49165fa96 : SUCCESS in 8m 28s\n- bifrost-collections-src https://zuul.opendev.org/t/openstack/build/6e7c288e67514c789df8c03bcabaaccb : SUCCESS in 27m 51s (non-voting)\n- bifrost-keystone-collections-src https://zuul.opendev.org/t/openstack/build/55cbebbd9d5640bf8bee2d1242f3c768 : SUCCESS in 31m 39s (non-voting)\n- tripleo-ci-centos-8-standalone-wallaby-osa https://zuul.opendev.org/t/openstack/build/63b8b8fbe2a04a249d96e3d294a79f73 : FAILURE in 2h 40m 42s\n- tripleo-ci-centos-8-standalone-train-osa https://zuul.opendev.org/t/openstack/build/44787074ea3c44fda0aeb5126bf35082 : SUCCESS in 2h 19m 25s (non-voting)","accounts_in_message":[],"_revision_number":1},{"id":"a668572664cfe4d28d66a1b76f08a526407a72cf","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":32962,"name":"Jakob Meng","email":"code@jakobmeng.de","username":"jakobmeng@web.de"},"date":"2022-03-24 14:33:27.000000000","message":"Patch Set 2: Patch Set 1 was rebased","accounts_in_message":[],"_revision_number":2},{"id":"09e23cfd4b95a7e81deb44e8aa1e343619b1f3a1","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2022-03-24 17:11:55.000000000","message":"Patch Set 2: Verified+1\n\nBuild succeeded (check pipeline).\n\n- tox-pep8 https://zuul.opendev.org/t/openstack/build/19278edf69114676b5f5ab28490fbcff : SUCCESS in 4m 50s\n- openstack-tox-linters-ansible-devel https://zuul.opendev.org/t/openstack/build/d00a4a60f60042ce94337fa9ae74b37e : FAILURE in 7m 23s (non-voting)\n- openstack-tox-linters-ansible-2.12 https://zuul.opendev.org/t/openstack/build/e9531da72d58459bac2fa04f9bb00046 : SUCCESS in 7m 16s\n- openstack-tox-linters-ansible-2.9 https://zuul.opendev.org/t/openstack/build/2ddeb3a9e268495a8c90acb48da2ee43 : SUCCESS in 7m 12s\n- bifrost-collections-src https://zuul.opendev.org/t/openstack/build/b7d1dfc799104952b044d7972cca14c6 : SUCCESS in 26m 22s (non-voting)\n- bifrost-keystone-collections-src https://zuul.opendev.org/t/openstack/build/f0b05628f4674116a2ac19e4caadd595 : SUCCESS in 37m 16s (non-voting)\n- tripleo-ci-centos-8-standalone-wallaby-osa https://zuul.opendev.org/t/openstack/build/10638a0e73474728a08d06b1ac4f8868 : SUCCESS in 2h 25m 04s\n- tripleo-ci-centos-8-standalone-train-osa https://zuul.opendev.org/t/openstack/build/d5854fd4b5e343409e01b8e9bc5ed7c9 : SUCCESS in 2h 19m 05s (non-voting)","accounts_in_message":[],"_revision_number":2},{"id":"f10f3be54a78ae909ecaab1f2792dd0c18b584f5","author":{"_account_id":32962,"name":"Jakob Meng","email":"code@jakobmeng.de","username":"jakobmeng@web.de"},"date":"2022-03-24 18:35:43.000000000","message":"Patch Set 2: Code-Review+2 Workflow+1","accounts_in_message":[],"_revision_number":2},{"id":"84a47beb827b3926ad536681dabb744985785287","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2022-03-24 18:36:41.000000000","message":"Patch Set 2: -Verified\n\nStarting gate jobs.","accounts_in_message":[],"_revision_number":2},{"id":"2e82a1e5539d85839928c4fcc3866c30764587fe","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2022-03-24 20:31:26.000000000","message":"Patch Set 2: Verified-2\n\nBuild failed (gate pipeline).  For information on how to proceed, see\nhttps://docs.opendev.org/opendev/infra-manual/latest/developers.html#automated-testing\n\n\n- tox-pep8 https://zuul.opendev.org/t/openstack/build/732151eaa3e842578b7158ed1fc32f82 : SUCCESS in 4m 51s\n- openstack-tox-linters-ansible-2.12 https://zuul.opendev.org/t/openstack/build/4691ddb2d675454794ad67b8a2b6670b : SUCCESS in 8m 02s\n- openstack-tox-linters-ansible-2.9 https://zuul.opendev.org/t/openstack/build/ca95a486e4eb4d44be8a78d39fb4f1b7 : SUCCESS in 8m 15s\n- tripleo-ci-centos-8-standalone-wallaby-osa https://zuul.opendev.org/t/openstack/build/b3cb1ab087c74d90af8a4b9abd799515 : POST_FAILURE in 1h 54m 04s","accounts_in_message":[],"_revision_number":2},{"id":"1da49febc7628d4a1f289622ccfbd2bb063f0579","author":{"_account_id":32962,"name":"Jakob Meng","email":"code@jakobmeng.de","username":"jakobmeng@web.de"},"date":"2022-03-25 07:46:24.000000000","message":"Patch Set 2:\n\n(1 comment)","accounts_in_message":[],"_revision_number":2},{"id":"054af17f493084fa9910cb76a9b49743430239e9","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2022-03-25 10:34:37.000000000","message":"Patch Set 2: Verified+1\n\nBuild succeeded (check pipeline).\n\n- tox-pep8 https://zuul.opendev.org/t/openstack/build/72a94c44c9ce4e45a9c80df171f277dc : SUCCESS in 4m 56s\n- openstack-tox-linters-ansible-devel https://zuul.opendev.org/t/openstack/build/61744ff298dc410f936e2a87c66879f8 : FAILURE in 7m 29s (non-voting)\n- openstack-tox-linters-ansible-2.12 https://zuul.opendev.org/t/openstack/build/cd661bb52ab144cc97650a422258337e : SUCCESS in 7m 10s\n- openstack-tox-linters-ansible-2.9 https://zuul.opendev.org/t/openstack/build/6c49531c4f234062b283587c2efecc69 : SUCCESS in 7m 05s\n- bifrost-collections-src https://zuul.opendev.org/t/openstack/build/01e2937e4cef4528b59a7397fba8dc82 : SUCCESS in 31m 08s (non-voting)\n- bifrost-keystone-collections-src https://zuul.opendev.org/t/openstack/build/e70f7a6c7fd34fa28694cbc1a11ab8ee : SUCCESS in 35m 20s (non-voting)\n- tripleo-ci-centos-8-standalone-wallaby-osa https://zuul.opendev.org/t/openstack/build/207b88a0477d48389dd338d626d0c6b2 : SUCCESS in 2h 32m 45s\n- tripleo-ci-centos-8-standalone-train-osa https://zuul.opendev.org/t/openstack/build/611eb392a0974233ad4e4e30618ff789 : SUCCESS in 2h 22m 06s (non-voting)","accounts_in_message":[],"_revision_number":2},{"id":"9a82d79a5876f6cae1e6620ab4487fd35c2a5fb0","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2022-03-25 10:35:35.000000000","message":"Patch Set 2: -Verified\n\nStarting gate jobs.","accounts_in_message":[],"_revision_number":2},{"id":"0de4878b34d81b641244227fd8465c2db2d7e76d","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2022-03-25 12:46:43.000000000","message":"Patch Set 2: Verified+2\n\nBuild succeeded (gate pipeline).\n\n- tox-pep8 https://zuul.opendev.org/t/openstack/build/cf09e996ba264ab1acdbf74e6be6df97 : SUCCESS in 5m 03s\n- openstack-tox-linters-ansible-2.12 https://zuul.opendev.org/t/openstack/build/e640e4b5d55744c7b78d24456831179f : SUCCESS in 7m 16s\n- openstack-tox-linters-ansible-2.9 https://zuul.opendev.org/t/openstack/build/aa2cb192fb0947fb9f8b4e3a2fb0d57a : SUCCESS in 7m 33s\n- tripleo-ci-centos-8-standalone-wallaby-osa https://zuul.opendev.org/t/openstack/build/d2bebf003c9a449eb2335fb73d7606a8 : SUCCESS in 2h 10m 18s","accounts_in_message":[],"_revision_number":2},{"id":"cd0763efa0191807150f2293bbb39de2c74552cb","tag":"autogenerated:gerrit:merged","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2022-03-25 12:46:43.000000000","message":"Change has been successfully merged","accounts_in_message":[],"_revision_number":2},{"id":"3302a26d53e892e832431b618a65639508dcac45","author":{"_account_id":10969,"name":"Shnaidman Sagi (Sergey)","display_name":"Shnaidman Sagi","email":"sshnaidm@redhat.com","username":"sergsh"},"date":"2022-03-27 09:51:49.000000000","message":"Patch Set 2:\n\n(1 comment)","accounts_in_message":[],"_revision_number":2},{"id":"db90f1a8a19967a7f50b403b876f88e6be1aa385","author":{"_account_id":32962,"name":"Jakob Meng","email":"code@jakobmeng.de","username":"jakobmeng@web.de"},"date":"2022-03-27 11:58:07.000000000","message":"Patch Set 2:\n\n(1 comment)","accounts_in_message":[],"_revision_number":2}],"current_revision_number":2,"current_revision":"19d0562551544f39384580bf937cc36d430d3566","revisions":{"f89e9f031e45e9affa113fbc66f6b112e5349793":{"kind":"REWORK","_number":1,"created":"2022-03-24 11:13:43.000000000","uploader":{"_account_id":32962,"name":"Jakob Meng","email":"code@jakobmeng.de","username":"jakobmeng@web.de"},"ref":"refs/changes/41/835041/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/ansible-collections-openstack","ref":"refs/changes/41/835041/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/ansible-collections-openstack refs/changes/41/835041/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/ansible-collections-openstack refs/changes/41/835041/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/ansible-collections-openstack refs/changes/41/835041/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/ansible-collections-openstack refs/changes/41/835041/1"}}},"commit":{"parents":[{"commit":"8708167b5fc664ee893b4fbef64fcf25d7946e1b","subject":"Run jobs for older OpenStack releases on stable/1.0.0 branch only","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/ansible-collections-openstack/commit/8708167b5fc664ee893b4fbef64fcf25d7946e1b"}]}],"author":{"name":"Jakob Meng","email":"code@jakobmeng.de","date":"2022-03-24 11:00:32.000000000","tz":60},"committer":{"name":"Jakob Meng","email":"code@jakobmeng.de","date":"2022-03-24 11:00:32.000000000","tz":60},"subject":"Fixed branch matching for parent jobs when on stable/1.0.0 branch","message":"Fixed branch matching for parent jobs when on stable/1.0.0 branch\n\nWhen a patch is submitted against a branch, Zuul CI will collect job\nvariants for each ci job and all its parent jobs. If both job.\\\noverride-checkout and job.required-projects.override-checkout\nattributes are not defined, then Zuul will for each (parent) job match\nthe current branch of the patch against all branches of the project in\nwhich the job is defined. If no such branch exist in a project, then no\njob variant matches and this job will be ignored [1].\nFor example, if a patch is submitted for our stable/1.0.0 branch, then\nZuul CI will try to match \u0027stable/1.0.0\u0027 against all branches in the\nprojects where job ansible-collections-openstack-functional-devstack\nand its parent job openstacksdk-functional-devstack are defined. The\nfirst is defined in openstack/ansible-collections-openstack/.zuul.yaml,\nso a match for stable/1.0.0 will be found. But openstacksdk-functional-\\\ndevstack is defined in openstack/openstacksdk/.zuul.yaml which has no\nbranch stable/1.0.0 defined. So Zuul will not schedule job ansible-\\\ncollections-openstack-functional-devstack at all.\n\nThe solution is twofold. First, the base jobs such as ansible-\\\ncollections-openstack-functional-devstack have to be changed to always\ncheckout existing branches in projects which define (parent) jobs.\nUsing job.override-checkout might have unintended sideeffects because\nit will checkout the specified branch for all required projects which\nalso includes the project which the patch was submitted for. Instead\nwe set job.required-projects.override-checkout for all projects which\ndefine parent jobs. For example, in ansible-collections-openstack-\\\nfunctional-devstack we set job.required-projects.override-checkout to\nmaster for opendev.org/openstack/devstack which defines parent job\nopenstack-functional-devstack.\n\nIn child jobs which (re)define job.override-checkout, we have to change\njob.required-projects.override-checkout for all projects which define\nparent jobs to the value of job.override-checkout. If we fail to update\njob.required-projects.override-checkout then Zuul will checkout the\nbranch which was defined in the base jobs because job.\\\nrequired-projects.override-checkout has higher precedence than job.\\\noverride-checkout.\n\nSetting attribute project.\u003cpipeline\u003e.debug to true helps with debugging\nthese job scheduling issues. \"If this is set to true, Zuul will include\ndebugging information in reports it makes about items in the pipeline.\nThis should not normally be set, but in situations were it is difficult\nto determine why Zuul did or did not run a certain job, the additional\ninformation this provides may help\" [2].\n\nNote, once job scheduling has been completed, Zuul will use a different\nalgorithm to checkout projects which are listed in job.\\\nrequired-projects [3][4]. It will fallback to a default branch if no\nmatching branch can be found in projects [5].\n\nRef.:\n[1] https://opendev.org/zuul/zuul/src/branch/master/zuul/model.py#L6996\n[2] https://zuul-ci.org/docs/zuul/latest/config/project.html#attr-project.%3Cpipeline%3E.debug\n[3] https://zuul-ci.org/docs/zuul/latest/job-content.html#git-repositories\n[4] https://opendev.org/zuul/zuul/src/branch/master/zuul/executor/server.py#L1648\n[5] https://zuul-ci.org/docs/zuul/latest/config/project.html#attr-project.default-branch\n\nChange-Id: I31f9607ab7e2e2ae8534429da7f5e5f235560c56\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/ansible-collections-openstack/commit/f89e9f031e45e9affa113fbc66f6b112e5349793"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/ansible-collections-openstack/commit/f89e9f031e45e9affa113fbc66f6b112e5349793"}]},"branch":"refs/heads/stable/1.0.0"},"19d0562551544f39384580bf937cc36d430d3566":{"kind":"TRIVIAL_REBASE","_number":2,"created":"2022-03-24 14:33:27.000000000","uploader":{"_account_id":32962,"name":"Jakob Meng","email":"code@jakobmeng.de","username":"jakobmeng@web.de"},"ref":"refs/changes/41/835041/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/ansible-collections-openstack","ref":"refs/changes/41/835041/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/ansible-collections-openstack refs/changes/41/835041/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/ansible-collections-openstack refs/changes/41/835041/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/ansible-collections-openstack refs/changes/41/835041/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/ansible-collections-openstack refs/changes/41/835041/2"}}},"commit":{"parents":[{"commit":"07c3ed0c172f25cbe96c5397624766857a14f5d9","subject":"Changed jobs against master branch of OpenStack SDK to non-voting","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/ansible-collections-openstack/commit/07c3ed0c172f25cbe96c5397624766857a14f5d9"}]}],"author":{"name":"Jakob Meng","email":"code@jakobmeng.de","date":"2022-03-24 11:00:32.000000000","tz":60},"committer":{"name":"Jakob Meng","email":"code@jakobmeng.de","date":"2022-03-24 14:33:27.000000000","tz":0},"subject":"Fixed branch matching for parent jobs when on stable/1.0.0 branch","message":"Fixed branch matching for parent jobs when on stable/1.0.0 branch\n\nWhen a patch is submitted against a branch, Zuul CI will collect job\nvariants for each ci job and all its parent jobs. If both job.\\\noverride-checkout and job.required-projects.override-checkout\nattributes are not defined, then Zuul will for each (parent) job match\nthe current branch of the patch against all branches of the project in\nwhich the job is defined. If no such branch exist in a project, then no\njob variant matches and this job will be ignored [1].\nFor example, if a patch is submitted for our stable/1.0.0 branch, then\nZuul CI will try to match \u0027stable/1.0.0\u0027 against all branches in the\nprojects where job ansible-collections-openstack-functional-devstack\nand its parent job openstacksdk-functional-devstack are defined. The\nfirst is defined in openstack/ansible-collections-openstack/.zuul.yaml,\nso a match for stable/1.0.0 will be found. But openstacksdk-functional-\\\ndevstack is defined in openstack/openstacksdk/.zuul.yaml which has no\nbranch stable/1.0.0 defined. So Zuul will not schedule job ansible-\\\ncollections-openstack-functional-devstack at all.\n\nThe solution is twofold. First, the base jobs such as ansible-\\\ncollections-openstack-functional-devstack have to be changed to always\ncheckout existing branches in projects which define (parent) jobs.\nUsing job.override-checkout might have unintended sideeffects because\nit will checkout the specified branch for all required projects which\nalso includes the project which the patch was submitted for. Instead\nwe set job.required-projects.override-checkout for all projects which\ndefine parent jobs. For example, in ansible-collections-openstack-\\\nfunctional-devstack we set job.required-projects.override-checkout to\nmaster for opendev.org/openstack/devstack which defines parent job\nopenstack-functional-devstack.\n\nIn child jobs which (re)define job.override-checkout, we have to change\njob.required-projects.override-checkout for all projects which define\nparent jobs to the value of job.override-checkout. If we fail to update\njob.required-projects.override-checkout then Zuul will checkout the\nbranch which was defined in the base jobs because job.\\\nrequired-projects.override-checkout has higher precedence than job.\\\noverride-checkout.\n\nSetting attribute project.\u003cpipeline\u003e.debug to true helps with debugging\nthese job scheduling issues. \"If this is set to true, Zuul will include\ndebugging information in reports it makes about items in the pipeline.\nThis should not normally be set, but in situations were it is difficult\nto determine why Zuul did or did not run a certain job, the additional\ninformation this provides may help\" [2].\n\nNote, once job scheduling has been completed, Zuul will use a different\nalgorithm to checkout projects which are listed in job.\\\nrequired-projects [3][4]. It will fallback to a default branch if no\nmatching branch can be found in projects [5].\n\nRef.:\n[1] https://opendev.org/zuul/zuul/src/branch/master/zuul/model.py#L6996\n[2] https://zuul-ci.org/docs/zuul/latest/config/project.html#attr-project.%3Cpipeline%3E.debug\n[3] https://zuul-ci.org/docs/zuul/latest/job-content.html#git-repositories\n[4] https://opendev.org/zuul/zuul/src/branch/master/zuul/executor/server.py#L1648\n[5] https://zuul-ci.org/docs/zuul/latest/config/project.html#attr-project.default-branch\n\nChange-Id: I31f9607ab7e2e2ae8534429da7f5e5f235560c56\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/ansible-collections-openstack/commit/19d0562551544f39384580bf937cc36d430d3566"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/ansible-collections-openstack/commit/19d0562551544f39384580bf937cc36d430d3566"}]},"branch":"refs/heads/stable/1.0.0","description":"Rebase"}},"requirements":[],"submit_records":[{"status":"CLOSED","labels":[{"label":"Verified","status":"OK","applied_by":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}},{"label":"Code-Review","status":"OK","applied_by":{"_account_id":32962,"name":"Jakob Meng","email":"code@jakobmeng.de","username":"jakobmeng@web.de"}},{"label":"Workflow","status":"OK","applied_by":{"_account_id":32962,"name":"Jakob Meng","email":"code@jakobmeng.de","username":"jakobmeng@web.de"}}]}],"submit_requirements":[{"name":"Verified","status":"SATISFIED","is_legacy":true,"submittability_expression_result":{"expression":"label:Verified\u003dCustom-Rule","fulfilled":true,"status":"PASS","passing_atoms":["label:Verified\u003dCustom-Rule"],"failing_atoms":[],"atom_explanations":{}}},{"name":"Workflow","status":"SATISFIED","is_legacy":true,"submittability_expression_result":{"expression":"label:Workflow\u003dCustom-Rule","fulfilled":true,"status":"PASS","passing_atoms":["label:Workflow\u003dCustom-Rule"],"failing_atoms":[],"atom_explanations":{}}},{"name":"Code-Review","status":"SATISFIED","is_legacy":true,"submittability_expression_result":{"expression":"label:Code-Review\u003dCustom-Rule","fulfilled":true,"status":"PASS","passing_atoms":["label:Code-Review\u003dCustom-Rule"],"failing_atoms":[],"atom_explanations":{}}}]}
