)]}'
{"pbr/version.py":[{"author":{"_account_id":4190,"name":"lifeless","email":"robertc@robertcollins.net","username":"lifeless"},"change_message_id":"cd4c3441dd2059431031686b200d9381bdc5e032","unresolved":false,"context_lines":[{"line_number":152,"context_line":"            if c.isdigit():"},{"line_number":153,"context_line":"                components.append(c)"},{"line_number":154,"context_line":"            else:"},{"line_number":155,"context_line":"                break"},{"line_number":156,"context_line":"        digit_len \u003d len(components)"},{"line_number":157,"context_line":"        if digit_len \u003d\u003d 0:"},{"line_number":158,"context_line":"            raise ValueError(\"Invalid version %r\" % version_string)"}],"source_content_type":"text/x-python","patch_set":1,"id":"5a18252c_fa5a4f82","line":155,"updated":"2016-04-13 11:09:42.000000000","message":"I\u0027m worried that this is throwing stuff away silently. We already ignore invalid tags: why is that not working for your repo?","commit_id":"9208c97256d66dda08c1689387d7aae81bb4d719"},{"author":{"_account_id":2813,"name":"Mehdi Abaakouk","email":"sileht@sileht.net","username":"sileht"},"change_message_id":"e719e5a2f54c9762681e7614942eda96a576e075","unresolved":false,"context_lines":[{"line_number":152,"context_line":"            if c.isdigit():"},{"line_number":153,"context_line":"                components.append(c)"},{"line_number":154,"context_line":"            else:"},{"line_number":155,"context_line":"                break"},{"line_number":156,"context_line":"        digit_len \u003d len(components)"},{"line_number":157,"context_line":"        if digit_len \u003d\u003d 0:"},{"line_number":158,"context_line":"            raise ValueError(\"Invalid version %r\" % version_string)"}],"source_content_type":"text/x-python","patch_set":1,"id":"5a18252c_6eebee78","line":155,"in_reply_to":"5a18252c_59b9a378","updated":"2016-04-14 07:22:12.000000000","message":"2015.1+1.0.rc0 looks a weird version string, what the semantic version do you expected to be extracted from this string ?\n\nBefore, we was throwing for this string:\n\n  IndexError: string index out of range\n\nSince https://review.openstack.org/#/c/305550/, we throw:\n\n  ValueError: Invalid version \u00272015.1+1.0.rc0\u0027\n\nYour fix returns:\n\n  ValueError: Unknown remainder [\u0027+1\u0027, \u00270\u0027, \u0027rc0\u0027] in \u00272015.1+1.0.rc0\n\nI don\u0027t see what does this code fix/enhance.","commit_id":"9208c97256d66dda08c1689387d7aae81bb4d719"},{"author":{"_account_id":6854,"name":"YAMAMOTO Takashi","email":"yamamoto@midokura.com","username":"yamamoto"},"change_message_id":"bc946a02eea309197dcb1b673c2913c1ad644aca","unresolved":false,"context_lines":[{"line_number":152,"context_line":"            if c.isdigit():"},{"line_number":153,"context_line":"                components.append(c)"},{"line_number":154,"context_line":"            else:"},{"line_number":155,"context_line":"                break"},{"line_number":156,"context_line":"        digit_len \u003d len(components)"},{"line_number":157,"context_line":"        if digit_len \u003d\u003d 0:"},{"line_number":158,"context_line":"            raise ValueError(\"Invalid version %r\" % version_string)"}],"source_content_type":"text/x-python","patch_set":1,"id":"5a18252c_a7c9a95b","line":155,"in_reply_to":"5a18252c_6eebee78","updated":"2016-04-14 08:19:25.000000000","message":"what i expect is ValueError.\n\nto me https://review.openstack.org/#/c/305550/\nlooks like a loose solution.  while it might work for\nthe particular case, if an unrecognized version string\nends up with IndexError is just a matter of luck.","commit_id":"9208c97256d66dda08c1689387d7aae81bb4d719"},{"author":{"_account_id":6854,"name":"YAMAMOTO Takashi","email":"yamamoto@midokura.com","username":"yamamoto"},"change_message_id":"ae3d60a35454e9e3052ae0844feeff6ac4f46b00","unresolved":false,"context_lines":[{"line_number":152,"context_line":"            if c.isdigit():"},{"line_number":153,"context_line":"                components.append(c)"},{"line_number":154,"context_line":"            else:"},{"line_number":155,"context_line":"                break"},{"line_number":156,"context_line":"        digit_len \u003d len(components)"},{"line_number":157,"context_line":"        if digit_len \u003d\u003d 0:"},{"line_number":158,"context_line":"            raise ValueError(\"Invalid version %r\" % version_string)"}],"source_content_type":"text/x-python","patch_set":1,"id":"5a18252c_59b9a378","line":155,"in_reply_to":"5a18252c_fa5a4f82","updated":"2016-04-14 04:31:06.000000000","message":"the rest of components will be taken from input_components below.\neg. L.171\n\na problem in the original coding is that it takes\nnon-consecutive components.\neg. 1 and 2 from 1.a.2","commit_id":"9208c97256d66dda08c1689387d7aae81bb4d719"}]}
