)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"71ed00bd5f0579dcff584703a7d679653cce6482","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"0ecde80b_ae212099","updated":"2026-06-11 17:06:25.000000000","message":"I like the fungi idea of making it nested so that every cycle we do not need to change the base things in two place.","commit_id":"cd933276e98bf9ffd0c2b8158f46c3ce2905282d"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"ba345faa22b120bb12547eb025a3bb4ff8d7b5f6","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"3e6babee_383c23c8","updated":"2026-06-11 01:31:32.000000000","message":"thanks, lgtm","commit_id":"cd933276e98bf9ffd0c2b8158f46c3ce2905282d"}],"zuul.d/project-templates.yaml":[{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"c81e49d620f77a331c9e5ef07b55f120a6c4e882","unresolved":true,"context_lines":[{"line_number":716,"context_line":"        - publish-openstack-python-branch-tarball"},{"line_number":717,"context_line":""},{"line_number":718,"context_line":"- project-template:"},{"line_number":719,"context_line":"    name: openstack-python3-client-library-jobs"},{"line_number":720,"context_line":"    # NOTE(gmann): We are using this generic template for python version"},{"line_number":721,"context_line":"    # testing. When a new development cycle starts, we need to do two things:"},{"line_number":722,"context_line":"    # 1. Update this template for the python version jobs as per the"}],"source_content_type":"text/x-yaml","patch_set":2,"id":"2d0d35c9_ac86fe81","line":719,"range":{"start_line":719,"start_character":10,"end_line":719,"end_character":47},"updated":"2026-06-11 03:45:00.000000000","message":"I don\u0027t know if this single template really works given that the project may have opt-in to the new python version in various timing, and I don\u0027t want also to be blocked by different projects not fixing their code.\n\nI\u0027m inclined to say that we should have a specific template for oslo (and probably sdk) now, rather than using the general client/library naming.","commit_id":"cd933276e98bf9ffd0c2b8158f46c3ce2905282d"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"316d9699d35436022f00d7eb1ea2135ac12b2898","unresolved":true,"context_lines":[{"line_number":716,"context_line":"        - publish-openstack-python-branch-tarball"},{"line_number":717,"context_line":""},{"line_number":718,"context_line":"- project-template:"},{"line_number":719,"context_line":"    name: openstack-python3-client-library-jobs"},{"line_number":720,"context_line":"    # NOTE(gmann): We are using this generic template for python version"},{"line_number":721,"context_line":"    # testing. When a new development cycle starts, we need to do two things:"},{"line_number":722,"context_line":"    # 1. Update this template for the python version jobs as per the"}],"source_content_type":"text/x-yaml","patch_set":2,"id":"d873a9cd_fddea1af","line":719,"range":{"start_line":719,"start_character":10,"end_line":719,"end_character":47},"in_reply_to":"2d0d35c9_ac86fe81","updated":"2026-06-11 11:11:31.000000000","message":"I\u0027d like to use this for both oslo and SDK deliverables. OSC depends on other clients though (e.g. python-cinderclient) which means I also want testing there.\n\nHow would we be blocked by this? Would we expected any of the deliverables of type `library` or `client-library` to have serious Python version-specific issues? fwiw, this is the current list of those from the `release` repo:\n\n```\n❯ ag \u0027type: (client-library|library)\u0027 deliverables/hibiscus/ -l                                                                                                                                                     \ndeliverables/hibiscus/oslo.utils.yaml                                                                                                                                                                               \ndeliverables/hibiscus/python-blazarclient.yaml                                                                                                                                                                      \ndeliverables/hibiscus/python-masakariclient.yaml                                                                                                                                                                    \ndeliverables/hibiscus/oslo.reports.yaml                                                                                                                                                                             \ndeliverables/hibiscus/cliff.yaml                                                                                                                                                                                    \ndeliverables/hibiscus/oslo.config.yaml                                                                                                                                                                              \ndeliverables/hibiscus/mistral-lib.yaml                                                                                                                                                                              \ndeliverables/hibiscus/python-cyborgclient.yaml\ndeliverables/hibiscus/oslo.log.yaml\ndeliverables/hibiscus/python-observabilityclient.yaml\ndeliverables/hibiscus/oslo.i18n.yaml\ndeliverables/hibiscus/python-troveclient.yaml\ndeliverables/hibiscus/oslo.metrics.yaml\ndeliverables/hibiscus/python-novaclient.yaml\ndeliverables/hibiscus/python-magnumclient.yaml\ndeliverables/hibiscus/oslo.middleware.yaml\ndeliverables/hibiscus/oslo.service.yaml\ndeliverables/hibiscus/oslo.concurrency.yaml\ndeliverables/hibiscus/taskflow.yaml\ndeliverables/hibiscus/oslo.versionedobjects.yaml\ndeliverables/hibiscus/castellan.yaml\ndeliverables/hibiscus/osc-lib.yaml\ndeliverables/hibiscus/python-heatclient.yaml\ndeliverables/hibiscus/python-keystoneclient.yaml\ndeliverables/hibiscus/python-mistralclient.yaml\ndeliverables/hibiscus/keystoneauth.yaml\ndeliverables/hibiscus/ceilometermiddleware.yaml\ndeliverables/hibiscus/oslo.privsep.yaml\ndeliverables/hibiscus/keystonemiddleware.yaml\ndeliverables/hibiscus/python-watcherclient.yaml\ndeliverables/hibiscus/python-cloudkittyclient.yaml\ndeliverables/hibiscus/glance-store.yaml\ndeliverables/hibiscus/python-adjutantclient.yaml\ndeliverables/hibiscus/mistral-extra.yaml\ndeliverables/hibiscus/os-ken.yaml\ndeliverables/hibiscus/oslo.context.yaml\ndeliverables/hibiscus/neutron-lib.yaml\ndeliverables/hibiscus/ovsdbapp.yaml\ndeliverables/hibiscus/python-glanceclient.yaml\ndeliverables/hibiscus/oslo.cache.yaml\ndeliverables/hibiscus/python-openstackclient.yaml\ndeliverables/hibiscus/python-barbicanclient.yaml\ndeliverables/hibiscus/python-swiftclient.yaml\ndeliverables/hibiscus/oslo.messaging.yaml\ndeliverables/hibiscus/sushy.yaml\ndeliverables/hibiscus/python-zunclient.yaml\ndeliverables/hibiscus/oslo.limit.yaml\ndeliverables/hibiscus/python-zaqarclient.yaml\ndeliverables/hibiscus/oslo.policy.yaml\ndeliverables/hibiscus/oslo.serialization.yaml\ndeliverables/hibiscus/heat-translator.yaml\ndeliverables/hibiscus/oslo.db.yaml\ndeliverables/hibiscus/python-freezerclient.yaml\ndeliverables/hibiscus/python-aodhclient.yaml\ndeliverables/hibiscus/python-cinderclient.yaml\ndeliverables/hibiscus/openstacksdk.yaml\ndeliverables/hibiscus/oslo.rootwrap.yaml\ndeliverables/hibiscus/python-tackerclient.yaml\ndeliverables/hibiscus/python-neutronclient.yaml\ndeliverables/hibiscus/stevedore.yaml\ndeliverables/hibiscus/python-octaviaclient.yaml\ndeliverables/hibiscus/os-brick.yaml\ndeliverables/hibiscus/kuryr.yaml\ndeliverables/hibiscus/python-manilaclient.yaml\ndeliverables/hibiscus/tosca-parser.yaml\ndeliverables/hibiscus/python-brick-cinderclient-ext.yaml\ndeliverables/hibiscus/oslo.upgradecheck.yaml\ndeliverables/hibiscus/oslo.vmware.yaml\ndeliverables/hibiscus/python-designateclient.yaml\ndeliverables/hibiscus/octavia-lib.yaml\ndeliverables/hibiscus/python-ironicclient.yaml\ndeliverables/hibiscus/osc-placement.yaml\ndeliverables/hibiscus/os-vif.yaml\n```","commit_id":"cd933276e98bf9ffd0c2b8158f46c3ce2905282d"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"71ed00bd5f0579dcff584703a7d679653cce6482","unresolved":true,"context_lines":[{"line_number":716,"context_line":"        - publish-openstack-python-branch-tarball"},{"line_number":717,"context_line":""},{"line_number":718,"context_line":"- project-template:"},{"line_number":719,"context_line":"    name: openstack-python3-client-library-jobs"},{"line_number":720,"context_line":"    # NOTE(gmann): We are using this generic template for python version"},{"line_number":721,"context_line":"    # testing. When a new development cycle starts, we need to do two things:"},{"line_number":722,"context_line":"    # 1. Update this template for the python version jobs as per the"}],"source_content_type":"text/x-yaml","patch_set":2,"id":"dfe267f3_39c5b03d","line":719,"range":{"start_line":719,"start_character":10,"end_line":719,"end_character":47},"in_reply_to":"5bb93219_946f295b","updated":"2026-06-11 17:06:25.000000000","message":"If projects adopted this template (this is kind of advanced testing of higher Python versions) and they are late to fix it, they always have the option to go back to the general template of minimum required testing. if any project start using this, I think they understand about keeping their code up to date for new versions.","commit_id":"cd933276e98bf9ffd0c2b8158f46c3ce2905282d"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"c8f1a873f943abb7c15327f3768b3eb35009a2ec","unresolved":true,"context_lines":[{"line_number":716,"context_line":"        - publish-openstack-python-branch-tarball"},{"line_number":717,"context_line":""},{"line_number":718,"context_line":"- project-template:"},{"line_number":719,"context_line":"    name: openstack-python3-client-library-jobs"},{"line_number":720,"context_line":"    # NOTE(gmann): We are using this generic template for python version"},{"line_number":721,"context_line":"    # testing. When a new development cycle starts, we need to do two things:"},{"line_number":722,"context_line":"    # 1. Update this template for the python version jobs as per the"}],"source_content_type":"text/x-yaml","patch_set":2,"id":"5bb93219_946f295b","line":719,"range":{"start_line":719,"start_character":10,"end_line":719,"end_character":47},"in_reply_to":"74fd8bca_3b78ece3","updated":"2026-06-11 11:46:11.000000000","message":"It may be rare but we had in the past several issues caused by deprecated/removed modules from core python (mostly in their test code).\n\nLet\u0027s see how it works but we likely need the coordinated deadline definition for new voting job, so that we get the same view about how early they should adopt their testing to be compliant with this opt-in strategy.","commit_id":"cd933276e98bf9ffd0c2b8158f46c3ce2905282d"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"ec7bb8a33c27e28b68c794767b6d70de6209d32c","unresolved":true,"context_lines":[{"line_number":716,"context_line":"        - publish-openstack-python-branch-tarball"},{"line_number":717,"context_line":""},{"line_number":718,"context_line":"- project-template:"},{"line_number":719,"context_line":"    name: openstack-python3-client-library-jobs"},{"line_number":720,"context_line":"    # NOTE(gmann): We are using this generic template for python version"},{"line_number":721,"context_line":"    # testing. When a new development cycle starts, we need to do two things:"},{"line_number":722,"context_line":"    # 1. Update this template for the python version jobs as per the"}],"source_content_type":"text/x-yaml","patch_set":2,"id":"74fd8bca_3b78ece3","line":719,"range":{"start_line":719,"start_character":10,"end_line":719,"end_character":47},"in_reply_to":"d873a9cd_fddea1af","updated":"2026-06-11 11:22:15.000000000","message":"Also, projects can obviously override the voting status of jobs temporarily (assuming we don\u0027t move forward with the governance changes). But again, I\u0027d be genuinely surprised if this were ever to happen, given the relative simplicity of most clients and libraries vis-à-vis services\n\nhttps://zuul.opendev.org/t/openstack/builds?job_name\u003dopenstack-tox-py314\u0026project\u003dopenstack%2Fpython-*client\u0026skip\u003d0","commit_id":"cd933276e98bf9ffd0c2b8158f46c3ce2905282d"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"ba345faa22b120bb12547eb025a3bb4ff8d7b5f6","unresolved":false,"context_lines":[{"line_number":738,"context_line":"        - openstack-tox-py311:"},{"line_number":739,"context_line":"            branches:"},{"line_number":740,"context_line":"              - master"},{"line_number":741,"context_line":"        # py3.13 testing is added as mandatory from 2026.1 release onwards."},{"line_number":742,"context_line":"        - openstack-tox-py313:"},{"line_number":743,"context_line":"            branches:"},{"line_number":744,"context_line":"              - master"},{"line_number":745,"context_line":"        # py3.14 testing is added as mandatory from 2026.2 release onwards"},{"line_number":746,"context_line":"        - openstack-tox-py314:"},{"line_number":747,"context_line":"            branches:"}],"source_content_type":"text/x-yaml","patch_set":2,"id":"027a43f7_c01962eb","line":744,"range":{"start_line":741,"start_character":0,"end_line":744,"end_character":22},"updated":"2026-06-11 01:31:32.000000000","message":"++. side note for reviewers: it is usually enough to keep min and max versions job assuming that in-between version will work but this is different case. Projects are tested as mandatory on python 3.13 so keeping it voting for library make sure we do not break them just in case any difference in 3.13 vs 3.14.","commit_id":"cd933276e98bf9ffd0c2b8158f46c3ce2905282d"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"316d9699d35436022f00d7eb1ea2135ac12b2898","unresolved":true,"context_lines":[{"line_number":738,"context_line":"        - openstack-tox-py311:"},{"line_number":739,"context_line":"            branches:"},{"line_number":740,"context_line":"              - master"},{"line_number":741,"context_line":"        # py3.13 testing is added as mandatory from 2026.1 release onwards."},{"line_number":742,"context_line":"        - openstack-tox-py313:"},{"line_number":743,"context_line":"            branches:"},{"line_number":744,"context_line":"              - master"},{"line_number":745,"context_line":"        # py3.14 testing is added as mandatory from 2026.2 release onwards"},{"line_number":746,"context_line":"        - openstack-tox-py314:"},{"line_number":747,"context_line":"            branches:"}],"source_content_type":"text/x-yaml","patch_set":2,"id":"3d61af4a_c58d16fc","line":744,"range":{"start_line":741,"start_character":0,"end_line":744,"end_character":22},"in_reply_to":"027a43f7_c01962eb","updated":"2026-06-11 11:11:31.000000000","message":"Yeah, this was my rationale. I wonder if it\u0027s worth a note?","commit_id":"cd933276e98bf9ffd0c2b8158f46c3ce2905282d"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"71ed00bd5f0579dcff584703a7d679653cce6482","unresolved":true,"context_lines":[{"line_number":738,"context_line":"        - openstack-tox-py311:"},{"line_number":739,"context_line":"            branches:"},{"line_number":740,"context_line":"              - master"},{"line_number":741,"context_line":"        # py3.13 testing is added as mandatory from 2026.1 release onwards."},{"line_number":742,"context_line":"        - openstack-tox-py313:"},{"line_number":743,"context_line":"            branches:"},{"line_number":744,"context_line":"              - master"},{"line_number":745,"context_line":"        # py3.14 testing is added as mandatory from 2026.2 release onwards"},{"line_number":746,"context_line":"        - openstack-tox-py314:"},{"line_number":747,"context_line":"            branches:"}],"source_content_type":"text/x-yaml","patch_set":2,"id":"037fae54_75464b96","line":744,"range":{"start_line":741,"start_character":0,"end_line":744,"end_character":22},"in_reply_to":"3d61af4a_c58d16fc","updated":"2026-06-11 17:06:25.000000000","message":"Yes, please, there is a chance that we might remove it, seeing the generic template pattern.","commit_id":"cd933276e98bf9ffd0c2b8158f46c3ce2905282d"}]}
