)]}'
{"id":"openstack%2Frequirements~908758","triplet_id":"openstack%2Frequirements~master~If4f9d1adb9c259dc0fbe067ff6cf9e007d697acf","project":"openstack/requirements","branch":"master","topic":"constraints-tools-updates","attention_set":{"12898":{"account":{"_account_id":12898,"name":"Tony Breeds","email":"tony@bakeyournoodle.com","username":"tonyb"},"last_update":"2025-04-17 17:20:51.000000000","reason":"Someone else replied on the change"}},"removed_from_attention_set":{"14288":{"account":{"_account_id":14288,"name":"Matthew Thode","display_name":"prometheanfire","email":"mthode@mthode.org","username":"prometheanfire"},"last_update":"2024-06-24 07:28:25.000000000","reason":"Removed by \u003cGERRIT_ACCOUNT_12898\u003e by clicking the attention icon","reason_account":{"_account_id":12898,"name":"Tony Breeds","email":"tony@bakeyournoodle.com","username":"tonyb"}}},"hashtags":[],"change_id":"If4f9d1adb9c259dc0fbe067ff6cf9e007d697acf","subject":"Create a merge-constraints tool","status":"NEW","created":"2024-02-12 06:55:24.000000000","updated":"2025-04-17 17:20:51.000000000","submit_type":"MERGE_IF_NECESSARY","mergeable":false,"submittable":false,"total_comment_count":1,"unresolved_comment_count":0,"has_review_started":true,"meta_rev_id":"9c953abcace6f6d5bde5ddee8d4da887fe41d135","_number":908758,"virtual_id_number":908758,"owner":{"_account_id":12898,"name":"Tony Breeds","email":"tony@bakeyournoodle.com","username":"tonyb"},"actions":{},"labels":{"Verified":{"recommended":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"_account_id":14288,"name":"Matthew Thode","display_name":"prometheanfire","email":"mthode@mthode.org","username":"prometheanfire"},{"tag":"autogenerated:zuul:check","value":1,"date":"2024-07-16 05:29:50.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":"","value":1,"default_value":0,"optional":true},"Code-Review":{"all":[{"value":0,"permitted_voting_range":{"min":-2,"max":2},"_account_id":14288,"name":"Matthew Thode","display_name":"prometheanfire","email":"mthode@mthode.org","username":"prometheanfire"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_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":{"all":[{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":14288,"name":"Matthew Thode","display_name":"prometheanfire","email":"mthode@mthode.org","username":"prometheanfire"},{"_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":[],"reviewers":{"REVIEWER":[{"_account_id":14288,"name":"Matthew Thode","display_name":"prometheanfire","email":"mthode@mthode.org","username":"prometheanfire"},{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"CC":[{"_account_id":5263,"name":"Jeremy Stanley","display_name":"fungi","email":"fungi@yuggoth.org","username":"fungi","status":"missing, presumed fed"}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2024-02-12 08:54:52.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":"2024-02-14 17:10:06.000000000","updated_by":{"_account_id":14288,"name":"Matthew Thode","display_name":"prometheanfire","email":"mthode@mthode.org","username":"prometheanfire"},"reviewer":{"_account_id":14288,"name":"Matthew Thode","display_name":"prometheanfire","email":"mthode@mthode.org","username":"prometheanfire"},"state":"REVIEWER"},{"updated":"2025-04-17 17:20:51.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"}],"messages":[{"id":"018c0d2f3468894b4dc6bc29ee70437d519d1e2c","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":12898,"name":"Tony Breeds","email":"tony@bakeyournoodle.com","username":"tonyb"},"date":"2024-02-12 06:55:24.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"69061551d243c8930716ce6b6ccc84d699182939","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2024-02-12 08:54:52.000000000","message":"Patch Set 1: Verified-1\n\n(6 comments)\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\nhttps://zuul.opendev.org/t/openstack/buildset/acfc829108ad4c9cac55d2f35d61e37d\n\n- test-release-openstack https://zuul.opendev.org/t/openstack/build/192aa43ac4a84f51bc20fa28b3b6af84 : SUCCESS in 1m 41s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/344b7a680c744e3f9eae6df4c614e4f2 : SUCCESS in 3m 27s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/94cfbc5a5ed04f34a68baccaed45dc79 : FAILURE in 2m 54s\n- openstack-tox-py38 https://zuul.opendev.org/t/openstack/build/d3a9e2a8a61e467ab51100290fb0e5d7 : FAILURE in 3m 10s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/ea070778a4214dd79e573ccf21274220 : FAILURE in 3m 27s\n- openstack-tox-validate https://zuul.opendev.org/t/openstack/build/4e28fcc3b9964967ad9c3eef5d361edc : SUCCESS in 3m 24s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/d984b0e91f8448a2bb9c79f071c3e470 : SUCCESS in 35m 02s\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/a30d38a138c34f908ec492f4f818e692 : SUCCESS in 1h 53m 12s","accounts_in_message":[],"_revision_number":1},{"id":"0b9df5e2300e04a2520f723a588c2c2408b5240f","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":12898,"name":"Tony Breeds","email":"tony@bakeyournoodle.com","username":"tonyb"},"date":"2024-02-13 23:51:19.000000000","message":"Uploaded patch set 2.\n\nOutdated Votes:\n* Verified-1\n","accounts_in_message":[],"_revision_number":2},{"id":"8720032a15c44358d22743112288964ef189b3d8","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2024-02-14 01:07:36.000000000","message":"Patch Set 2: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/68684735db794b32ad7be3595acac706\n\n- test-release-openstack https://zuul.opendev.org/t/openstack/build/88c9f9c5ff324d209c5cd5df8e17d89f : SUCCESS in 1m 36s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/b9400e52d48644d2a1b896d3f4333cc0 : SUCCESS in 3m 21s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/7d099e3f5725434d8b580d4a7b7247b2 : SUCCESS in 3m 18s\n- openstack-tox-py38 https://zuul.opendev.org/t/openstack/build/816a96f8ad394e469fe5c4aa37eead35 : SUCCESS in 3m 21s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/774cac207d604ee8a2beb4a4b7c69eb9 : SUCCESS in 3m 46s\n- openstack-tox-validate https://zuul.opendev.org/t/openstack/build/10f8b0cf16514c12aadb061f0f250dfb : SUCCESS in 2m 56s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/7ad7ca32867447dea828c461b454a1fb : SUCCESS in 34m 45s\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/b5407c4a8cfa42bc82a8d5cb7cb8aa98 : SUCCESS in 1h 14m 02s","accounts_in_message":[],"_revision_number":2},{"id":"38c15233b8db612b9dcb8616907982c2bd83ec16","author":{"_account_id":14288,"name":"Matthew Thode","display_name":"prometheanfire","email":"mthode@mthode.org","username":"prometheanfire"},"date":"2024-02-14 17:10:06.000000000","message":"Patch Set 2: Code-Review+1\n\nIs there a test of this?  Knowing the generation differences would be nice\n\nalso, a better commit message :P","accounts_in_message":[],"_revision_number":2},{"id":"7296b12f8d816c84c09c74343025a57662e1a73a","author":{"_account_id":14288,"name":"Matthew Thode","display_name":"prometheanfire","email":"mthode@mthode.org","username":"prometheanfire"},"date":"2024-02-14 17:10:56.000000000","message":"Patch Set 2:\n\nI see the other patch depends on this, didn\u0027t show up in gertty for some reason","accounts_in_message":[],"_revision_number":2},{"id":"efc776974d0a3d7edc3267bde26fbc7d72d1884b","tag":"autogenerated:gerrit:setWorkInProgress","author":{"_account_id":12898,"name":"Tony Breeds","email":"tony@bakeyournoodle.com","username":"tonyb"},"date":"2024-02-15 00:10:42.000000000","message":"Set Work In Progress","accounts_in_message":[],"_revision_number":2},{"id":"70948068ccc67984c1836c697e972d68b361ca51","author":{"_account_id":12898,"name":"Tony Breeds","email":"tony@bakeyournoodle.com","username":"tonyb"},"date":"2024-02-15 00:12:31.000000000","message":"Patch Set 2:\n\n(1 comment)","accounts_in_message":[],"_revision_number":2},{"id":"a4dc7934f9067acaadf8240e0040d5d15d819292","tag":"autogenerated:gerrit:newWipPatchSet","author":{"_account_id":12898,"name":"Tony Breeds","email":"tony@bakeyournoodle.com","username":"tonyb"},"date":"2024-02-22 23:46:49.000000000","message":"Uploaded patch set 3: Patch Set 2 was rebased.\n\nCopied Votes:\n* Code-Review+1 (copy condition: \"**changekind:TRIVIAL_REBASE** OR is:MIN\")\n\nOutdated Votes:\n* Verified+1\n","accounts_in_message":[],"_revision_number":3},{"id":"89b5c5fc712e3bb0d8c65ed66635a5d1e4b45a60","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2024-02-23 01:30:35.000000000","message":"Patch Set 3: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/9f668904061e4e8abce2912372478197\n\n- test-release-openstack https://zuul.opendev.org/t/openstack/build/664fd9c84ab4452996b53785f5d0f220 : SUCCESS in 1m 36s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/42d1011517d843bfa950c2b3f56fa004 : SUCCESS in 2m 53s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/58f92da6ea494433870ebd911cb12104 : SUCCESS in 3m 08s\n- openstack-tox-py38 https://zuul.opendev.org/t/openstack/build/35f494608be1414e8884d314c9be4265 : SUCCESS in 3m 08s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/e0ac2378319344c980c450b8ddf65022 : SUCCESS in 2m 54s\n- openstack-tox-validate https://zuul.opendev.org/t/openstack/build/5516a55d30164729be6b99b288deb8e7 : SUCCESS in 2m 47s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/18ff5d4b3ccd4d8e811fa3b75a5a9501 : SUCCESS in 1h 03m 52s\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/676cea030e8047fdbb831caa3067b38a : SUCCESS in 1h 37m 30s","accounts_in_message":[],"_revision_number":3},{"id":"041472430b6f0e0adb1f4add3234407641d9b647","tag":"autogenerated:gerrit:newWipPatchSet","author":{"_account_id":12898,"name":"Tony Breeds","email":"tony@bakeyournoodle.com","username":"tonyb"},"date":"2024-02-24 02:25:55.000000000","message":"Uploaded patch set 4.\n\nOutdated Votes:\n* Code-Review+1 (copy condition: \"changekind:TRIVIAL_REBASE OR is:MIN\")\n* Verified+1\n","accounts_in_message":[],"_revision_number":4},{"id":"7d166cd66cf9f794aae0488a4d537d161e30d244","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2024-02-24 04:05:29.000000000","message":"Patch Set 4: Verified-1\n\n(1 comment)\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\nhttps://zuul.opendev.org/t/openstack/buildset/2cad3ca978d4490383b9ce1858829518\n\n- test-release-openstack https://zuul.opendev.org/t/openstack/build/e52d4f8de0824cb89ac17af567730085 : SUCCESS in 2m 23s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/41d720fc66c041488fc085506da87487 : SUCCESS in 3m 19s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/e094907c397642f18cdef29249fe84fe : FAILURE in 3m 49s\n- openstack-tox-py38 https://zuul.opendev.org/t/openstack/build/e471f5c574014362a56aebacb00d786e : FAILURE in 3m 39s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/518ed1efa00344919ef9289697ad80ab : FAILURE in 6m 40s\n- openstack-tox-validate https://zuul.opendev.org/t/openstack/build/076e39e8039c4fe78d3f32d264f1be3c : SUCCESS in 4m 39s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/de86a13a1b5e4e5baf595a249a0bec30 : SUCCESS in 53m 46s\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/7ccac2ce873c4b1d8d4209a18ffaacb8 : SUCCESS in 1h 06m 04s","accounts_in_message":[],"_revision_number":4},{"id":"e388dc742aa4524c932e5e57d34071f6cd58019f","tag":"autogenerated:gerrit:abandon","author":{"_account_id":12898,"name":"Tony Breeds","email":"tony@bakeyournoodle.com","username":"tonyb"},"date":"2024-05-03 17:34:00.000000000","message":"Abandoned\n\nhttps://review.opendev.org/q/topic:constraints-tools-updates is a better solution","accounts_in_message":[],"_revision_number":4},{"id":"64c1d2cf24cc3c41c2633e18dd6a32b8d2bfb8f8","tag":"autogenerated:gerrit:restore","author":{"_account_id":12898,"name":"Tony Breeds","email":"tony@bakeyournoodle.com","username":"tonyb"},"date":"2024-05-03 17:34:22.000000000","message":"Restored","accounts_in_message":[],"_revision_number":4},{"id":"d8f725ffb2e758297e2254e34d2de3abb2cf0e77","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2024-05-03 19:16:48.000000000","message":"Patch Set 4:\n\n(1 comment)\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/382febd2f17944cba164f33fe961e9b7\n\n- test-release-openstack https://zuul.opendev.org/t/openstack/build/9904aa206bef42b895420a2b92b8b888 : SUCCESS in 1m 49s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/eaa7f5f187064cd98180c8666b60ab43 : SUCCESS in 3m 43s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/5f6411f9373d4c8b9c7444089cb71064 : FAILURE in 3m 16s\n- openstack-tox-py39 https://zuul.opendev.org/t/openstack/build/5b5c3e3b8a5b449991fa6e35d6a435ed : FAILURE in 4m 21s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/dbff82c0ec384f15bee894dccd5234a9 : FAILURE in 3m 15s\n- openstack-tox-py312 https://zuul.opendev.org/t/openstack/build/8f40275b5b0448f79dd0cd6edd942676 : FAILURE in 8m 09s (non-voting)\n- openstack-tox-validate https://zuul.opendev.org/t/openstack/build/5cdd395bea1845a8ae7bf55f3ef56f38 : SUCCESS in 3m 31s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/b21bc3abdabb4e0782098d1555618313 : SUCCESS in 1h 07m 09s\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/b0d1725622ec47fc83dc9d7617463474 : SUCCESS in 1h 36m 58s","accounts_in_message":[],"_revision_number":4},{"id":"20e1a3a3d123bb13760f8d241c9517c6a6ad56cf","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":12898,"name":"Tony Breeds","email":"tony@bakeyournoodle.com","username":"tonyb"},"date":"2024-05-03 19:33:16.000000000","message":"Uploaded patch set 5.\n\nOutdated Votes:\n* Verified-1\n","accounts_in_message":[],"_revision_number":5},{"id":"88e89dabcec687c5700519094ddd738428602e1d","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2024-05-03 21:02:02.000000000","message":"Patch Set 5: Verified-1\n\n(1 comment)\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/4edd953bc3904c18bbe0f7cfa266ab28\n\n- test-release-openstack https://zuul.opendev.org/t/openstack/build/d97734653d8c4ba68e679716f611a49a : SUCCESS in 1m 54s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/76eba18d8bf94846a06cd6a6458251cf : SUCCESS in 3m 13s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/d6b47ab366d94b5bb4c41888fbdfcb17 : FAILURE in 3m 18s\n- openstack-tox-py39 https://zuul.opendev.org/t/openstack/build/1f778c473afe4a9aaaaf07e759c7d44e : FAILURE in 3m 14s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/fd349aaf39b649c8b32896df46104190 : FAILURE in 3m 35s\n- openstack-tox-py312 https://zuul.opendev.org/t/openstack/build/f8d48ad070304764a87fae33e30247bc : FAILURE in 5m 10s (non-voting)\n- openstack-tox-validate https://zuul.opendev.org/t/openstack/build/db1d182dc2a746c39ee5a8441a7c51dc : SUCCESS in 3m 11s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/57daa58c9e8c4d27a803c09a5082b956 : SUCCESS in 52m 17s\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/6ca5fa2ee21244eb819ef6a910265227 : SUCCESS in 1h 23m 02s","accounts_in_message":[],"_revision_number":5},{"id":"3430e61608d5aafec4582198cad7214c80ad55ab","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":12898,"name":"Tony Breeds","email":"tony@bakeyournoodle.com","username":"tonyb"},"date":"2024-05-07 14:53:27.000000000","message":"Uploaded patch set 6.\n\nOutdated Votes:\n* Verified-1\n","accounts_in_message":[],"_revision_number":6},{"id":"3b6364862916b1f28f6729a7589cfe8709eb8a65","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2024-05-07 16:28:48.000000000","message":"Patch Set 6: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/2b4b54f557e54ac4aa7ab933f3982dfe\n\n- test-release-openstack https://zuul.opendev.org/t/openstack/build/7b6f95718b0e4de185f8c1385e336b5e : SUCCESS in 1m 55s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/a25e24520ff144959bf9db44e8f46014 : SUCCESS in 3m 14s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/4112bdb59e954763b5c5380f6f3e9ab1 : SUCCESS in 3m 18s\n- openstack-tox-py39 https://zuul.opendev.org/t/openstack/build/2b5574ba21014bf8b2e51f88cea77580 : SUCCESS in 3m 36s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/473891832f8545f3b946a779984eed23 : SUCCESS in 3m 55s\n- openstack-tox-py312 https://zuul.opendev.org/t/openstack/build/1fe477d359014eda94c0847915ba793d : SUCCESS in 5m 47s (non-voting)\n- openstack-tox-validate https://zuul.opendev.org/t/openstack/build/26e7e9974dc24684968c69c1abe48e65 : SUCCESS in 2m 39s\n- requirements-tox-babel https://zuul.opendev.org/t/openstack/build/5710ee3e1397477d8f4d12344a2a3672 : SUCCESS in 4m 20s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/b918b0d4b4604cfbbb697ea0a5694877 : SUCCESS in 47m 12s\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/35877418e09547819a3732a08633aa62 : SUCCESS in 1h 30m 05s","accounts_in_message":[],"_revision_number":6},{"id":"0147d4274fa22f79e885976b3760e3958923f522","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":12898,"name":"Tony Breeds","email":"tony@bakeyournoodle.com","username":"tonyb"},"date":"2024-06-24 01:43:51.000000000","message":"Uploaded patch set 7.\n\nOutdated Votes:\n* Verified+1\n","accounts_in_message":[],"_revision_number":7},{"id":"1b6af9c59d89e1f46ccccd8d701f3839d9ef9647","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2024-06-24 03:21:11.000000000","message":"Patch Set 7: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/0c85c8c97a2746acaeed23983e05751d\n\n- test-release-openstack https://zuul.opendev.org/t/openstack/build/b9b97279f84946df928e49f19e8b3838 : SUCCESS in 1m 45s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/a97979dc6c50482f8f3df7bb8126c318 : SUCCESS in 3m 07s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/5b6e46d5407c44ef8d681e10023b2dac : SUCCESS in 4m 04s\n- openstack-tox-py39 https://zuul.opendev.org/t/openstack/build/0279a239856f4054bccea9e43c2d63b2 : SUCCESS in 3m 21s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/af19a0288fc24b8d9183aebb573ccd11 : SUCCESS in 3m 04s\n- openstack-tox-py312 https://zuul.opendev.org/t/openstack/build/fd239d7fb80346fd835c281b4d44246e : SUCCESS in 6m 25s (non-voting)\n- openstack-tox-validate https://zuul.opendev.org/t/openstack/build/7d0d5040adfd43039a97d1f92fa58fed : SUCCESS in 3m 59s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/39cd8db2f1324b9a95b7cc66c5ae46ef : SUCCESS in 1h 06m 23s\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/c68cba52008c4b51abec2eb98ce9434b : SUCCESS in 1h 34m 47s","accounts_in_message":[],"_revision_number":7},{"id":"b5ddf056c1ee09107b133556ffc347c4d34d9ba0","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":12898,"name":"Tony Breeds","email":"tony@bakeyournoodle.com","username":"tonyb"},"date":"2024-07-16 04:12:45.000000000","message":"Uploaded patch set 8: Patch Set 7 was rebased.\n\nOutdated Votes:\n* Verified+1\n","accounts_in_message":[],"_revision_number":8},{"id":"9467bf7aa424da9063ef869d1a4dc48007af3baa","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2024-07-16 05:29:50.000000000","message":"Patch Set 8: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/f40c89dc7bc640cb97bdc727a671ec1f\n\n- test-release-openstack https://zuul.opendev.org/t/openstack/build/d78498027c004c9eb720f837c39b4e37 : SUCCESS in 1m 52s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/2d2169c63a0e44209f1166d6720ab65c : SUCCESS in 4m 46s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/c091c854d92946b5952d16d1e8af8b5b : SUCCESS in 3m 03s\n- openstack-tox-py39 https://zuul.opendev.org/t/openstack/build/37275dfd77574e5685a72a3ddd03eed0 : SUCCESS in 4m 43s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/929376f184cb41a3a5b2c5560c38928d : SUCCESS in 4m 12s\n- openstack-tox-py312 https://zuul.opendev.org/t/openstack/build/d8af0c6f771b46008c4eedbbd4c58b89 : SUCCESS in 5m 59s (non-voting)\n- openstack-tox-validate https://zuul.opendev.org/t/openstack/build/6ea7fe55db5b45019356c13aba4ed58c : SUCCESS in 2m 58s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/c8f23ce39b8f45188a7a5eeb6fe6b541 : SUCCESS in 1h 00m 55s\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/ea6e1c20303a4d8589c711454d3e9fa2 : SUCCESS in 1h 14m 59s","accounts_in_message":[],"_revision_number":8},{"id":"9c953abcace6f6d5bde5ddee8d4da887fe41d135","author":{"_account_id":5263,"name":"Jeremy Stanley","display_name":"fungi","email":"fungi@yuggoth.org","username":"fungi","status":"missing, presumed fed"},"date":"2025-04-17 17:20:51.000000000","message":"Patch Set 8:\n\nThis will need to be rebased again, since a newer revision of its parent merged.","accounts_in_message":[],"_revision_number":8}],"current_revision_number":8,"current_revision":"d6428ac829c5d6245967131a26be578caf58ac09","revisions":{"c6ed4ace09be2a62cbbd1747b85bb0db84a4d4e0":{"kind":"REWORK","_number":1,"created":"2024-02-12 06:55:24.000000000","uploader":{"_account_id":12898,"name":"Tony Breeds","email":"tony@bakeyournoodle.com","username":"tonyb"},"ref":"refs/changes/58/908758/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/requirements","ref":"refs/changes/58/908758/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/requirements refs/changes/58/908758/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/requirements refs/changes/58/908758/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/requirements refs/changes/58/908758/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/requirements refs/changes/58/908758/1"}}},"commit":{"parents":[{"commit":"1d8a9890961c44ac9f1b991db61b87baa653293d","subject":"Remove unused abclient","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/requirements/commit/1d8a9890961c44ac9f1b991db61b87baa653293d"}]}],"author":{"name":"Tony Breeds","email":"tony@bakeyournoodle.com","date":"2024-02-12 06:32:30.000000000","tz":660},"committer":{"name":"Tony Breeds","email":"tony@bakeyournoodle.com","date":"2024-02-12 06:33:06.000000000","tz":660},"subject":"Add merge-constraints","message":"Add merge-constraints\n\nChange-Id: If4f9d1adb9c259dc0fbe067ff6cf9e007d697acf\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/requirements/commit/c6ed4ace09be2a62cbbd1747b85bb0db84a4d4e0"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/requirements/commit/c6ed4ace09be2a62cbbd1747b85bb0db84a4d4e0"}]},"parents_data":[{"branch_name":"refs/heads/master","commit_id":"1d8a9890961c44ac9f1b991db61b87baa653293d","is_merged_in_target_branch":true,"change_id":"I03c39c342794b62ba13aec88a833e1bc5bb87eaf","change_number":907962,"patch_set_number":1,"change_status":"MERGED"}],"branch":"refs/heads/master"},"9e038849f5bad750040060a1395f2a09f5ba5862":{"kind":"REWORK","_number":2,"created":"2024-02-13 23:51:19.000000000","uploader":{"_account_id":12898,"name":"Tony Breeds","email":"tony@bakeyournoodle.com","username":"tonyb"},"ref":"refs/changes/58/908758/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/requirements","ref":"refs/changes/58/908758/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/requirements refs/changes/58/908758/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/requirements refs/changes/58/908758/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/requirements refs/changes/58/908758/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/requirements refs/changes/58/908758/2"}}},"commit":{"parents":[{"commit":"1d8a9890961c44ac9f1b991db61b87baa653293d","subject":"Remove unused abclient","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/requirements/commit/1d8a9890961c44ac9f1b991db61b87baa653293d"}]}],"author":{"name":"Tony Breeds","email":"tony@bakeyournoodle.com","date":"2024-02-12 06:32:30.000000000","tz":660},"committer":{"name":"Tony Breeds","email":"tony@bakeyournoodle.com","date":"2024-02-13 23:36:00.000000000","tz":660},"subject":"Add merge-constraints","message":"Add merge-constraints\n\nChange-Id: If4f9d1adb9c259dc0fbe067ff6cf9e007d697acf\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/requirements/commit/9e038849f5bad750040060a1395f2a09f5ba5862"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/requirements/commit/9e038849f5bad750040060a1395f2a09f5ba5862"}]},"parents_data":[{"branch_name":"refs/heads/master","commit_id":"1d8a9890961c44ac9f1b991db61b87baa653293d","is_merged_in_target_branch":true,"change_id":"I03c39c342794b62ba13aec88a833e1bc5bb87eaf","change_number":907962,"patch_set_number":1,"change_status":"MERGED"}],"branch":"refs/heads/master"},"cbdb8f38dc70470d5a640760746769c001cba3ba":{"kind":"TRIVIAL_REBASE","_number":3,"created":"2024-02-22 23:46:49.000000000","uploader":{"_account_id":12898,"name":"Tony Breeds","email":"tony@bakeyournoodle.com","username":"tonyb"},"ref":"refs/changes/58/908758/3","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/requirements","ref":"refs/changes/58/908758/3","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/requirements refs/changes/58/908758/3 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/requirements refs/changes/58/908758/3 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/requirements refs/changes/58/908758/3 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/requirements refs/changes/58/908758/3"}}},"commit":{"parents":[{"commit":"309eae68e9c012c2b4039b290eca5fb05362a4bc","subject":"Merge \"Downgrade dnspython from 2.6.0 to 2.5.0\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/requirements/commit/309eae68e9c012c2b4039b290eca5fb05362a4bc"}]}],"author":{"name":"Tony Breeds","email":"tony@bakeyournoodle.com","date":"2024-02-12 06:32:30.000000000","tz":660},"committer":{"name":"Tony Breeds","email":"tony@bakeyournoodle.com","date":"2024-02-22 23:45:42.000000000","tz":660},"subject":"Add merge-constraints","message":"Add merge-constraints\n\nChange-Id: If4f9d1adb9c259dc0fbe067ff6cf9e007d697acf\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/requirements/commit/cbdb8f38dc70470d5a640760746769c001cba3ba"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/requirements/commit/cbdb8f38dc70470d5a640760746769c001cba3ba"}]},"parents_data":[{"branch_name":"refs/heads/master","commit_id":"309eae68e9c012c2b4039b290eca5fb05362a4bc","is_merged_in_target_branch":true}],"branch":"refs/heads/master"},"725891eb980f0b05ae6529b8a2e0852158dbeba2":{"kind":"REWORK","_number":4,"created":"2024-02-24 02:25:55.000000000","uploader":{"_account_id":12898,"name":"Tony Breeds","email":"tony@bakeyournoodle.com","username":"tonyb"},"ref":"refs/changes/58/908758/4","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/requirements","ref":"refs/changes/58/908758/4","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/requirements refs/changes/58/908758/4 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/requirements refs/changes/58/908758/4 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/requirements refs/changes/58/908758/4 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/requirements refs/changes/58/908758/4"}}},"commit":{"parents":[{"commit":"c2c71ca4ede05a5e19a95af4847f8fb3f19af54c","subject":"generate-constraints: Make use of ranges","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/requirements/commit/c2c71ca4ede05a5e19a95af4847f8fb3f19af54c"}]}],"author":{"name":"Tony Breeds","email":"tony@bakeyournoodle.com","date":"2024-02-12 06:32:30.000000000","tz":660},"committer":{"name":"Tony Breeds","email":"tony@bakeyournoodle.com","date":"2024-02-24 02:24:22.000000000","tz":660},"subject":"[DNM] Create a merge-constraints tool","message":"[DNM] Create a merge-constraints tool\n\nCurrently we have a tool call generate-constraints that operates like so:\n\nforeach supplied python_version\n  Create a venv\n  Install global-requirements in that venv\n  generate a pip frezze\n\nforeach freeze combine\n  Combine into a single set of constrains.\n\nUse the \u0027proposal\u0027 framework in project-config to generate a gerrit\nchange wit the new constraints\n\nThere is also the ability to simulate a python_version, but this isn\u0027t\naccurate.  The major limitation is we can only generate accurate\nconstraints for python versions supplied by the distribution.\n\nThis change and the following changes will alter that process.\n\nStep one: (this change)\n Move the generation and combination code into a library\n Create a new tool call merge-constraints that will take individually\n   create freeze outputs and combine them to generate a single\n   constraints file.\n\nThis is done without disrupting the existing generate-constratints tool\n\nStep two:\n\nAdd a multinode job that will use ansible to generate a freeze for all\navailable python versions.  This is multinode so we can add new OSs and\npython releases somewhat trivially.\n\nAt the time of writing:\n  Use ubuntu-focal to generate py3.8 and py3.9 freezees\n  Use ubuntu-jammy to generate py3.10 and py3.11 freezees\n\nStep three:\n\nAdd another job that will use ansible to take the freezes generated in\nstep two and combine them into a single constraints file\n\nStep four, and beyond: (to be written)\n\nAdd the new jobs into the proposal framework alongside the existing\ngenerate-constraints tool for comparison.  Ensure that the bulk of the\ntools and job definitions are in openstack/requirements with only the\nproposal logic in openstack/project-config, it needs to be there to\naccess the zuul secrets.Disable and remove the older tool once we\u0027re\nhappy with the new tool.\n\nChange-Id: If4f9d1adb9c259dc0fbe067ff6cf9e007d697acf\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/requirements/commit/725891eb980f0b05ae6529b8a2e0852158dbeba2"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/requirements/commit/725891eb980f0b05ae6529b8a2e0852158dbeba2"}]},"parents_data":[{"branch_name":"refs/heads/master","commit_id":"c2c71ca4ede05a5e19a95af4847f8fb3f19af54c","is_merged_in_target_branch":false,"change_id":"Ibfc6a79624e5591baf945a578f9d265071e57f73","change_number":904211,"patch_set_number":4,"change_status":"MERGED"}],"branch":"refs/heads/master"},"621d23f10594d94ba01a11af5fc6ebebe299123e":{"kind":"TRIVIAL_REBASE_WITH_MESSAGE_UPDATE","_number":5,"created":"2024-05-03 19:33:16.000000000","uploader":{"_account_id":12898,"name":"Tony Breeds","email":"tony@bakeyournoodle.com","username":"tonyb"},"ref":"refs/changes/58/908758/5","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/requirements","ref":"refs/changes/58/908758/5","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/requirements refs/changes/58/908758/5 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/requirements refs/changes/58/908758/5 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/requirements refs/changes/58/908758/5 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/requirements refs/changes/58/908758/5"}}},"commit":{"parents":[{"commit":"8f0c075c1d76e1d2c996df0ee6bd427ed4e7ef21","subject":"generate-constraints: Make use of ranges","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/requirements/commit/8f0c075c1d76e1d2c996df0ee6bd427ed4e7ef21"}]}],"author":{"name":"Tony Breeds","email":"tony@bakeyournoodle.com","date":"2024-02-12 06:32:30.000000000","tz":660},"committer":{"name":"Tony Breeds","email":"tony@bakeyournoodle.com","date":"2024-05-03 19:29:27.000000000","tz":-300},"subject":"Create a merge-constraints tool","message":"Create a merge-constraints tool\n\nCurrently we have a tool call generate-constraints that operates like so:\n\nforeach supplied python_version\n  Create a venv\n  Install global-requirements in that venv\n  generate a pip frezze\n\nforeach freeze combine\n  Combine into a single set of constrains.\n\nUse the \u0027proposal\u0027 framework in project-config to generate a gerrit\nchange wit the new constraints\n\nThere is also the ability to simulate a python_version, but this isn\u0027t\naccurate.  The major limitation is we can only generate accurate\nconstraints for python versions supplied by the distribution.\n\nThis change and the following changes will alter that process.\n\nStep one: (this change)\n Move the generation and combination code into a library\n Create a new tool call merge-constraints that will take individually\n   create freeze outputs and combine them to generate a single\n   constraints file.\n\nThis is done without disrupting the existing generate-constratints tool\n\nStep two:\n\nAdd a multinode job that will use ansible to generate a freeze for all\navailable python versions.  This is multinode so we can add new OSs and\npython releases somewhat trivially.\n\nAt the time of writing:\n  Use ubuntu-focal to generate py3.8 and py3.9 freezees\n  Use ubuntu-jammy to generate py3.10 and py3.11 freezees\n\nStep three:\n\nAdd another job that will use ansible to take the freezes generated in\nstep two and combine them into a single constraints file\n\nStep four, and beyond: (to be written)\n\nAdd the new jobs into the proposal framework alongside the existing\ngenerate-constraints tool for comparison.  Ensure that the bulk of the\ntools and job definitions are in openstack/requirements with only the\nproposal logic in openstack/project-config, it needs to be there to\naccess the zuul secrets.Disable and remove the older tool once we\u0027re\nhappy with the new tool.\n\nChange-Id: If4f9d1adb9c259dc0fbe067ff6cf9e007d697acf\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/requirements/commit/621d23f10594d94ba01a11af5fc6ebebe299123e"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/requirements/commit/621d23f10594d94ba01a11af5fc6ebebe299123e"}]},"parents_data":[{"branch_name":"refs/heads/master","commit_id":"8f0c075c1d76e1d2c996df0ee6bd427ed4e7ef21","is_merged_in_target_branch":false,"change_id":"Ibfc6a79624e5591baf945a578f9d265071e57f73","change_number":904211,"patch_set_number":5,"change_status":"MERGED"}],"branch":"refs/heads/master"},"6af1ea2c863e630ce5ea48ab60591a13366e470b":{"kind":"REWORK","_number":6,"created":"2024-05-07 14:53:27.000000000","uploader":{"_account_id":12898,"name":"Tony Breeds","email":"tony@bakeyournoodle.com","username":"tonyb"},"ref":"refs/changes/58/908758/6","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/requirements","ref":"refs/changes/58/908758/6","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/requirements refs/changes/58/908758/6 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/requirements refs/changes/58/908758/6 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/requirements refs/changes/58/908758/6 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/requirements refs/changes/58/908758/6"}}},"commit":{"parents":[{"commit":"8f0c075c1d76e1d2c996df0ee6bd427ed4e7ef21","subject":"generate-constraints: Make use of ranges","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/requirements/commit/8f0c075c1d76e1d2c996df0ee6bd427ed4e7ef21"}]}],"author":{"name":"Tony Breeds","email":"tony@bakeyournoodle.com","date":"2024-02-12 06:32:30.000000000","tz":660},"committer":{"name":"Tony Breeds","email":"tony@bakeyournoodle.com","date":"2024-05-07 14:52:47.000000000","tz":-300},"subject":"Create a merge-constraints tool","message":"Create a merge-constraints tool\n\nCurrently we have a tool call generate-constraints that operates like so:\n\nforeach supplied python_version\n  Create a venv\n  Install global-requirements in that venv\n  generate a pip frezze\n\nforeach freeze combine\n  Combine into a single set of constrains.\n\nUse the \u0027proposal\u0027 framework in project-config to generate a gerrit\nchange wit the new constraints\n\nThere is also the ability to simulate a python_version, but this isn\u0027t\naccurate.  The major limitation is we can only generate accurate\nconstraints for python versions supplied by the distribution.\n\nThis change and the following changes will alter that process.\n\nStep one: (this change)\n Move the generation and combination code into a library\n Create a new tool call merge-constraints that will take individually\n   create freeze outputs and combine them to generate a single\n   constraints file.\n\nThis is done without disrupting the existing generate-constratints tool\n\nStep two:\n\nAdd a multinode job that will use ansible to generate a freeze for all\navailable python versions.  This is multinode so we can add new OSs and\npython releases somewhat trivially.\n\nAt the time of writing:\n  Use ubuntu-focal to generate py3.8 and py3.9 freezees\n  Use ubuntu-jammy to generate py3.10 and py3.11 freezees\n\nStep three:\n\nAdd another job that will use ansible to take the freezes generated in\nstep two and combine them into a single constraints file\n\nStep four, and beyond: (to be written)\n\nAdd the new jobs into the proposal framework alongside the existing\ngenerate-constraints tool for comparison.  Ensure that the bulk of the\ntools and job definitions are in openstack/requirements with only the\nproposal logic in openstack/project-config, it needs to be there to\naccess the zuul secrets.Disable and remove the older tool once we\u0027re\nhappy with the new tool.\n\nChange-Id: If4f9d1adb9c259dc0fbe067ff6cf9e007d697acf\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/requirements/commit/6af1ea2c863e630ce5ea48ab60591a13366e470b"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/requirements/commit/6af1ea2c863e630ce5ea48ab60591a13366e470b"}]},"parents_data":[{"branch_name":"refs/heads/master","commit_id":"8f0c075c1d76e1d2c996df0ee6bd427ed4e7ef21","is_merged_in_target_branch":false,"change_id":"Ibfc6a79624e5591baf945a578f9d265071e57f73","change_number":904211,"patch_set_number":5,"change_status":"MERGED"}],"branch":"refs/heads/master"},"74827cb123663bb612c68293833f308f20f53610":{"kind":"REWORK","_number":7,"created":"2024-06-24 01:43:51.000000000","uploader":{"_account_id":12898,"name":"Tony Breeds","email":"tony@bakeyournoodle.com","username":"tonyb"},"ref":"refs/changes/58/908758/7","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/requirements","ref":"refs/changes/58/908758/7","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/requirements refs/changes/58/908758/7 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/requirements refs/changes/58/908758/7 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/requirements refs/changes/58/908758/7 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/requirements refs/changes/58/908758/7"}}},"commit":{"parents":[{"commit":"e8c97cafa457648cb930a810e8571242b0dcf4bb","subject":"generate-constraints: Make use of ranges","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/requirements/commit/e8c97cafa457648cb930a810e8571242b0dcf4bb"}]}],"author":{"name":"Tony Breeds","email":"tony@bakeyournoodle.com","date":"2024-02-12 06:32:30.000000000","tz":660},"committer":{"name":"Tony Breeds","email":"tony@bakeyournoodle.com","date":"2024-06-24 01:38:44.000000000","tz":600},"subject":"Create a merge-constraints tool","message":"Create a merge-constraints tool\n\nCurrently we have a tool call generate-constraints that operates like so:\n\nforeach supplied python_version\n  Create a venv\n  Install global-requirements in that venv\n  generate a pip frezze\n\nforeach freeze combine\n  Combine into a single set of constrains.\n\nUse the \u0027proposal\u0027 framework in project-config to generate a gerrit\nchange wit the new constraints\n\nThere is also the ability to simulate a python_version, but this isn\u0027t\naccurate.  The major limitation is we can only generate accurate\nconstraints for python versions supplied by the distribution.\n\nThis change and the following changes will alter that process.\n\nStep one: (this change)\n Move the generation and combination code into a library\n Create a new tool call merge-constraints that will take individually\n   create freeze outputs and combine them to generate a single\n   constraints file.\n\nThis is done without disrupting the existing generate-constratints tool\n\nStep two:\n\nAdd a multinode job that will use ansible to generate a freeze for all\navailable python versions.  This is multinode so we can add new OSs and\npython releases somewhat trivially.\n\nAt the time of writing:\n  Use ubuntu-focal to generate py3.8 and py3.9 freezees\n  Use ubuntu-jammy to generate py3.10 and py3.11 freezees\n\nStep three:\n\nAdd another job that will use ansible to take the freezes generated in\nstep two and combine them into a single constraints file\n\nStep four, and beyond: (to be written)\n\nAdd the new jobs into the proposal framework alongside the existing\ngenerate-constraints tool for comparison.  Ensure that the bulk of the\ntools and job definitions are in openstack/requirements with only the\nproposal logic in openstack/project-config, it needs to be there to\naccess the zuul secrets.Disable and remove the older tool once we\u0027re\nhappy with the new tool.\n\nChange-Id: If4f9d1adb9c259dc0fbe067ff6cf9e007d697acf\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/requirements/commit/74827cb123663bb612c68293833f308f20f53610"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/requirements/commit/74827cb123663bb612c68293833f308f20f53610"}]},"parents_data":[{"branch_name":"refs/heads/master","commit_id":"e8c97cafa457648cb930a810e8571242b0dcf4bb","is_merged_in_target_branch":false,"change_id":"Ibfc6a79624e5591baf945a578f9d265071e57f73","change_number":904211,"patch_set_number":6,"change_status":"MERGED"}],"branch":"refs/heads/master"},"d6428ac829c5d6245967131a26be578caf58ac09":{"kind":"TRIVIAL_REBASE","_number":8,"created":"2024-07-16 04:12:45.000000000","uploader":{"_account_id":12898,"name":"Tony Breeds","email":"tony@bakeyournoodle.com","username":"tonyb"},"ref":"refs/changes/58/908758/8","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/requirements","ref":"refs/changes/58/908758/8","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/requirements refs/changes/58/908758/8 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/requirements refs/changes/58/908758/8 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/requirements refs/changes/58/908758/8 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/requirements refs/changes/58/908758/8"}}},"commit":{"parents":[{"commit":"9ed6465c8cdd2c5b38f924df752083fa77d90af0","subject":"generate-constraints: Make use of ranges","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/requirements/commit/9ed6465c8cdd2c5b38f924df752083fa77d90af0"}]}],"author":{"name":"Tony Breeds","email":"tony@bakeyournoodle.com","date":"2024-02-12 06:32:30.000000000","tz":660},"committer":{"name":"Tony Breeds","email":"tony@bakeyournoodle.com","date":"2024-07-16 04:12:29.000000000","tz":600},"subject":"Create a merge-constraints tool","message":"Create a merge-constraints tool\n\nCurrently we have a tool call generate-constraints that operates like so:\n\nforeach supplied python_version\n  Create a venv\n  Install global-requirements in that venv\n  generate a pip frezze\n\nforeach freeze combine\n  Combine into a single set of constrains.\n\nUse the \u0027proposal\u0027 framework in project-config to generate a gerrit\nchange wit the new constraints\n\nThere is also the ability to simulate a python_version, but this isn\u0027t\naccurate.  The major limitation is we can only generate accurate\nconstraints for python versions supplied by the distribution.\n\nThis change and the following changes will alter that process.\n\nStep one: (this change)\n Move the generation and combination code into a library\n Create a new tool call merge-constraints that will take individually\n   create freeze outputs and combine them to generate a single\n   constraints file.\n\nThis is done without disrupting the existing generate-constratints tool\n\nStep two:\n\nAdd a multinode job that will use ansible to generate a freeze for all\navailable python versions.  This is multinode so we can add new OSs and\npython releases somewhat trivially.\n\nAt the time of writing:\n  Use ubuntu-focal to generate py3.8 and py3.9 freezees\n  Use ubuntu-jammy to generate py3.10 and py3.11 freezees\n\nStep three:\n\nAdd another job that will use ansible to take the freezes generated in\nstep two and combine them into a single constraints file\n\nStep four, and beyond: (to be written)\n\nAdd the new jobs into the proposal framework alongside the existing\ngenerate-constraints tool for comparison.  Ensure that the bulk of the\ntools and job definitions are in openstack/requirements with only the\nproposal logic in openstack/project-config, it needs to be there to\naccess the zuul secrets.Disable and remove the older tool once we\u0027re\nhappy with the new tool.\n\nChange-Id: If4f9d1adb9c259dc0fbe067ff6cf9e007d697acf\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/requirements/commit/d6428ac829c5d6245967131a26be578caf58ac09"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/requirements/commit/d6428ac829c5d6245967131a26be578caf58ac09"}]},"parents_data":[{"branch_name":"refs/heads/master","commit_id":"9ed6465c8cdd2c5b38f924df752083fa77d90af0","is_merged_in_target_branch":false,"change_id":"Ibfc6a79624e5591baf945a578f9d265071e57f73","change_number":904211,"patch_set_number":7,"change_status":"MERGED"}],"branch":"refs/heads/master"}},"requirements":[],"submit_records":[{"rule_name":"gerrit~DefaultSubmitRule","status":"OK","labels":[{"label":"Verified","status":"MAY","applied_by":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}},{"label":"Code-Review","status":"MAY"},{"label":"Workflow","status":"MAY"}]}],"submit_requirements":[{"name":"Verified","description":"Verified in gate by CI","status":"UNSATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Verified\u003dMAX AND -label:Verified\u003dMIN","fulfilled":false,"status":"FAIL","passing_atoms":[],"failing_atoms":["label:Verified\u003dMAX","label:Verified\u003dMIN"],"atom_explanations":{"label:Verified\u003dMAX":"","label:Verified\u003dMIN":""}}},{"name":"Code-Review","description":"Code reviewed by core reviewer","status":"UNSATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Code-Review\u003dMAX AND -label:Code-Review\u003dMIN","fulfilled":false,"status":"FAIL","passing_atoms":[],"failing_atoms":["label:Code-Review\u003dMAX","label:Code-Review\u003dMIN"],"atom_explanations":{"label:Code-Review\u003dMAX":"","label:Code-Review\u003dMIN":""}}},{"name":"Workflow","description":"Approved for gate by core reviewer","status":"UNSATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Workflow\u003dMAX AND -label:Workflow\u003dMIN","fulfilled":false,"status":"FAIL","passing_atoms":[],"failing_atoms":["label:Workflow\u003dMAX","label:Workflow\u003dMIN"],"atom_explanations":{"label:Workflow\u003dMAX":"","label:Workflow\u003dMIN":""}}}]}
