)]}'
{"files/debs/general":[{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"dc97a4245cea860431c4f0de4962c73f9956031c","unresolved":false,"context_lines":[{"line_number":23,"context_line":"psmisc"},{"line_number":24,"context_line":"python2.7"},{"line_number":25,"context_line":"python3.4-dev"},{"line_number":26,"context_line":"python3.4"},{"line_number":27,"context_line":"python-dev"},{"line_number":28,"context_line":"python-gdbm # needed for testr"},{"line_number":29,"context_line":"screen"}],"source_content_type":"application/octet-stream","patch_set":18,"id":"9a8ffd7b_e34b3a5e","line":26,"updated":"2015-11-30 14:02:13.000000000","message":"I\u0027d rather not install these unless USE_PYTHON3 is true","commit_id":"b27104756c3f654a521a72f3b969697e7e8bdb40"}],"inc/python":[{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"53c3d5d025656fc9f7830c23d975da3722c17830","unresolved":false,"context_lines":[{"line_number":79,"context_line":"# ``PIP_UPGRADE``, ``TRACK_DEPENDS``, ``*_proxy``"},{"line_number":80,"context_line":"# pip_install package [package ...]"},{"line_number":81,"context_line":"function pip_install {"},{"line_number":82,"context_line":"    # local xtrace\u003d$(set +o | grep xtrace)"},{"line_number":83,"context_line":"    # set +o xtrace"},{"line_number":84,"context_line":"    local upgrade\u003d\"\""},{"line_number":85,"context_line":"    local offline\u003d${OFFLINE:-False}"}],"source_content_type":"application/x-shellscript","patch_set":3,"id":"fa32b979_59e40b0c","line":82,"updated":"2015-06-16 10:32:33.000000000","message":"can we delete these 2 lines? 82-83","commit_id":"f77795146b7c2aa32211bf770df360c424a785e9"},{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"14c85ef550dd845a0e4e0ef372c4be311e6dbff8","unresolved":false,"context_lines":[{"line_number":80,"context_line":"# pip_install package [package ...]"},{"line_number":81,"context_line":"function pip_install {"},{"line_number":82,"context_line":"    # local xtrace\u003d$(set +o | grep xtrace)"},{"line_number":83,"context_line":"    # set +o xtrace"},{"line_number":84,"context_line":"    local upgrade\u003d\"\""},{"line_number":85,"context_line":"    local offline\u003d${OFFLINE:-False}"},{"line_number":86,"context_line":"    if [[ \"$offline\" \u003d\u003d \"True\" || -z \"$@\" ]]; then"}],"source_content_type":"application/x-shellscript","patch_set":3,"id":"fa32b979_eed2daff","line":83,"updated":"2015-06-16 18:29:05.000000000","message":"I don\u0027t really want to put this back into tracing mode in the general case, it\u0027s really really verbose.","commit_id":"f77795146b7c2aa32211bf770df360c424a785e9"},{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"afc9fdf8bf57bd0b51b51b996f3a821413e946e6","unresolved":false,"context_lines":[{"line_number":80,"context_line":"# pip_install package [package ...]"},{"line_number":81,"context_line":"function pip_install {"},{"line_number":82,"context_line":"    # local xtrace\u003d$(set +o | grep xtrace)"},{"line_number":83,"context_line":"    # set +o xtrace"},{"line_number":84,"context_line":"    local upgrade\u003d\"\""},{"line_number":85,"context_line":"    local offline\u003d${OFFLINE:-False}"},{"line_number":86,"context_line":"    if [[ \"$offline\" \u003d\u003d \"True\" || -z \"$@\" ]]; then"}],"source_content_type":"application/x-shellscript","patch_set":3,"id":"9a41bdd9_c8ddac43","line":83,"in_reply_to":"fa32b979_eed2daff","updated":"2015-07-13 20:27:44.000000000","message":"Done","commit_id":"f77795146b7c2aa32211bf770df360c424a785e9"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"53c3d5d025656fc9f7830c23d975da3722c17830","unresolved":false,"context_lines":[{"line_number":137,"context_line":"            \"meet minimum requirements (\u003e\u003d6).\""},{"line_number":138,"context_line":"    fi"},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"    # $xtrace"},{"line_number":141,"context_line":"    $sudo_pip \\"},{"line_number":142,"context_line":"        http_proxy\u003d\"${http_proxy:-}\" \\"},{"line_number":143,"context_line":"        https_proxy\u003d\"${https_proxy:-}\" \\"}],"source_content_type":"application/x-shellscript","patch_set":3,"id":"fa32b979_79deaf40","line":140,"updated":"2015-06-16 10:32:33.000000000","message":"can we delete the comment above?","commit_id":"f77795146b7c2aa32211bf770df360c424a785e9"},{"author":{"_account_id":8344,"name":"fumihiko kakuma","email":"kakuma@valinux.co.jp","username":"kakuma"},"change_message_id":"e7dfa94b171dd3882b539fd905b542c697e8e98e","unresolved":false,"context_lines":[{"line_number":70,"context_line":"# Determine the python versions supported by a package"},{"line_number":71,"context_line":"function get_python_versions_for_package {"},{"line_number":72,"context_line":"    local name\u003d$1"},{"line_number":73,"context_line":"    $(cd $name \u0026\u0026 python setup.py --classifiers \\"},{"line_number":74,"context_line":"        | grep \u0027Language\u0027 | cut -f5 -d: | grep \u0027\\.\u0027 | tr \u0027\\n\u0027 \u0027 \u0027)"},{"line_number":75,"context_line":"}"},{"line_number":76,"context_line":""}],"source_content_type":"application/x-shellscript","patch_set":4,"id":"9a41bdd9_7712ef58","line":73,"updated":"2015-07-15 05:53:15.000000000","message":"It seems that echo is necessary for the top of the line.","commit_id":"f49ea108df5ea43e00c2d8c9565b1c0bf4852aa1"},{"author":{"_account_id":8344,"name":"fumihiko kakuma","email":"kakuma@valinux.co.jp","username":"kakuma"},"change_message_id":"e6038709ffc72f9ff4abaee3eb1525cc6e78ebb8","unresolved":false,"context_lines":[{"line_number":110,"context_line":"            local sudo_pip\u003d\"env\""},{"line_number":111,"context_line":"        else"},{"line_number":112,"context_line":"            # Use python2 by default"},{"line_number":113,"context_line":"            local cmd_pip\u003d$(get_pip_command)"},{"line_number":114,"context_line":"            local sudo_pip\u003d\"sudo -H\""},{"line_number":115,"context_line":"            if python3_enabled; then"},{"line_number":116,"context_line":"                # Look at the package classifiers to find the python"}],"source_content_type":"application/x-shellscript","patch_set":4,"id":"da20952f_32813890","line":113,"updated":"2015-09-02 22:03:08.000000000","message":"We do not know whether pip is executed by python2. So get_pip_command should have a version parameter.\nlike the following:\n\nexport PYTHON2_VERSION\u003d${PYTHON2_VERSION:-2.7}\n\nlocal cmd_pip\u003d$(get_pip_command $PYTHON2_VERSION)","commit_id":"f49ea108df5ea43e00c2d8c9565b1c0bf4852aa1"},{"author":{"_account_id":8344,"name":"fumihiko kakuma","email":"kakuma@valinux.co.jp","username":"kakuma"},"change_message_id":"a37720f2392a1e7d724e552f96dd60df645c49de","unresolved":false,"context_lines":[{"line_number":120,"context_line":"                eval \"local package_dir\u003d\\$$#\""},{"line_number":121,"context_line":"                if [[ -d \"$package_dir\" ]]; then"},{"line_number":122,"context_line":"                    local python_versions\u003d$(get_python_versions_for_package $package_dir)"},{"line_number":123,"context_line":"                    if [[ $PYTHON3_VERSION \u003d~ $python_versions ]]; then"},{"line_number":124,"context_line":"                        local cmd_pip\u003d$(get_pip_command $PYTHON3_VERSION)"},{"line_number":125,"context_line":"                    fi"},{"line_number":126,"context_line":"                fi"}],"source_content_type":"application/x-shellscript","patch_set":4,"id":"9a41bdd9_66e44cab","line":123,"updated":"2015-07-16 02:21:13.000000000","message":"Is it missing the case which have multiple version?","commit_id":"f49ea108df5ea43e00c2d8c9565b1c0bf4852aa1"},{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"165974de902f69d359ca1833e8c21e05e9ddb59b","unresolved":false,"context_lines":[{"line_number":71,"context_line":"function get_python_versions_for_package {"},{"line_number":72,"context_line":"    local name\u003d$1"},{"line_number":73,"context_line":"    cd $name \u0026\u0026 python setup.py --classifiers \\"},{"line_number":74,"context_line":"        | grep \u0027Language\u0027 | cut -f5 -d: | grep \u0027\\.\u0027 | tr \u0027\\n\u0027 \u0027 \u0027"},{"line_number":75,"context_line":"}"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"# Wrapper for ``pip install`` to set cache and proxy environment variables"}],"source_content_type":"application/x-shellscript","patch_set":10,"id":"9a1a9d01_a7e2ba2d","line":74,"updated":"2015-09-28 20:58:58.000000000","message":"is this locale stable?","commit_id":"b1a186bb01d19339724fda7949b8976158b0cd8d"},{"author":{"_account_id":6899,"name":"Sirushti Murugesan","email":"sirushtim@gmail.com","username":"sirushtim"},"change_message_id":"b835bd835015acfccd8741c26bd9307fa20580ce","unresolved":false,"context_lines":[{"line_number":71,"context_line":"function get_python_versions_for_package {"},{"line_number":72,"context_line":"    local name\u003d$1"},{"line_number":73,"context_line":"    cd $name \u0026\u0026 python setup.py --classifiers \\"},{"line_number":74,"context_line":"        | grep \u0027Language\u0027 | cut -f5 -d: | grep \u0027\\.\u0027 | tr \u0027\\n\u0027 \u0027 \u0027"},{"line_number":75,"context_line":"}"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"# Wrapper for ``pip install`` to set cache and proxy environment variables"}],"source_content_type":"application/x-shellscript","patch_set":10,"id":"9a1a9d01_04a55c45","line":74,"in_reply_to":"9a1a9d01_a7e2ba2d","updated":"2015-09-30 09:36:28.000000000","message":"I\u0027m not sure about this one.","commit_id":"b1a186bb01d19339724fda7949b8976158b0cd8d"},{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"165974de902f69d359ca1833e8c21e05e9ddb59b","unresolved":false,"context_lines":[{"line_number":116,"context_line":"                # versions supported, and if we find the version of"},{"line_number":117,"context_line":"                # python3 we\u0027ve been told to use, use that instead of the"},{"line_number":118,"context_line":"                # default pip"},{"line_number":119,"context_line":"                eval \"local package_dir\u003d\\$$#\""},{"line_number":120,"context_line":"                if [[ -d \"$package_dir\" ]]; then"},{"line_number":121,"context_line":"                    local python_versions\u003d$(get_python_versions_for_package $package_dir)"},{"line_number":122,"context_line":"                    if [[ $python_versions \u003d~ $PYTHON3_VERSION ]]; then"}],"source_content_type":"application/x-shellscript","patch_set":10,"id":"9a1a9d01_67890275","line":119,"updated":"2015-09-28 20:58:58.000000000","message":"why isn\u0027t this just local package_dir\u003d${!#} like below? I\u0027d really like to avoid the eval if we can, because it get magical really fast.","commit_id":"b1a186bb01d19339724fda7949b8976158b0cd8d"},{"author":{"_account_id":6899,"name":"Sirushti Murugesan","email":"sirushtim@gmail.com","username":"sirushtim"},"change_message_id":"b835bd835015acfccd8741c26bd9307fa20580ce","unresolved":false,"context_lines":[{"line_number":116,"context_line":"                # versions supported, and if we find the version of"},{"line_number":117,"context_line":"                # python3 we\u0027ve been told to use, use that instead of the"},{"line_number":118,"context_line":"                # default pip"},{"line_number":119,"context_line":"                eval \"local package_dir\u003d\\$$#\""},{"line_number":120,"context_line":"                if [[ -d \"$package_dir\" ]]; then"},{"line_number":121,"context_line":"                    local python_versions\u003d$(get_python_versions_for_package $package_dir)"},{"line_number":122,"context_line":"                    if [[ $python_versions \u003d~ $PYTHON3_VERSION ]]; then"}],"source_content_type":"application/x-shellscript","patch_set":10,"id":"9a1a9d01_e4bdc802","line":119,"in_reply_to":"9a1a9d01_67890275","updated":"2015-09-30 09:36:28.000000000","message":"Done. I\u0027ll remove the eval.","commit_id":"b1a186bb01d19339724fda7949b8976158b0cd8d"},{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"165974de902f69d359ca1833e8c21e05e9ddb59b","unresolved":false,"context_lines":[{"line_number":150,"context_line":"        $@"},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"    # Also install test requirements"},{"line_number":153,"context_line":"    local test_req\u003d\"${!#}/test-requirements.txt\""},{"line_number":154,"context_line":"    if [[ -e \"$test_req\" ]]; then"},{"line_number":155,"context_line":"        echo \"Installing test-requirements for $test_req\""},{"line_number":156,"context_line":"        $sudo_pip \\"}],"source_content_type":"application/x-shellscript","patch_set":10,"id":"9a1a9d01_87e53639","line":153,"updated":"2015-09-28 20:58:58.000000000","message":"this is fine, but it could have been distinct patch fix.","commit_id":"b1a186bb01d19339724fda7949b8976158b0cd8d"},{"author":{"_account_id":6899,"name":"Sirushti Murugesan","email":"sirushtim@gmail.com","username":"sirushtim"},"change_message_id":"b835bd835015acfccd8741c26bd9307fa20580ce","unresolved":false,"context_lines":[{"line_number":150,"context_line":"        $@"},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"    # Also install test requirements"},{"line_number":153,"context_line":"    local test_req\u003d\"${!#}/test-requirements.txt\""},{"line_number":154,"context_line":"    if [[ -e \"$test_req\" ]]; then"},{"line_number":155,"context_line":"        echo \"Installing test-requirements for $test_req\""},{"line_number":156,"context_line":"        $sudo_pip \\"}],"source_content_type":"application/x-shellscript","patch_set":10,"id":"9a1a9d01_6440d807","line":153,"in_reply_to":"9a1a9d01_87e53639","updated":"2015-09-30 09:36:28.000000000","message":"Done","commit_id":"b1a186bb01d19339724fda7949b8976158b0cd8d"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"0bcdfc463d74a36776d352d661c9747099ef7c59","unresolved":false,"context_lines":[{"line_number":314,"context_line":"# Install python3 packages"},{"line_number":315,"context_line":"function install_python3 {"},{"line_number":316,"context_line":"    if is_ubuntu; then"},{"line_number":317,"context_line":"        apt_get install python3.4 python3.4-dev"},{"line_number":318,"context_line":"    fi"},{"line_number":319,"context_line":"}"},{"line_number":320,"context_line":""}],"source_content_type":"application/x-shellscript","patch_set":19,"id":"7a740942_d5a26b4b","line":317,"updated":"2015-12-09 13:49:17.000000000","message":"This should honor PYTHON3_VERSION","commit_id":"ddc3839bdc7ff73f6224273605db10fd88cd60df"}],"lib/neutron-legacy":[{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"165974de902f69d359ca1833e8c21e05e9ddb59b","unresolved":false,"context_lines":[{"line_number":1347,"context_line":"        sudo sysctl -w net.ipv6.conf.all.forwarding\u003d1"},{"line_number":1348,"context_line":"        # Configure and enable public bridge"},{"line_number":1349,"context_line":"        # Override global IPV6_ROUTER_GW_IP with the true value from neutron"},{"line_number":1350,"context_line":"        IPV6_ROUTER_GW_IP\u003d`neutron port-list -c fixed_ips | grep $ipv6_pub_subnet_id | awk -F\u0027ip_address\u0027 \u0027{ print $2 }\u0027 | cut -f3 -d\\\" | tr \u0027\\n\u0027 \u0027 \u0027`"},{"line_number":1351,"context_line":"        die_if_not_set $LINENO IPV6_ROUTER_GW_IP \"Failure retrieving IPV6_ROUTER_GW_IP\""},{"line_number":1352,"context_line":""},{"line_number":1353,"context_line":"        if is_neutron_ovs_base_plugin \u0026\u0026 [[ \"$Q_USE_NAMESPACE\" \u003d \"True\" ]]; then"}],"source_content_type":"application/x-shellscript","patch_set":10,"id":"9a1a9d01_27446a19","line":1350,"updated":"2015-09-28 20:58:58.000000000","message":"is it worth making neutron stable on list generation?","commit_id":"b1a186bb01d19339724fda7949b8976158b0cd8d"},{"author":{"_account_id":6899,"name":"Sirushti Murugesan","email":"sirushtim@gmail.com","username":"sirushtim"},"change_message_id":"b835bd835015acfccd8741c26bd9307fa20580ce","unresolved":false,"context_lines":[{"line_number":1347,"context_line":"        sudo sysctl -w net.ipv6.conf.all.forwarding\u003d1"},{"line_number":1348,"context_line":"        # Configure and enable public bridge"},{"line_number":1349,"context_line":"        # Override global IPV6_ROUTER_GW_IP with the true value from neutron"},{"line_number":1350,"context_line":"        IPV6_ROUTER_GW_IP\u003d`neutron port-list -c fixed_ips | grep $ipv6_pub_subnet_id | awk -F\u0027ip_address\u0027 \u0027{ print $2 }\u0027 | cut -f3 -d\\\" | tr \u0027\\n\u0027 \u0027 \u0027`"},{"line_number":1351,"context_line":"        die_if_not_set $LINENO IPV6_ROUTER_GW_IP \"Failure retrieving IPV6_ROUTER_GW_IP\""},{"line_number":1352,"context_line":""},{"line_number":1353,"context_line":"        if is_neutron_ovs_base_plugin \u0026\u0026 [[ \"$Q_USE_NAMESPACE\" \u003d \"True\" ]]; then"}],"source_content_type":"application/x-shellscript","patch_set":10,"id":"9a1a9d01_a42ef0f8","line":1350,"in_reply_to":"9a1a9d01_27446a19","updated":"2015-09-30 09:36:28.000000000","message":"I\u0027ll file a bug for this.","commit_id":"b1a186bb01d19339724fda7949b8976158b0cd8d"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"555b4f318d87e54d531562cde6bfda8289bd7428","unresolved":false,"context_lines":[{"line_number":1319,"context_line":"                sudo ip addr add $ext_gw_ip/$cidr_len dev $ext_gw_interface"},{"line_number":1320,"context_line":"                sudo ip link set $ext_gw_interface up"},{"line_number":1321,"context_line":"            fi"},{"line_number":1322,"context_line":"            ROUTER_GW_IP\u003d`neutron port-list -c fixed_ips -c device_owner | grep router_gateway | awk -F\u0027ip_address\u0027  \u0027{ print $2 }\u0027 | cut -f3 -d\\\" | tr \u0027\\n\u0027 \u0027 \u0027`"},{"line_number":1323,"context_line":"            die_if_not_set $LINENO ROUTER_GW_IP \"Failure retrieving ROUTER_GW_IP\""},{"line_number":1324,"context_line":"            sudo ip route replace  $FIXED_RANGE via $ROUTER_GW_IP"},{"line_number":1325,"context_line":"        fi"}],"source_content_type":"application/x-shellscript","patch_set":12,"id":"7a2fa921_274ee06f","line":1322,"updated":"2015-10-06 19:29:48.000000000","message":"I am unsure why these changes are present...","commit_id":"45602a7608348fd754f8743b4a2f851ed70c7b61"},{"author":{"_account_id":6899,"name":"Sirushti Murugesan","email":"sirushtim@gmail.com","username":"sirushtim"},"change_message_id":"36093d07166a05134f229a39df33cf90243dd16d","unresolved":false,"context_lines":[{"line_number":1319,"context_line":"                sudo ip addr add $ext_gw_ip/$cidr_len dev $ext_gw_interface"},{"line_number":1320,"context_line":"                sudo ip link set $ext_gw_interface up"},{"line_number":1321,"context_line":"            fi"},{"line_number":1322,"context_line":"            ROUTER_GW_IP\u003d`neutron port-list -c fixed_ips -c device_owner | grep router_gateway | awk -F\u0027ip_address\u0027  \u0027{ print $2 }\u0027 | cut -f3 -d\\\" | tr \u0027\\n\u0027 \u0027 \u0027`"},{"line_number":1323,"context_line":"            die_if_not_set $LINENO ROUTER_GW_IP \"Failure retrieving ROUTER_GW_IP\""},{"line_number":1324,"context_line":"            sudo ip route replace  $FIXED_RANGE via $ROUTER_GW_IP"},{"line_number":1325,"context_line":"        fi"}],"source_content_type":"application/x-shellscript","patch_set":12,"id":"7a2fa921_00c05cdf","line":1322,"in_reply_to":"7a2fa921_274ee06f","updated":"2015-10-07 09:47:09.000000000","message":"The output of neutron port-list -c fixed_ips is inconsistent in python 3 due to hash randomization. Hence, I\u0027m using a different expression to consistently get the ROUTER_GW_IP everytime. I\u0027ll split it out then.","commit_id":"45602a7608348fd754f8743b4a2f851ed70c7b61"}],"lib/stack":[{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"555b4f318d87e54d531562cde6bfda8289bd7428","unresolved":false,"context_lines":[{"line_number":19,"context_line":"function stack_install_service {"},{"line_number":20,"context_line":"    local service\u003d$1"},{"line_number":21,"context_line":"    if type install_${service} \u003e/dev/null 2\u003e\u00261; then"},{"line_number":22,"context_line":"        # FIXME(dhellmann): Needs to be python3-aware at some point."},{"line_number":23,"context_line":"        if [[ ${USE_VENV} \u003d True \u0026\u0026 -n ${PROJECT_VENV[$service]:-} ]]; then"},{"line_number":24,"context_line":"            rm -rf ${PROJECT_VENV[$service]}"},{"line_number":25,"context_line":"            source $TOP_DIR/tools/build_venv.sh ${PROJECT_VENV[$service]} ${ADDITIONAL_VENV_PACKAGES//,/ }"}],"source_content_type":"application/x-shellscript","patch_set":12,"id":"7a2fa921_c70fec2c","line":22,"updated":"2015-10-06 19:29:48.000000000","message":"I\u0027m thinking that can be completely contained within build_venv.sh?\n\nFor this particular function, do you think we could get away with only creating the py3 venv if enabled and skipping py2?  I think that should be fine in the gate but am unsure of the developer workflows envisioned...","commit_id":"45602a7608348fd754f8743b4a2f851ed70c7b61"},{"author":{"_account_id":6899,"name":"Sirushti Murugesan","email":"sirushtim@gmail.com","username":"sirushtim"},"change_message_id":"36093d07166a05134f229a39df33cf90243dd16d","unresolved":false,"context_lines":[{"line_number":19,"context_line":"function stack_install_service {"},{"line_number":20,"context_line":"    local service\u003d$1"},{"line_number":21,"context_line":"    if type install_${service} \u003e/dev/null 2\u003e\u00261; then"},{"line_number":22,"context_line":"        # FIXME(dhellmann): Needs to be python3-aware at some point."},{"line_number":23,"context_line":"        if [[ ${USE_VENV} \u003d True \u0026\u0026 -n ${PROJECT_VENV[$service]:-} ]]; then"},{"line_number":24,"context_line":"            rm -rf ${PROJECT_VENV[$service]}"},{"line_number":25,"context_line":"            source $TOP_DIR/tools/build_venv.sh ${PROJECT_VENV[$service]} ${ADDITIONAL_VENV_PACKAGES//,/ }"}],"source_content_type":"application/x-shellscript","patch_set":12,"id":"7a2fa921_ac92be9d","line":22,"in_reply_to":"7a2fa921_c70fec2c","updated":"2015-10-07 09:47:09.000000000","message":"Agree, I\u0027ll do this in a follow up patch.","commit_id":"45602a7608348fd754f8743b4a2f851ed70c7b61"}],"stackrc":[{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"5aea272a68ec904712d2f23a84257abe34bed766","unresolved":false,"context_lines":[{"line_number":99,"context_line":"# Control whether Python 3 should be used at all."},{"line_number":100,"context_line":"#"},{"line_number":101,"context_line":"# FIXME(dhellmann): This should default to False, but while testing"},{"line_number":102,"context_line":"# this WIP patch setting it to True."},{"line_number":103,"context_line":"export USE_PYTHON3\u003d${USE_PYTHON3:-False}"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"# When Python 3 is supported by an application, adding the specific"}],"source_content_type":"application/x-shellscript","patch_set":10,"id":"9a1a9d01_7b167ca8","line":102,"updated":"2015-09-28 20:42:33.000000000","message":"It looks like the default was changed to True, but this comment wasn\u0027t updated.","commit_id":"b1a186bb01d19339724fda7949b8976158b0cd8d"},{"author":{"_account_id":6899,"name":"Sirushti Murugesan","email":"sirushtim@gmail.com","username":"sirushtim"},"change_message_id":"b835bd835015acfccd8741c26bd9307fa20580ce","unresolved":false,"context_lines":[{"line_number":99,"context_line":"# Control whether Python 3 should be used at all."},{"line_number":100,"context_line":"#"},{"line_number":101,"context_line":"# FIXME(dhellmann): This should default to False, but while testing"},{"line_number":102,"context_line":"# this WIP patch setting it to True."},{"line_number":103,"context_line":"export USE_PYTHON3\u003d${USE_PYTHON3:-False}"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"# When Python 3 is supported by an application, adding the specific"}],"source_content_type":"application/x-shellscript","patch_set":10,"id":"9a1a9d01_44259406","line":102,"in_reply_to":"9a1a9d01_7b167ca8","updated":"2015-09-30 09:36:28.000000000","message":"Done","commit_id":"b1a186bb01d19339724fda7949b8976158b0cd8d"}],"tools/install_pip.sh":[{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"14c85ef550dd845a0e4e0ef372c4be311e6dbff8","unresolved":false,"context_lines":[{"line_number":65,"context_line":"    sudo -H -E python $LOCAL_PIP"},{"line_number":66,"context_line":"    if python3_enabled; then"},{"line_number":67,"context_line":"        sudo -H -E python${PYTHON3_VERSION} $LOCAL_PIP"},{"line_number":68,"context_line":"    fi"},{"line_number":69,"context_line":"}"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":""}],"source_content_type":"text/x-sh","patch_set":3,"id":"fa32b979_6ebd6a67","line":68,"updated":"2015-06-16 18:29:05.000000000","message":"Long term I wonder if we want to actually set $PYTHON and sudo -H -E $PYTHON $LOCAL_PIP instead. I guess that doesn\u0027t handle the multi python case, and I\u0027m trying to figure out if there is a clever way to address that, because I have to believe we\u0027re going to hit distro naming differences. So getting the conditional name of the interpreter early would be goodness.","commit_id":"f77795146b7c2aa32211bf770df360c424a785e9"},{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"5aea272a68ec904712d2f23a84257abe34bed766","unresolved":false,"context_lines":[{"line_number":61,"context_line":"            die $LINENO \"Download of get-pip.py failed\""},{"line_number":62,"context_line":"        touch $LOCAL_PIP.downloaded"},{"line_number":63,"context_line":"    fi"},{"line_number":64,"context_line":"    # FIXME(dhellmann): Deal with multiple python versions here."},{"line_number":65,"context_line":"    sudo -H -E python $LOCAL_PIP"},{"line_number":66,"context_line":"    if python3_enabled; then"},{"line_number":67,"context_line":"        sudo -H -E python${PYTHON3_VERSION} $LOCAL_PIP"}],"source_content_type":"text/x-sh","patch_set":10,"id":"9a1a9d01_bb73b414","line":64,"updated":"2015-09-28 20:42:33.000000000","message":"I think the lines 66-68 address this comment, so the comment can be removed.","commit_id":"b1a186bb01d19339724fda7949b8976158b0cd8d"},{"author":{"_account_id":6899,"name":"Sirushti Murugesan","email":"sirushtim@gmail.com","username":"sirushtim"},"change_message_id":"b835bd835015acfccd8741c26bd9307fa20580ce","unresolved":false,"context_lines":[{"line_number":61,"context_line":"            die $LINENO \"Download of get-pip.py failed\""},{"line_number":62,"context_line":"        touch $LOCAL_PIP.downloaded"},{"line_number":63,"context_line":"    fi"},{"line_number":64,"context_line":"    # FIXME(dhellmann): Deal with multiple python versions here."},{"line_number":65,"context_line":"    sudo -H -E python $LOCAL_PIP"},{"line_number":66,"context_line":"    if python3_enabled; then"},{"line_number":67,"context_line":"        sudo -H -E python${PYTHON3_VERSION} $LOCAL_PIP"}],"source_content_type":"text/x-sh","patch_set":10,"id":"9a1a9d01_e44868ce","line":64,"in_reply_to":"9a1a9d01_bb73b414","updated":"2015-09-30 09:36:28.000000000","message":"Done","commit_id":"b1a186bb01d19339724fda7949b8976158b0cd8d"},{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"5aea272a68ec904712d2f23a84257abe34bed766","unresolved":false,"context_lines":[{"line_number":101,"context_line":"# Do pip"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"# Eradicate any and all system packages"},{"line_number":104,"context_line":"# FIXME(dhellmann): Also python3-pip."},{"line_number":105,"context_line":"uninstall_package python-pip"},{"line_number":106,"context_line":"if python3_enabled; then"},{"line_number":107,"context_line":"    uninstall_package python3-pip"}],"source_content_type":"text/x-sh","patch_set":10,"id":"9a1a9d01_3b5ec476","line":104,"updated":"2015-09-28 20:42:33.000000000","message":"Same","commit_id":"b1a186bb01d19339724fda7949b8976158b0cd8d"},{"author":{"_account_id":6899,"name":"Sirushti Murugesan","email":"sirushtim@gmail.com","username":"sirushtim"},"change_message_id":"b835bd835015acfccd8741c26bd9307fa20580ce","unresolved":false,"context_lines":[{"line_number":101,"context_line":"# Do pip"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"# Eradicate any and all system packages"},{"line_number":104,"context_line":"# FIXME(dhellmann): Also python3-pip."},{"line_number":105,"context_line":"uninstall_package python-pip"},{"line_number":106,"context_line":"if python3_enabled; then"},{"line_number":107,"context_line":"    uninstall_package python3-pip"}],"source_content_type":"text/x-sh","patch_set":10,"id":"9a1a9d01_a415909c","line":104,"in_reply_to":"9a1a9d01_3b5ec476","updated":"2015-09-30 09:36:28.000000000","message":"Done","commit_id":"b1a186bb01d19339724fda7949b8976158b0cd8d"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"555b4f318d87e54d531562cde6bfda8289bd7428","unresolved":false,"context_lines":[{"line_number":101,"context_line":""},{"line_number":102,"context_line":"# Eradicate any and all system packages"},{"line_number":103,"context_line":"uninstall_package python-pip"},{"line_number":104,"context_line":"if python3_enabled; then"},{"line_number":105,"context_line":"    uninstall_package python3-pip"},{"line_number":106,"context_line":"fi"},{"line_number":107,"context_line":""}],"source_content_type":"text/x-sh","patch_set":12,"id":"7a2fa921_a46e6e2d","line":104,"updated":"2015-10-06 19:29:48.000000000","message":"This should fail silently if the package is not installed, do we need to do the check of python3_enabled?","commit_id":"45602a7608348fd754f8743b4a2f851ed70c7b61"},{"author":{"_account_id":6899,"name":"Sirushti Murugesan","email":"sirushtim@gmail.com","username":"sirushtim"},"change_message_id":"36093d07166a05134f229a39df33cf90243dd16d","unresolved":false,"context_lines":[{"line_number":101,"context_line":""},{"line_number":102,"context_line":"# Eradicate any and all system packages"},{"line_number":103,"context_line":"uninstall_package python-pip"},{"line_number":104,"context_line":"if python3_enabled; then"},{"line_number":105,"context_line":"    uninstall_package python3-pip"},{"line_number":106,"context_line":"fi"},{"line_number":107,"context_line":""}],"source_content_type":"text/x-sh","patch_set":12,"id":"7a2fa921_1b21b1fb","line":104,"in_reply_to":"7a2fa921_a46e6e2d","updated":"2015-10-07 09:47:09.000000000","message":"Done","commit_id":"45602a7608348fd754f8743b4a2f851ed70c7b61"}]}
