)]}'
{"pbr/packaging.py":[{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"d3f748b6c0390b1eb60833f03cd127895ce1ff09","unresolved":false,"context_lines":[{"line_number":807,"context_line":"    _handle_symbol(\u0027api-break\u0027, symbols, \u0027major\u0027)"},{"line_number":808,"context_line":"    for symbol in symbols:"},{"line_number":809,"context_line":"        log.info(\u0027[pbr] Unknown sem-ver symbol %r\u0027 % symbol)"},{"line_number":810,"context_line":"    result.pop(\u0027patch\u0027, None)"},{"line_number":811,"context_line":"    return result"},{"line_number":812,"context_line":""},{"line_number":813,"context_line":""}],"source_content_type":"text/x-python","patch_set":17,"id":"1abeadc6_51e69817","line":810,"updated":"2014-08-25 20:54:16.000000000","message":"It took me a while to track down why the patch result was being removed here. I think it\u0027s worth adding a comment, since you go to the trouble of handling the bugfix symbol above.","commit_id":"3436887f6ca869a19e84cf9480a9293987208f09"},{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"a23e2efcb4f61117bf1778606b81cbf343509612","unresolved":false,"context_lines":[{"line_number":792,"context_line":"    changelog \u003d _run_git_command([\u0027log\u0027, version_spec], git_dir)"},{"line_number":793,"context_line":"    header_len \u003d len(\u0027    sem-ver:\u0027)"},{"line_number":794,"context_line":"    commands \u003d [line[header_len:].strip() for line in changelog.split(\u0027\\n\u0027)"},{"line_number":795,"context_line":"                if line.startswith(\u0027    sem-ver:\u0027)]"},{"line_number":796,"context_line":"    symbols \u003d set()"},{"line_number":797,"context_line":"    for command in commands:"},{"line_number":798,"context_line":"        symbols.update([symbol.strip() for symbol in command.split(\u0027,\u0027)])"}],"source_content_type":"text/x-python","patch_set":18,"id":"1abeadc6_e03dab90","line":795,"updated":"2014-08-27 23:34:52.000000000","message":"Would it be better to match a regex of \u0027^\\s*sem-ver:\u0027 to catch potential extra whitespace or a change in the amount of whitespace emitted by git?","commit_id":"c1c99a7c317c5dc4bdac9a9f8f10e96e5a658b8f"},{"author":{"_account_id":4190,"name":"lifeless","email":"robertc@robertcollins.net","username":"lifeless"},"change_message_id":"4da27f63f8a2bf9cdc5ebee2cea6038fcd9be73a","unresolved":false,"context_lines":[{"line_number":792,"context_line":"    changelog \u003d _run_git_command([\u0027log\u0027, version_spec], git_dir)"},{"line_number":793,"context_line":"    header_len \u003d len(\u0027    sem-ver:\u0027)"},{"line_number":794,"context_line":"    commands \u003d [line[header_len:].strip() for line in changelog.split(\u0027\\n\u0027)"},{"line_number":795,"context_line":"                if line.startswith(\u0027    sem-ver:\u0027)]"},{"line_number":796,"context_line":"    symbols \u003d set()"},{"line_number":797,"context_line":"    for command in commands:"},{"line_number":798,"context_line":"        symbols.update([symbol.strip() for symbol in command.split(\u0027,\u0027)])"}],"source_content_type":"text/x-python","patch_set":18,"id":"1abeadc6_c02d0f48","line":795,"in_reply_to":"1abeadc6_e03dab90","updated":"2014-08-27 23:41:18.000000000","message":"we could if you prefer, but git is pretty robust here. The failure mode if git changes is that the headers are not processed - e.g. lower than required versioned are autogenerated.","commit_id":"c1c99a7c317c5dc4bdac9a9f8f10e96e5a658b8f"},{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"a23e2efcb4f61117bf1778606b81cbf343509612","unresolved":false,"context_lines":[{"line_number":795,"context_line":"                if line.startswith(\u0027    sem-ver:\u0027)]"},{"line_number":796,"context_line":"    symbols \u003d set()"},{"line_number":797,"context_line":"    for command in commands:"},{"line_number":798,"context_line":"        symbols.update([symbol.strip() for symbol in command.split(\u0027,\u0027)])"},{"line_number":799,"context_line":""},{"line_number":800,"context_line":"    def _handle_symbol(symbol, symbols, impact):"},{"line_number":801,"context_line":"        if symbol in symbols:"}],"source_content_type":"text/x-python","patch_set":18,"id":"1abeadc6_003f0788","line":798,"updated":"2014-08-27 23:34:52.000000000","message":"We should document the comma delimitability of these symbols.","commit_id":"c1c99a7c317c5dc4bdac9a9f8f10e96e5a658b8f"},{"author":{"_account_id":4190,"name":"lifeless","email":"robertc@robertcollins.net","username":"lifeless"},"change_message_id":"4da27f63f8a2bf9cdc5ebee2cea6038fcd9be73a","unresolved":false,"context_lines":[{"line_number":795,"context_line":"                if line.startswith(\u0027    sem-ver:\u0027)]"},{"line_number":796,"context_line":"    symbols \u003d set()"},{"line_number":797,"context_line":"    for command in commands:"},{"line_number":798,"context_line":"        symbols.update([symbol.strip() for symbol in command.split(\u0027,\u0027)])"},{"line_number":799,"context_line":""},{"line_number":800,"context_line":"    def _handle_symbol(symbol, symbols, impact):"},{"line_number":801,"context_line":"        if symbol in symbols:"}],"source_content_type":"text/x-python","patch_set":18,"id":"1abeadc6_601efb0d","line":798,"in_reply_to":"1abeadc6_003f0788","updated":"2014-08-27 23:41:18.000000000","message":"We do already in the spec; I want to do much more docs in future - these patchesets have been playing catchup :(.","commit_id":"c1c99a7c317c5dc4bdac9a9f8f10e96e5a658b8f"},{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"a23e2efcb4f61117bf1778606b81cbf343509612","unresolved":false,"context_lines":[{"line_number":809,"context_line":"        log.info(\u0027[pbr] Unknown sem-ver symbol %r\u0027 % symbol)"},{"line_number":810,"context_line":"    # We don\u0027t want patch in the kwargs since it is not a keyword argument -"},{"line_number":811,"context_line":"    # its the default minimum increment."},{"line_number":812,"context_line":"    result.pop(\u0027patch\u0027, None)"},{"line_number":813,"context_line":"    return result"},{"line_number":814,"context_line":""},{"line_number":815,"context_line":""}],"source_content_type":"text/x-python","patch_set":18,"id":"1abeadc6_2044031a","line":812,"updated":"2014-08-27 23:34:52.000000000","message":"Out of curiousity is pop preferred over del because you can ask for forgiveness with None if it doesn\u0027t exist?","commit_id":"c1c99a7c317c5dc4bdac9a9f8f10e96e5a658b8f"},{"author":{"_account_id":4190,"name":"lifeless","email":"robertc@robertcollins.net","username":"lifeless"},"change_message_id":"4da27f63f8a2bf9cdc5ebee2cea6038fcd9be73a","unresolved":false,"context_lines":[{"line_number":809,"context_line":"        log.info(\u0027[pbr] Unknown sem-ver symbol %r\u0027 % symbol)"},{"line_number":810,"context_line":"    # We don\u0027t want patch in the kwargs since it is not a keyword argument -"},{"line_number":811,"context_line":"    # its the default minimum increment."},{"line_number":812,"context_line":"    result.pop(\u0027patch\u0027, None)"},{"line_number":813,"context_line":"    return result"},{"line_number":814,"context_line":""},{"line_number":815,"context_line":""}],"source_content_type":"text/x-python","patch_set":18,"id":"1abeadc6_20b7a3f6","line":812,"in_reply_to":"1abeadc6_2044031a","updated":"2014-08-27 23:41:18.000000000","message":"Yes. \n\n dict.pop(\u0027foo\u0027, \u0027bar) \u003d\u003d set.discard(\u0027foo\u0027), vs\n\n if \u0027foo\u0027 in dict:\n      del dict[\u0027foo\u0027]\n\n or\n \n try:\n      del dict[\u0027foo\u0027]\n except KeyError:\n      pass","commit_id":"c1c99a7c317c5dc4bdac9a9f8f10e96e5a658b8f"}]}
