)]}'
{"doc/source/developer/specs/reporter-jobs.rst":[{"author":{"_account_id":27582,"name":"Simon Westphahl","email":"simon.westphahl@bmw.de","username":"simon.westphahl"},"change_message_id":"22da46ada332ac5bacc99cbfd9faf308e3c3b134","unresolved":true,"context_lines":[{"line_number":72,"context_line":"The key to running this kind of workload is that it must happen after"},{"line_number":73,"context_line":"the completion of the report to the code review system where the"},{"line_number":74,"context_line":"change is merged, but before Zuul resumes processing of that pipeline."},{"line_number":75,"context_line":"It must be fast, because Zuul will not be able to make any changes to"},{"line_number":76,"context_line":"the pipeline until the job is complete."},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"One of the main benefits of running this kind of workflow in Zuul is"},{"line_number":79,"context_line":"that users will benefit from the logging and accessibility that Zuul"}],"source_content_type":"text/x-rst","patch_set":2,"id":"72f98bcf_bb87d1b0","line":76,"range":{"start_line":75,"start_character":16,"end_line":76,"end_character":38},"updated":"2025-11-26 13:23:57.000000000","message":"Would this affect the whole pipeline or just one particular change queue?","commit_id":"302c393d804f99d13f3d7c24992d318276840313"},{"author":{"_account_id":1,"name":"James E. Blair","email":"jim@acmegating.com","username":"corvus"},"change_message_id":"c29159e84fa36b9292c5084f552a43eb0f98f74e","unresolved":true,"context_lines":[{"line_number":72,"context_line":"The key to running this kind of workload is that it must happen after"},{"line_number":73,"context_line":"the completion of the report to the code review system where the"},{"line_number":74,"context_line":"change is merged, but before Zuul resumes processing of that pipeline."},{"line_number":75,"context_line":"It must be fast, because Zuul will not be able to make any changes to"},{"line_number":76,"context_line":"the pipeline until the job is complete."},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"One of the main benefits of running this kind of workflow in Zuul is"},{"line_number":79,"context_line":"that users will benefit from the logging and accessibility that Zuul"}],"source_content_type":"text/x-rst","patch_set":2,"id":"8a34b959_b7f59403","line":76,"range":{"start_line":75,"start_character":16,"end_line":76,"end_character":38},"in_reply_to":"72f98bcf_bb87d1b0","updated":"2025-12-08 18:41:02.000000000","message":"I believe it would be one particular queue.  I don\u0027t currently see any reason that we couldn\u0027t continue with other queues in the pipeline.","commit_id":"302c393d804f99d13f3d7c24992d318276840313"},{"author":{"_account_id":27582,"name":"Simon Westphahl","email":"simon.westphahl@bmw.de","username":"simon.westphahl"},"change_message_id":"7c0d1ca77a05fee420e0511cee05ffb0daa06a81","unresolved":false,"context_lines":[{"line_number":72,"context_line":"The key to running this kind of workload is that it must happen after"},{"line_number":73,"context_line":"the completion of the report to the code review system where the"},{"line_number":74,"context_line":"change is merged, but before Zuul resumes processing of that pipeline."},{"line_number":75,"context_line":"It must be fast, because Zuul will not be able to make any changes to"},{"line_number":76,"context_line":"the pipeline until the job is complete."},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"One of the main benefits of running this kind of workflow in Zuul is"},{"line_number":79,"context_line":"that users will benefit from the logging and accessibility that Zuul"}],"source_content_type":"text/x-rst","patch_set":2,"id":"47ad8df2_b1259881","line":76,"range":{"start_line":75,"start_character":16,"end_line":76,"end_character":38},"in_reply_to":"8a34b959_b7f59403","updated":"2025-12-10 07:56:40.000000000","message":"Acknowledged","commit_id":"302c393d804f99d13f3d7c24992d318276840313"},{"author":{"_account_id":27582,"name":"Simon Westphahl","email":"simon.westphahl@bmw.de","username":"simon.westphahl"},"change_message_id":"87fdcd6be252a3838538a4c5c3295ae93015036b","unresolved":true,"context_lines":[{"line_number":118,"context_line":""},{"line_number":119,"context_line":"* Report the change to all configured pipeline reporters"},{"line_number":120,"context_line":"* If the buildset was successful, start any reporter jobs configured for the buildset"},{"line_number":121,"context_line":"* Wait for those jobs to complete: this means that no processing of any items behind the head will happen until the jobs are complete"},{"line_number":122,"context_line":"* If the buildset failed after running the reporter jobs, cancel jobs behind the head"},{"line_number":123,"context_line":"* Record the buildset result in the SQL database"},{"line_number":124,"context_line":"* Continue processing the pipeline"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9fbf6bfd_87eab4f8","line":121,"range":{"start_line":121,"start_character":0,"end_line":121,"end_character":133},"updated":"2025-11-26 07:58:19.000000000","message":"I\u0027m wondering if we want to make that behavior configurable similar to the `job.hold-following-changes` setting.\n\nI think there could be a use-case for those reporting jobs w/o the need to hold pipeline processing until the reporting jobs have finished.\nWe could also change the behavior based on whether the reporting job is voting or not, but I\u0027d prefer to make that explicit.","commit_id":"302c393d804f99d13f3d7c24992d318276840313"},{"author":{"_account_id":1,"name":"James E. Blair","email":"jim@acmegating.com","username":"corvus"},"change_message_id":"c29159e84fa36b9292c5084f552a43eb0f98f74e","unresolved":true,"context_lines":[{"line_number":118,"context_line":""},{"line_number":119,"context_line":"* Report the change to all configured pipeline reporters"},{"line_number":120,"context_line":"* If the buildset was successful, start any reporter jobs configured for the buildset"},{"line_number":121,"context_line":"* Wait for those jobs to complete: this means that no processing of any items behind the head will happen until the jobs are complete"},{"line_number":122,"context_line":"* If the buildset failed after running the reporter jobs, cancel jobs behind the head"},{"line_number":123,"context_line":"* Record the buildset result in the SQL database"},{"line_number":124,"context_line":"* Continue processing the pipeline"}],"source_content_type":"text/x-rst","patch_set":2,"id":"d4e78429_77a267e0","line":121,"range":{"start_line":121,"start_character":0,"end_line":121,"end_character":133},"in_reply_to":"9fbf6bfd_87eab4f8","updated":"2025-12-08 18:41:02.000000000","message":"It\u0027s not immediately obvious to me that a reporting job that doesn\u0027t wait for the report is a better approach than a finalizer job that runs in the regular buildset, or the MQTT reporter.\n\nOne potential problem with not waiting is that we would potentially merge changes behind the change at the head before the change at the head has even completed reporting.  That could affect jobs that use the zuul api.  Not to mention, just the idea of making decisions before the job at the head is complete.\n\nAt any rate, I think we can discuss the underlying use cases later and see whether finalizer jobs or MQTT would be a better fit, and if we decide that reporting jobs would be a good fit, I don\u0027t think there\u0027s anything in this spec or the implementation that I would anticipate blocking that in the future.","commit_id":"302c393d804f99d13f3d7c24992d318276840313"},{"author":{"_account_id":27582,"name":"Simon Westphahl","email":"simon.westphahl@bmw.de","username":"simon.westphahl"},"change_message_id":"7c0d1ca77a05fee420e0511cee05ffb0daa06a81","unresolved":false,"context_lines":[{"line_number":118,"context_line":""},{"line_number":119,"context_line":"* Report the change to all configured pipeline reporters"},{"line_number":120,"context_line":"* If the buildset was successful, start any reporter jobs configured for the buildset"},{"line_number":121,"context_line":"* Wait for those jobs to complete: this means that no processing of any items behind the head will happen until the jobs are complete"},{"line_number":122,"context_line":"* If the buildset failed after running the reporter jobs, cancel jobs behind the head"},{"line_number":123,"context_line":"* Record the buildset result in the SQL database"},{"line_number":124,"context_line":"* Continue processing the pipeline"}],"source_content_type":"text/x-rst","patch_set":2,"id":"43edb133_3144b169","line":121,"range":{"start_line":121,"start_character":0,"end_line":121,"end_character":133},"in_reply_to":"d4e78429_77a267e0","updated":"2025-12-10 07:56:40.000000000","message":"Acknowledged","commit_id":"302c393d804f99d13f3d7c24992d318276840313"}],"doc/source/developer/specs/reporting-jobs.rst":[{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"333d213ce3e3c329abd1281c2b7cc0009e0c293b","unresolved":true,"context_lines":[{"line_number":55,"context_line":"* Change A completes testing in the gate pipeline and is merged"},{"line_number":56,"context_line":"* External system observes the merging of change A and starts updating the superproject"},{"line_number":57,"context_line":"* User approves change B and it is enqueued into Zuul"},{"line_number":58,"context_line":"* Zuul performs a repo state job to fix the state of all repos for change B"},{"line_number":59,"context_line":"* External system completes the update of the superproject"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"At the end of this process, Zuul may run jobs for change B with repo"}],"source_content_type":"text/x-rst","patch_set":1,"id":"29f2b7a7_352a4d3c","line":58,"range":{"start_line":58,"start_character":18,"end_line":58,"end_character":32},"updated":"2025-11-21 01:23:48.000000000","message":"In this case we\u0027re talking about the internal git merging and git state construction process not the user defined job builds right?","commit_id":"87005477635d5eb16f258edbde164e9010b1062e"},{"author":{"_account_id":1,"name":"James E. Blair","email":"jim@acmegating.com","username":"corvus"},"change_message_id":"9f0e39ee78db535bbd5d12ce2a0136ebadad6d19","unresolved":true,"context_lines":[{"line_number":55,"context_line":"* Change A completes testing in the gate pipeline and is merged"},{"line_number":56,"context_line":"* External system observes the merging of change A and starts updating the superproject"},{"line_number":57,"context_line":"* User approves change B and it is enqueued into Zuul"},{"line_number":58,"context_line":"* Zuul performs a repo state job to fix the state of all repos for change B"},{"line_number":59,"context_line":"* External system completes the update of the superproject"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"At the end of this process, Zuul may run jobs for change B with repo"}],"source_content_type":"text/x-rst","patch_set":1,"id":"cc88a67a_eed51dce","line":58,"in_reply_to":"29f2b7a7_352a4d3c","updated":"2025-11-21 17:47:08.000000000","message":"Correct, the \"repo state\" job runs on the merger around the time we freeze the job graph in the scheduler.","commit_id":"87005477635d5eb16f258edbde164e9010b1062e"},{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"333d213ce3e3c329abd1281c2b7cc0009e0c293b","unresolved":true,"context_lines":[{"line_number":91,"context_line":"behind it will reconfigure themselves just as if the merge operation"},{"line_number":92,"context_line":"itself failed.  That will allow them to run with the most accurate"},{"line_number":93,"context_line":"information possible, and prevent the propagation of errors to changes"},{"line_number":94,"context_line":"further back in the queue."},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"Implementation"},{"line_number":97,"context_line":"--------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"9de465dc_24e80e53","line":94,"updated":"2025-11-21 01:23:48.000000000","message":"What sort of recovery process do we think would happen in the case where the change merges but then these new special jobs fail? Assuming the failure is due to some temporary problem or a problem that is fixed do we need some sort of reenqueue process that limits the selection of the jobs to some subset based on the job type?\n\nAlternatively if the actions that failed are accounted for externally by some third party process how do we catch zuul up to this fact?","commit_id":"87005477635d5eb16f258edbde164e9010b1062e"},{"author":{"_account_id":1,"name":"James E. Blair","email":"jim@acmegating.com","username":"corvus"},"change_message_id":"9f0e39ee78db535bbd5d12ce2a0136ebadad6d19","unresolved":true,"context_lines":[{"line_number":91,"context_line":"behind it will reconfigure themselves just as if the merge operation"},{"line_number":92,"context_line":"itself failed.  That will allow them to run with the most accurate"},{"line_number":93,"context_line":"information possible, and prevent the propagation of errors to changes"},{"line_number":94,"context_line":"further back in the queue."},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"Implementation"},{"line_number":97,"context_line":"--------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"ae33c1d6_c625462a","line":94,"in_reply_to":"9de465dc_24e80e53","updated":"2025-11-21 17:47:08.000000000","message":"I believe a reporting job could be written so that the next one that runs could correct the situation (by correctly updating the superproject, etc).  It would primarily be the Zuul user\u0027s responsibility to ensure that.  Zuul\u0027s responsibility ends at ensuring that the repos it provides the job reflect reality (even if that reality is broken).\n\nI think it would be reasonable to consider the idea that if a reporting job fails, we completely empty the pipeline, and perhaps even disable it, until the situation is manually corrected.  I don\u0027t think we should do that, yet.  I think it would be good for us to get some experience with this first to see if that sort of thing is necessary.  We generally don\u0027t favor manual work over automation, so I think we should try automation first.\n\nPerhaps a user could create a special version of the reporting job that can be run to correct inconsistencies.  Then, rather than your suggestion of a special re-enqueue process, the user could push a change (to a superproject?  or some other project) that would run this corrective job.  I think that will be simpler than a special kind of re-enqueue, which may be difficult to reason about since it would be effectively saying \"re-enqueue the merge for these changes that already merged but don\u0027t run the normal jobs for them\".  That\u0027s definitely a tractable problem, and maybe one we could consider later if we think we need it, but I think \"just run this fixit job\" may be an easier solution to wrap our heads around.","commit_id":"87005477635d5eb16f258edbde164e9010b1062e"},{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"989478131e820b1c06c15a6d3566ebaf06eae553","unresolved":false,"context_lines":[{"line_number":91,"context_line":"behind it will reconfigure themselves just as if the merge operation"},{"line_number":92,"context_line":"itself failed.  That will allow them to run with the most accurate"},{"line_number":93,"context_line":"information possible, and prevent the propagation of errors to changes"},{"line_number":94,"context_line":"further back in the queue."},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"Implementation"},{"line_number":97,"context_line":"--------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"783ee07c_f5cd6a3b","line":94,"in_reply_to":"ae33c1d6_c625462a","updated":"2025-11-22 18:28:34.000000000","message":"Acknowledged","commit_id":"87005477635d5eb16f258edbde164e9010b1062e"},{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"333d213ce3e3c329abd1281c2b7cc0009e0c293b","unresolved":true,"context_lines":[{"line_number":99,"context_line":"The Zuul pipeline manager will be adjusted to do the following:"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"* Report the change to all configured pipeline reporters"},{"line_number":102,"context_line":"* If the buildset was successful, start any reporter jobs configured for the buildset"},{"line_number":103,"context_line":"* Wait for those jobs to complete: this means that no processing of any items behind the head will happen until the jobs are complete"},{"line_number":104,"context_line":"* If the buildset failed after running the reporter jobs, cancel jobs behind the head"},{"line_number":105,"context_line":"* Record the buildset result in the SQL database"}],"source_content_type":"text/x-rst","patch_set":1,"id":"11ba52dc_2b266cc4","line":102,"updated":"2025-11-21 01:23:48.000000000","message":"If multiple reporter jobs are defined in a single buildset do they run concurrently unless explicitly configured with dependencies between them? Or do we think they need to always be run in some deterministic order?","commit_id":"87005477635d5eb16f258edbde164e9010b1062e"},{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"989478131e820b1c06c15a6d3566ebaf06eae553","unresolved":false,"context_lines":[{"line_number":99,"context_line":"The Zuul pipeline manager will be adjusted to do the following:"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"* Report the change to all configured pipeline reporters"},{"line_number":102,"context_line":"* If the buildset was successful, start any reporter jobs configured for the buildset"},{"line_number":103,"context_line":"* Wait for those jobs to complete: this means that no processing of any items behind the head will happen until the jobs are complete"},{"line_number":104,"context_line":"* If the buildset failed after running the reporter jobs, cancel jobs behind the head"},{"line_number":105,"context_line":"* Record the buildset result in the SQL database"}],"source_content_type":"text/x-rst","patch_set":1,"id":"25b0471b_304ace71","line":102,"in_reply_to":"03828303_681c2528","updated":"2025-11-22 18:28:34.000000000","message":"Acknowledged","commit_id":"87005477635d5eb16f258edbde164e9010b1062e"},{"author":{"_account_id":1,"name":"James E. Blair","email":"jim@acmegating.com","username":"corvus"},"change_message_id":"9f0e39ee78db535bbd5d12ce2a0136ebadad6d19","unresolved":true,"context_lines":[{"line_number":99,"context_line":"The Zuul pipeline manager will be adjusted to do the following:"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"* Report the change to all configured pipeline reporters"},{"line_number":102,"context_line":"* If the buildset was successful, start any reporter jobs configured for the buildset"},{"line_number":103,"context_line":"* Wait for those jobs to complete: this means that no processing of any items behind the head will happen until the jobs are complete"},{"line_number":104,"context_line":"* If the buildset failed after running the reporter jobs, cancel jobs behind the head"},{"line_number":105,"context_line":"* Record the buildset result in the SQL database"}],"source_content_type":"text/x-rst","patch_set":1,"id":"03828303_681c2528","line":102,"in_reply_to":"11ba52dc_2b266cc4","updated":"2025-11-21 17:47:08.000000000","message":"I would expect them to run concurrently unless configured with dependencies -- in other words, our current behavior for jobs.  Reasoning: because reporter jobs could be used for sending chat messages, etc, which don\u0027t have an inherent sequencing, so therefore sequencing should be optional.","commit_id":"87005477635d5eb16f258edbde164e9010b1062e"},{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"333d213ce3e3c329abd1281c2b7cc0009e0c293b","unresolved":true,"context_lines":[{"line_number":117,"context_line":""},{"line_number":118,"context_line":"   - job:"},{"line_number":119,"context_line":"       name: update-superproject"},{"line_number":120,"context_line":"       reporting: true"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"When such a job is added to a project-pipeline config, the new"},{"line_number":123,"context_line":"behavior will be enabled."}],"source_content_type":"text/x-rst","patch_set":1,"id":"00916a9b_1937ebf5","line":120,"updated":"2025-11-21 01:23:48.000000000","message":"Should this be `type: reporter` to match up with initializer jobs as proposed in the parent?","commit_id":"87005477635d5eb16f258edbde164e9010b1062e"},{"author":{"_account_id":1,"name":"James E. Blair","email":"jim@acmegating.com","username":"corvus"},"change_message_id":"9f0e39ee78db535bbd5d12ce2a0136ebadad6d19","unresolved":false,"context_lines":[{"line_number":117,"context_line":""},{"line_number":118,"context_line":"   - job:"},{"line_number":119,"context_line":"       name: update-superproject"},{"line_number":120,"context_line":"       reporting: true"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"When such a job is added to a project-pipeline config, the new"},{"line_number":123,"context_line":"behavior will be enabled."}],"source_content_type":"text/x-rst","patch_set":1,"id":"8a619f63_e3fbc300","line":120,"in_reply_to":"00916a9b_1937ebf5","updated":"2025-11-21 17:47:08.000000000","message":"Yes, somehow I uploaded an earlier draft.  :(","commit_id":"87005477635d5eb16f258edbde164e9010b1062e"},{"author":{"_account_id":37112,"name":"Christoph Kulla","display_name":"Christoph Kulla","email":"christoph.kulla@de.bosch.com","username":"ckulla"},"change_message_id":"77f4d175c619e7fd86512a0ba8393a2c16ec67b7","unresolved":true,"context_lines":[{"line_number":156,"context_line":"The \"submodule1\" and \"submodule2\" projects would not be able to"},{"line_number":157,"context_line":"configure their own reporting jobs."},{"line_number":158,"context_line":""},{"line_number":159,"context_line":"In order to limit repositories prepared by the executor, the job"},{"line_number":160,"context_line":"definition will be updated to accept new attributes \"include-projects\""},{"line_number":161,"context_line":"and \"exclude-projects\":"},{"line_number":162,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"c1834b73_c34b9cd7","line":159,"updated":"2025-11-21 14:45:24.000000000","message":"This is about the repo filtering, not in scope of this spec.","commit_id":"87005477635d5eb16f258edbde164e9010b1062e"},{"author":{"_account_id":1,"name":"James E. Blair","email":"jim@acmegating.com","username":"corvus"},"change_message_id":"9f0e39ee78db535bbd5d12ce2a0136ebadad6d19","unresolved":false,"context_lines":[{"line_number":156,"context_line":"The \"submodule1\" and \"submodule2\" projects would not be able to"},{"line_number":157,"context_line":"configure their own reporting jobs."},{"line_number":158,"context_line":""},{"line_number":159,"context_line":"In order to limit repositories prepared by the executor, the job"},{"line_number":160,"context_line":"definition will be updated to accept new attributes \"include-projects\""},{"line_number":161,"context_line":"and \"exclude-projects\":"},{"line_number":162,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"2238ef55_9b969c58","line":159,"in_reply_to":"c1834b73_c34b9cd7","updated":"2025-11-21 17:47:08.000000000","message":"Yep, this was also from an earlier draft.","commit_id":"87005477635d5eb16f258edbde164e9010b1062e"},{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"333d213ce3e3c329abd1281c2b7cc0009e0c293b","unresolved":true,"context_lines":[{"line_number":170,"context_line":"       include-projects:"},{"line_number":171,"context_line":"         - superproject"},{"line_number":172,"context_line":""},{"line_number":173,"context_line":"This will only checkout the superproject within the update-superproject job."},{"line_number":174,"context_line":""},{"line_number":175,"context_line":"Limitations"},{"line_number":176,"context_line":"-----------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"17b6e225_57fcbbb2","line":173,"updated":"2025-11-21 01:23:48.000000000","message":"Would the update-superproject job need the subproject git repo state in it in order to know what to update the superproject to? Or are we expecting that to be performed via some lookup in the job (say against the code review system API?). I\u0027m wondering if we\u0027re going to potentially encourage people to over limit the job state to exclude information that they probably need.","commit_id":"87005477635d5eb16f258edbde164e9010b1062e"},{"author":{"_account_id":37112,"name":"Christoph Kulla","display_name":"Christoph Kulla","email":"christoph.kulla@de.bosch.com","username":"ckulla"},"change_message_id":"77f4d175c619e7fd86512a0ba8393a2c16ec67b7","unresolved":true,"context_lines":[{"line_number":170,"context_line":"       include-projects:"},{"line_number":171,"context_line":"         - superproject"},{"line_number":172,"context_line":""},{"line_number":173,"context_line":"This will only checkout the superproject within the update-superproject job."},{"line_number":174,"context_line":""},{"line_number":175,"context_line":"Limitations"},{"line_number":176,"context_line":"-----------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"c4815af1_2c5c0266","line":173,"in_reply_to":"17b6e225_57fcbbb2","updated":"2025-11-21 14:45:24.000000000","message":"Zuul should provide the merge commit SHAs to the reporting jobs for this purpose. Therefore the subproject repositories are not needed for the purpose of updating the superproject. Also the subproject repositories will not provide the post-merge state, but instead the speculative state.","commit_id":"87005477635d5eb16f258edbde164e9010b1062e"},{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"989478131e820b1c06c15a6d3566ebaf06eae553","unresolved":false,"context_lines":[{"line_number":170,"context_line":"       include-projects:"},{"line_number":171,"context_line":"         - superproject"},{"line_number":172,"context_line":""},{"line_number":173,"context_line":"This will only checkout the superproject within the update-superproject job."},{"line_number":174,"context_line":""},{"line_number":175,"context_line":"Limitations"},{"line_number":176,"context_line":"-----------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"80fdf081_339e1995","line":173,"in_reply_to":"c4815af1_2c5c0266","updated":"2025-11-22 18:28:34.000000000","message":"I see now that the spec notes new information will be supplied in zuul vars to the reporter job including the new merge hashes from the code review system. I think that was the critical piece of info that was missing before. But yes good point that the old git state is speculative and while it reflects what we expect to end up in the final post merge state critical details like hash values will differ.","commit_id":"87005477635d5eb16f258edbde164e9010b1062e"},{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"333d213ce3e3c329abd1281c2b7cc0009e0c293b","unresolved":true,"context_lines":[{"line_number":179,"context_line":"other pipelines that trigger when a change is merged, there will be no"},{"line_number":180,"context_line":"way to tell them to wait until the superproject is updated.  Users"},{"line_number":181,"context_line":"will need to understand this limitation, or, configure such pipelines"},{"line_number":182,"context_line":"to act on updates to the superproject only."},{"line_number":183,"context_line":""},{"line_number":184,"context_line":"Alternatives"},{"line_number":185,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"200a41a0_35832d56","line":182,"updated":"2025-11-21 01:23:48.000000000","message":"I wonder if semaphores could be given some sort of queue line jumping for these jobs to mitigate most of these concerns. Probably not necessary to solve that problem in the initial implementation as long as we\u0027re happy with the known limitation.","commit_id":"87005477635d5eb16f258edbde164e9010b1062e"},{"author":{"_account_id":1,"name":"James E. Blair","email":"jim@acmegating.com","username":"corvus"},"change_message_id":"9f0e39ee78db535bbd5d12ce2a0136ebadad6d19","unresolved":true,"context_lines":[{"line_number":179,"context_line":"other pipelines that trigger when a change is merged, there will be no"},{"line_number":180,"context_line":"way to tell them to wait until the superproject is updated.  Users"},{"line_number":181,"context_line":"will need to understand this limitation, or, configure such pipelines"},{"line_number":182,"context_line":"to act on updates to the superproject only."},{"line_number":183,"context_line":""},{"line_number":184,"context_line":"Alternatives"},{"line_number":185,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7aa0b07d_142eb947","line":182,"in_reply_to":"200a41a0_35832d56","updated":"2025-11-21 17:47:08.000000000","message":"That\u0027s a good idea.  I also like deferring it for now since I think the limitation is okay.\n\nI talked with Albin a while ago about a new type of zuul trigger that fires when a queue item is reported on another pipeline (to effectively set up pipeline chaining).  I think that if we did that, that would also solve this problem, because I would not expect that trigger to fire until after the reporting jobs finished.","commit_id":"87005477635d5eb16f258edbde164e9010b1062e"},{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"989478131e820b1c06c15a6d3566ebaf06eae553","unresolved":false,"context_lines":[{"line_number":179,"context_line":"other pipelines that trigger when a change is merged, there will be no"},{"line_number":180,"context_line":"way to tell them to wait until the superproject is updated.  Users"},{"line_number":181,"context_line":"will need to understand this limitation, or, configure such pipelines"},{"line_number":182,"context_line":"to act on updates to the superproject only."},{"line_number":183,"context_line":""},{"line_number":184,"context_line":"Alternatives"},{"line_number":185,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"dc4046e2_f15d3719","line":182,"in_reply_to":"7aa0b07d_142eb947","updated":"2025-11-22 18:28:34.000000000","message":"Acknowledged","commit_id":"87005477635d5eb16f258edbde164e9010b1062e"}]}
