)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":7118,"name":"Ian Wienand","email":"iwienand@redhat.com","username":"iwienand"},"change_message_id":"e83bb520f397d35242eea057a1dfbf59141510ff","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"package-installs doesn\u0027t work in python3/gentoo"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"* fixes a unicode error"},{"line_number":10,"context_line":"* checks that a file exists before trying to use it"},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Closes-Bug: 1536462"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"7a5de9d1_b21c3978","line":9,"updated":"2016-01-29 00:46:28.000000000","message":"for this, it would be nice to say\n\n\"check_output() returns a byte-string, which needs to be turned into a unicode string for python3 compatibility\"\n\nthis change seems like it can really be split from the other one, because it seems to be unrelated\n\non this, we sure the bytestring is in utf-8?  won\u0027t it depend on the locale of the running process?  i don\u0027t think it matters that much, but i\u0027d like to be convinced this is the \"most pythonic\" way to do it ...","commit_id":"aff66ba2db6f2d00bd27406c9ccaafd090ec7225"},{"author":{"_account_id":7118,"name":"Ian Wienand","email":"iwienand@redhat.com","username":"iwienand"},"change_message_id":"3accaaf492c2f86d939ec3025f98eeffa1e4e9d3","unresolved":false,"context_lines":[{"line_number":7,"context_line":"package-installs doesn\u0027t work in python3/gentoo"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"* fixes a unicode error"},{"line_number":10,"context_line":"* checks that a file exists before trying to use it"},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Closes-Bug: 1536462"},{"line_number":13,"context_line":"Change-Id: Icd957bc4d93ccad94b1246ad62e6e02ee14d9ca5"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"7a5de9d1_72ba4170","line":10,"updated":"2016-01-29 00:35:42.000000000","message":"i can see this is what the code is doing.  what it would be good to explain here is *why* this is the right change to make.  what have you changed that makes this a problem now/why did we not notice this before?  why is this the right thing to do, and not raise an error?\n\nthese are all the questions i ask when is see such a line of code and i\u0027m pretty sure you\u0027ve thought about all these things.  it\u0027s just nice if it\u0027s explained so i don\u0027t have to go and reverse engineer it","commit_id":"aff66ba2db6f2d00bd27406c9ccaafd090ec7225"}],"elements/package-installs/bin/package-installs-v2":[{"author":{"_account_id":7118,"name":"Ian Wienand","email":"iwienand@redhat.com","username":"iwienand"},"change_message_id":"d49d09948b6e452c32b3bb4dd8abb2445536dcea","unresolved":false,"context_lines":[{"line_number":82,"context_line":"            elif e.returncode \u003d\u003d 2:"},{"line_number":83,"context_line":"                pkgs.append(pkg)"},{"line_number":84,"context_line":"                continue"},{"line_number":85,"context_line":"                map_output \u003d \u0027\u0027"},{"line_number":86,"context_line":"        pkgs.extend(map_output.strip().split(\u0027\\n\u0027))"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"    install_args \u003d [\"install-packages\"]"}],"source_content_type":"application/octet-stream","patch_set":1,"id":"7a5de9d1_99ea880e","line":85,"updated":"2016-01-28 23:02:36.000000000","message":"wrong indent, or should it be before the continue?","commit_id":"598390fe34f18197be098af7fe40941fbb75a922"},{"author":{"_account_id":14288,"name":"Matthew Thode","display_name":"prometheanfire","email":"mthode@mthode.org","username":"prometheanfire"},"change_message_id":"f31950a775ed566784f506725a96020f5d4e933a","unresolved":false,"context_lines":[{"line_number":82,"context_line":"            elif e.returncode \u003d\u003d 2:"},{"line_number":83,"context_line":"                pkgs.append(pkg)"},{"line_number":84,"context_line":"                continue"},{"line_number":85,"context_line":"                map_output \u003d \u0027\u0027"},{"line_number":86,"context_line":"        pkgs.extend(map_output.strip().split(\u0027\\n\u0027))"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"    install_args \u003d [\"install-packages\"]"}],"source_content_type":"application/octet-stream","patch_set":1,"id":"7a5de9d1_92057d7b","line":85,"in_reply_to":"7a5de9d1_99ea880e","updated":"2016-01-29 00:25:23.000000000","message":"wrong indent, copied it wrong","commit_id":"598390fe34f18197be098af7fe40941fbb75a922"},{"author":{"_account_id":14119,"name":"Sam Yaple","email":"sam+git@yaple.net","username":"SamYaple"},"change_message_id":"cb842344cde8e606a5a3fa0e40794a8aeeb252fc","unresolved":false,"context_lines":[{"line_number":66,"context_line":""},{"line_number":67,"context_line":"    for (pkg, element) in install_packages:"},{"line_number":68,"context_line":"        print(\"%sing %s from %s\" % (install, pkg, element))"},{"line_number":69,"context_line":"        pkg_map_args \u003d [\u0027pkg-map\u0027, \u0027--missing-ok\u0027, \u0027--element\u0027, element, pkg]"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"        try:"},{"line_number":72,"context_line":"            map_output \u003d process_output("}],"source_content_type":"application/octet-stream","patch_set":2,"id":"7a5de9d1_81cf3b28","line":69,"updated":"2016-01-29 20:09:10.000000000","message":"unneeded change","commit_id":"aff66ba2db6f2d00bd27406c9ccaafd090ec7225"},{"author":{"_account_id":14119,"name":"Sam Yaple","email":"sam+git@yaple.net","username":"SamYaple"},"change_message_id":"37bfb9a8941e0c3f2a96d7aad1ee4929935f363f","unresolved":false,"context_lines":[{"line_number":66,"context_line":""},{"line_number":67,"context_line":"    for (pkg, element) in install_packages:"},{"line_number":68,"context_line":"        print(\"%sing %s from %s\" % (install, pkg, element))"},{"line_number":69,"context_line":"        pkg_map_args \u003d [\u0027pkg-map\u0027, \u0027--missing-ok\u0027, \u0027--element\u0027, element, pkg]"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"        try:"},{"line_number":72,"context_line":"            map_output \u003d process_output("}],"source_content_type":"application/octet-stream","patch_set":2,"id":"7a5de9d1_8142db66","line":69,"in_reply_to":"7a5de9d1_819dfb0b","updated":"2016-01-29 20:12:52.000000000","message":"I figured as much","commit_id":"aff66ba2db6f2d00bd27406c9ccaafd090ec7225"},{"author":{"_account_id":14288,"name":"Matthew Thode","display_name":"prometheanfire","email":"mthode@mthode.org","username":"prometheanfire"},"change_message_id":"7d0ab598579087e25ceff9c30196d5a58964aef6","unresolved":false,"context_lines":[{"line_number":66,"context_line":""},{"line_number":67,"context_line":"    for (pkg, element) in install_packages:"},{"line_number":68,"context_line":"        print(\"%sing %s from %s\" % (install, pkg, element))"},{"line_number":69,"context_line":"        pkg_map_args \u003d [\u0027pkg-map\u0027, \u0027--missing-ok\u0027, \u0027--element\u0027, element, pkg]"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"        try:"},{"line_number":72,"context_line":"            map_output \u003d process_output("}],"source_content_type":"application/octet-stream","patch_set":2,"id":"7a5de9d1_819dfb0b","line":69,"in_reply_to":"7a5de9d1_81cf3b28","updated":"2016-01-29 20:10:35.000000000","message":"it was cleanup and bugging me","commit_id":"aff66ba2db6f2d00bd27406c9ccaafd090ec7225"},{"author":{"_account_id":7118,"name":"Ian Wienand","email":"iwienand@redhat.com","username":"iwienand"},"change_message_id":"783c2491a63f8a5f4d5a594bef1ccac127dba333","unresolved":false,"context_lines":[{"line_number":67,"context_line":"    for (pkg, element) in install_packages:"},{"line_number":68,"context_line":"        print(\"%sing %s from %s\" % (install, pkg, element))"},{"line_number":69,"context_line":"        pkg_map_args \u003d [\"pkg-map\", \"--missing-ok\", \"--element\", element]"},{"line_number":70,"context_line":"        pkg_map_args.append(pkg)"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"        try:"},{"line_number":73,"context_line":"            map_output \u003d process_output("}],"source_content_type":"application/octet-stream","patch_set":3,"id":"7a5de9d1_d25de747","side":"PARENT","line":70,"updated":"2016-02-01 00:15:14.000000000","message":"i wonder if the intent here was to extend the list, rather than append?  I don\u0027t see how pkg gets to be a list though ...","commit_id":"c31a59a2c9affdb5703bad375f384535f8275059"},{"author":{"_account_id":14288,"name":"Matthew Thode","display_name":"prometheanfire","email":"mthode@mthode.org","username":"prometheanfire"},"change_message_id":"99b153318e1a615fb937657fb755fdaf56ec668b","unresolved":false,"context_lines":[{"line_number":67,"context_line":"    for (pkg, element) in install_packages:"},{"line_number":68,"context_line":"        print(\"%sing %s from %s\" % (install, pkg, element))"},{"line_number":69,"context_line":"        pkg_map_args \u003d [\"pkg-map\", \"--missing-ok\", \"--element\", element]"},{"line_number":70,"context_line":"        pkg_map_args.append(pkg)"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"        try:"},{"line_number":73,"context_line":"            map_output \u003d process_output("}],"source_content_type":"application/octet-stream","patch_set":3,"id":"7a5de9d1_2584335c","side":"PARENT","line":70,"in_reply_to":"7a5de9d1_d25de747","updated":"2016-02-01 00:31:42.000000000","message":"I think they thought the line would be too long and it wasn\u0027t/isn\u0027t","commit_id":"c31a59a2c9affdb5703bad375f384535f8275059"},{"author":{"_account_id":7118,"name":"Ian Wienand","email":"iwienand@redhat.com","username":"iwienand"},"change_message_id":"783c2491a63f8a5f4d5a594bef1ccac127dba333","unresolved":false,"context_lines":[{"line_number":82,"context_line":"            elif e.returncode \u003d\u003d 2:"},{"line_number":83,"context_line":"                pkgs.append(pkg)"},{"line_number":84,"context_line":"                continue"},{"line_number":85,"context_line":"            map_output \u003d \u0027\u0027"},{"line_number":86,"context_line":"        pkgs.extend(map_output.strip().split(\u0027\\n\u0027))"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"    install_args \u003d [\"install-packages\"]"}],"source_content_type":"application/octet-stream","patch_set":3,"id":"7a5de9d1_b2606b02","line":85,"updated":"2016-02-01 00:15:14.000000000","message":"i think this is still rather confusing.\n\ncould we not move the pkgs.extend into the try: section and that would make the whole thing clearer?","commit_id":"c26f6c8dc89bda7c29953cbe4831a669655ee111"},{"author":{"_account_id":14288,"name":"Matthew Thode","display_name":"prometheanfire","email":"mthode@mthode.org","username":"prometheanfire"},"change_message_id":"99b153318e1a615fb937657fb755fdaf56ec668b","unresolved":false,"context_lines":[{"line_number":82,"context_line":"            elif e.returncode \u003d\u003d 2:"},{"line_number":83,"context_line":"                pkgs.append(pkg)"},{"line_number":84,"context_line":"                continue"},{"line_number":85,"context_line":"            map_output \u003d \u0027\u0027"},{"line_number":86,"context_line":"        pkgs.extend(map_output.strip().split(\u0027\\n\u0027))"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"    install_args \u003d [\"install-packages\"]"}],"source_content_type":"application/octet-stream","patch_set":3,"id":"7a5de9d1_85b40735","line":85,"in_reply_to":"7a5de9d1_b2606b02","updated":"2016-02-01 00:31:42.000000000","message":"worksforme","commit_id":"c26f6c8dc89bda7c29953cbe4831a669655ee111"}],"elements/package-installs/post-install.d/99-package-uninstalls":[{"author":{"_account_id":7118,"name":"Ian Wienand","email":"iwienand@redhat.com","username":"iwienand"},"change_message_id":"d49d09948b6e452c32b3bb4dd8abb2445536dcea","unresolved":false,"context_lines":[{"line_number":7,"context_line":"set -o pipefail"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"package-uninstalls -d $(dirname $0)"},{"line_number":10,"context_line":"if [[ -a /tmp/package-installs.json ]]; then"},{"line_number":11,"context_line":"    package-installs-v2 --phase post-install.d --uninstall /tmp/package-installs.json"},{"line_number":12,"context_line":"fi"}],"source_content_type":"application/x-shellscript","patch_set":1,"id":"7a5de9d1_f9d7fcea","line":10,"updated":"2016-01-28 23:02:36.000000000","message":"what\u0027s this about?","commit_id":"598390fe34f18197be098af7fe40941fbb75a922"},{"author":{"_account_id":14288,"name":"Matthew Thode","display_name":"prometheanfire","email":"mthode@mthode.org","username":"prometheanfire"},"change_message_id":"f31950a775ed566784f506725a96020f5d4e933a","unresolved":false,"context_lines":[{"line_number":7,"context_line":"set -o pipefail"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"package-uninstalls -d $(dirname $0)"},{"line_number":10,"context_line":"if [[ -a /tmp/package-installs.json ]]; then"},{"line_number":11,"context_line":"    package-installs-v2 --phase post-install.d --uninstall /tmp/package-installs.json"},{"line_number":12,"context_line":"fi"}],"source_content_type":"application/x-shellscript","patch_set":1,"id":"7a5de9d1_52362553","line":10,"in_reply_to":"7a5de9d1_f9d7fcea","updated":"2016-01-29 00:25:23.000000000","message":"The following line exits non-zero if the file is missing, so do a check before running.","commit_id":"598390fe34f18197be098af7fe40941fbb75a922"},{"author":{"_account_id":7118,"name":"Ian Wienand","email":"iwienand@redhat.com","username":"iwienand"},"change_message_id":"0028904c0c5583490c57aafb3f93b128c4ad67ec","unresolved":false,"context_lines":[{"line_number":7,"context_line":"set -o pipefail"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"package-uninstalls -d $(dirname $0)"},{"line_number":10,"context_line":"if [[ -a /tmp/package-installs.json ]]; then"},{"line_number":11,"context_line":"    package-installs-v2 --phase post-install.d --uninstall /tmp/package-installs.json"},{"line_number":12,"context_line":"fi"}],"source_content_type":"application/x-shellscript","patch_set":2,"id":"7a5de9d1_b2e94be8","line":10,"updated":"2016-01-31 23:13:00.000000000","message":"i\u0027m still not seeing why this is required, and it doesn\u0027t seem python3 related\n\nis it something related to the gentoo element?  it\u0027s probably best split out into a separate change","commit_id":"aff66ba2db6f2d00bd27406c9ccaafd090ec7225"},{"author":{"_account_id":14288,"name":"Matthew Thode","display_name":"prometheanfire","email":"mthode@mthode.org","username":"prometheanfire"},"change_message_id":"b14bef0ef8105af93b9c712e359af673dc63f9d2","unresolved":false,"context_lines":[{"line_number":7,"context_line":"set -o pipefail"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"package-uninstalls -d $(dirname $0)"},{"line_number":10,"context_line":"if [[ -a /tmp/package-installs.json ]]; then"},{"line_number":11,"context_line":"    package-installs-v2 --phase post-install.d --uninstall /tmp/package-installs.json"},{"line_number":12,"context_line":"fi"}],"source_content_type":"application/x-shellscript","patch_set":2,"id":"7a5de9d1_f257c357","line":10,"in_reply_to":"7a5de9d1_b2e94be8","updated":"2016-01-31 23:53:50.000000000","message":"ya, this can be split out","commit_id":"aff66ba2db6f2d00bd27406c9ccaafd090ec7225"}]}
