)]}'
{"jenkins/scripts/common_translation_update.sh":[{"author":{"_account_id":6547,"name":"Andreas Jaeger","email":"jaegerandi@gmail.com","username":"jaegerandi"},"change_message_id":"faa454eed67a1e2dc276c22a63097f2f46f28e0d","unresolved":false,"context_lines":[{"line_number":43,"context_line":""},{"line_number":44,"context_line":"    local num_modules\u003d$(echo \"$module_names\" | wc -w)"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    if [ $num_modules -gt 1 ]; then"},{"line_number":47,"context_line":"        /usr/local/jenkins/slave_scripts/create-zanata-xml.py \\"},{"line_number":48,"context_line":"            -p $project -v $version --srcdir . --txdir . \\"},{"line_number":49,"context_line":"            -r \u0027**/*.pot\u0027 \u0027{path}/{locale_with_underscore}/LC_MESSAGES/{filename}.po\u0027 \\"}],"source_content_type":"text/x-sh","patch_set":1,"id":"bae84128_65e9c01a","line":46,"updated":"2016-02-19 18:35:40.000000000","message":"Let\u0027s change the order: First the default (one module)","commit_id":"b8a0feb083d5cbd6eef776abcc673bc01dd34651"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"0252df2acd8a083efe7b75113fbc816a7753e762","unresolved":false,"context_lines":[{"line_number":43,"context_line":""},{"line_number":44,"context_line":"    local num_modules\u003d$(echo \"$module_names\" | wc -w)"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    if [ $num_modules -gt 1 ]; then"},{"line_number":47,"context_line":"        /usr/local/jenkins/slave_scripts/create-zanata-xml.py \\"},{"line_number":48,"context_line":"            -p $project -v $version --srcdir . --txdir . \\"},{"line_number":49,"context_line":"            -r \u0027**/*.pot\u0027 \u0027{path}/{locale_with_underscore}/LC_MESSAGES/{filename}.po\u0027 \\"}],"source_content_type":"text/x-sh","patch_set":1,"id":"bae84128_e93582da","line":46,"in_reply_to":"bae84128_65e9c01a","updated":"2016-02-21 12:31:55.000000000","message":"Done","commit_id":"b8a0feb083d5cbd6eef776abcc673bc01dd34651"},{"author":{"_account_id":6547,"name":"Andreas Jaeger","email":"jaegerandi@gmail.com","username":"jaegerandi"},"change_message_id":"faa454eed67a1e2dc276c22a63097f2f46f28e0d","unresolved":false,"context_lines":[{"line_number":49,"context_line":"            -r \u0027**/*.pot\u0027 \u0027{path}/{locale_with_underscore}/LC_MESSAGES/{filename}.po\u0027 \\"},{"line_number":50,"context_line":"            -f zanata.xml"},{"line_number":51,"context_line":"    else"},{"line_number":52,"context_line":"\t# In this case, $module_names has only one module name."},{"line_number":53,"context_line":"\tlocal modulename\u003d$module_names"},{"line_number":54,"context_line":"        /usr/local/jenkins/slave_scripts/create-zanata-xml.py \\"},{"line_number":55,"context_line":"            -p $project -v $version --srcdir $modulename/locale \\"}],"source_content_type":"text/x-sh","patch_set":1,"id":"bae84128_c5936ca2","line":52,"updated":"2016-02-19 18:35:40.000000000","message":"The tabs in line 52 and 53 break bashate, please replace","commit_id":"b8a0feb083d5cbd6eef776abcc673bc01dd34651"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"0252df2acd8a083efe7b75113fbc816a7753e762","unresolved":false,"context_lines":[{"line_number":49,"context_line":"            -r \u0027**/*.pot\u0027 \u0027{path}/{locale_with_underscore}/LC_MESSAGES/{filename}.po\u0027 \\"},{"line_number":50,"context_line":"            -f zanata.xml"},{"line_number":51,"context_line":"    else"},{"line_number":52,"context_line":"\t# In this case, $module_names has only one module name."},{"line_number":53,"context_line":"\tlocal modulename\u003d$module_names"},{"line_number":54,"context_line":"        /usr/local/jenkins/slave_scripts/create-zanata-xml.py \\"},{"line_number":55,"context_line":"            -p $project -v $version --srcdir $modulename/locale \\"}],"source_content_type":"text/x-sh","patch_set":1,"id":"bae84128_c9307eeb","line":52,"in_reply_to":"bae84128_c5936ca2","updated":"2016-02-21 12:31:55.000000000","message":"Done","commit_id":"b8a0feb083d5cbd6eef776abcc673bc01dd34651"},{"author":{"_account_id":7118,"name":"Ian Wienand","email":"iwienand@redhat.com","username":"iwienand"},"change_message_id":"f090560b4d86d8f8d2bfdb1304463ab05c2b3178","unresolved":false,"context_lines":[{"line_number":38,"context_line":"# projects."},{"line_number":39,"context_line":"function setup_project {"},{"line_number":40,"context_line":"    local project\u003d$1"},{"line_number":41,"context_line":"    local module_names\u003d$2"},{"line_number":42,"context_line":"    local version\u003d${3:-master}"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"    local num_modules\u003d$(echo \"$module_names\" | wc -w)"}],"source_content_type":"text/x-sh","patch_set":2,"id":"bae84128_a4e0b8cd","line":41,"updated":"2016-02-22 01:25:57.000000000","message":"always risky using strings with spaces as args, but seems ok","commit_id":"1b903417fc129a46005300e269b5ec897e1dc55f"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"548f9400cac064abfb0ccd56e404a72a659ebffc","unresolved":false,"context_lines":[{"line_number":38,"context_line":"# projects."},{"line_number":39,"context_line":"function setup_project {"},{"line_number":40,"context_line":"    local project\u003d$1"},{"line_number":41,"context_line":"    local module_names\u003d$2"},{"line_number":42,"context_line":"    local version\u003d${3:-master}"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"    local num_modules\u003d$(echo \"$module_names\" | wc -w)"}],"source_content_type":"text/x-sh","patch_set":2,"id":"bae84128_bf3721af","line":41,"in_reply_to":"bae84128_a4e0b8cd","updated":"2016-02-22 02:06:43.000000000","message":"Agree. It seems better that I make \u0027version\u0027 below mandatory and pass module names as the third argument or after.\n\n  setup_project $project master module1 module2 ..","commit_id":"1b903417fc129a46005300e269b5ec897e1dc55f"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"1e90f9d208e8d88aa8e289bb87433c91ef39348f","unresolved":false,"context_lines":[{"line_number":38,"context_line":"# projects."},{"line_number":39,"context_line":"function setup_project {"},{"line_number":40,"context_line":"    local project\u003d$1"},{"line_number":41,"context_line":"    local module_names\u003d$2"},{"line_number":42,"context_line":"    local version\u003d${3:-master}"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"    local num_modules\u003d$(echo \"$module_names\" | wc -w)"}],"source_content_type":"text/x-sh","patch_set":2,"id":"bae84128_4547231d","line":41,"in_reply_to":"bae84128_b430e302","updated":"2016-02-22 06:02:05.000000000","message":"I updated setup_project to avoid passing a string with spaces.","commit_id":"1b903417fc129a46005300e269b5ec897e1dc55f"},{"author":{"_account_id":7118,"name":"Ian Wienand","email":"iwienand@redhat.com","username":"iwienand"},"change_message_id":"3db282ea8a1f5f6d3db9c56f534c29f45cedb5b5","unresolved":false,"context_lines":[{"line_number":38,"context_line":"# projects."},{"line_number":39,"context_line":"function setup_project {"},{"line_number":40,"context_line":"    local project\u003d$1"},{"line_number":41,"context_line":"    local module_names\u003d$2"},{"line_number":42,"context_line":"    local version\u003d${3:-master}"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"    local num_modules\u003d$(echo \"$module_names\" | wc -w)"}],"source_content_type":"text/x-sh","patch_set":2,"id":"bae84128_b430e302","line":41,"in_reply_to":"bae84128_bf3721af","updated":"2016-02-22 03:57:43.000000000","message":"yes, with \"shift\" to just leave the modules in $* that sort of thing generally works better -- as long as the API isn\u0027t \"exposed\" and you can modify the args :)","commit_id":"1b903417fc129a46005300e269b5ec897e1dc55f"},{"author":{"_account_id":7118,"name":"Ian Wienand","email":"iwienand@redhat.com","username":"iwienand"},"change_message_id":"f090560b4d86d8f8d2bfdb1304463ab05c2b3178","unresolved":false,"context_lines":[{"line_number":41,"context_line":"    local module_names\u003d$2"},{"line_number":42,"context_line":"    local version\u003d${3:-master}"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"    local num_modules\u003d$(echo \"$module_names\" | wc -w)"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    if [ $num_modules -eq 1 ]; then"},{"line_number":47,"context_line":"        # In this case, $module_names has only one module name."}],"source_content_type":"text/x-sh","patch_set":2,"id":"bae84128_6472304b","line":44,"updated":"2016-02-22 01:25:57.000000000","message":"you could optimise this to \n\n if [ $(echo \"module_names\" | wc -w) - eq 1 ]","commit_id":"1b903417fc129a46005300e269b5ec897e1dc55f"},{"author":{"_account_id":7118,"name":"Ian Wienand","email":"iwienand@redhat.com","username":"iwienand"},"change_message_id":"f090560b4d86d8f8d2bfdb1304463ab05c2b3178","unresolved":false,"context_lines":[{"line_number":44,"context_line":"    local num_modules\u003d$(echo \"$module_names\" | wc -w)"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    if [ $num_modules -eq 1 ]; then"},{"line_number":47,"context_line":"        # In this case, $module_names has only one module name."},{"line_number":48,"context_line":"        local modulename\u003d$module_names"},{"line_number":49,"context_line":"        /usr/local/jenkins/slave_scripts/create-zanata-xml.py \\"},{"line_number":50,"context_line":"            -p $project -v $version --srcdir $modulename/locale \\"}],"source_content_type":"text/x-sh","patch_set":2,"id":"bae84128_64c0702b","line":47,"updated":"2016-02-22 01:25:57.000000000","message":"going to trust this is what is wanted...","commit_id":"1b903417fc129a46005300e269b5ec897e1dc55f"}],"jenkins/scripts/get-modulename.py":[{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"0252df2acd8a083efe7b75113fbc816a7753e762","unresolved":false,"context_lines":[{"line_number":101,"context_line":""},{"line_number":102,"context_line":"    if \u0027openstack_translations\u0027 in config:"},{"line_number":103,"context_line":"        translate_options \u003d get_translate_options(config, args.target)"},{"line_number":104,"context_line":"        return translate_options"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"    modules \u003d get_valid_modules(config, args.project, args.target)"},{"line_number":107,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"dae33548_b55e1c74","line":104,"range":{"start_line":104,"start_character":8,"end_line":104,"end_character":32},"updated":"2016-02-21 12:31:55.000000000","message":"\u0027translation_options\u0027 is not printed. It must be printed, so it should be:\n\n  print(\u0027 \u0027.join(translation_options)\n  return\n\nIt is required to make step 6 in [1] work.\n\n[1] http://specs.openstack.org/openstack-infra/infra-specs/specs/translation_setup.html#proposed-change","commit_id":"b8a0feb083d5cbd6eef776abcc673bc01dd34651"},{"author":{"_account_id":6547,"name":"Andreas Jaeger","email":"jaegerandi@gmail.com","username":"jaegerandi"},"change_message_id":"8d1d10b0f9260ad2cb6d4aaba7175c072a4b1ab6","unresolved":false,"context_lines":[{"line_number":105,"context_line":""},{"line_number":106,"context_line":"    modules \u003d get_valid_modules(config, args.project, args.target)"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"    # A shortest module name is selected now."},{"line_number":109,"context_line":"    if modules:"},{"line_number":110,"context_line":"        print(\u0027 \u0027.join(modules))"},{"line_number":111,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"dae33548_d52641b9","line":108,"updated":"2016-02-16 14:12:26.000000000","message":"Nit: Command is not correct anymore","commit_id":"b8a0feb083d5cbd6eef776abcc673bc01dd34651"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"0252df2acd8a083efe7b75113fbc816a7753e762","unresolved":false,"context_lines":[{"line_number":105,"context_line":""},{"line_number":106,"context_line":"    modules \u003d get_valid_modules(config, args.project, args.target)"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"    # A shortest module name is selected now."},{"line_number":109,"context_line":"    if modules:"},{"line_number":110,"context_line":"        print(\u0027 \u0027.join(modules))"},{"line_number":111,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"bae84128_49458e15","line":108,"in_reply_to":"dae33548_d52641b9","updated":"2016-02-21 12:31:55.000000000","message":"Done","commit_id":"b8a0feb083d5cbd6eef776abcc673bc01dd34651"}]}
