)]}'
{"tools/generate-tempest-plugins-list.py":[{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"aaf0f878663ac5d1ff47e454f13c0fb5453caf03","unresolved":false,"context_lines":[{"line_number":39,"context_line":"# List of projects having tempest plugin stale or unmaintained for a long time"},{"line_number":40,"context_line":"# (6 months or more)"},{"line_number":41,"context_line":"# TODO(masayukig): Some of these can be removed from BLACKLIST in the future."},{"line_number":42,"context_line":"# barbican-tempest-plugin: https://review.opendev.org/#/c/634631/"},{"line_number":43,"context_line":"# cyborg-tempest-plugin: https://review.opendev.org/659687"},{"line_number":44,"context_line":"# intel-nfv-ci-tests: https://review.opendev.org/#/c/634640/"},{"line_number":45,"context_line":"# networking-ansible: https://review.opendev.org/#/c/634647/"},{"line_number":46,"context_line":"# networking-generic-switch: https://review.opendev.org/#/c/634846/"},{"line_number":47,"context_line":"# networking-l2gw-tempest-plugin: https://review.opendev.org/#/c/635093/"},{"line_number":48,"context_line":"# networking-midonet: https://review.opendev.org/#/c/635096/"},{"line_number":49,"context_line":"# networking-plumgrid: https://review.opendev.org/#/c/635096/"},{"line_number":50,"context_line":"# networking-spp: https://review.opendev.org/#/c/635098/"},{"line_number":51,"context_line":"# neutron-dynamic-routing: https://review.opendev.org/#/c/637718/"},{"line_number":52,"context_line":"# neutron-vpnaas: https://review.opendev.org/#/c/637719/"},{"line_number":53,"context_line":"# nova-lxd: https://review.opendev.org/#/c/638334/"},{"line_number":54,"context_line":"# valet: https://review.opendev.org/#/c/638339/"},{"line_number":55,"context_line":"BLACKLIST \u003d ["},{"line_number":56,"context_line":"    \u0027barbican-tempest-plugin\u0027,"},{"line_number":57,"context_line":"    \u0027cyborg-tempest-plugin\u0027,"}],"source_content_type":"text/x-python","patch_set":5,"id":"9fb8cfa7_c644d349","line":54,"range":{"start_line":42,"start_character":0,"end_line":54,"end_character":47},"updated":"2019-06-11 18:43:21.000000000","message":"Can we put these review links into the following BLACKLIST like\n\n BLACKLIST \u003d [\n    \u0027barbican-tempest-plugin\u0027, # https://review.opendev.org/#/c/634631/\n    \u0027cyborg-tempest-plugin\u0027,   # https://review.opendev.org/659687\n    ...\n\nto reduce maintaining work of duplicated list?","commit_id":"61cc0e3f92b2fa243896934a6aabc2bbf08527fd"},{"author":{"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},"change_message_id":"bc99a2d93e17d244f9711dcc1985c56011b07c7f","unresolved":false,"context_lines":[{"line_number":39,"context_line":"# List of projects having tempest plugin stale or unmaintained for a long time"},{"line_number":40,"context_line":"# (6 months or more)"},{"line_number":41,"context_line":"# TODO(masayukig): Some of these can be removed from BLACKLIST in the future."},{"line_number":42,"context_line":"# barbican-tempest-plugin: https://review.opendev.org/#/c/634631/"},{"line_number":43,"context_line":"# cyborg-tempest-plugin: https://review.opendev.org/659687"},{"line_number":44,"context_line":"# intel-nfv-ci-tests: https://review.opendev.org/#/c/634640/"},{"line_number":45,"context_line":"# networking-ansible: https://review.opendev.org/#/c/634647/"},{"line_number":46,"context_line":"# networking-generic-switch: https://review.opendev.org/#/c/634846/"},{"line_number":47,"context_line":"# networking-l2gw-tempest-plugin: https://review.opendev.org/#/c/635093/"},{"line_number":48,"context_line":"# networking-midonet: https://review.opendev.org/#/c/635096/"},{"line_number":49,"context_line":"# networking-plumgrid: https://review.opendev.org/#/c/635096/"},{"line_number":50,"context_line":"# networking-spp: https://review.opendev.org/#/c/635098/"},{"line_number":51,"context_line":"# neutron-dynamic-routing: https://review.opendev.org/#/c/637718/"},{"line_number":52,"context_line":"# neutron-vpnaas: https://review.opendev.org/#/c/637719/"},{"line_number":53,"context_line":"# nova-lxd: https://review.opendev.org/#/c/638334/"},{"line_number":54,"context_line":"# valet: https://review.opendev.org/#/c/638339/"},{"line_number":55,"context_line":"BLACKLIST \u003d ["},{"line_number":56,"context_line":"    \u0027barbican-tempest-plugin\u0027,"},{"line_number":57,"context_line":"    \u0027cyborg-tempest-plugin\u0027,"}],"source_content_type":"text/x-python","patch_set":5,"id":"9fb8cfa7_7f0c81eb","line":54,"range":{"start_line":42,"start_character":0,"end_line":54,"end_character":47},"in_reply_to":"9fb8cfa7_c644d349","updated":"2019-06-12 02:17:42.000000000","message":"yeah, we can do it. That sounds good. I just copied \u0026 pasted from the shell script.","commit_id":"61cc0e3f92b2fa243896934a6aabc2bbf08527fd"}],"tools/generate-tempest-plugins-list.sh":[{"author":{"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},"change_message_id":"cf88fe12bc2bbf7d5aaad77b8cd8dcae61c53311","unresolved":false,"context_lines":[{"line_number":74,"context_line":"    printf \"%-3s %-${name_col_len}s %s\\n\" \"$i\" \"${plugin}\" \"\\`${giturl} \u003c${gitlink}\u003e\\`__\""},{"line_number":75,"context_line":"done"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"title_underline ${name_col_len}"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"printf \"\\n\\n\""},{"line_number":80,"context_line":""}],"source_content_type":"text/x-sh","patch_set":3,"id":"bfb3d3c7_5038b2ed","line":77,"updated":"2019-05-25 07:15:59.000000000","message":"Thanks for the comment! yeah, indeed. will do.","commit_id":"9cdc19ebdbd6071cc8cb41e9822ef5674ee12880"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"8ba8158da65cee6e34d0727680c51941ebe90ada","unresolved":false,"context_lines":[{"line_number":62,"context_line":"}"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"printf \"\\n\\n\""},{"line_number":65,"context_line":"title_underline ${name_col_len}"},{"line_number":66,"context_line":"printf \"%-3s %-${name_col_len}s %s\\n\" \"SR\" \"Plugin Name\" \"URL\""},{"line_number":67,"context_line":"title_underline ${name_col_len}"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"i\u003d0"},{"line_number":70,"context_line":"for plugin in ${sorted_plugins}; do"},{"line_number":71,"context_line":"    i\u003d$((i+1))"},{"line_number":72,"context_line":"    giturl\u003d\"https://git.openstack.org/openstack/${plugin}\""},{"line_number":73,"context_line":"    gitlink\u003d\"https://git.openstack.org/cgit/openstack/${plugin}\""},{"line_number":74,"context_line":"    printf \"%-3s %-${name_col_len}s %s\\n\" \"$i\" \"${plugin}\" \"\\`${giturl} \u003c${gitlink}\u003e\\`__\""},{"line_number":75,"context_line":"done"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"title_underline ${name_col_len}"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"printf \"\\n\\n\""},{"line_number":80,"context_line":""}],"source_content_type":"text/x-sh","patch_set":3,"id":"bfb3d3c7_5091924d","line":77,"range":{"start_line":65,"start_character":0,"end_line":77,"end_character":31},"updated":"2019-05-25 04:35:47.000000000","message":"This entire section is similar to the block below. Consider making a function to handle both cases?","commit_id":"9cdc19ebdbd6071cc8cb41e9822ef5674ee12880"},{"author":{"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},"change_message_id":"cf88fe12bc2bbf7d5aaad77b8cd8dcae61c53311","unresolved":false,"context_lines":[{"line_number":80,"context_line":""},{"line_number":81,"context_line":"# Print BLACKLIST"},{"line_number":82,"context_line":"printf \"BLACKLIST\\n\""},{"line_number":83,"context_line":"printf \"---------\\n\""},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"blacklist\u003d$(python tools/generate-tempest-plugins-list.py blacklist)"},{"line_number":86,"context_line":"name_col_len\u003d$(echo \"${blacklist}\" | wc -L)"}],"source_content_type":"text/x-sh","patch_set":3,"id":"bfb3d3c7_f038c6ee","line":83,"updated":"2019-05-25 07:15:59.000000000","message":"I\u0027m a bash beginner... :p","commit_id":"9cdc19ebdbd6071cc8cb41e9822ef5674ee12880"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"8ba8158da65cee6e34d0727680c51941ebe90ada","unresolved":false,"context_lines":[{"line_number":94,"context_line":"i\u003d0"},{"line_number":95,"context_line":"for plugin in ${blacklist}; do"},{"line_number":96,"context_line":"    i\u003d$((i+1))"},{"line_number":97,"context_line":"    giturl\u003d\"https://git.openstack.org/openstack/${plugin}\""},{"line_number":98,"context_line":"    gitlink\u003d\"https://git.openstack.org/cgit/openstack/${plugin}\""},{"line_number":99,"context_line":"    printf \"%-3s %-${name_col_len}s %s\\n\" \"$i\" \"${plugin}\" \"\\`${giturl} \u003c${gitlink}\u003e\\`__\""},{"line_number":100,"context_line":"done"},{"line_number":101,"context_line":""}],"source_content_type":"text/x-sh","patch_set":3,"id":"bfb3d3c7_308c1e35","line":98,"range":{"start_line":97,"start_character":5,"end_line":98,"end_character":64},"updated":"2019-05-25 04:35:47.000000000","message":"These can now be changed to opendev.org in line with other patch set that is doing this. Oh, but this is an issue with other parts of this file too, like L72-73.","commit_id":"9cdc19ebdbd6071cc8cb41e9822ef5674ee12880"},{"author":{"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},"change_message_id":"cf88fe12bc2bbf7d5aaad77b8cd8dcae61c53311","unresolved":false,"context_lines":[{"line_number":95,"context_line":"for plugin in ${blacklist}; do"},{"line_number":96,"context_line":"    i\u003d$((i+1))"},{"line_number":97,"context_line":"    giturl\u003d\"https://git.openstack.org/openstack/${plugin}\""},{"line_number":98,"context_line":"    gitlink\u003d\"https://git.openstack.org/cgit/openstack/${plugin}\""},{"line_number":99,"context_line":"    printf \"%-3s %-${name_col_len}s %s\\n\" \"$i\" \"${plugin}\" \"\\`${giturl} \u003c${gitlink}\u003e\\`__\""},{"line_number":100,"context_line":"done"},{"line_number":101,"context_line":""}],"source_content_type":"text/x-sh","patch_set":3,"id":"bfb3d3c7_103ebad9","line":98,"updated":"2019-05-25 07:15:59.000000000","message":"heh, yes. That patch was already merged. So, I\u0027ll rebase on that.","commit_id":"9cdc19ebdbd6071cc8cb41e9822ef5674ee12880"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"aaf0f878663ac5d1ff47e454f13c0fb5453caf03","unresolved":false,"context_lines":[{"line_number":70,"context_line":"    for plugin in $1; do"},{"line_number":71,"context_line":"        i\u003d$((i+1))"},{"line_number":72,"context_line":"        giturl\u003d\"https://opendev.org/openstack/${plugin}\""},{"line_number":73,"context_line":"        gitlink\u003d\"https://opendev.org/openstack/${plugin}\""},{"line_number":74,"context_line":"        printf \"%-3s %-${name_col_len}s %s\\n\" \"$i\" \"${plugin}\" \"\\`${giturl} \u003c${gitlink}\u003e\\`__\""},{"line_number":75,"context_line":"    done"},{"line_number":76,"context_line":""}],"source_content_type":"text/x-sh","patch_set":5,"id":"9fb8cfa7_0b0c343f","line":73,"updated":"2019-06-11 18:43:21.000000000","message":"Why do we need to output the same URLs(giturl, gitlink) twice?","commit_id":"61cc0e3f92b2fa243896934a6aabc2bbf08527fd"},{"author":{"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},"change_message_id":"bc99a2d93e17d244f9711dcc1985c56011b07c7f","unresolved":false,"context_lines":[{"line_number":70,"context_line":"    for plugin in $1; do"},{"line_number":71,"context_line":"        i\u003d$((i+1))"},{"line_number":72,"context_line":"        giturl\u003d\"https://opendev.org/openstack/${plugin}\""},{"line_number":73,"context_line":"        gitlink\u003d\"https://opendev.org/openstack/${plugin}\""},{"line_number":74,"context_line":"        printf \"%-3s %-${name_col_len}s %s\\n\" \"$i\" \"${plugin}\" \"\\`${giturl} \u003c${gitlink}\u003e\\`__\""},{"line_number":75,"context_line":"    done"},{"line_number":76,"context_line":""}],"source_content_type":"text/x-sh","patch_set":5,"id":"9fb8cfa7_1f68e584","line":73,"in_reply_to":"9fb8cfa7_0b0c343f","updated":"2019-06-12 02:17:42.000000000","message":"Indeed. I think we can remove one of them. I\u0027ll do it.","commit_id":"61cc0e3f92b2fa243896934a6aabc2bbf08527fd"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"6404cb52c0f96545686eca09a63e2adbb2be1f37","unresolved":false,"context_lines":[{"line_number":80,"context_line":"print_plugin_table \"${sorted_plugins}\""},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"printf \"\\n\\n\""},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"# Print BLACKLIST"},{"line_number":85,"context_line":"printf \"BLACKLIST\\n\""},{"line_number":86,"context_line":"printf -- \"---------\\n\""},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"blacklist\u003d$(python tools/generate-tempest-plugins-list.py blacklist)"},{"line_number":89,"context_line":"name_col_len\u003d$(echo \"${blacklist}\" | wc -L)"}],"source_content_type":"text/x-sh","patch_set":6,"id":"9fb8cfa7_828b1466","line":86,"range":{"start_line":83,"start_character":0,"end_line":86,"end_character":23},"updated":"2019-06-12 14:30:36.000000000","message":"The published documentation here http://logs.openstack.org/57/660957/6/check/openstack-tox-docs/d955270/html/plugin-registry.html#blacklist looks excellent!\n\nOne suggestion I would make though is to copy the idea on L44-46 here:\n\n1) make a new .header like this one: https://github.com/openstack/tempest/blob/349ba7541070376614421c33fc8394cce3103452/doc/source/data/tempest-plugins-registry.header\n2) Call it something like tempest-plugins-blacklist.header\n3) Make it have a title case title of \"Blacklisted plugins\" to be consistent with \"Detected plugins\"\n4) Then give it a description like: \"List of Tempest plugin projects that are stale or unmaintained for a long time (6 months or more). They can be moved out of blacklist state once one of the relevant patches gets merged: https://review.opendev.org/#/q/topic:tempest-sanity-gate+(status:open)\"\n\nThen that will give information to end users on why their project is blacklisted and how to take action to fix that (by reviewing a patch or adding a new one with that same tag).","commit_id":"8df444cc6ca19c7601032f9f94f5a4d59df388f4"}]}
