)]}'
{"setup.cfg":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"49e718891d9b2eda4cd028f93168824943a790f8","unresolved":false,"context_lines":[{"line_number":99,"context_line":"[bdist_wheel]"},{"line_number":100,"context_line":"universal \u003d 1"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"[mypy]"},{"line_number":103,"context_line":"# Provide more helpful output"},{"line_number":104,"context_line":"show_column_numbers \u003d True"},{"line_number":105,"context_line":"show_error_context \u003d True"},{"line_number":106,"context_line":"# We\u0027re not trying to test other project\u0027s code (yet), so ignore them"},{"line_number":107,"context_line":"ignore_missing_imports \u003d True"},{"line_number":108,"context_line":"follow_imports \u003d skip"},{"line_number":109,"context_line":"# Other stuff"},{"line_number":110,"context_line":"incremental \u003d True"},{"line_number":111,"context_line":"check_untyped_defs \u003d True"},{"line_number":112,"context_line":"warn_unused_ignores \u003d True"}],"source_content_type":"text/x-ttcn-cfg","patch_set":2,"id":"3fa7e38b_11af19e1","line":112,"range":{"start_line":102,"start_character":0,"end_line":112,"end_character":26},"updated":"2020-01-14 11:52:01.000000000","message":"if we could set this in the tox.ini or in a separate file it might be better since we don\u0027t normally keep test config here.","commit_id":"6f09b34dae448825f0a11fb3df9631a6e08d272d"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"558744af948618cac56702c02fc50b91dfb927d1","unresolved":false,"context_lines":[{"line_number":99,"context_line":"[bdist_wheel]"},{"line_number":100,"context_line":"universal \u003d 1"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"[mypy]"},{"line_number":103,"context_line":"# Provide more helpful output"},{"line_number":104,"context_line":"show_column_numbers \u003d True"},{"line_number":105,"context_line":"show_error_context \u003d True"},{"line_number":106,"context_line":"# We\u0027re not trying to test other project\u0027s code (yet), so ignore them"},{"line_number":107,"context_line":"ignore_missing_imports \u003d True"},{"line_number":108,"context_line":"follow_imports \u003d skip"},{"line_number":109,"context_line":"# Other stuff"},{"line_number":110,"context_line":"incremental \u003d True"},{"line_number":111,"context_line":"check_untyped_defs \u003d True"},{"line_number":112,"context_line":"warn_unused_ignores \u003d True"}],"source_content_type":"text/x-ttcn-cfg","patch_set":2,"id":"3fa7e38b_6d31580a","line":112,"range":{"start_line":102,"start_character":0,"end_line":112,"end_character":26},"in_reply_to":"3fa7e38b_0c64e2b2","updated":"2020-02-10 12:01:59.000000000","message":"We can, but I\u0027m not sure why you\u0027d want to have another file. Nothing wrong with storing the configuration here, IMO","commit_id":"6f09b34dae448825f0a11fb3df9631a6e08d272d"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"99cb2f521b38506552cc4144705178ea094e75ec","unresolved":false,"context_lines":[{"line_number":99,"context_line":"[bdist_wheel]"},{"line_number":100,"context_line":"universal \u003d 1"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"[mypy]"},{"line_number":103,"context_line":"# Provide more helpful output"},{"line_number":104,"context_line":"show_column_numbers \u003d True"},{"line_number":105,"context_line":"show_error_context \u003d True"},{"line_number":106,"context_line":"# We\u0027re not trying to test other project\u0027s code (yet), so ignore them"},{"line_number":107,"context_line":"ignore_missing_imports \u003d True"},{"line_number":108,"context_line":"follow_imports \u003d skip"},{"line_number":109,"context_line":"# Other stuff"},{"line_number":110,"context_line":"incremental \u003d True"},{"line_number":111,"context_line":"check_untyped_defs \u003d True"},{"line_number":112,"context_line":"warn_unused_ignores \u003d True"}],"source_content_type":"text/x-ttcn-cfg","patch_set":2,"id":"3fa7e38b_f1d35d01","line":112,"range":{"start_line":102,"start_character":0,"end_line":112,"end_character":26},"in_reply_to":"3fa7e38b_11af19e1","updated":"2020-01-14 12:17:31.000000000","message":"I tried and you can\u0027t [1]. This is as good as we can do, unfortunately (at least until I submit a PR for mypy to read from \u0027tox.ini\u0027)\n\n[1] https://mypy.readthedocs.io/en/latest/config_file.html","commit_id":"6f09b34dae448825f0a11fb3df9631a6e08d272d"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"463a0139ddb8668942a9fb65db1cd2d929e065ca","unresolved":false,"context_lines":[{"line_number":99,"context_line":"[bdist_wheel]"},{"line_number":100,"context_line":"universal \u003d 1"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"[mypy]"},{"line_number":103,"context_line":"# Provide more helpful output"},{"line_number":104,"context_line":"show_column_numbers \u003d True"},{"line_number":105,"context_line":"show_error_context \u003d True"},{"line_number":106,"context_line":"# We\u0027re not trying to test other project\u0027s code (yet), so ignore them"},{"line_number":107,"context_line":"ignore_missing_imports \u003d True"},{"line_number":108,"context_line":"follow_imports \u003d skip"},{"line_number":109,"context_line":"# Other stuff"},{"line_number":110,"context_line":"incremental \u003d True"},{"line_number":111,"context_line":"check_untyped_defs \u003d True"},{"line_number":112,"context_line":"warn_unused_ignores \u003d True"}],"source_content_type":"text/x-ttcn-cfg","patch_set":2,"id":"3fa7e38b_0c64e2b2","line":112,"range":{"start_line":102,"start_character":0,"end_line":112,"end_character":26},"in_reply_to":"3fa7e38b_f1d35d01","updated":"2020-01-14 12:54:45.000000000","message":"we can add a mypy.ini instead however right.","commit_id":"6f09b34dae448825f0a11fb3df9631a6e08d272d"}],"tools/mypywrap.sh":[{"author":{"_account_id":30209,"name":"Huaqiang","email":"huaqiang.wang@intel.com","username":"Huaqiang.Wang"},"change_message_id":"95745028c016d2c4b4f7b5d30fc63d0c5ea63344","unresolved":false,"context_lines":[{"line_number":14,"context_line":""},{"line_number":15,"context_line":"if [ $# -eq 0 ]; then"},{"line_number":16,"context_line":"    # if no arguments provided, use the standard converted lists"},{"line_number":17,"context_line":"    lines\u003d$(grep -v \u0027#\u0027 $ROOT_DIR/../mypy-files.txt)"},{"line_number":18,"context_line":"    python -m mypy ${lines[@]}"},{"line_number":19,"context_line":"else"},{"line_number":20,"context_line":"    # else test what the user asked us to"}],"source_content_type":"text/x-sh","patch_set":10,"id":"df33271e_1e04c07a","line":17,"updated":"2020-03-27 08:32:09.000000000","message":"You need to check if \u0027mypy-files.txt\u0027 is an empyty file, otherwise it fails.\nIt is better to check if the file(s) listed in \u0027mypy-files.txt\u0027 exists or not,\nand give friendly message, such as \u0027xxx file not found\u0027 to user.","commit_id":"78cd801663c315658bd5c080a972d45854a38670"},{"author":{"_account_id":30209,"name":"Huaqiang","email":"huaqiang.wang@intel.com","username":"Huaqiang.Wang"},"change_message_id":"84266ff0cd6cdae81b3166dac9d6443480570222","unresolved":false,"context_lines":[{"line_number":14,"context_line":""},{"line_number":15,"context_line":"if [ $# -eq 0 ]; then"},{"line_number":16,"context_line":"    # if no arguments provided, use the standard converted lists"},{"line_number":17,"context_line":"    lines\u003d$(grep -v \u0027#\u0027 $ROOT_DIR/../mypy-files.txt)"},{"line_number":18,"context_line":"    python -m mypy ${lines[@]}"},{"line_number":19,"context_line":"else"},{"line_number":20,"context_line":"    # else test what the user asked us to"}],"source_content_type":"text/x-sh","patch_set":10,"id":"df33271e_5e72c8e4","line":17,"updated":"2020-03-27 08:47:46.000000000","message":"[later: You don\u0027t need to add the \u0027friendly message\u0027 I mentioned, the mypy module will give that kind of message. But you still need to handle the error caused by an empty \u0027mypy-files.txt\u0027.","commit_id":"78cd801663c315658bd5c080a972d45854a38670"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"ace12be13d33c3fa9eb3d0ec856ce57ceb501c22","unresolved":false,"context_lines":[{"line_number":14,"context_line":""},{"line_number":15,"context_line":"if [ $# -eq 0 ]; then"},{"line_number":16,"context_line":"    # if no arguments provided, use the standard converted lists"},{"line_number":17,"context_line":"    lines\u003d$(grep -v \u0027#\u0027 $ROOT_DIR/../mypy-files.txt)"},{"line_number":18,"context_line":"    python -m mypy ${lines[@]}"},{"line_number":19,"context_line":"else"},{"line_number":20,"context_line":"    # else test what the user asked us to"}],"source_content_type":"text/x-sh","patch_set":10,"id":"df33271e_b2186575","line":17,"in_reply_to":"df33271e_5e72c8e4","updated":"2020-03-27 12:11:38.000000000","message":"I avoided adding a check because the target is useless until we have some files in here and once we have those the check will never trigger.","commit_id":"78cd801663c315658bd5c080a972d45854a38670"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"38929e775f6b42c732d83b7494ce32a7712c3808","unresolved":false,"context_lines":[{"line_number":14,"context_line":""},{"line_number":15,"context_line":"if [ $# -eq 0 ]; then"},{"line_number":16,"context_line":"    # if no arguments provided, use the standard converted lists"},{"line_number":17,"context_line":"    lines\u003d$(grep -v \u0027#\u0027 $ROOT_DIR/../mypy-files.txt)"},{"line_number":18,"context_line":"    python -m mypy ${lines[@]}"},{"line_number":19,"context_line":"else"},{"line_number":20,"context_line":"    # else test what the user asked us to"}],"source_content_type":"text/x-sh","patch_set":11,"id":"df33271e_16d8137d","line":17,"updated":"2020-03-28 15:14:22.000000000","message":"I think there\u0027s something wrong with when and how we pass mypy-files.txt to mypy:\n\n  [artom@zoe nova]$ tox -e mypy foo\n  mypy: can\u0027t read file \u0027foo\u0027: No such file or directory\n\nThat was expected, but:\n\n  [artom@zoe nova]$ tox -e mypy\n  mypy: error: Missing target module, package, files, or command.","commit_id":"f5de25c0b57db068c4eb8a4fab11a7d3b8923288"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"1dd07a281ee90df05d4a4786c51974d58a269885","unresolved":false,"context_lines":[{"line_number":14,"context_line":""},{"line_number":15,"context_line":"if [ $# -eq 0 ]; then"},{"line_number":16,"context_line":"    # if no arguments provided, use the standard converted lists"},{"line_number":17,"context_line":"    lines\u003d$(grep -v \u0027#\u0027 $ROOT_DIR/../mypy-files.txt)"},{"line_number":18,"context_line":"    python -m mypy ${lines[@]}"},{"line_number":19,"context_line":"else"},{"line_number":20,"context_line":"    # else test what the user asked us to"}],"source_content_type":"text/x-sh","patch_set":11,"id":"df33271e_513f92d5","line":17,"in_reply_to":"df33271e_04ea8baa","updated":"2020-04-06 16:26:27.000000000","message":"\u003e I\u0027m suggesting something more simple/dumb, that would still avoid\n \u003e merging \"broken\" code:\n \u003e \n \u003e # TODO(stephenfin) An empty mypy-files.txt will cause mypy\n \u003e # to error out. \"Dry-run\" for now, until we have files in\n \u003e # mypy-files.txt, at which point we can uncomment the\n \u003e # \"real\" command.\n \u003e # python -m mypy ${lines[@]}\n \u003e python -m mypy -h\n\nI just added a mypy-files.txt file :)","commit_id":"f5de25c0b57db068c4eb8a4fab11a7d3b8923288"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"5993414d802eea3f3f94b9afb353c6b0acf0cd5d","unresolved":false,"context_lines":[{"line_number":14,"context_line":""},{"line_number":15,"context_line":"if [ $# -eq 0 ]; then"},{"line_number":16,"context_line":"    # if no arguments provided, use the standard converted lists"},{"line_number":17,"context_line":"    lines\u003d$(grep -v \u0027#\u0027 $ROOT_DIR/../mypy-files.txt)"},{"line_number":18,"context_line":"    python -m mypy ${lines[@]}"},{"line_number":19,"context_line":"else"},{"line_number":20,"context_line":"    # else test what the user asked us to"}],"source_content_type":"text/x-sh","patch_set":11,"id":"df33271e_36c6f79b","line":17,"in_reply_to":"df33271e_16d8137d","updated":"2020-03-28 15:19:25.000000000","message":"Ah, having tried it with the patch above this one, I believe that ^^ error is because mypy-files.txt is empty. I get that it\u0027s not a big deal, because realistically no one will be running mypy with *just* this patch, but I feel like it\u0027d be more rigorous to have this patch run `mypy -V` or something (there\u0027s not dry run option that I can see), with a TODO to change it to a \"real\" run once mypy-files.txt is no longer empty.","commit_id":"f5de25c0b57db068c4eb8a4fab11a7d3b8923288"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"63fabfdf9e066eedcbf88e9a3f6dcd49a4043d3f","unresolved":false,"context_lines":[{"line_number":14,"context_line":""},{"line_number":15,"context_line":"if [ $# -eq 0 ]; then"},{"line_number":16,"context_line":"    # if no arguments provided, use the standard converted lists"},{"line_number":17,"context_line":"    lines\u003d$(grep -v \u0027#\u0027 $ROOT_DIR/../mypy-files.txt)"},{"line_number":18,"context_line":"    python -m mypy ${lines[@]}"},{"line_number":19,"context_line":"else"},{"line_number":20,"context_line":"    # else test what the user asked us to"}],"source_content_type":"text/x-sh","patch_set":11,"id":"df33271e_84fdfbb2","line":17,"in_reply_to":"df33271e_36c6f79b","updated":"2020-03-30 11:22:57.000000000","message":"See [1]. My argument still holds, I think? (we\u0027ll fix this almost immediately in the next patch and any code we add now will be dead after that)\n\n[1] https://review.opendev.org/#/c/676208/10/tools/mypywrap.sh@17","commit_id":"f5de25c0b57db068c4eb8a4fab11a7d3b8923288"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"5051d94ca091f060e52b6808e7f5df92776fe91b","unresolved":false,"context_lines":[{"line_number":14,"context_line":""},{"line_number":15,"context_line":"if [ $# -eq 0 ]; then"},{"line_number":16,"context_line":"    # if no arguments provided, use the standard converted lists"},{"line_number":17,"context_line":"    lines\u003d$(grep -v \u0027#\u0027 $ROOT_DIR/../mypy-files.txt)"},{"line_number":18,"context_line":"    python -m mypy ${lines[@]}"},{"line_number":19,"context_line":"else"},{"line_number":20,"context_line":"    # else test what the user asked us to"}],"source_content_type":"text/x-sh","patch_set":11,"id":"1f493fa4_585e2076","line":17,"in_reply_to":"df33271e_513f92d5","updated":"2020-04-28 13:33:18.000000000","message":"I like it, thanks!","commit_id":"f5de25c0b57db068c4eb8a4fab11a7d3b8923288"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"65ca4eaf21d7980b96a6082555e63ac58b50e219","unresolved":false,"context_lines":[{"line_number":14,"context_line":""},{"line_number":15,"context_line":"if [ $# -eq 0 ]; then"},{"line_number":16,"context_line":"    # if no arguments provided, use the standard converted lists"},{"line_number":17,"context_line":"    lines\u003d$(grep -v \u0027#\u0027 $ROOT_DIR/../mypy-files.txt)"},{"line_number":18,"context_line":"    python -m mypy ${lines[@]}"},{"line_number":19,"context_line":"else"},{"line_number":20,"context_line":"    # else test what the user asked us to"}],"source_content_type":"text/x-sh","patch_set":11,"id":"df33271e_04ea8baa","line":17,"in_reply_to":"df33271e_84fdfbb2","updated":"2020-03-30 11:33:53.000000000","message":"I\u0027m suggesting something more simple/dumb, that would still avoid merging \"broken\" code:\n\n  # TODO(stephenfin) An empty mypy-files.txt will cause mypy\n  # to error out. \"Dry-run\" for now, until we have files in\n  # mypy-files.txt, at which point we can uncomment the\n  # \"real\" command.\n  # python -m mypy ${lines[@]}\n  python -m mypy -h","commit_id":"f5de25c0b57db068c4eb8a4fab11a7d3b8923288"}],"tox.ini":[{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"93137edd6f69a1241693e1b95c384320317c7ee2","unresolved":false,"context_lines":[{"line_number":50,"context_line":"  Run style checks."},{"line_number":51,"context_line":"envdir \u003d {toxworkdir}/shared"},{"line_number":52,"context_line":"commands \u003d"},{"line_number":53,"context_line":"  {[testenv:mypy]commands}"},{"line_number":54,"context_line":"  bash tools/flake8wrap.sh {posargs}"},{"line_number":55,"context_line":"  # Check that all JSON files don\u0027t have \\r\\n in line."},{"line_number":56,"context_line":"  bash -c \"! find doc/ -type f -name *.json | xargs grep -U -n $\u0027\\r\u0027\""}],"source_content_type":"text/x-properties","patch_set":15,"id":"ff570b3c_e25a0128","line":53,"range":{"start_line":53,"start_character":0,"end_line":53,"end_character":26},"updated":"2020-05-15 09:16:16.000000000","message":"I was about to -1 this as it breaks the following command:\n\n  $ tox -e pep8 -- -HEAD\n  [..]\n  usage: mypy [-h] [-v] [-V] [more options; see below]\n            [-m MODULE] [-p PACKAGE] [-c PROGRAM_TEXT] \n  [files ...]\n  mypy: error: unrecognized arguments: -HEAD\n  ERROR: InvocationError for command /usr/bin/bash \n  tools/mypywrap.sh -HEAD (exited with code 2)\n  ERROR:   pep8: commands failed\n\nBut then I finally noticed that we now have fast8 so that doesn\u0027t matter anymore.\n\nIt still seems odd to me that we are adding this here if use of mypy is just optional at the moment. Why don\u0027t we just leave it in a separate env and have a non-voting job specifically to run that?","commit_id":"df3c00e2025ce55d0ce735e5a960ac570847d1e5"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"044468d3152d2fde21b444f4d6269e5e8395a889","unresolved":false,"context_lines":[{"line_number":50,"context_line":"  Run style checks."},{"line_number":51,"context_line":"envdir \u003d {toxworkdir}/shared"},{"line_number":52,"context_line":"commands \u003d"},{"line_number":53,"context_line":"  {[testenv:mypy]commands}"},{"line_number":54,"context_line":"  bash tools/flake8wrap.sh {posargs}"},{"line_number":55,"context_line":"  # Check that all JSON files don\u0027t have \\r\\n in line."},{"line_number":56,"context_line":"  bash -c \"! find doc/ -type f -name *.json | xargs grep -U -n $\u0027\\r\u0027\""}],"source_content_type":"text/x-properties","patch_set":15,"id":"ff570b3c_82ca256a","line":53,"range":{"start_line":53,"start_character":0,"end_line":53,"end_character":26},"in_reply_to":"ff570b3c_c2d25d5c","updated":"2020-05-15 09:27:48.000000000","message":"I did initially do this (albeit voting) [1]. The reason I changed was because of a discussion with mordred when I went to propose this against openstack-zuul-jobs. I guess we can keep such a job inline for now\n\n[1] https://review.opendev.org/#/c/539168/\n[2] https://review.opendev.org/#/c/686366/","commit_id":"df3c00e2025ce55d0ce735e5a960ac570847d1e5"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"e41c11f899ac4609c06af7667ae76b521386d775","unresolved":false,"context_lines":[{"line_number":50,"context_line":"  Run style checks."},{"line_number":51,"context_line":"envdir \u003d {toxworkdir}/shared"},{"line_number":52,"context_line":"commands \u003d"},{"line_number":53,"context_line":"  {[testenv:mypy]commands}"},{"line_number":54,"context_line":"  bash tools/flake8wrap.sh {posargs}"},{"line_number":55,"context_line":"  # Check that all JSON files don\u0027t have \\r\\n in line."},{"line_number":56,"context_line":"  bash -c \"! find doc/ -type f -name *.json | xargs grep -U -n $\u0027\\r\u0027\""}],"source_content_type":"text/x-properties","patch_set":15,"id":"ff570b3c_c2d25d5c","line":53,"range":{"start_line":53,"start_character":0,"end_line":53,"end_character":26},"in_reply_to":"ff570b3c_e25a0128","updated":"2020-05-15 09:19:11.000000000","message":"I\u0027d even make that job experimental initially tbh.","commit_id":"df3c00e2025ce55d0ce735e5a960ac570847d1e5"}]}
