)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"8b5a7d2ca3bea9c45e6d26079d6fb30fba4a2a8b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"c9473f66_24eb535c","updated":"2026-05-19 17:00:50.000000000","message":"so this is only somewhat ture\n\nits only in the governace repo for DPL projects\nPTL project coudl use that but they sotread the release liason info in this repo\ninstead because it predate the useage in the governace repo.\n\n+0 because i dont actully mind consolidating but im not actullly a ware of any annouch or change in process that would actully make the governace repo the aturitive place for this for ptl based progjects","commit_id":"0947822d1b176c66a4b8dc532c14b841a753a6fd"},{"author":{"_account_id":17685,"name":"Elod Illes","email":"elod.illes@est.tech","username":"elod.illes"},"change_message_id":"ac9d899e7e0c6ac90d7580a863e6562339920521","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"c7bd2302_8e8d485e","updated":"2026-05-19 16:44:41.000000000","message":"thanks for working on this Stephen. We had a discussion in the past that the duplication is unnecessary, but haven\u0027t acted on it.\n\nNote, that tools/check_approval.py has a ~copy in project-config. I\u0027ve created a patch for that based on this patch:\n\nhttps://review.opendev.org/c/openstack/project-config/+/989179","commit_id":"0947822d1b176c66a4b8dc532c14b841a753a6fd"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"e4e8771d73b326d726f9721fa9c8fe6612bd6fa3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"b32688d1_b0d12a6f","in_reply_to":"7c7e8f1f_95d92c0b","updated":"2026-05-20 09:09:57.000000000","message":"i did but my point was it did not require the tc to approve relieas liasons addtions before that was doen by the release team and now it will be done by the tc by moving it to the new repo.\nconsoidating mean you are changing that as well for ptl projects\n\nyou are effectivly also proposing a governace change rather then just a tooling change.","commit_id":"0947822d1b176c66a4b8dc532c14b841a753a6fd"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"e88962cf9190d9a66ef11a78b6cf39403f12a2e9","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"9112cbdf_e922c9e1","in_reply_to":"b32688d1_b0d12a6f","updated":"2026-05-20 15:18:17.000000000","message":"They have to be *approved* by the TC, but the don\u0027t have to be submitted (\"done\") by them.","commit_id":"0947822d1b176c66a4b8dc532c14b841a753a6fd"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"c95783d2e4d72b1e0c9bdba80b38364862444a1e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"7c7e8f1f_95d92c0b","in_reply_to":"c9473f66_24eb535c","updated":"2026-05-19 19:48:22.000000000","message":"\u003e so this is only somewhat ture\n\nWhat\u0027s only somewhat true?\n\n\u003e its only in the governace repo for DPL projects\n\u003e PTL project coudl use that but they sotread the release liason info in this repo\n\u003e instead because it predate the useage in the governace repo.\n\u003e \n\u003e +0 because i dont actully mind consolidating but im not actullly a ware of any annouch or change in process that would actully make the governace repo the aturitive place for this for ptl based progjects\n\nSee the `Depends-on` in the commit message 😉","commit_id":"0947822d1b176c66a4b8dc532c14b841a753a6fd"}],"tools/check_approval.py":[{"author":{"_account_id":17685,"name":"Elod Illes","email":"elod.illes@est.tech","username":"elod.illes"},"change_message_id":"ac9d899e7e0c6ac90d7580a863e6562339920521","unresolved":true,"context_lines":[{"line_number":108,"context_line":"            # Some teams follow the \"distributed project lead\" governance"},{"line_number":109,"context_line":"            # model so they are PTL-less but they have release liaisons"},{"line_number":110,"context_line":"            # defined. Fetch those liaisons."},{"line_number":111,"context_line":"            liaisons \u003d {}"},{"line_number":112,"context_line":"            if govteam[\u0027leadership_type\u0027] \u003d\u003d \u0027ptl\u0027:"},{"line_number":113,"context_line":"                # Fetch PTL\u0027s email address"},{"line_number":114,"context_line":"                liaisons.add(govteam[\u0027ptl\u0027][\u0027email\u0027])"}],"source_content_type":"text/x-python","patch_set":1,"id":"6c9bed29_0f5ab07b","line":111,"range":{"start_line":111,"start_character":23,"end_line":111,"end_character":25},"updated":"2026-05-19 16:44:41.000000000","message":"`set()` you mean, right? otherwise we get `AttributeError: \u0027dict\u0027 object has no attribute \u0027add\u0027`","commit_id":"0947822d1b176c66a4b8dc532c14b841a753a6fd"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"7d0c3600c46803408db99bbb36e7fe4506b80e8f","unresolved":false,"context_lines":[{"line_number":108,"context_line":"            # Some teams follow the \"distributed project lead\" governance"},{"line_number":109,"context_line":"            # model so they are PTL-less but they have release liaisons"},{"line_number":110,"context_line":"            # defined. Fetch those liaisons."},{"line_number":111,"context_line":"            liaisons \u003d {}"},{"line_number":112,"context_line":"            if govteam[\u0027leadership_type\u0027] \u003d\u003d \u0027ptl\u0027:"},{"line_number":113,"context_line":"                # Fetch PTL\u0027s email address"},{"line_number":114,"context_line":"                liaisons.add(govteam[\u0027ptl\u0027][\u0027email\u0027])"}],"source_content_type":"text/x-python","patch_set":1,"id":"ac947eb4_281ecc37","line":111,"range":{"start_line":111,"start_character":23,"end_line":111,"end_character":25},"in_reply_to":"6c9bed29_0f5ab07b","updated":"2026-05-19 19:47:06.000000000","message":"Damn, yes. I wish Python used a different bracket character for sets 😭","commit_id":"0947822d1b176c66a4b8dc532c14b841a753a6fd"},{"author":{"_account_id":17685,"name":"Elod Illes","email":"elod.illes@est.tech","username":"elod.illes"},"change_message_id":"ac9d899e7e0c6ac90d7580a863e6562339920521","unresolved":true,"context_lines":[{"line_number":109,"context_line":"            # model so they are PTL-less but they have release liaisons"},{"line_number":110,"context_line":"            # defined. Fetch those liaisons."},{"line_number":111,"context_line":"            liaisons \u003d {}"},{"line_number":112,"context_line":"            if govteam[\u0027leadership_type\u0027] \u003d\u003d \u0027ptl\u0027:"},{"line_number":113,"context_line":"                # Fetch PTL\u0027s email address"},{"line_number":114,"context_line":"                liaisons.add(govteam[\u0027ptl\u0027][\u0027email\u0027])"},{"line_number":115,"context_line":"            if release_liaisons :\u003d govteam.get(\u0027liaisons\u0027, {}).get(\u0027release\u0027):"}],"source_content_type":"text/x-python","patch_set":1,"id":"6feea865_2590beba","line":112,"range":{"start_line":112,"start_character":15,"end_line":112,"end_character":41},"updated":"2026-05-19 16:44:41.000000000","message":"i know if the governance part merges, this should not be an issue, but i\u0027d rather see here `govteam.get(\u0027leadership_type\u0027, {}) \u003d\u003d \u0027ptl\u0027`","commit_id":"0947822d1b176c66a4b8dc532c14b841a753a6fd"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"7d0c3600c46803408db99bbb36e7fe4506b80e8f","unresolved":true,"context_lines":[{"line_number":109,"context_line":"            # model so they are PTL-less but they have release liaisons"},{"line_number":110,"context_line":"            # defined. Fetch those liaisons."},{"line_number":111,"context_line":"            liaisons \u003d {}"},{"line_number":112,"context_line":"            if govteam[\u0027leadership_type\u0027] \u003d\u003d \u0027ptl\u0027:"},{"line_number":113,"context_line":"                # Fetch PTL\u0027s email address"},{"line_number":114,"context_line":"                liaisons.add(govteam[\u0027ptl\u0027][\u0027email\u0027])"},{"line_number":115,"context_line":"            if release_liaisons :\u003d govteam.get(\u0027liaisons\u0027, {}).get(\u0027release\u0027):"}],"source_content_type":"text/x-python","patch_set":1,"id":"d6d167e8_c46dfcfd","line":112,"range":{"start_line":112,"start_character":15,"end_line":112,"end_character":41},"in_reply_to":"6feea865_2590beba","updated":"2026-05-19 19:47:06.000000000","message":"This is the Robustness principle and I disagree with it. If someone breaks things for us, we should see that *immediately*. It shouldn\u0027t be able to break since the schema in the related change ensures this key is present (barring a schema change, of course)","commit_id":"0947822d1b176c66a4b8dc532c14b841a753a6fd"}]}
