)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":1,"name":"James E. Blair","email":"jim@acmegating.com","username":"corvus"},"change_message_id":"cf8f4353c608e1b8e742afa37b98073355313242","unresolved":false,"context_lines":[{"line_number":9,"context_line":"This will improve the navigation and overall readability of the code."},{"line_number":10,"context_line":"It\u0027s kept as a separate change but mainly touches the parts that are"},{"line_number":11,"context_line":"somehow relevant for the builds via ZooKeeper change that follows later"},{"line_number":12,"context_line":"on."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"One thing we should keep in mind: The ConnectionRegistry and the"},{"line_number":15,"context_line":"Scheduler should always be imported conditionally when only used for"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":40,"id":"03ae8f3b_8c96ac39","line":12,"updated":"2021-02-21 15:17:11.000000000","message":"I think even some folks strongly in favor of type annotations will agree with me that, due to their awkward syntax, they make the code harder to read (even if they make it more comprehensible).  Anyway, be careful putting assertions like this in commit messages.  While they make the code easier to work with in your editor, they make it harder for others to read.","commit_id":"0d194b2c2e02d58e965304c47052bb531f0252ab"},{"author":{"_account_id":30637,"name":"Jan Kubovy","email":"jan.kubovy@bmw.de","username":"kubovy"},"change_message_id":"a94ddd5225bcf110a94970bb5230246d0ef1e2fc","unresolved":false,"context_lines":[{"line_number":9,"context_line":"This will improve the navigation and overall readability of the code."},{"line_number":10,"context_line":"It\u0027s kept as a separate change but mainly touches the parts that are"},{"line_number":11,"context_line":"somehow relevant for the builds via ZooKeeper change that follows later"},{"line_number":12,"context_line":"on."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"One thing we should keep in mind: The ConnectionRegistry and the"},{"line_number":15,"context_line":"Scheduler should always be imported conditionally when only used for"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":40,"id":"1a747d9b_ef455dd4","line":12,"in_reply_to":"03ae8f3b_8c96ac39","updated":"2021-03-10 16:30:26.000000000","message":"I dont\u0027t agree. Could you clarify what do you mean by awkward syntax? To me is seems more or less like common syntax in any other language. Is \"self.jobdir: Optional[JobDir] \u003d None\" harder to read than \"self.jobdir \u003d None\"? Seems to me in respect to the the conversation in the mailing list (http://lists.zuul-ci.org/pipermail/zuul-discuss/2021-February/thread.html#1504) that dropping this has no real base. I don\u0027t think that only my editor can benefit from type annotations. I fail to understand why someone would think that clarifying the type on declaration is a bad think.","commit_id":"0d194b2c2e02d58e965304c47052bb531f0252ab"}],"tests/base.py":[{"author":{"_account_id":1,"name":"James E. Blair","email":"jim@acmegating.com","username":"corvus"},"change_message_id":"cf8f4353c608e1b8e742afa37b98073355313242","unresolved":false,"context_lines":[{"line_number":2833,"context_line":"        self.unique: str \u003d self.parameters[\u0027zuul\u0027][\u0027build\u0027]"},{"line_number":2834,"context_line":"        self.pipeline: str \u003d self.parameters[\u0027zuul\u0027][\u0027pipeline\u0027]"},{"line_number":2835,"context_line":"        self.project: str \u003d self.parameters[\u0027zuul\u0027][\u0027project\u0027][\u0027name\u0027]"},{"line_number":2836,"context_line":"        self.name: str \u003d self.parameters[\u0027job\u0027]"},{"line_number":2837,"context_line":"        self.wait_condition \u003d threading.Condition()"},{"line_number":2838,"context_line":"        self.waiting \u003d False"},{"line_number":2839,"context_line":"        self.paused \u003d False"}],"source_content_type":"text/x-python","patch_set":40,"id":"bd56fb37_e851c76c","line":2836,"updated":"2021-02-21 15:17:11.000000000","message":"Based on our email thread, let\u0027s drop the variable annotations and stick to function signatures.","commit_id":"0d194b2c2e02d58e965304c47052bb531f0252ab"},{"author":{"_account_id":27582,"name":"Simon Westphahl","email":"simon.westphahl@bmw.de","username":"simon.westphahl"},"change_message_id":"06212ce02a732ea15e6127cdfb2d04e9a0eff1db","unresolved":false,"context_lines":[{"line_number":2833,"context_line":"        self.unique: str \u003d self.parameters[\u0027zuul\u0027][\u0027build\u0027]"},{"line_number":2834,"context_line":"        self.pipeline: str \u003d self.parameters[\u0027zuul\u0027][\u0027pipeline\u0027]"},{"line_number":2835,"context_line":"        self.project: str \u003d self.parameters[\u0027zuul\u0027][\u0027project\u0027][\u0027name\u0027]"},{"line_number":2836,"context_line":"        self.name: str \u003d self.parameters[\u0027job\u0027]"},{"line_number":2837,"context_line":"        self.wait_condition \u003d threading.Condition()"},{"line_number":2838,"context_line":"        self.waiting \u003d False"},{"line_number":2839,"context_line":"        self.paused \u003d False"}],"source_content_type":"text/x-python","patch_set":40,"id":"d79b44d5_c37f458b","line":2836,"in_reply_to":"bd56fb37_e851c76c","updated":"2021-03-01 09:30:09.000000000","message":"In this case we are setting instance level attributes where the type can\u0027t be inferred. I think the __init__ should be an exception to that rule as we are otherwise loosing a lot of the benefits of type annotations since the types can\u0027t be inferred automatically. This should mainly apply to optional attributes and values coming from opaque data structures.","commit_id":"0d194b2c2e02d58e965304c47052bb531f0252ab"}],"zuul/configloader.py":[{"author":{"_account_id":27582,"name":"Simon Westphahl","email":"simon.westphahl@bmw.de","username":"simon.westphahl"},"change_message_id":"de9d79e7efeab5d30cccc9daac719337623b5adf","unresolved":false,"context_lines":[{"line_number":684,"context_line":"        self.pcontext \u003d pcontext"},{"line_number":685,"context_line":""},{"line_number":686,"context_line":"    def fromYaml(self, conf: Dict[str, Any], project_pipeline: bool\u003dFalse,"},{"line_number":687,"context_line":"                 name: bool\u003dNone, validate: bool\u003dTrue) -\u003e model.Job:"},{"line_number":688,"context_line":"        if validate:"},{"line_number":689,"context_line":"            self.schema(conf)"},{"line_number":690,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"9f560f44_ed34b1fc","line":687,"updated":"2020-10-07 09:57:33.000000000","message":"Shouldn\u0027t this be:\n\n    name: Optional[str] \u003d None","commit_id":"e9888b7300acd36aca6b304866a753e5faf7633b"},{"author":{"_account_id":30637,"name":"Jan Kubovy","email":"jan.kubovy@bmw.de","username":"kubovy"},"change_message_id":"aaeb70b4bbac22dec16bf9dc04c238027d2ba52c","unresolved":false,"context_lines":[{"line_number":684,"context_line":"        self.pcontext \u003d pcontext"},{"line_number":685,"context_line":""},{"line_number":686,"context_line":"    def fromYaml(self, conf: Dict[str, Any], project_pipeline: bool\u003dFalse,"},{"line_number":687,"context_line":"                 name: bool\u003dNone, validate: bool\u003dTrue) -\u003e model.Job:"},{"line_number":688,"context_line":"        if validate:"},{"line_number":689,"context_line":"            self.schema(conf)"},{"line_number":690,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"9f560f44_5613aa59","line":687,"in_reply_to":"9f560f44_ed34b1fc","updated":"2020-10-07 12:43:15.000000000","message":"Yes it should B-)","commit_id":"e9888b7300acd36aca6b304866a753e5faf7633b"}],"zuul/executor/server.py":[{"author":{"_account_id":27582,"name":"Simon Westphahl","email":"simon.westphahl@bmw.de","username":"simon.westphahl"},"change_message_id":"de9d79e7efeab5d30cccc9daac719337623b5adf","unresolved":false,"context_lines":[{"line_number":2643,"context_line":"                if subprocess.Popen([\"rm\", \"-Rf\", jobdir]).wait():"},{"line_number":2644,"context_line":"                    raise RuntimeError(\"Couldn\u0027t delete: \" + jobdir)"},{"line_number":2645,"context_line":""},{"line_number":2646,"context_line":"        self.job_workers: Dict[str, Union[Any, AnsibleJob]] \u003d {}"},{"line_number":2647,"context_line":"        self.disk_accountant \u003d DiskAccountant(self.jobdir_root,"},{"line_number":2648,"context_line":"                                              self.disk_limit_per_job,"},{"line_number":2649,"context_line":"                                              self.stopJobDiskFull,"}],"source_content_type":"text/x-python","patch_set":16,"id":"9f560f44_5041f235","line":2646,"updated":"2020-10-07 09:57:33.000000000","message":"Is there a specific reason to have a union of Any and AnsibleJob?","commit_id":"e9888b7300acd36aca6b304866a753e5faf7633b"},{"author":{"_account_id":30637,"name":"Jan Kubovy","email":"jan.kubovy@bmw.de","username":"kubovy"},"change_message_id":"aaeb70b4bbac22dec16bf9dc04c238027d2ba52c","unresolved":false,"context_lines":[{"line_number":2643,"context_line":"                if subprocess.Popen([\"rm\", \"-Rf\", jobdir]).wait():"},{"line_number":2644,"context_line":"                    raise RuntimeError(\"Couldn\u0027t delete: \" + jobdir)"},{"line_number":2645,"context_line":""},{"line_number":2646,"context_line":"        self.job_workers: Dict[str, Union[Any, AnsibleJob]] \u003d {}"},{"line_number":2647,"context_line":"        self.disk_accountant \u003d DiskAccountant(self.jobdir_root,"},{"line_number":2648,"context_line":"                                              self.disk_limit_per_job,"},{"line_number":2649,"context_line":"                                              self.stopJobDiskFull,"}],"source_content_type":"text/x-python","patch_set":16,"id":"9f560f44_d655fafa","line":2646,"in_reply_to":"9f560f44_5041f235","updated":"2020-10-07 12:43:15.000000000","message":"Done","commit_id":"e9888b7300acd36aca6b304866a753e5faf7633b"}],"zuul/manager/__init__.py":[{"author":{"_account_id":27582,"name":"Simon Westphahl","email":"simon.westphahl@bmw.de","username":"simon.westphahl"},"change_message_id":"de9d79e7efeab5d30cccc9daac719337623b5adf","unresolved":false,"context_lines":[{"line_number":52,"context_line":""},{"line_number":53,"context_line":"    changes_merge: bool \u003d False  # Default behavior"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"    def __init__(self, sched, pipeline: Pipeline):"},{"line_number":56,"context_line":"        self.log \u003d logging.getLogger(\"zuul.Pipeline.%s.%s\" %"},{"line_number":57,"context_line":"                                     (pipeline.tenant.name,"},{"line_number":58,"context_line":"                                      pipeline.name,))"}],"source_content_type":"text/x-python","patch_set":16,"id":"9f560f44_d0a342fe","line":55,"updated":"2020-10-07 09:57:33.000000000","message":"Maybe you can annotate the scheduler here as well","commit_id":"e9888b7300acd36aca6b304866a753e5faf7633b"},{"author":{"_account_id":30637,"name":"Jan Kubovy","email":"jan.kubovy@bmw.de","username":"kubovy"},"change_message_id":"25016e37a84b1130a3194a176e5c5ba126d5f731","unresolved":false,"context_lines":[{"line_number":52,"context_line":""},{"line_number":53,"context_line":"    changes_merge: bool \u003d False  # Default behavior"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"    def __init__(self, sched, pipeline: Pipeline):"},{"line_number":56,"context_line":"        self.log \u003d logging.getLogger(\"zuul.Pipeline.%s.%s\" %"},{"line_number":57,"context_line":"                                     (pipeline.tenant.name,"},{"line_number":58,"context_line":"                                      pipeline.name,))"}],"source_content_type":"text/x-python","patch_set":16,"id":"9f560f44_01c60e9d","line":55,"in_reply_to":"9f560f44_363ef6b8","updated":"2020-10-07 13:27:27.000000000","message":"No, this breaks docs.","commit_id":"e9888b7300acd36aca6b304866a753e5faf7633b"},{"author":{"_account_id":30637,"name":"Jan Kubovy","email":"jan.kubovy@bmw.de","username":"kubovy"},"change_message_id":"aaeb70b4bbac22dec16bf9dc04c238027d2ba52c","unresolved":false,"context_lines":[{"line_number":52,"context_line":""},{"line_number":53,"context_line":"    changes_merge: bool \u003d False  # Default behavior"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"    def __init__(self, sched, pipeline: Pipeline):"},{"line_number":56,"context_line":"        self.log \u003d logging.getLogger(\"zuul.Pipeline.%s.%s\" %"},{"line_number":57,"context_line":"                                     (pipeline.tenant.name,"},{"line_number":58,"context_line":"                                      pipeline.name,))"}],"source_content_type":"text/x-python","patch_set":16,"id":"9f560f44_363ef6b8","line":55,"in_reply_to":"9f560f44_d0a342fe","updated":"2020-10-07 12:43:15.000000000","message":"Done","commit_id":"e9888b7300acd36aca6b304866a753e5faf7633b"}]}
