)]}'
{"tools/coding-checks.sh":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"b042313792f65799af07e4cea73c9f91ea4c1ce4","unresolved":false,"context_lines":[{"line_number":6,"context_line":"    echo \"Usage: $0 [OPTION]...\""},{"line_number":7,"context_line":"    echo \"Run Cinder\u0027s coding check(s)\""},{"line_number":8,"context_line":"    echo \"\""},{"line_number":9,"context_line":"    echo \" -Y, --pylint [\u003cbasecommit\u003e] Run pylint check on the entire neutron module or just files changed in bas    ecommit (e.g. HEAD~1)\""},{"line_number":10,"context_line":"    echo \" -h, --help   Print this usage message\""},{"line_number":11,"context_line":"    echo"},{"line_number":12,"context_line":"    exit 0"}],"source_content_type":"text/x-sh","patch_set":5,"id":"3f79a3b5_faf7848b","line":9,"range":{"start_line":9,"start_character":70,"end_line":9,"end_character":124},"updated":"2018-08-31 19:30:01.000000000","message":"/neutron/cinder/\n/bas       ecommmit/\u003cbasecommit\u003e/","commit_id":"989cb15bed7529731351772873d3e7373cbdf169"},{"author":{"_account_id":24,"name":"Chuck Short","email":"charles.short@windriver.com","username":"zulcss"},"change_message_id":"2aa0f0fdb1b8c0fff08ff03843b2c7e83e3e532f","unresolved":false,"context_lines":[{"line_number":6,"context_line":"    echo \"Usage: $0 [OPTION]...\""},{"line_number":7,"context_line":"    echo \"Run Cinder\u0027s coding check(s)\""},{"line_number":8,"context_line":"    echo \"\""},{"line_number":9,"context_line":"    echo \" -Y, --pylint [\u003cbasecommit\u003e] Run pylint check on the entire neutron module or just files changed in bas    ecommit (e.g. HEAD~1)\""},{"line_number":10,"context_line":"    echo \" -h, --help   Print this usage message\""},{"line_number":11,"context_line":"    echo"},{"line_number":12,"context_line":"    exit 0"}],"source_content_type":"text/x-sh","patch_set":5,"id":"3f79a3b5_8c7ad0b7","line":9,"range":{"start_line":9,"start_character":70,"end_line":9,"end_character":124},"in_reply_to":"3f79a3b5_faf7848b","updated":"2018-09-03 12:01:56.000000000","message":"Done","commit_id":"989cb15bed7529731351772873d3e7373cbdf169"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"b042313792f65799af07e4cea73c9f91ea4c1ce4","unresolved":false,"context_lines":[{"line_number":40,"context_line":"    echo \"Running pylint...\""},{"line_number":41,"context_line":"    echo \"You can speed this up by running it on \u0027HEAD~[0-9]\u0027 (e.g. HEAD~1, this change only)...\""},{"line_number":42,"context_line":"    if [ -n \"${files}\" ]; then"},{"line_number":43,"context_line":"        pylint --rcfile\u003d.pylintrc --output-format\u003dcolorized ${files}"},{"line_number":44,"context_line":"    else"},{"line_number":45,"context_line":"        echo \"No python changes in this commit, pylint check not required.\""},{"line_number":46,"context_line":"        exit 0"}],"source_content_type":"text/x-sh","patch_set":5,"id":"3f79a3b5_c0689abb","line":43,"updated":"2018-08-31 19:30:01.000000000","message":"Just as far as being able to see what\u0027s going on from the logs, I think it might be nice to add:\n\n    echo \"Running pylint against:\"\n    printf \"\\t%s\\n\" \"${files[@]}\"\n\nCould we also change the command to:\n\n        pylint --rcfile\u003d.pylintrc --output-format\u003dparseable ${files} \\          \n            -E \\                                                                \n            -j `python -c \u0027import multiprocessing as mp; print(mp.cpu_count())\u0027`\n\nor:\n\n        pylint --rcfile\u003d.pylintrc --output-format\u003dcolorized ${files} \\          \n            --msg-template\u003d\u0027{path}:{line}: [{msg_id}({symbol}), {obj}] {msg}\u0027 \\ \n            -E \\                                                                \n            -j `python -c \u0027import multiprocessing as mp; print(mp.cpu_count())\u0027`","commit_id":"989cb15bed7529731351772873d3e7373cbdf169"},{"author":{"_account_id":24,"name":"Chuck Short","email":"charles.short@windriver.com","username":"zulcss"},"change_message_id":"2aa0f0fdb1b8c0fff08ff03843b2c7e83e3e532f","unresolved":false,"context_lines":[{"line_number":40,"context_line":"    echo \"Running pylint...\""},{"line_number":41,"context_line":"    echo \"You can speed this up by running it on \u0027HEAD~[0-9]\u0027 (e.g. HEAD~1, this change only)...\""},{"line_number":42,"context_line":"    if [ -n \"${files}\" ]; then"},{"line_number":43,"context_line":"        pylint --rcfile\u003d.pylintrc --output-format\u003dcolorized ${files}"},{"line_number":44,"context_line":"    else"},{"line_number":45,"context_line":"        echo \"No python changes in this commit, pylint check not required.\""},{"line_number":46,"context_line":"        exit 0"}],"source_content_type":"text/x-sh","patch_set":5,"id":"3f79a3b5_4c4ef896","line":43,"in_reply_to":"3f79a3b5_c0689abb","updated":"2018-09-03 12:01:56.000000000","message":"Done","commit_id":"989cb15bed7529731351772873d3e7373cbdf169"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"4a70232afc32e7ac2b6ca9993b0fd5eb9a1f7877","unresolved":false,"context_lines":[{"line_number":26,"context_line":"}"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"run_pylint() {"},{"line_number":29,"context_line":"    local target\u003d\"${scriptargs}\""},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"    if [ \"$target\" \u003d \"all\" ]; then"},{"line_number":32,"context_line":"        files\u003d\"cinder\""}],"source_content_type":"text/x-sh","patch_set":8,"id":"3f79a3b5_88ab8e1c","line":29,"updated":"2018-09-03 16:46:07.000000000","message":"I think we still need to provide a default in case none is specified. HEAD~1 works for what I think we want with gate jobs only checking the last commit for new issues.","commit_id":"dc71fdcc77a2d21760776ec43423c756cdb6cd50"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"4a70232afc32e7ac2b6ca9993b0fd5eb9a1f7877","unresolved":false,"context_lines":[{"line_number":28,"context_line":"run_pylint() {"},{"line_number":29,"context_line":"    local target\u003d\"${scriptargs}\""},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"    if [ \"$target\" \u003d \"all\" ]; then"},{"line_number":32,"context_line":"        files\u003d\"cinder\""},{"line_number":33,"context_line":"    else"},{"line_number":34,"context_line":"        GITHEAD\u003d`git rev-parse --abbrev-ref HEAD`"}],"source_content_type":"text/x-sh","patch_set":8,"id":"3f79a3b5_48a57646","line":31,"updated":"2018-09-03 16:46:07.000000000","message":"This doesn\u0027t work if someone does \"tox -e pylint -- all\". It appears the leading space is included, so it\u0027s not an exact match.\n\nChanging the line to this worked for me:\n\n    if [[ \"$target\" \u003d *\"all\"* ]]; then","commit_id":"dc71fdcc77a2d21760776ec43423c756cdb6cd50"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"4a70232afc32e7ac2b6ca9993b0fd5eb9a1f7877","unresolved":false,"context_lines":[{"line_number":32,"context_line":"        files\u003d\"cinder\""},{"line_number":33,"context_line":"    else"},{"line_number":34,"context_line":"        GITHEAD\u003d`git rev-parse --abbrev-ref HEAD`"},{"line_number":35,"context_line":"        if [[ \"$GITHEAD\" \u003d\u003d \"HEAD\" ]]; then"},{"line_number":36,"context_line":"            # In detached head mode, get revision number instead"},{"line_number":37,"context_line":"            GITHEAD\u003d`git rev-parse HEAD`"},{"line_number":38,"context_line":"            echo \"Currently we are at commit $GITHEAD\""}],"source_content_type":"text/x-sh","patch_set":8,"id":"3f79a3b5_08c0dedf","line":35,"updated":"2018-09-03 16:46:07.000000000","message":"While debugging why I couldn\u0027t do \"tox -e pylint -- all\" and other weirdness, I realized none of this is needed and it actually can cause problems and weirdness.\n\nSo before we needed to check out different points so we could just run pylint against the code at that point in time. We would capture that and use it to compare the difference the new code would introduce vs the original code.\n\nNow, that causes issues because we are not actually evaluating the current code. It also fails if someone decides they want to run pylint to see if their local changes are good before submitting them.\n\nWhat we really want is just the list of changed python files since HEAD~1 or HEAD~30 or whatever. We can get that list of files without needing to actually checking out any commits just by running the git diff command.\n\nI also found we need to make sure we get the git diff only on files that are still present. By default, that returns files that were deleted, so pylint would error on trying to check files that are no longer there.\n\nI got everything working mostly how I think we need it here:\n\nhttp://paste.openstack.org/show/729353/","commit_id":"dc71fdcc77a2d21760776ec43423c756cdb6cd50"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"4a70232afc32e7ac2b6ca9993b0fd5eb9a1f7877","unresolved":false,"context_lines":[{"line_number":62,"context_line":"        printf \"\\t%s\\n\" \"${files[@]}\""},{"line_number":63,"context_line":"    fi"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"    echo \"Running pylint...\""},{"line_number":66,"context_line":"    echo \"You can speed this up by running it on \u0027HEAD~[0-9]\u0027 (e.g. HEAD~1, this change only)...\""},{"line_number":67,"context_line":"    if [ -n \"${files}\" ]; then"},{"line_number":68,"context_line":"        pylint --rcfile\u003d.pylintrc --output-format\u003dcolorized ${files} \\"}],"source_content_type":"text/x-sh","patch_set":8,"id":"3f79a3b5_488b3667","line":65,"updated":"2018-09-03 16:46:07.000000000","message":"This might be better inside the if block. Or remove this and move the echo and printf from listing the files from where it is to inside the if block where it is actually run.\n\nJust a refinement if you need to update anything else. Not a real issue by any means.","commit_id":"dc71fdcc77a2d21760776ec43423c756cdb6cd50"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"829cb06069f99ab1782cb9cd588eb34c885a25ac","unresolved":false,"context_lines":[{"line_number":28,"context_line":"run_pylint() {"},{"line_number":29,"context_line":"    local target\u003d\"${scriptargs:-HEAD~1}\""},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"    if [ \"$target\" \u003d \"all\" ]; then"},{"line_number":32,"context_line":"        files\u003d\"cinder\""},{"line_number":33,"context_line":"    else"},{"line_number":34,"context_line":"        files\u003d$(git diff --name-only --diff-filter\u003dACMRU $target \"*.py\")"}],"source_content_type":"text/x-sh","patch_set":11,"id":"3f79a3b5_ff2748b5","line":31,"updated":"2018-09-04 13:37:42.000000000","message":"This still won\u0027t match \"tox -e pylint -- all\". It would only work for me if I did:\n\n    if [[ \"$target\" \u003d *\"all\"* ]]; then\n\nOr else if I did more complicated string trimming first.","commit_id":"d45824204e23ab322324899be79c80915bc75222"},{"author":{"_account_id":24,"name":"Chuck Short","email":"charles.short@windriver.com","username":"zulcss"},"change_message_id":"09a833e86b2bd364b501d8eb0a660e8593b08248","unresolved":false,"context_lines":[{"line_number":28,"context_line":"run_pylint() {"},{"line_number":29,"context_line":"    local target\u003d\"${scriptargs:-HEAD~1}\""},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"    if [ \"$target\" \u003d \"all\" ]; then"},{"line_number":32,"context_line":"        files\u003d\"cinder\""},{"line_number":33,"context_line":"    else"},{"line_number":34,"context_line":"        files\u003d$(git diff --name-only --diff-filter\u003dACMRU $target \"*.py\")"}],"source_content_type":"text/x-sh","patch_set":11,"id":"3f79a3b5_7f7d781a","line":31,"in_reply_to":"3f79a3b5_ff2748b5","updated":"2018-09-04 13:51:45.000000000","message":"Done","commit_id":"d45824204e23ab322324899be79c80915bc75222"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"2895829420f76ea9dcea1f02efe6fa0471e2b161","unresolved":false,"context_lines":[{"line_number":34,"context_line":"        files\u003d$(git diff --name-only --diff-filter\u003dACMRU $target \"*.py\")"},{"line_number":35,"context_line":"    fi"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    if [ -n \"${files}\" ]; then"},{"line_number":38,"context_line":"        echo \"Running pylint against:\""},{"line_number":39,"context_line":"        printf \"\\t%s\\n\" \"${files[@]}\""},{"line_number":40,"context_line":"        pylint --rcfile\u003d.pylintrc --output-format\u003dcolorized ${files} \\"}],"source_content_type":"text/x-sh","patch_set":12,"id":"3f79a3b5_7f27b813","line":37,"updated":"2018-09-04 13:55:14.000000000","message":"Oh, missed doubling the outer []","commit_id":"21ecb089043b0eb15feb3edc5da2d35ca123483c"},{"author":{"_account_id":24,"name":"Chuck Short","email":"charles.short@windriver.com","username":"zulcss"},"change_message_id":"5295aa8f619480fcda57b37d720f06d4d7fce791","unresolved":false,"context_lines":[{"line_number":34,"context_line":"        files\u003d$(git diff --name-only --diff-filter\u003dACMRU $target \"*.py\")"},{"line_number":35,"context_line":"    fi"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    if [ -n \"${files}\" ]; then"},{"line_number":38,"context_line":"        echo \"Running pylint against:\""},{"line_number":39,"context_line":"        printf \"\\t%s\\n\" \"${files[@]}\""},{"line_number":40,"context_line":"        pylint --rcfile\u003d.pylintrc --output-format\u003dcolorized ${files} \\"}],"source_content_type":"text/x-sh","patch_set":12,"id":"3f79a3b5_5ad3ea01","line":37,"in_reply_to":"3f79a3b5_7f27b813","updated":"2018-09-04 14:25:43.000000000","message":"Done","commit_id":"21ecb089043b0eb15feb3edc5da2d35ca123483c"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"d3a06f46cee86b768126c84379f9d88a7f293d07","unresolved":false,"context_lines":[{"line_number":34,"context_line":"        files\u003d$(git diff --name-only --diff-filter\u003dACMRU $target \"*.py\")"},{"line_number":35,"context_line":"    fi"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    if [[ -n \"${files}\" ]]; then"},{"line_number":38,"context_line":"        echo \"Running pylint against:\""},{"line_number":39,"context_line":"        printf \"\\t%s\\n\" \"${files[@]}\""},{"line_number":40,"context_line":"        pylint --rcfile\u003d.pylintrc --output-format\u003dcolorized ${files} \\"}],"source_content_type":"text/x-sh","patch_set":13,"id":"3f79a3b5_55c2db54","line":37,"range":{"start_line":37,"start_character":7,"end_line":37,"end_character":9},"updated":"2018-09-04 14:46:43.000000000","message":"Wrong spot, these are needed up on line 31.","commit_id":"141e86f22d7a214809ba9ea0abd89f1ec47a2e45"},{"author":{"_account_id":24,"name":"Chuck Short","email":"charles.short@windriver.com","username":"zulcss"},"change_message_id":"6e8cf5ad7b3eba745d3c0ac7cbfc1aabd72c4145","unresolved":false,"context_lines":[{"line_number":34,"context_line":"        files\u003d$(git diff --name-only --diff-filter\u003dACMRU $target \"*.py\")"},{"line_number":35,"context_line":"    fi"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    if [[ -n \"${files}\" ]]; then"},{"line_number":38,"context_line":"        echo \"Running pylint against:\""},{"line_number":39,"context_line":"        printf \"\\t%s\\n\" \"${files[@]}\""},{"line_number":40,"context_line":"        pylint --rcfile\u003d.pylintrc --output-format\u003dcolorized ${files} \\"}],"source_content_type":"text/x-sh","patch_set":13,"id":"3f79a3b5_d59fcbff","line":37,"range":{"start_line":37,"start_character":7,"end_line":37,"end_character":9},"in_reply_to":"3f79a3b5_55c2db54","updated":"2018-09-04 14:56:06.000000000","message":"Done","commit_id":"141e86f22d7a214809ba9ea0abd89f1ec47a2e45"}],"tox.ini":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"8ef23383db8f1751ec71f1bca2a0ebcb24caed49","unresolved":false,"context_lines":[{"line_number":89,"context_line":"whitelist_externals \u003d"},{"line_number":90,"context_line":" /bin/sh"},{"line_number":91,"context_line":"commands \u003d"},{"line_number":92,"context_line":"  sh ./tools/coding-checks.sh --pylint \u0027{posargs}\u0027"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"[testenv:cover]"},{"line_number":95,"context_line":"# Also do not run test_coverage_ext tests while gathering coverage as those"}],"source_content_type":"text/x-properties","patch_set":4,"id":"3f79a3b5_3e96a640","line":92,"range":{"start_line":92,"start_character":2,"end_line":92,"end_character":4},"updated":"2018-08-28 19:09:28.000000000","message":"Is there a reason for using sh instead? bash is kind of our de facto standard in OpenStack.","commit_id":"a2f29a0978ec02ab7bb68eaec81d172b6e0578ee"},{"author":{"_account_id":24,"name":"Chuck Short","email":"charles.short@windriver.com","username":"zulcss"},"change_message_id":"53b73915db8ea356186b59cf8139c71a6c6c2dea","unresolved":false,"context_lines":[{"line_number":89,"context_line":"whitelist_externals \u003d"},{"line_number":90,"context_line":" /bin/sh"},{"line_number":91,"context_line":"commands \u003d"},{"line_number":92,"context_line":"  sh ./tools/coding-checks.sh --pylint \u0027{posargs}\u0027"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"[testenv:cover]"},{"line_number":95,"context_line":"# Also do not run test_coverage_ext tests while gathering coverage as those"}],"source_content_type":"text/x-properties","patch_set":4,"id":"3f79a3b5_7e03be77","line":92,"range":{"start_line":92,"start_character":2,"end_line":92,"end_character":4},"in_reply_to":"3f79a3b5_3e96a640","updated":"2018-08-28 19:12:11.000000000","message":"Nope there isnt a reason for using sh instead of bash","commit_id":"a2f29a0978ec02ab7bb68eaec81d172b6e0578ee"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"b042313792f65799af07e4cea73c9f91ea4c1ce4","unresolved":false,"context_lines":[{"line_number":86,"context_line":"basepython \u003d python3"},{"line_number":87,"context_line":"deps \u003d -r{toxinidir}/requirements.txt"},{"line_number":88,"context_line":"       pylint\u003d\u003d1.9.1"},{"line_number":89,"context_line":"commands \u003d"},{"line_number":90,"context_line":"  bash ./tools/coding-checks.sh --pylint \u0027{posargs}\u0027"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"[testenv:cover]"}],"source_content_type":"text/x-properties","patch_set":5,"id":"3f79a3b5_6078a68e","line":89,"updated":"2018-08-31 19:30:01.000000000","message":"This changes the behavior of our pylint job. Previously it ran two full runs to identify any newly introduced pylint errors. Manually, we kind of can still get that by calling \"tox -e pylint -- HEAD~1\", but the common pylint job can\u0027t be updated to do that.\n\nSo I think it would be best to update the script to default to HEAD~1. Then manually if someone wanted to run against all code they could call \"tox -e pylint -- -all\" to get everything.\n\nThat still doesn\u0027t get us back to only identifying new issues since it will pick up existing ones in any modified files, but it at least scopes it down to just the areas we are concerned with. And might be a good way we can get folks modifying certain areas of code to address things that have been latent there.","commit_id":"989cb15bed7529731351772873d3e7373cbdf169"},{"author":{"_account_id":24,"name":"Chuck Short","email":"charles.short@windriver.com","username":"zulcss"},"change_message_id":"2aa0f0fdb1b8c0fff08ff03843b2c7e83e3e532f","unresolved":false,"context_lines":[{"line_number":86,"context_line":"basepython \u003d python3"},{"line_number":87,"context_line":"deps \u003d -r{toxinidir}/requirements.txt"},{"line_number":88,"context_line":"       pylint\u003d\u003d1.9.1"},{"line_number":89,"context_line":"commands \u003d"},{"line_number":90,"context_line":"  bash ./tools/coding-checks.sh --pylint \u0027{posargs}\u0027"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"[testenv:cover]"}],"source_content_type":"text/x-properties","patch_set":5,"id":"3f79a3b5_5cb9bc12","line":89,"in_reply_to":"3f79a3b5_6078a68e","updated":"2018-09-03 12:01:56.000000000","message":"Done","commit_id":"989cb15bed7529731351772873d3e7373cbdf169"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"d692ec6a53b82673116f99fcd682900998fe723a","unresolved":false,"context_lines":[{"line_number":87,"context_line":"deps \u003d -r{toxinidir}/requirements.txt"},{"line_number":88,"context_line":"       pylint\u003d\u003d2.1.1"},{"line_number":89,"context_line":"commands \u003d"},{"line_number":90,"context_line":"  bash ./tools/coding-checks.sh --pylint"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"[testenv:cover]"},{"line_number":93,"context_line":"# Also do not run test_coverage_ext tests while gathering coverage as those"}],"source_content_type":"text/x-properties","patch_set":9,"id":"3f79a3b5_e82fa2a4","line":90,"updated":"2018-09-03 16:54:01.000000000","message":"Don\u0027t we need those passed in?","commit_id":"e9fdf4a65150063948fa02182185ab8133686427"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"451609ef64a22ec350850b89df017614a548632f","unresolved":false,"context_lines":[{"line_number":87,"context_line":"deps \u003d -r{toxinidir}/requirements.txt"},{"line_number":88,"context_line":"       pylint\u003d\u003d2.1.1"},{"line_number":89,"context_line":"commands \u003d"},{"line_number":90,"context_line":"  bash ./tools/coding-checks.sh --pylint"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"[testenv:cover]"},{"line_number":93,"context_line":"# Also do not run test_coverage_ext tests while gathering coverage as those"}],"source_content_type":"text/x-properties","patch_set":12,"id":"3f79a3b5_bf9a3010","line":90,"updated":"2018-09-04 13:58:50.000000000","message":"And this still isn\u0027t passing in the args, so nothing will work except HEAD~1.","commit_id":"21ecb089043b0eb15feb3edc5da2d35ca123483c"},{"author":{"_account_id":24,"name":"Chuck Short","email":"charles.short@windriver.com","username":"zulcss"},"change_message_id":"5295aa8f619480fcda57b37d720f06d4d7fce791","unresolved":false,"context_lines":[{"line_number":87,"context_line":"deps \u003d -r{toxinidir}/requirements.txt"},{"line_number":88,"context_line":"       pylint\u003d\u003d2.1.1"},{"line_number":89,"context_line":"commands \u003d"},{"line_number":90,"context_line":"  bash ./tools/coding-checks.sh --pylint"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"[testenv:cover]"},{"line_number":93,"context_line":"# Also do not run test_coverage_ext tests while gathering coverage as those"}],"source_content_type":"text/x-properties","patch_set":12,"id":"3f79a3b5_fa05167b","line":90,"in_reply_to":"3f79a3b5_bf9a3010","updated":"2018-09-04 14:25:43.000000000","message":"Done","commit_id":"21ecb089043b0eb15feb3edc5da2d35ca123483c"}]}
