)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":35923,"name":"Andrei Dmitriev","email":"andrei.dmitriev@nokia.com","username":"andrei-dmitriev-nokia","status":"Nokia"},"change_message_id":"4390f6e9b173db48389c8ad07406ee907e1f63d9","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"61f5cd9e_64a0f7dd","updated":"2025-11-19 18:28:53.000000000","message":"Will be useful for us, we have very complex rules to decide what jobs to run (based on coverage results, affected binaries to rebuild, etc.), so having init job that could do that officially will make us use less patches on top of community version.","commit_id":"850e996d30dd12dbc3f50c1cb1337e567ac6d1b2"}],"doc/source/developer/specs/init-jobs.rst":[{"author":{"_account_id":27582,"name":"Simon Westphahl","email":"simon.westphahl@bmw.de","username":"simon.westphahl"},"change_message_id":"44125c818c6f40b2d19104f5bda9bca44a028a41","unresolved":true,"context_lines":[{"line_number":76,"context_line":"* init2"},{"line_number":77,"context_line":"* testjob"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"There will be no restriction on the use of dependencies by or against"},{"line_number":80,"context_line":"initializer jobs: users will be free to construct explicit"},{"line_number":81,"context_line":"dependencies in the usual manner."},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"User Interface"},{"line_number":84,"context_line":"--------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"644af986_7ce86e28","line":81,"range":{"start_line":79,"start_character":0,"end_line":81,"end_character":33},"updated":"2025-10-31 06:48:25.000000000","message":"I think there will be a practical restriction in that init jobs can not depend on non-init jobs as those have an implicit dependency on all init jobs.\n\nSo having an init job depend on a non-init job will create a dependency cycle that Zuul will complain about.","commit_id":"d1a19bb015359ae9e6f710d9c65b0cb422b83347"},{"author":{"_account_id":27582,"name":"Simon Westphahl","email":"simon.westphahl@bmw.de","username":"simon.westphahl"},"change_message_id":"bea5268c6817922022519c05ecf0354e4c1bdcac","unresolved":false,"context_lines":[{"line_number":76,"context_line":"* init2"},{"line_number":77,"context_line":"* testjob"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"There will be no restriction on the use of dependencies by or against"},{"line_number":80,"context_line":"initializer jobs: users will be free to construct explicit"},{"line_number":81,"context_line":"dependencies in the usual manner."},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"User Interface"},{"line_number":84,"context_line":"--------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"b62bcd8a_18420223","line":81,"range":{"start_line":79,"start_character":0,"end_line":81,"end_character":33},"in_reply_to":"644af986_7ce86e28","updated":"2025-11-19 08:18:33.000000000","message":"Acknowledged","commit_id":"d1a19bb015359ae9e6f710d9c65b0cb422b83347"},{"author":{"_account_id":1,"name":"James E. Blair","email":"jim@acmegating.com","username":"corvus"},"change_message_id":"ace82f39c955dff86d2a0bc1b20909d1619931e9","unresolved":false,"context_lines":[{"line_number":78,"context_line":""},{"line_number":79,"context_line":"There will be no restriction on the use of dependencies by or against"},{"line_number":80,"context_line":"initializer jobs: users will be free to construct explicit"},{"line_number":81,"context_line":"dependencies in the usual manner."},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"User Interface"},{"line_number":84,"context_line":"--------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"db29f814_78e52c14","line":81,"in_reply_to":"644af986_7ce86e28","updated":"2025-11-18 21:08:33.000000000","message":"Yep.  I added a discussion of that to the spec.","commit_id":"d1a19bb015359ae9e6f710d9c65b0cb422b83347"},{"author":{"_account_id":5263,"name":"Jeremy Stanley","display_name":"fungi","email":"fungi@yuggoth.org","username":"fungi","status":"missing, presumed fed"},"change_message_id":"56b37603d0dd09116dbe48059e2341ff8e5aaf8a","unresolved":false,"context_lines":[{"line_number":41,"context_line":""},{"line_number":42,"context_line":"To simplify construction of dependencies, we can add a new type of job"},{"line_number":43,"context_line":"to Zuul that we will call an `initializer job`.  Modeled after the \"init"},{"line_number":44,"context_line":"container\" in Kubernetes, or even the class initializer in object"},{"line_number":45,"context_line":"oriented programming, it will run at the start of a buildset before"},{"line_number":46,"context_line":"any other jobs."},{"line_number":47,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"00a91747_234dc238","line":44,"updated":"2025-11-21 19:16:41.000000000","message":"The first reference that came to my mind was PID #1 in UNIX System V.","commit_id":"850e996d30dd12dbc3f50c1cb1337e567ac6d1b2"},{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"45a554e1f2b60269632c56072ad64b91b9379f51","unresolved":true,"context_lines":[{"line_number":69,"context_line":"     testjob -\u003e init2;"},{"line_number":70,"context_line":"   }"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"The result will be that the jobs run to completion individually in the"},{"line_number":73,"context_line":"following sequence:"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"* init1"}],"source_content_type":"text/x-rst","patch_set":3,"id":"20ae98d7_0ab07ce7","line":72,"range":{"start_line":72,"start_character":24,"end_line":72,"end_character":63},"updated":"2025-11-20 17:53:08.000000000","message":"In the current graph construction and execution of builds we allow a paused build to satisfy the dependency of a subsequent build. Elsewhere in this spec it is noted that `behavior will be exactly as if the user had\nexplicitly specified these links` I think that means we will preserve the pausing behavior here as well. Is that the case?\n\nShould we clarify in this statement that `jobs will run to completion or until paused`?","commit_id":"850e996d30dd12dbc3f50c1cb1337e567ac6d1b2"},{"author":{"_account_id":1,"name":"James E. Blair","email":"jim@acmegating.com","username":"corvus"},"change_message_id":"609144daec89a01e9be8354f36be2720aba7eb5d","unresolved":false,"context_lines":[{"line_number":69,"context_line":"     testjob -\u003e init2;"},{"line_number":70,"context_line":"   }"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"The result will be that the jobs run to completion individually in the"},{"line_number":73,"context_line":"following sequence:"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"* init1"}],"source_content_type":"text/x-rst","patch_set":3,"id":"4feb848e_a2fd03e0","line":72,"in_reply_to":"20ae98d7_0ab07ce7","updated":"2025-11-20 22:20:32.000000000","message":"Yes that\u0027s a correct interpretation.  The main goal is to be a syntactic shortcut, so that people don\u0027t need to constantly tweak the job graphs for something that should always run first.\n\nI could imagine a situation where all jobs were based on container builds and therefore someone decides to make a buildset registry an init job.\n\nI phrased the spec the way I did to try to convey that: so that we don\u0027t have to explicitly aknowledge each of the things that don\u0027t change.  So I\u0027d like to acknowledge your point and say that yes that\u0027s included in the behavior that will be the same, but we probably don\u0027t need to update the spec.","commit_id":"850e996d30dd12dbc3f50c1cb1337e567ac6d1b2"},{"author":{"_account_id":5263,"name":"Jeremy Stanley","display_name":"fungi","email":"fungi@yuggoth.org","username":"fungi","status":"missing, presumed fed"},"change_message_id":"56b37603d0dd09116dbe48059e2341ff8e5aaf8a","unresolved":false,"context_lines":[{"line_number":152,"context_line":"   flag that means something else.  We could call the \"finalizer\" a"},{"line_number":153,"context_line":"   \"destructor\" but that suggests a purpose that may not match what"},{"line_number":154,"context_line":"   the job actually does.  Therefore, \"finalizer\" seems the best name"},{"line_number":155,"context_line":"   for that, and \"initializer\" seems the best complimentary name."},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"   We don\u0027t expect users to have to type it that often anyway."},{"line_number":158,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"d4fb7629_ef0fca1b","line":155,"updated":"2025-11-21 19:16:41.000000000","message":"This also raises the question of why not \"reporter job\" instead of \"reporting job\"? Perhaps to disambiguate from reporter drivers.","commit_id":"850e996d30dd12dbc3f50c1cb1337e567ac6d1b2"},{"author":{"_account_id":1,"name":"James E. Blair","email":"jim@acmegating.com","username":"corvus"},"change_message_id":"1d24ae60bb925ab211823da74655029ab39616d5","unresolved":false,"context_lines":[{"line_number":152,"context_line":"   flag that means something else.  We could call the \"finalizer\" a"},{"line_number":153,"context_line":"   \"destructor\" but that suggests a purpose that may not match what"},{"line_number":154,"context_line":"   the job actually does.  Therefore, \"finalizer\" seems the best name"},{"line_number":155,"context_line":"   for that, and \"initializer\" seems the best complimentary name."},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"   We don\u0027t expect users to have to type it that often anyway."},{"line_number":158,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"6ac49fa0_f6f1996a","line":155,"in_reply_to":"d4fb7629_ef0fca1b","updated":"2025-12-02 22:29:03.000000000","message":"I actually did make that change on the \"reporter job\" spec: https://review.opendev.org/967937","commit_id":"850e996d30dd12dbc3f50c1cb1337e567ac6d1b2"}]}
