)]}'
{"id":"openstack%2Fpbr~942594","triplet_id":"openstack%2Fpbr~master~I2cf7811fe89353ead4919b3bbf3e2fecd22b0fb6","project":"openstack/pbr","branch":"master","attention_set":{},"removed_from_attention_set":{"2":{"account":{"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},"last_update":"2026-07-10 17:16:12.000000000","reason":"Change was submitted"},"4146":{"account":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"last_update":"2025-02-24 17:40:38.000000000","reason":"\u003cGERRIT_ACCOUNT_4146\u003e replied on the change","reason_account":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"}},"15334":{"account":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"last_update":"2026-07-10 17:16:12.000000000","reason":"Change was submitted"},"27339":{"account":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"last_update":"2026-07-10 17:16:12.000000000","reason":"Change was submitted"},"11583":{"account":{"_account_id":11583,"name":"Arnaud Morin","email":"arnaud.morin@gmail.com","username":"arnaudmorin"},"last_update":"2026-06-27 08:25:01.000000000","reason":"\u003cGERRIT_ACCOUNT_11583\u003e replied on the change","reason_account":{"_account_id":11583,"name":"Arnaud Morin","email":"arnaud.morin@gmail.com","username":"arnaudmorin"}},"5263":{"account":{"_account_id":5263,"name":"Jeremy Stanley","display_name":"fungi","email":"fungi@yuggoth.org","username":"fungi","status":"missing, presumed fed"},"last_update":"2025-08-19 16:47:01.000000000","reason":"removed on reply"}},"hashtags":[],"change_id":"I2cf7811fe89353ead4919b3bbf3e2fecd22b0fb6","subject":"Add support for local version as defined in PEP 440","status":"MERGED","created":"2025-02-24 15:11:30.000000000","updated":"2026-07-10 17:18:17.000000000","submitted":"2026-07-10 17:16:12.000000000","submitter":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"total_comment_count":11,"unresolved_comment_count":1,"has_review_started":true,"submission_id":"942594","meta_rev_id":"1eaf85baa3affd0de3fc6f0731e345f3828af4e2","_number":942594,"virtual_id_number":942594,"owner":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"actions":{},"labels":{"Verified":{"approved":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"value":0,"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},{"value":0,"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},{"tag":"autogenerated:zuul:gate","value":2,"date":"2026-07-10 17:16:12.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":0,"_account_id":5263,"name":"Jeremy Stanley","display_name":"fungi","email":"fungi@yuggoth.org","username":"fungi","status":"missing, presumed fed"},{"value":0,"_account_id":11583,"name":"Arnaud Morin","email":"arnaud.morin@gmail.com","username":"arnaudmorin"}],"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":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},"all":[{"value":2,"date":"2026-06-26 22:36:42.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},{"value":1,"date":"2026-07-10 10:19:21.000000000","permitted_voting_range":{"min":1,"max":1},"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":2,"date":"2026-07-10 15:01:28.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":5263,"name":"Jeremy Stanley","display_name":"fungi","email":"fungi@yuggoth.org","username":"fungi","status":"missing, presumed fed"},{"value":1,"date":"2026-06-27 08:25:01.000000000","permitted_voting_range":{"min":1,"max":1},"_account_id":11583,"name":"Arnaud Morin","email":"arnaud.morin@gmail.com","username":"arnaudmorin"}],"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":5263,"name":"Jeremy Stanley","display_name":"fungi","email":"fungi@yuggoth.org","username":"fungi","status":"missing, presumed fed"},"all":[{"value":0,"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},{"value":0,"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":1,"date":"2026-07-10 15:01:28.000000000","permitted_voting_range":{"min":1,"max":1},"_account_id":5263,"name":"Jeremy Stanley","display_name":"fungi","email":"fungi@yuggoth.org","username":"fungi","status":"missing, presumed fed"},{"value":0,"_account_id":11583,"name":"Arnaud Morin","email":"arnaud.morin@gmail.com","username":"arnaudmorin"}],"values":{"-1":"Work in progress"," 0":"Ready for reviews","+1":"Approved"},"description":"","default_value":0,"optional":true}},"removable_reviewers":[{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"}],"reviewers":{"CC":[{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"}],"REVIEWER":[{"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},{"_account_id":5263,"name":"Jeremy Stanley","display_name":"fungi","email":"fungi@yuggoth.org","username":"fungi","status":"missing, presumed fed"},{"_account_id":11583,"name":"Arnaud Morin","email":"arnaud.morin@gmail.com","username":"arnaudmorin"},{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2025-02-24 15:14:56.000000000","updated_by":{"_account_id":5263,"name":"Jeremy Stanley","display_name":"fungi","email":"fungi@yuggoth.org","username":"fungi","status":"missing, presumed fed"},"reviewer":{"_account_id":5263,"name":"Jeremy Stanley","display_name":"fungi","email":"fungi@yuggoth.org","username":"fungi","status":"missing, presumed fed"},"state":"CC"},{"updated":"2025-02-24 17:17:53.000000000","updated_by":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"reviewer":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"state":"CC"},{"updated":"2025-02-24 19:06:26.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"},{"updated":"2025-07-17 17:20:23.000000000","updated_by":{"_account_id":5263,"name":"Jeremy Stanley","display_name":"fungi","email":"fungi@yuggoth.org","username":"fungi","status":"missing, presumed fed"},"reviewer":{"_account_id":5263,"name":"Jeremy Stanley","display_name":"fungi","email":"fungi@yuggoth.org","username":"fungi","status":"missing, presumed fed"},"state":"REVIEWER"},{"updated":"2025-08-05 08:58:29.000000000","updated_by":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"reviewer":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"state":"REVIEWER"},{"updated":"2025-09-17 09:42:38.000000000","updated_by":{"_account_id":11583,"name":"Arnaud Morin","email":"arnaud.morin@gmail.com","username":"arnaudmorin"},"reviewer":{"_account_id":11583,"name":"Arnaud Morin","email":"arnaud.morin@gmail.com","username":"arnaudmorin"},"state":"REVIEWER"},{"updated":"2026-06-26 22:36:42.000000000","updated_by":{"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},"reviewer":{"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},"state":"REVIEWER"}],"messages":[{"id":"641ab1b99286ee6adebf96dd808b10aff83bba92","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"date":"2025-02-24 15:11:30.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"f75d2e4beeb4f56a1a739990e53b3f24e07042f6","author":{"_account_id":5263,"name":"Jeremy Stanley","display_name":"fungi","email":"fungi@yuggoth.org","username":"fungi","status":"missing, presumed fed"},"date":"2025-02-24 15:14:56.000000000","message":"Patch Set 1:\n\nA bit more explanation in the commit message would be appreciated, as well as a link to https://peps.python.org/pep-0440/#local-version-identifiers for further context.\n\nYou\u0027re also going to want regression tests for this, and a release note.","accounts_in_message":[],"_revision_number":1},{"id":"db29f7ea5352bc8df5ec32902662440ca87b56cf","author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"date":"2025-02-24 15:16:36.000000000","message":"Patch Set 1:\n\n(1 comment)","accounts_in_message":[],"_revision_number":1},{"id":"5b1115dada357afe21e2b09a24e741d1a0a1fc16","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"date":"2025-02-24 16:46:05.000000000","message":"Uploaded patch set 2.","accounts_in_message":[],"_revision_number":2},{"id":"d91e8cd3781ca1f1db61f7eb0f2321fc565603da","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"date":"2025-02-24 17:13:23.000000000","message":"Uploaded patch set 3.","accounts_in_message":[],"_revision_number":3},{"id":"177cc43d5b22ca3c6fc7a2c89ba1c2e90676e6e3","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"date":"2025-02-24 17:14:09.000000000","message":"Uploaded patch set 4: Commit message was updated.","accounts_in_message":[],"_revision_number":4},{"id":"721b0b9f20a28d6afdd0614e675f405aac6f9c81","author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"date":"2025-02-24 17:14:44.000000000","message":"Patch Set 4:\n\n(1 comment)","accounts_in_message":[],"_revision_number":4},{"id":"52c2991aecfcb9a3866d6a505c3e43084e1d88b2","author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"date":"2025-02-24 17:17:53.000000000","message":"Patch Set 4:\n\n(1 comment)","accounts_in_message":[],"_revision_number":4},{"id":"b321587699f85c82e9e7db2cba01ca1fc7034280","author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"date":"2025-02-24 17:30:57.000000000","message":"Patch Set 4:\n\n(1 comment)","accounts_in_message":[],"_revision_number":4},{"id":"c099f61414bc75ccad9002c8e21548946793b90b","author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"date":"2025-02-24 17:40:38.000000000","message":"Patch Set 4:\n\n(1 comment)","accounts_in_message":[],"_revision_number":4},{"id":"4efb8e53d2e9ea13abf1fcca7a6282a436b8befd","author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"date":"2025-02-24 17:41:42.000000000","message":"Patch Set 4:\n\n(1 comment)","accounts_in_message":[],"_revision_number":4},{"id":"17f2df83bcbed76e835d0aadaf8bdee742ed45b3","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-02-24 19:06:26.000000000","message":"Patch Set 4: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/6302264e79a0435eac8450782403b5b8\n\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/65628077ad0e46f099e79702aec4fd92 : SUCCESS in 1h 26m 20s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/45e6bc97ed1a4e83945175b001114eb3 : SUCCESS in 3m 06s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/36c36ee16a2340a2a7a296afaa914e52 : SUCCESS in 3m 39s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/7f58f901666d49cbb7614ba893e44425 : SUCCESS in 5m 16s\n- openstack-tox-py27 https://zuul.opendev.org/t/openstack/build/8d176e521b9c42acbeed0e37c5cef664 : SUCCESS in 10m 50s\n- openstack-tox-py36 https://zuul.opendev.org/t/openstack/build/b18c2fdbffbb46cf86af225baf745cf6 : SUCCESS in 8m 25s\n- openstack-tox-py37 https://zuul.opendev.org/t/openstack/build/df1d6d3532924d41950600255956d778 : SUCCESS in 5m 48s\n- openstack-tox-py38 https://zuul.opendev.org/t/openstack/build/43fce629e1b645bb91e927260dff1580 : SUCCESS in 4m 44s\n- openstack-tox-py39 https://zuul.opendev.org/t/openstack/build/3c8eff850a1943b9bd6363c169955a8e : SUCCESS in 4m 16s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/ba6c0244fe8c4796828cf820ab7d17e3 : SUCCESS in 4m 35s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/72916419871e493e9e4119e1f381d323 : SUCCESS in 4m 38s\n- openstack-tox-py312 https://zuul.opendev.org/t/openstack/build/c4d697ade01145a48604dfb5d6ffc129 : SUCCESS in 5m 38s\n- pbr-installation-openstack-jammy https://zuul.opendev.org/t/openstack/build/519e3f68f11e4bdaae60ff12593e87dc : SUCCESS in 21m 52s\n- pbr-installation-openstack-pip-dev-jammy https://zuul.opendev.org/t/openstack/build/adbaf2d191094bfcbfbea669ed3c4050 : SUCCESS in 21m 38s\n- pbr-installation-openstack-noble https://zuul.opendev.org/t/openstack/build/36832210bb8640e0a3d6f87dc74c228e : SUCCESS in 41m 47s\n- pbr-installation-openstack-pip-dev-noble https://zuul.opendev.org/t/openstack/build/4ecf2b5dac454502b459e8bb2b4a7df5 : SUCCESS in 29m 13s","accounts_in_message":[],"_revision_number":4},{"id":"8c97a2527a636ec00effe0f72a5e5b021a4b7978","author":{"_account_id":5263,"name":"Jeremy Stanley","display_name":"fungi","email":"fungi@yuggoth.org","username":"fungi","status":"missing, presumed fed"},"date":"2025-07-17 17:20:23.000000000","message":"Patch Set 4: Code-Review+2\n\nI\u0027m okay with this addition, but as noted we really should also have a localversion test to prove it\u0027s working and guard against regressions, even if that comes as a separate change.","accounts_in_message":[],"_revision_number":4},{"id":"f8bda0c78431b2267e7dcfaa968625bdea3acbd3","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"date":"2025-08-05 08:58:29.000000000","message":"Uploaded patch set 5.\n\nOutdated Votes:\n* Code-Review+2 (copy condition: \"changekind:TRIVIAL_REBASE OR is:MIN\")\n* Verified+1\n","accounts_in_message":[],"_revision_number":5},{"id":"68dac3c7f6e779a3f062aad3ae8cd459719a6aa1","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-08-05 11:15:20.000000000","message":"Patch Set 5: 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\nand https://docs.openstack.org/project-team-guide/testing.html#how-to-handle-test-failures\n\nhttps://zuul.opendev.org/t/openstack/buildset/ad666d1151a64c6fb725a7f572b54c25\n\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/75069ce78b824920bdaebeb4f50f3150 : SUCCESS in 2h 09m 59s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/decdfbb7085447829dcf485bba89d9bd : SUCCESS in 3m 58s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/7500ab0aac664826987b228f53cb3112 : FAILURE in 3m 24s\n- build-python-release https://zuul.opendev.org/t/openstack/build/4c519839774c4630baa0afd1a9380b7c : SUCCESS in 2m 03s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/eb69ca4e686b43008bad8e9b836ab30c : SUCCESS in 5m 08s\n- openstack-tox-py27 https://zuul.opendev.org/t/openstack/build/2d3262ab58e74a068c7302edd540c5cc : SUCCESS in 5m 04s\n- openstack-tox-py36 https://zuul.opendev.org/t/openstack/build/1effd97e19d142899d57bd6da4788fff : SUCCESS in 4m 55s\n- openstack-tox-py37 https://zuul.opendev.org/t/openstack/build/534d03f378f2426db86b35c3bb45345d : SUCCESS in 4m 29s\n- openstack-tox-py38 https://zuul.opendev.org/t/openstack/build/d342023843724618ba7119ecf984d768 : SUCCESS in 4m 11s\n- openstack-tox-py39 https://zuul.opendev.org/t/openstack/build/374335a6787c41ef9625a30f41417d93 : SUCCESS in 5m 01s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/ff389fb42a6247acb460ac24c759b880 : SUCCESS in 7m 56s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/e3e9f982063b457fb31e9469a35b9728 : SUCCESS in 5m 07s\n- openstack-tox-py312 https://zuul.opendev.org/t/openstack/build/7c667b28c3484dab9d20bd85184684b5 : SUCCESS in 5m 22s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/e28729cabf0b4655b1794056c425516d : SUCCESS in 7m 32s\n- pbr-installation-openstack-jammy https://zuul.opendev.org/t/openstack/build/1fb653b007f34d34a0c3797a7eda0f52 : SUCCESS in 30m 01s\n- pbr-installation-openstack-pip-dev-jammy https://zuul.opendev.org/t/openstack/build/e3f14ec3389048ba91020cdd95085df4 : SUCCESS in 39m 29s\n- pbr-installation-openstack-noble https://zuul.opendev.org/t/openstack/build/3915dbd7968149f8a79119c192cb076c : SUCCESS in 34m 09s\n- pbr-installation-openstack-pip-dev-noble https://zuul.opendev.org/t/openstack/build/2d0e4d07281940459a6cb07d124fb054 : SUCCESS in 47m 26s","accounts_in_message":[],"_revision_number":5},{"id":"c4c896b32b13f2a4125ab49cbbb7fe6cfc8200cc","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"date":"2025-08-19 12:05:29.000000000","message":"Uploaded patch set 6.\n\nOutdated Votes:\n* Verified-1\n","accounts_in_message":[],"_revision_number":6},{"id":"a241b2aedb4fa3e1830cd99da00f06f0eeb50f24","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-08-19 13:29:38.000000000","message":"Patch Set 6: 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\nand https://docs.openstack.org/project-team-guide/testing.html#how-to-handle-test-failures\n\nhttps://zuul.opendev.org/t/openstack/buildset/1df1d61979854a9e98ac3ffd19bfadaf\n\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/b67b765824964947952c3850e140156b : SUCCESS in 1h 19m 41s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/e02b8e05707b4bd7a4dd1b3fb8164caa : SUCCESS in 2m 27s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/63feec5c4abf411a8135a7c156a16935 : SUCCESS in 2m 03s\n- build-python-release https://zuul.opendev.org/t/openstack/build/bae6535a0ca24ccc9fa14e02cb3ccf69 : SUCCESS in 1m 21s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/e5a59c3cba3e4e22bc01b8e495a4c515 : SUCCESS in 3m 11s\n- openstack-tox-py27 https://zuul.opendev.org/t/openstack/build/7dc76aded73447c7b9da32f2dd0abc17 : RETRY_LIMIT in 11s\n- openstack-tox-py36 https://zuul.opendev.org/t/openstack/build/9a6511b171504f97a28594a90a9a1eab : RETRY_LIMIT in 10s\n- openstack-tox-py37 https://zuul.opendev.org/t/openstack/build/152b65c6395243ff8ac2f74fad5e87c3 : RETRY_LIMIT in 11s\n- openstack-tox-py38 https://zuul.opendev.org/t/openstack/build/a7f3dacad49b4b2883a34b80dbdc4ee8 : SUCCESS in 2m 57s\n- openstack-tox-py39 https://zuul.opendev.org/t/openstack/build/a60c157602b14314b66c2d4df05e0566 : SUCCESS in 3m 08s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/67325baec56244ad8692238a2194e9c1 : SUCCESS in 3m 07s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/355de2362dd845b7afe453f0d5f978c9 : SUCCESS in 3m 05s\n- openstack-tox-py312 https://zuul.opendev.org/t/openstack/build/f385dff9e50440778cd73272e1fb3853 : SUCCESS in 3m 20s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/cc61d3c9b44b4d76941ce0b3d082e993 : SUCCESS in 4m 00s\n- pbr-installation-openstack-jammy https://zuul.opendev.org/t/openstack/build/ae323799ef8647abb725bab3966f6b74 : SUCCESS in 13m 47s\n- pbr-installation-openstack-pip-dev-jammy https://zuul.opendev.org/t/openstack/build/84c38d76704248b9a594a003957e97dd : SUCCESS in 30m 42s\n- pbr-installation-openstack-noble https://zuul.opendev.org/t/openstack/build/d13bc6c5e81b47cc8ee534fb01644053 : SUCCESS in 16m 23s\n- pbr-installation-openstack-pip-dev-noble https://zuul.opendev.org/t/openstack/build/4f4c458fd7be44ec9dbc9733053af2d1 : SUCCESS in 17m 30s","accounts_in_message":[],"_revision_number":6},{"id":"f86405d6fda0a184b1c34335408423c6f146ddbf","author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"date":"2025-08-19 13:30:29.000000000","message":"Patch Set 6:\n\n(1 comment)","accounts_in_message":[],"_revision_number":6},{"id":"7565aa2b5e7ce1d2d50e8e3d740a8c1422ba985e","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-08-19 15:04:41.000000000","message":"Patch Set 6:\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttps://docs.opendev.org/opendev/infra-manual/latest/developers.html#automated-testing\nand https://docs.openstack.org/project-team-guide/testing.html#how-to-handle-test-failures\n\nhttps://zuul.opendev.org/t/openstack/buildset/95faa5a8d0b74d63894854961f195ee7\n\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/0e64117c42514c0ea63cfb54b885f02b : SUCCESS in 1h 29m 09s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/e959c41aeb7d40b7819edd32df435adf : SUCCESS in 4m 05s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/c23f3084007844f0b4150bc8f1c42eff : SUCCESS in 2m 51s\n- build-python-release https://zuul.opendev.org/t/openstack/build/b881c62bd9fb48738b862b126c7515ca : SUCCESS in 1m 21s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/715760d3a61c4c4d9b7cd9541eed5499 : SUCCESS in 3m 29s\n- openstack-tox-py27 https://zuul.opendev.org/t/openstack/build/24b8a28cf7654581b01a6d57b5884304 : RETRY_LIMIT in 11s\n- openstack-tox-py36 https://zuul.opendev.org/t/openstack/build/ad5128a8d1f1468494c23df0e02659af : RETRY_LIMIT in 9s\n- openstack-tox-py37 https://zuul.opendev.org/t/openstack/build/f26530be6881407c984de01a4c341c90 : RETRY_LIMIT in 12s\n- openstack-tox-py38 https://zuul.opendev.org/t/openstack/build/dd2bfc761639469a9c627ae8e5708b7a : SUCCESS in 3m 01s\n- openstack-tox-py39 https://zuul.opendev.org/t/openstack/build/b8212e87e5804902bf3f254662100c5f : SUCCESS in 3m 17s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/85a60f1a22c441dc92096836578ccf7b : SUCCESS in 6m 47s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/88fc05d5396c42cf877d812bda0fc49e : SUCCESS in 3m 26s\n- openstack-tox-py312 https://zuul.opendev.org/t/openstack/build/3bbe4afa886944268c423123dce2c3ff : SUCCESS in 2m 40s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/27377bff77db463f9dac11d8f3d5b83a : SUCCESS in 8m 00s\n- pbr-installation-openstack-jammy https://zuul.opendev.org/t/openstack/build/f69688a9d573448e8419364dfe3ff96d : SUCCESS in 31m 46s\n- pbr-installation-openstack-pip-dev-jammy https://zuul.opendev.org/t/openstack/build/e24161af0007499693db86231c282ebe : SUCCESS in 32m 42s\n- pbr-installation-openstack-noble https://zuul.opendev.org/t/openstack/build/069bdee9636240428b90d7ed81dadf2b : SUCCESS in 17m 38s\n- pbr-installation-openstack-pip-dev-noble https://zuul.opendev.org/t/openstack/build/1c9a35815f554330b1614207185d6880 : SUCCESS in 34m 16s","accounts_in_message":[],"_revision_number":6},{"id":"6542c958cf52d1b372e5808cfe64d6177309f7a8","author":{"_account_id":5263,"name":"Jeremy Stanley","display_name":"fungi","email":"fungi@yuggoth.org","username":"fungi","status":"missing, presumed fed"},"date":"2025-08-19 16:47:01.000000000","message":"Patch Set 6:\n\nThere\u0027s no point in rechecking this at the moment. The switch to using Ansible 11 by default has broken tests on ubuntu-bionic because newer Ansible doesn\u0027t work with those older Python versions. We could temporarily pin these specific jobs back to Ansible 9, but Zuul will soon be dropping support entirely for Ansible 9 so that won\u0027t work for long.","accounts_in_message":[],"_revision_number":6},{"id":"919fa8c30198ed742ec157696be9eb1ab950b0b2","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"date":"2025-09-17 09:17:32.000000000","message":"Uploaded patch set 7: New patch set was added with same tree, parent tree, and commit message as Patch Set 6.\n\nOutdated Votes:\n* Verified-1\n","accounts_in_message":[],"_revision_number":7},{"id":"1d48b11ef3d2629d49ff2c67a0035dbdc2f37608","author":{"_account_id":11583,"name":"Arnaud Morin","email":"arnaud.morin@gmail.com","username":"arnaudmorin"},"date":"2025-09-17 09:42:38.000000000","message":"Patch Set 7: Code-Review+1\n\n(1 comment)","accounts_in_message":[],"_revision_number":7},{"id":"855efc4b81c25c8efde8f6a07fb73cf9bc82bbb0","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-09-17 10:54:51.000000000","message":"Patch Set 7: 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\nand https://docs.openstack.org/project-team-guide/testing.html#how-to-handle-test-failures\n\nhttps://zuul.opendev.org/t/openstack/buildset/f033723230ac4a6e9431c04eafc4c416\n\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/9ff4f88bc4304ff098976907d8dee7dd : SUCCESS in 1h 35m 36s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/68f48711739a4a9c945c10c32f12141d : SUCCESS in 4m 09s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/f438db41430c449daff1ef6f78dbdb6c : SUCCESS in 4m 08s\n- build-python-release https://zuul.opendev.org/t/openstack/build/1cf624c5be3c4e0887989fa6f18583d0 : SUCCESS in 3m 00s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/33d5ebaa529448ceb5f0fec2ec0bf673 : SUCCESS in 8m 37s\n- openstack-tox-py27 https://zuul.opendev.org/t/openstack/build/e8a31c5a93cc43a4b59da39e3fcae50d : RETRY_LIMIT in 11s\n- openstack-tox-py36 https://zuul.opendev.org/t/openstack/build/c21799ef8cfe423f96c9b997a661d6ae : RETRY_LIMIT in 9s\n- openstack-tox-py37 https://zuul.opendev.org/t/openstack/build/96be4501503444a48cae4c8dbca3b563 : RETRY_LIMIT in 10s\n- openstack-tox-py38 https://zuul.opendev.org/t/openstack/build/d7e91f5f3655493baec0d815feb33c3d : SUCCESS in 5m 35s\n- openstack-tox-py39 https://zuul.opendev.org/t/openstack/build/3bda6930b97847ef8c9a8456b0a53d33 : SUCCESS in 7m 55s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/ac5abe3a382b4daa8fc8acc425b2f65e : SUCCESS in 7m 57s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/c1ee883b9b544082a02b4e71c798eacf : SUCCESS in 8m 19s\n- openstack-tox-py312 https://zuul.opendev.org/t/openstack/build/1341a38db2594ee98041d6628cd65a6f : SUCCESS in 8m 34s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/1c3c3b23be3447ccaff9457ab755ebf4 : SUCCESS in 11m 21s\n- pbr-installation-openstack-jammy https://zuul.opendev.org/t/openstack/build/537b987eeb964e2084541d00426c64b8 : SUCCESS in 36m 21s\n- pbr-installation-openstack-pip-dev-jammy https://zuul.opendev.org/t/openstack/build/383fb67dc88943a4bc7c85e7bfcdc26f : SUCCESS in 42m 01s\n- pbr-installation-openstack-noble https://zuul.opendev.org/t/openstack/build/5ec69b19ff7745b2b15b67854e87cec3 : SUCCESS in 39m 29s\n- pbr-installation-openstack-pip-dev-noble https://zuul.opendev.org/t/openstack/build/c25da4f396094239a15821750adec2de : SUCCESS in 37m 56s","accounts_in_message":[],"_revision_number":7},{"id":"0bc8376dc97eb1a7fc226c5334a4fa0e56ede7c3","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},"date":"2026-06-26 19:00:34.000000000","message":"Uploaded patch set 8.\n\nOutdated Votes:\n* Code-Review+1 (copy condition: \"changekind:TRIVIAL_REBASE OR is:MIN\")\n* Verified-1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":8},{"id":"1543bd5b98133899b14b5bc6930c26b88c067017","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-06-26 20:46:45.000000000","message":"Patch Set 8: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/d500bc5e706c49f8aff0cbbac18a1965\n\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/81a4accd32dd4e999512591a670fe4cf : SUCCESS in 1h 41m 55s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/dbefe68a0e8541f9a730d30071d63ad1 : SUCCESS in 3m 36s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/0543cf8559e941539501c0734760ef86 : SUCCESS in 2m 09s\n- build-python-release https://zuul.opendev.org/t/openstack/build/0aea0cc513c34350977616058ed42527 : SUCCESS in 1m 56s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/6e248e35bb484990a55f2dfdc8969787 : SUCCESS in 5m 09s\n- openstack-tox-py27 https://zuul.opendev.org/t/openstack/build/d053ddd65604454aa3de49857742a70d : SUCCESS in 5m 23s\n- openstack-tox-py36 https://zuul.opendev.org/t/openstack/build/df08e15161c04086898ad1e37d28484f : SUCCESS in 4m 56s\n- openstack-tox-py37 https://zuul.opendev.org/t/openstack/build/f1f39d3339f643078d9209add3f5d3db : SUCCESS in 10m 25s\n- openstack-tox-py38 https://zuul.opendev.org/t/openstack/build/411487676e8647b682bcdb1ae92aff24 : SUCCESS in 3m 54s\n- openstack-tox-py39 https://zuul.opendev.org/t/openstack/build/6dfd4133b4734d8ea5d337f905e81991 : SUCCESS in 5m 10s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/7d27781d63534e1593eaba964b017791 : SUCCESS in 4m 56s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/98389173ea484e3782929d5bd41b44ca : SUCCESS in 3m 15s\n- openstack-tox-py312 https://zuul.opendev.org/t/openstack/build/e761a318e1af4453836224b3ab2aa139 : SUCCESS in 5m 46s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/10666ee6393649babccc5a15e3a0f18c : SUCCESS in 6m 35s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/7a1075e590964e309faf87e65322a142 : SUCCESS in 8m 00s\n- openstack-tox-py315 https://zuul.opendev.org/t/openstack/build/96b9a8ec83694d989229079d3d029c6a : SUCCESS in 7m 57s (non-voting)\n- pbr-installation-openstack-noble https://zuul.opendev.org/t/openstack/build/28c148ae86c947ef900c30c3fbfa82bd : SUCCESS in 16m 11s\n- pbr-installation-openstack-pip-dev-noble https://zuul.opendev.org/t/openstack/build/1e59f11c669d4b22a5081d3e54d0db99 : SUCCESS in 20m 05s\n- pbr-installation-openstack-resolute https://zuul.opendev.org/t/openstack/build/351599860afb42ec93424256ecb46517 : SUCCESS in 41m 05s\n- pbr-installation-openstack-pip-dev-resolute https://zuul.opendev.org/t/openstack/build/86d9861958f0442a9d314f8893ddf577 : SUCCESS in 27m 27s","accounts_in_message":[],"_revision_number":8},{"id":"b53a57978392451bca36b5f3d3266145501c1832","author":{"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},"date":"2026-06-26 22:36:42.000000000","message":"Patch Set 8: Code-Review+2","accounts_in_message":[],"_revision_number":8},{"id":"e732f3d407547ea380e5504ffaab201ca55a0126","author":{"_account_id":11583,"name":"Arnaud Morin","email":"arnaud.morin@gmail.com","username":"arnaudmorin"},"date":"2026-06-27 08:25:01.000000000","message":"Patch Set 8: Code-Review+1","accounts_in_message":[],"_revision_number":8},{"id":"91759736615d2b7df965489e3a7246a9716d7efd","author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"date":"2026-07-10 10:19:06.000000000","message":"Patch Set 8:\n\n(1 comment)","accounts_in_message":[],"_revision_number":8},{"id":"9b4a6fedd3d98f46ed84bb9eb08048c9a9101e69","author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"date":"2026-07-10 10:19:21.000000000","message":"Patch Set 8: Code-Review+1\n\n(1 comment)","accounts_in_message":[],"_revision_number":8},{"id":"e3a98373dd66c510f7ae5beb4f15c0fa19375b0a","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-07-10 12:10:43.000000000","message":"Patch Set 8: 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\nand https://docs.openstack.org/project-team-guide/testing.html#how-to-handle-test-failures\n\nhttps://zuul.opendev.org/t/openstack/buildset/c59474a7306947eda84ee77da63c7827\n\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/ba9a5d66ba6545f58d444b4ecc84db8a : SUCCESS in 1h 44m 17s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/350cf43574e54debbdc37ca14f73d89e : SUCCESS in 3m 17s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/8d48b4d7e54c43f6a4469ae6d7dbd634 : SUCCESS in 4m 17s\n- build-python-release https://zuul.opendev.org/t/openstack/build/561b5503c4a14664b028a8c6c05e68c3 : SUCCESS in 2m 24s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/991d1492009740d19e9d26cac4bc3e7c : SUCCESS in 4m 55s\n- openstack-tox-py27 https://zuul.opendev.org/t/openstack/build/c0bc598d95fb4bca9312eab1fb984e58 : SUCCESS in 4m 08s\n- openstack-tox-py36 https://zuul.opendev.org/t/openstack/build/838d15b225cb48b2a4a15927edcd58fb : SUCCESS in 5m 24s\n- openstack-tox-py37 https://zuul.opendev.org/t/openstack/build/0d655c1582ba49f2a5381661e2905be0 : SUCCESS in 9m 07s\n- openstack-tox-py38 https://zuul.opendev.org/t/openstack/build/77385192145142bb9906eead6f22b997 : SUCCESS in 7m 49s\n- openstack-tox-py39 https://zuul.opendev.org/t/openstack/build/9556164930874e8c9bc74913f9f7b909 : SUCCESS in 4m 41s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/3742d9ca907d4d69b680ed5efa60e167 : SUCCESS in 5m 23s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/9e0286f620e44baf854d0b5061cd26fc : SUCCESS in 2m 47s\n- openstack-tox-py312 https://zuul.opendev.org/t/openstack/build/9b9ae1c26c0c49f9b146771022649a96 : SUCCESS in 4m 53s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/33141a03d8114483b62eafde8cfd5ccc : SUCCESS in 4m 35s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/7159d7cad97d49678f951e0d6bc87df1 : SUCCESS in 7m 36s\n- openstack-tox-py315 https://zuul.opendev.org/t/openstack/build/73f89c71c32743deafbee773457c1b71 : SUCCESS in 8m 16s (non-voting)\n- pbr-installation-openstack-noble https://zuul.opendev.org/t/openstack/build/812ab5cda3d14087b43bad06d22ff5bf : SUCCESS in 38m 24s\n- pbr-installation-openstack-pip-dev-noble https://zuul.opendev.org/t/openstack/build/6f9c0434fcdd4e2584a9e9cca50307f3 : FAILURE in 38m 23s\n- pbr-installation-openstack-resolute https://zuul.opendev.org/t/openstack/build/dccb9ad8f5be4f4a95b9eb3abb75ffbd : SUCCESS in 26m 11s\n- pbr-installation-openstack-pip-dev-resolute https://zuul.opendev.org/t/openstack/build/6a6fc9c8865a4c0d9ef8f575b6f9f282 : SUCCESS in 28m 23s","accounts_in_message":[],"_revision_number":8},{"id":"ea2609fa1c9545e1da05b49271388714fe63d057","author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"date":"2026-07-10 13:33:34.000000000","message":"Patch Set 8:\n\n(1 comment)","accounts_in_message":[],"_revision_number":8},{"id":"e925594ec1b649dfcdaf105815d63e9d6ef55efb","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-07-10 14:37:25.000000000","message":"Patch Set 8: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/05fd7cc86ec04f08811756ecbf5b499c\n\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/d172168ee10f4bb7921aacb5ffa112ea : SUCCESS in 1h 00m 18s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/785a4fd694224122b426f784b15876eb : SUCCESS in 3m 41s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/181db7db4c5745a28f15502e82451bbd : SUCCESS in 2m 51s\n- build-python-release https://zuul.opendev.org/t/openstack/build/f8befb1fcc8241148fc0bfd9ba99096e : SUCCESS in 2m 31s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/52375710c400495baf67ada231c253ae : SUCCESS in 3m 20s\n- openstack-tox-py27 https://zuul.opendev.org/t/openstack/build/4f480d9005f540ce9cc8a20cf97199aa : SUCCESS in 6m 06s\n- openstack-tox-py36 https://zuul.opendev.org/t/openstack/build/0606d6c0a30a493b863b6c117eaf81cb : SUCCESS in 8m 57s\n- openstack-tox-py37 https://zuul.opendev.org/t/openstack/build/83c9e2a4f05a4a5486e5d0e9df7fa232 : SUCCESS in 4m 07s\n- openstack-tox-py38 https://zuul.opendev.org/t/openstack/build/5de34a7a1a3a4f56b8f1d098c6876df8 : SUCCESS in 5m 38s\n- openstack-tox-py39 https://zuul.opendev.org/t/openstack/build/ead78e82c8144ab29069164922b6ee18 : SUCCESS in 2m 49s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/990acb1a980442299aee3b8e0dd6d516 : SUCCESS in 3m 43s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/4fd4b23f1a6a46f6b90dbefba0e43601 : SUCCESS in 2m 35s\n- openstack-tox-py312 https://zuul.opendev.org/t/openstack/build/093a375b85b540c0a2e268dd3fdd02d3 : SUCCESS in 3m 31s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/ff39e1a379d74a409204ab6a6ff49245 : SUCCESS in 6m 17s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/13857ca5dc23424bbe3e03bec9629e1e : SUCCESS in 7m 41s\n- openstack-tox-py315 https://zuul.opendev.org/t/openstack/build/09f3dd63536e4d089a0ce55a46da1c60 : SUCCESS in 7m 33s (non-voting)\n- pbr-installation-openstack-noble https://zuul.opendev.org/t/openstack/build/a204406d7df343a684f3c2f5bc685405 : SUCCESS in 31m 10s\n- pbr-installation-openstack-pip-dev-noble https://zuul.opendev.org/t/openstack/build/53a56363c5864499902bf4a7ec4de20f : SUCCESS in 27m 48s\n- pbr-installation-openstack-resolute https://zuul.opendev.org/t/openstack/build/e18f3c2259b5487b9f210b0c7627e41b : SUCCESS in 28m 47s\n- pbr-installation-openstack-pip-dev-resolute https://zuul.opendev.org/t/openstack/build/c3954877174048b9b0b0d1a553afd225 : SUCCESS in 35m 41s","accounts_in_message":[],"_revision_number":8},{"id":"fc47cfee4461ff77e34e0a3be129cf39cf5362b8","author":{"_account_id":5263,"name":"Jeremy Stanley","display_name":"fungi","email":"fungi@yuggoth.org","username":"fungi","status":"missing, presumed fed"},"date":"2026-07-10 15:01:28.000000000","message":"Patch Set 8: Code-Review+2 Workflow+1","accounts_in_message":[],"_revision_number":8},{"id":"a1f73aa851a97c4283e21ca2303b800229a7a00e","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-07-10 15:03:25.000000000","message":"Patch Set 8: -Verified\n\nStarting gate jobs.","accounts_in_message":[],"_revision_number":8},{"id":"338c69a928b1d69e4e525fe384bde73f1e2d1c6a","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-07-10 17:16:12.000000000","message":"Patch Set 8: Verified+2\n\nBuild succeeded (gate pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/f382edd7e6644e54b5c05c9610adb309\n\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/9faba4e5a20e4771a2b600d774e688bc : SUCCESS in 2h 07m 35s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/5ae908e3bed54dda94577c2338fad09a : SUCCESS in 3m 34s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/35774e99aa8847dea64a45df63ce89d0 : SUCCESS in 3m 01s\n- build-python-release https://zuul.opendev.org/t/openstack/build/1ea7d2d754ee4d4693820ad5e04cfe3b : SUCCESS in 2m 32s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/7b407f94946b4df2bcb46a4db9e9a8b2 : SUCCESS in 5m 02s\n- openstack-tox-py27 https://zuul.opendev.org/t/openstack/build/ce99d8eb2df44f45b55833e15de4267e : SUCCESS in 5m 40s\n- openstack-tox-py36 https://zuul.opendev.org/t/openstack/build/a27995a2d75b49a98df77bd212f71b85 : SUCCESS in 3m 57s\n- openstack-tox-py37 https://zuul.opendev.org/t/openstack/build/c2888568b5524b2c8aa45cb95b3b5eb0 : SUCCESS in 8m 10s\n- openstack-tox-py38 https://zuul.opendev.org/t/openstack/build/99e3babc26084c3cb7a235b94cc7a810 : SUCCESS in 5m 14s\n- openstack-tox-py39 https://zuul.opendev.org/t/openstack/build/3ef8f126b34948a488478158debea023 : SUCCESS in 5m 01s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/1011ce84c57540febeee0bce26968c80 : SUCCESS in 4m 41s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/cd2cbaaf007c49acbdc748c676e0f6f6 : SUCCESS in 2m 53s\n- openstack-tox-py312 https://zuul.opendev.org/t/openstack/build/b45cbe402db64f6884bc38da2fa4e579 : SUCCESS in 5m 09s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/204aff0d34eb4b379ee68cea68e91e81 : SUCCESS in 5m 01s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/69e3a6d5bc864214b07680da786ae3ef : SUCCESS in 7m 14s\n- pbr-installation-openstack-noble https://zuul.opendev.org/t/openstack/build/2fb0c2a4fd77403dafe60b8af56e257a : SUCCESS in 18m 31s\n- pbr-installation-openstack-pip-dev-noble https://zuul.opendev.org/t/openstack/build/723a9bc3ca4d4a2a864679623b8971a8 : SUCCESS in 17m 14s\n- pbr-installation-openstack-resolute https://zuul.opendev.org/t/openstack/build/72eeede6ac924815aaaddf52343769fb : SUCCESS in 28m 23s\n- pbr-installation-openstack-pip-dev-resolute https://zuul.opendev.org/t/openstack/build/4e695e85d7ea4106b286d9e556d5621b : SUCCESS in 15m 22s","accounts_in_message":[],"_revision_number":8},{"id":"ec3bf42b2c2f8e31ded769d3b594bfbe56b0aa34","tag":"autogenerated:gerrit:merged","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-07-10 17:16:12.000000000","message":"Change has been successfully merged","accounts_in_message":[],"_revision_number":8},{"id":"1eaf85baa3affd0de3fc6f0731e345f3828af4e2","tag":"autogenerated:zuul:promote","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-07-10 17:18:17.000000000","message":"Patch Set 8:\n\nBuild succeeded (promote pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/65fc113a044a474d82501a9baee79e0a\n\n- promote-openstack-tox-docs https://zuul.opendev.org/t/openstack/build/181493577a414d93ae7b6153a0a8ab9b : SUCCESS in 43s","accounts_in_message":[],"_revision_number":8}],"current_revision_number":8,"current_revision":"8e66303b735aa3464c9124db8aa12156e442c50a","revisions":{"db1c62d14109fd933f34e0eeeba431bb4bf3569d":{"kind":"REWORK","_number":1,"created":"2025-02-24 15:11:30.000000000","uploader":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"ref":"refs/changes/94/942594/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/pbr","ref":"refs/changes/94/942594/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/pbr refs/changes/94/942594/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/pbr refs/changes/94/942594/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/pbr refs/changes/94/942594/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/pbr refs/changes/94/942594/1"}}},"commit":{"parents":[{"commit":"5d4a1815afa920cf20e889be20617105446f7ce2","subject":"docs: Drop SetupTools from pyproject.toml example","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/pbr/commit/5d4a1815afa920cf20e889be20617105446f7ce2"}]}],"author":{"name":"Michal Arbet","email":"michal.arbet@ultimum.io","date":"2025-02-24 15:10:37.000000000","tz":60},"committer":{"name":"Michal Arbet","email":"michal.arbet@ultimum.io","date":"2025-02-24 15:11:29.000000000","tz":60},"subject":"Implement local versions as per PEP440","message":"Implement local versions as per PEP440\n\nChange-Id: I2cf7811fe89353ead4919b3bbf3e2fecd22b0fb6\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/pbr/commit/db1c62d14109fd933f34e0eeeba431bb4bf3569d"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/pbr/commit/db1c62d14109fd933f34e0eeeba431bb4bf3569d"}]},"branch":"refs/heads/master"},"4b8f8dd7b853d985cc5977f321b645425f15fad4":{"kind":"REWORK","_number":2,"created":"2025-02-24 16:46:05.000000000","uploader":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"ref":"refs/changes/94/942594/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/pbr","ref":"refs/changes/94/942594/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/pbr refs/changes/94/942594/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/pbr refs/changes/94/942594/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/pbr refs/changes/94/942594/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/pbr refs/changes/94/942594/2"}}},"commit":{"parents":[{"commit":"5d4a1815afa920cf20e889be20617105446f7ce2","subject":"docs: Drop SetupTools from pyproject.toml example","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/pbr/commit/5d4a1815afa920cf20e889be20617105446f7ce2"}]}],"author":{"name":"Michal Arbet","email":"michal.arbet@ultimum.io","date":"2025-02-24 15:10:37.000000000","tz":60},"committer":{"name":"Michal Arbet","email":"michal.arbet@ultimum.io","date":"2025-02-24 16:33:13.000000000","tz":60},"subject":"Implement local versions as per PEP440","message":"Implement local versions as per PEP440\n\nChange-Id: I2cf7811fe89353ead4919b3bbf3e2fecd22b0fb6\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/pbr/commit/4b8f8dd7b853d985cc5977f321b645425f15fad4"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/pbr/commit/4b8f8dd7b853d985cc5977f321b645425f15fad4"}]},"branch":"refs/heads/master"},"dd76d18abfd3279aa827f052be750cdbc3b8fa38":{"kind":"REWORK","_number":3,"created":"2025-02-24 17:13:23.000000000","uploader":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"ref":"refs/changes/94/942594/3","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/pbr","ref":"refs/changes/94/942594/3","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/pbr refs/changes/94/942594/3 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/pbr refs/changes/94/942594/3 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/pbr refs/changes/94/942594/3 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/pbr refs/changes/94/942594/3"}}},"commit":{"parents":[{"commit":"5d4a1815afa920cf20e889be20617105446f7ce2","subject":"docs: Drop SetupTools from pyproject.toml example","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/pbr/commit/5d4a1815afa920cf20e889be20617105446f7ce2"}]}],"author":{"name":"Michal Arbet","email":"michal.arbet@ultimum.io","date":"2025-02-24 15:10:37.000000000","tz":60},"committer":{"name":"Michal Arbet","email":"michal.arbet@ultimum.io","date":"2025-02-24 17:12:57.000000000","tz":60},"subject":"Add support for local version as defined in PEP 440","message":"Add support for local version as defined in PEP 440\n\nSometimes, a user might install OpenStack service code\ndirectly from Git. Often, stable branches in upstream Git\n(especially services) have merged code but don\u0027t have a tag\non the HEAD of the stable branch. As a result, pbr generates\na development version of the library/service.\n\nFor example, if the latest tagged version of the code\nis 1.0.0 and the HEAD is not tagged, the generated version\nwould be 1.0.1devN, where N is the number of commits ahead of\nthe 1.0.0 tag.\n\nThis can cause issues when a dependency in requirements\nspecifies \u003c\u003d1.0.0, as 1.0.1devN will not pass the pip resolver.\nHowever, PEP 440 provides a solution with \"local versions\" [1].\n\nThis means that if a user installs a service from Git or patches\ncode in his local downstream repository, he can simply tag his\ncustom version as in example below:\n\n- User fix a bug or backport some feature to downstream git\n  repository for customer and tag it as 1.0.0+mylocalversion.\n\nIn this case, the pip resolver will accept it since\n1.0.0+mylocalversion satisfies the constraint.\nAdditionally, the user can precisely identify the deployed\nversion and track it in their Git repository.\n\n[1] https://peps.python.org/pep-0440/#local-version-identifiers\n\nChange-Id: I2cf7811fe89353ead4919b3bbf3e2fecd22b0fb6\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/pbr/commit/dd76d18abfd3279aa827f052be750cdbc3b8fa38"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/pbr/commit/dd76d18abfd3279aa827f052be750cdbc3b8fa38"}]},"branch":"refs/heads/master"},"4b3cebd820c9992a30cdc6990610af2a8f489470":{"kind":"NO_CODE_CHANGE","_number":4,"created":"2025-02-24 17:14:09.000000000","uploader":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"ref":"refs/changes/94/942594/4","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/pbr","ref":"refs/changes/94/942594/4","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/pbr refs/changes/94/942594/4 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/pbr refs/changes/94/942594/4 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/pbr refs/changes/94/942594/4 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/pbr refs/changes/94/942594/4"}}},"commit":{"parents":[{"commit":"5d4a1815afa920cf20e889be20617105446f7ce2","subject":"docs: Drop SetupTools from pyproject.toml example","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/pbr/commit/5d4a1815afa920cf20e889be20617105446f7ce2"}]}],"author":{"name":"Michal Arbet","email":"michal.arbet@ultimum.io","date":"2025-02-24 15:10:37.000000000","tz":60},"committer":{"name":"Michal Arbet","email":"michal.arbet@ultimum.io","date":"2025-02-24 17:13:35.000000000","tz":60},"subject":"Add support for local version as defined in PEP 440","message":"Add support for local version as defined in PEP 440\n\nSometimes, a user might install OpenStack service code\ndirectly from Git. Often, stable branches in upstream Git\n(especially services) have merged code but don\u0027t have a tag\non the HEAD of the stable branch. As a result, pbr generates\na development version of the library/service.\n\nFor example, if the latest tagged version of the code\nis 1.0.0 and the HEAD is not tagged, the generated version\nwould be 1.0.1devN, where N is the number of commits ahead of\nthe 1.0.0 tag.\n\nThis can cause issues when a dependency in requirements\nspecifies \u003c\u003d1.0.0, as 1.0.1devN will not pass the pip resolver.\nHowever, PEP 440 provides a solution with \"local versions\" [1].\n\nThis means that if a user installs a service from Git or patches\ncode in his local downstream repository, he can simply tag his\ncustom version as in example below:\n\n- User fix a bug or backport some feature to downstream git\n  repository for customer and tag it as 1.0.0+mylocalversion.\n\nIn this case, the pip resolver will accept it since\n1.0.0+mylocalversion satisfies the constraint.\nAdditionally, the user can precisely identify the deployed\nversion and track it in their Git repository.\n\nThis will be helpful especially in kolla project for\ngenerating openstack images.\n\n[1] https://peps.python.org/pep-0440/#local-version-identifiers\n\nChange-Id: I2cf7811fe89353ead4919b3bbf3e2fecd22b0fb6\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/pbr/commit/4b3cebd820c9992a30cdc6990610af2a8f489470"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/pbr/commit/4b3cebd820c9992a30cdc6990610af2a8f489470"}]},"branch":"refs/heads/master"},"e3ee1510a6160cd905ffd1aaa04a9541f2b8df43":{"kind":"REWORK","_number":5,"created":"2025-08-05 08:58:29.000000000","uploader":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"ref":"refs/changes/94/942594/5","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/pbr","ref":"refs/changes/94/942594/5","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/pbr refs/changes/94/942594/5 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/pbr refs/changes/94/942594/5 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/pbr refs/changes/94/942594/5 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/pbr refs/changes/94/942594/5"}}},"commit":{"parents":[{"commit":"40d45a16193c6b615d558efb52ec14cca145abb6","subject":"Merge \"Remove duplicate line in test_generates_c_extensions\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/pbr/commit/40d45a16193c6b615d558efb52ec14cca145abb6"}]}],"author":{"name":"Michal Arbet","email":"michal.arbet@ultimum.io","date":"2025-02-24 15:10:37.000000000","tz":60},"committer":{"name":"Stephen Finucane","email":"stephenfin@redhat.com","date":"2025-08-05 08:58:19.000000000","tz":60},"subject":"Add support for local version as defined in PEP 440","message":"Add support for local version as defined in PEP 440\n\nSometimes, a user might install OpenStack service code\ndirectly from Git. Often, stable branches in upstream Git\n(especially services) have merged code but don\u0027t have a tag\non the HEAD of the stable branch. As a result, pbr generates\na development version of the library/service.\n\nFor example, if the latest tagged version of the code\nis 1.0.0 and the HEAD is not tagged, the generated version\nwould be 1.0.1devN, where N is the number of commits ahead of\nthe 1.0.0 tag.\n\nThis can cause issues when a dependency in requirements\nspecifies \u003c\u003d1.0.0, as 1.0.1devN will not pass the pip resolver.\nHowever, PEP 440 provides a solution with \"local versions\" [1].\n\nThis means that if a user installs a service from Git or patches\ncode in his local downstream repository, he can simply tag his\ncustom version as in example below:\n\n- User fix a bug or backport some feature to downstream git\n  repository for customer and tag it as 1.0.0+mylocalversion.\n\nIn this case, the pip resolver will accept it since\n1.0.0+mylocalversion satisfies the constraint.\nAdditionally, the user can precisely identify the deployed\nversion and track it in their Git repository.\n\nThis will be helpful especially in kolla project for\ngenerating openstack images.\n\n[1] https://peps.python.org/pep-0440/#local-version-identifiers\n\nChange-Id: I2cf7811fe89353ead4919b3bbf3e2fecd22b0fb6\nSigned-off-by: Michal Arbet \u003cmichal.arbet@ultimum.io\u003e\nSigned-off-by: Stephen Finucane \u003cstephenfin@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/pbr/commit/e3ee1510a6160cd905ffd1aaa04a9541f2b8df43"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/pbr/commit/e3ee1510a6160cd905ffd1aaa04a9541f2b8df43"}]},"branch":"refs/heads/master"},"68f1564ac72bcb647d0239637023fbe035d27829":{"kind":"REWORK","_number":6,"created":"2025-08-19 12:05:29.000000000","uploader":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"ref":"refs/changes/94/942594/6","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/pbr","ref":"refs/changes/94/942594/6","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/pbr refs/changes/94/942594/6 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/pbr refs/changes/94/942594/6 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/pbr refs/changes/94/942594/6 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/pbr refs/changes/94/942594/6"}}},"commit":{"parents":[{"commit":"a0d431c5dec60b674ba726323edf442c845de2c2","subject":"util: Deprecate description_file","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/pbr/commit/a0d431c5dec60b674ba726323edf442c845de2c2"}]}],"author":{"name":"Michal Arbet","email":"michal.arbet@ultimum.io","date":"2025-02-24 15:10:37.000000000","tz":60},"committer":{"name":"Michal Arbet","email":"michal.arbet@ultimum.io","date":"2025-08-19 12:05:28.000000000","tz":120},"subject":"Add support for local version as defined in PEP 440","message":"Add support for local version as defined in PEP 440\n\nSometimes, a user might install OpenStack service code\ndirectly from Git. Often, stable branches in upstream Git\n(especially services) have merged code but don\u0027t have a tag\non the HEAD of the stable branch. As a result, pbr generates\na development version of the library/service.\n\nFor example, if the latest tagged version of the code\nis 1.0.0 and the HEAD is not tagged, the generated version\nwould be 1.0.1devN, where N is the number of commits ahead of\nthe 1.0.0 tag.\n\nThis can cause issues when a dependency in requirements\nspecifies \u003c\u003d1.0.0, as 1.0.1devN will not pass the pip resolver.\nHowever, PEP 440 provides a solution with \"local versions\" [1].\n\nThis means that if a user installs a service from Git or patches\ncode in his local downstream repository, he can simply tag his\ncustom version as in example below:\n\n- User fix a bug or backport some feature to downstream git\n  repository for customer and tag it as 1.0.0+mylocalversion.\n\nIn this case, the pip resolver will accept it since\n1.0.0+mylocalversion satisfies the constraint.\nAdditionally, the user can precisely identify the deployed\nversion and track it in their Git repository.\n\nThis will be helpful especially in kolla project for\ngenerating openstack images.\n\n[1] https://peps.python.org/pep-0440/#local-version-identifiers\n\nChange-Id: I2cf7811fe89353ead4919b3bbf3e2fecd22b0fb6\nSigned-off-by: Michal Arbet \u003cmichal.arbet@ultimum.io\u003e\nSigned-off-by: Stephen Finucane \u003cstephenfin@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/pbr/commit/68f1564ac72bcb647d0239637023fbe035d27829"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/pbr/commit/68f1564ac72bcb647d0239637023fbe035d27829"}]},"branch":"refs/heads/master"},"bc03665efc48282f90ce8ebbf0697b69f765c93f":{"kind":"NO_CHANGE","_number":7,"created":"2025-09-17 09:17:32.000000000","uploader":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"ref":"refs/changes/94/942594/7","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/pbr","ref":"refs/changes/94/942594/7","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/pbr refs/changes/94/942594/7 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/pbr refs/changes/94/942594/7 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/pbr refs/changes/94/942594/7 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/pbr refs/changes/94/942594/7"}}},"commit":{"parents":[{"commit":"a0d431c5dec60b674ba726323edf442c845de2c2","subject":"util: Deprecate description_file","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/pbr/commit/a0d431c5dec60b674ba726323edf442c845de2c2"}]}],"author":{"name":"Michal Arbet","email":"michal.arbet@ultimum.io","date":"2025-02-24 15:10:37.000000000","tz":60},"committer":{"name":"Michal Arbet","email":"michal.arbet@ultimum.io","date":"2025-09-17 09:17:30.000000000","tz":120},"subject":"Add support for local version as defined in PEP 440","message":"Add support for local version as defined in PEP 440\n\nSometimes, a user might install OpenStack service code\ndirectly from Git. Often, stable branches in upstream Git\n(especially services) have merged code but don\u0027t have a tag\non the HEAD of the stable branch. As a result, pbr generates\na development version of the library/service.\n\nFor example, if the latest tagged version of the code\nis 1.0.0 and the HEAD is not tagged, the generated version\nwould be 1.0.1devN, where N is the number of commits ahead of\nthe 1.0.0 tag.\n\nThis can cause issues when a dependency in requirements\nspecifies \u003c\u003d1.0.0, as 1.0.1devN will not pass the pip resolver.\nHowever, PEP 440 provides a solution with \"local versions\" [1].\n\nThis means that if a user installs a service from Git or patches\ncode in his local downstream repository, he can simply tag his\ncustom version as in example below:\n\n- User fix a bug or backport some feature to downstream git\n  repository for customer and tag it as 1.0.0+mylocalversion.\n\nIn this case, the pip resolver will accept it since\n1.0.0+mylocalversion satisfies the constraint.\nAdditionally, the user can precisely identify the deployed\nversion and track it in their Git repository.\n\nThis will be helpful especially in kolla project for\ngenerating openstack images.\n\n[1] https://peps.python.org/pep-0440/#local-version-identifiers\n\nChange-Id: I2cf7811fe89353ead4919b3bbf3e2fecd22b0fb6\nSigned-off-by: Michal Arbet \u003cmichal.arbet@ultimum.io\u003e\nSigned-off-by: Stephen Finucane \u003cstephenfin@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/pbr/commit/bc03665efc48282f90ce8ebbf0697b69f765c93f"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/pbr/commit/bc03665efc48282f90ce8ebbf0697b69f765c93f"}]},"branch":"refs/heads/master"},"8e66303b735aa3464c9124db8aa12156e442c50a":{"kind":"REWORK","_number":8,"created":"2026-06-26 19:00:34.000000000","uploader":{"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},"ref":"refs/changes/94/942594/8","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/pbr","ref":"refs/changes/94/942594/8","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/pbr refs/changes/94/942594/8 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/pbr refs/changes/94/942594/8 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/pbr refs/changes/94/942594/8 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/pbr refs/changes/94/942594/8"}}},"commit":{"parents":[{"commit":"50174862877374319cf4f030d35521667fbef721","subject":"Add testing on resolute 3.15 (dev)","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/pbr/commit/50174862877374319cf4f030d35521667fbef721"}]}],"author":{"name":"Michal Arbet","email":"michal.arbet@ultimum.io","date":"2025-02-24 15:10:37.000000000","tz":60},"committer":{"name":"Monty Taylor","email":"mordred@inaugust.com","date":"2026-06-26 19:00:06.000000000","tz":0},"subject":"Add support for local version as defined in PEP 440","message":"Add support for local version as defined in PEP 440\n\nSometimes, a user might install OpenStack service code\ndirectly from Git. Often, stable branches in upstream Git\n(especially services) have merged code but don\u0027t have a tag\non the HEAD of the stable branch. As a result, pbr generates\na development version of the library/service.\n\nFor example, if the latest tagged version of the code\nis 1.0.0 and the HEAD is not tagged, the generated version\nwould be 1.0.1devN, where N is the number of commits ahead of\nthe 1.0.0 tag.\n\nThis can cause issues when a dependency in requirements\nspecifies \u003c\u003d1.0.0, as 1.0.1devN will not pass the pip resolver.\nHowever, PEP 440 provides a solution with \"local versions\" [1].\n\nThis means that if a user installs a service from Git or patches\ncode in his local downstream repository, he can simply tag his\ncustom version as in example below:\n\n- User fix a bug or backport some feature to downstream git\n  repository for customer and tag it as 1.0.0+mylocalversion.\n\nIn this case, the pip resolver will accept it since\n1.0.0+mylocalversion satisfies the constraint.\nAdditionally, the user can precisely identify the deployed\nversion and track it in their Git repository.\n\nThis will be helpful especially in kolla project for\ngenerating openstack images.\n\n[1] https://peps.python.org/pep-0440/#local-version-identifiers\n\nChange-Id: I2cf7811fe89353ead4919b3bbf3e2fecd22b0fb6\nSigned-off-by: Michal Arbet \u003cmichal.arbet@ultimum.io\u003e\nSigned-off-by: Stephen Finucane \u003cstephenfin@redhat.com\u003e\nAssisted-By: Claude Opus 4.8 \u003cnoreply@anthropic.com\u003e\nSigned-off-by: Monty Taylor \u003cmordred@inaugust.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/pbr/commit/8e66303b735aa3464c9124db8aa12156e442c50a"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/pbr/commit/8e66303b735aa3464c9124db8aa12156e442c50a"}]},"branch":"refs/heads/master"}},"requirements":[],"submit_records":[{"rule_name":"gerrit~DefaultSubmitRule","status":"CLOSED","labels":[{"label":"Verified","status":"MAY","applied_by":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}},{"label":"Code-Review","status":"MAY","applied_by":{"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"}},{"label":"Workflow","status":"MAY","applied_by":{"_account_id":5263,"name":"Jeremy Stanley","display_name":"fungi","email":"fungi@yuggoth.org","username":"fungi","status":"missing, presumed fed"}}]}],"submit_requirements":[{"name":"Verified","description":"Verified in gate by CI","status":"SATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Verified\u003dMAX AND -label:Verified\u003dMIN","fulfilled":true,"status":"PASS","passing_atoms":["label:Verified\u003dMAX"],"failing_atoms":["label:Verified\u003dMIN"],"atom_explanations":{"label:Verified\u003dMAX":"","label:Verified\u003dMIN":""}}},{"name":"Code-Review","description":"Code reviewed by core reviewer","status":"SATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Code-Review\u003dMAX AND -label:Code-Review\u003dMIN","fulfilled":true,"status":"PASS","passing_atoms":["label:Code-Review\u003dMAX"],"failing_atoms":["label:Code-Review\u003dMIN"],"atom_explanations":{"label:Code-Review\u003dMAX":"","label:Code-Review\u003dMIN":""}}},{"name":"Workflow","description":"Approved for gate by core reviewer","status":"SATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Workflow\u003dMAX AND -label:Workflow\u003dMIN","fulfilled":true,"status":"PASS","passing_atoms":["label:Workflow\u003dMAX"],"failing_atoms":["label:Workflow\u003dMIN"],"atom_explanations":{"label:Workflow\u003dMAX":"","label:Workflow\u003dMIN":""}}}]}
