)]}'
{"roles/prep-zanata/files/common_translation_update.sh":[{"author":{"_account_id":6547,"name":"Andreas Jaeger","email":"jaegerandi@gmail.com","username":"jaegerandi"},"change_message_id":"8e6ae1e3e07e2340b98f0b1342cee386e556b7f7","unresolved":false,"context_lines":[{"line_number":251,"context_line":"function setup_project_doc {"},{"line_number":252,"context_line":"    local project\u003d$1"},{"line_number":253,"context_line":"    local version\u003d${2:-master}"},{"line_number":254,"context_line":""},{"line_number":255,"context_line":"    python $SCRIPTSDIR/create-zanata-xml.py \\"},{"line_number":256,"context_line":"        -p $project -v $version \\"},{"line_number":257,"context_line":"        --srcdir doc/source/locale \\"}],"source_content_type":"text/x-sh","patch_set":2,"id":"5f7c97a3_06a80376","line":254,"updated":"2018-07-13 09:41:11.000000000","message":"this cannot work - you first need to generate pot files.\n\nThe rest of the infrastructure expects that we have pot files so that we can calculate how many strings are translated and only import files that have sufficient translation.","commit_id":"e676667bd642080491eb7421392dc8280f6e6687"},{"author":{"_account_id":17765,"name":"Frank Kloeker","email":"f.kloeker@telekom.de","username":"eumel8"},"change_message_id":"52950ca0ba4b5b89bd284cd8e971cdd993ef7e3f","unresolved":false,"context_lines":[{"line_number":251,"context_line":"function setup_project_doc {"},{"line_number":252,"context_line":"    local project\u003d$1"},{"line_number":253,"context_line":"    local version\u003d${2:-master}"},{"line_number":254,"context_line":""},{"line_number":255,"context_line":"    python $SCRIPTSDIR/create-zanata-xml.py \\"},{"line_number":256,"context_line":"        -p $project -v $version \\"},{"line_number":257,"context_line":"        --srcdir doc/source/locale \\"}],"source_content_type":"text/x-sh","patch_set":2,"id":"5f7c97a3_3157725d","line":254,"in_reply_to":"5f7c97a3_06a80376","updated":"2018-07-13 18:28:18.000000000","message":"Sorry, I forgot to commit","commit_id":"e676667bd642080491eb7421392dc8280f6e6687"}],"roles/prep-zanata/files/propose_translation_update.sh":[{"author":{"_account_id":6547,"name":"Andreas Jaeger","email":"jaegerandi@gmail.com","username":"jaegerandi"},"change_message_id":"4f592826110726fe08472588a1c6a51cc6abe448","unresolved":false,"context_lines":[{"line_number":111,"context_line":"    git_add_po_files doc/upstream-training/source/locale"},{"line_number":112,"context_line":"}"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"# Propose updates for i18n"},{"line_number":115,"context_line":"function propose_i18n {"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"    # Pull updated translations from Zanata."},{"line_number":118,"context_line":"    pull_from_zanata \"$PROJECT\""},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"    # Cleanup po and pot files"},{"line_number":121,"context_line":"    cleanup_module \"doc\""},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"    # Add all changed files to git"},{"line_number":124,"context_line":"    git_add_po_files doc/source/locale"},{"line_number":125,"context_line":"}"},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"function propose_project_doc {"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"    # Pull updated translations from Zanata."},{"line_number":130,"context_line":"    pull_from_zanata \"$PROJECT\""},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"    # Cleanup po and pot files"},{"line_number":133,"context_line":"    cleanup_module \"doc\""},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"    # Add all changed files to git"},{"line_number":136,"context_line":"    git_add_po_files doc/source/locale"},{"line_number":137,"context_line":"}"},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"# Propose updates for python and django projects"},{"line_number":140,"context_line":"function propose_python_django {"}],"source_content_type":"text/x-sh","patch_set":1,"id":"5f7c97a3_f5de420e","line":137,"range":{"start_line":114,"start_character":0,"end_line":137,"end_character":1},"updated":"2018-07-09 11:10:21.000000000","message":"this is a duplicate - let\u0027s avoid duplication","commit_id":"e9e64d467f33636464d759a3ae53011a698a919d"},{"author":{"_account_id":17765,"name":"Frank Kloeker","email":"f.kloeker@telekom.de","username":"eumel8"},"change_message_id":"dde6e35bd3865fa8faebd6b866e6e3f14616094a","unresolved":false,"context_lines":[{"line_number":111,"context_line":"    git_add_po_files doc/upstream-training/source/locale"},{"line_number":112,"context_line":"}"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"# Propose updates for i18n"},{"line_number":115,"context_line":"function propose_i18n {"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"    # Pull updated translations from Zanata."},{"line_number":118,"context_line":"    pull_from_zanata \"$PROJECT\""},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"    # Cleanup po and pot files"},{"line_number":121,"context_line":"    cleanup_module \"doc\""},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"    # Add all changed files to git"},{"line_number":124,"context_line":"    git_add_po_files doc/source/locale"},{"line_number":125,"context_line":"}"},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"function propose_project_doc {"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"    # Pull updated translations from Zanata."},{"line_number":130,"context_line":"    pull_from_zanata \"$PROJECT\""},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"    # Cleanup po and pot files"},{"line_number":133,"context_line":"    cleanup_module \"doc\""},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"    # Add all changed files to git"},{"line_number":136,"context_line":"    git_add_po_files doc/source/locale"},{"line_number":137,"context_line":"}"},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"# Propose updates for python and django projects"},{"line_number":140,"context_line":"function propose_python_django {"}],"source_content_type":"text/x-sh","patch_set":1,"id":"5f7c97a3_723c1692","line":137,"range":{"start_line":114,"start_character":0,"end_line":137,"end_character":1},"in_reply_to":"5f7c97a3_f32975f1","updated":"2018-07-13 09:04:04.000000000","message":"Done","commit_id":"e9e64d467f33636464d759a3ae53011a698a919d"},{"author":{"_account_id":14482,"name":"Ian Y. Choi","email":"ianyrchoi@gmail.com","username":"ianychoi"},"change_message_id":"81145700fd7c978a485ca8287d72ff3fbccab2ae","unresolved":false,"context_lines":[{"line_number":111,"context_line":"    git_add_po_files doc/upstream-training/source/locale"},{"line_number":112,"context_line":"}"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"# Propose updates for i18n"},{"line_number":115,"context_line":"function propose_i18n {"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"    # Pull updated translations from Zanata."},{"line_number":118,"context_line":"    pull_from_zanata \"$PROJECT\""},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"    # Cleanup po and pot files"},{"line_number":121,"context_line":"    cleanup_module \"doc\""},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"    # Add all changed files to git"},{"line_number":124,"context_line":"    git_add_po_files doc/source/locale"},{"line_number":125,"context_line":"}"},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"function propose_project_doc {"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"    # Pull updated translations from Zanata."},{"line_number":130,"context_line":"    pull_from_zanata \"$PROJECT\""},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"    # Cleanup po and pot files"},{"line_number":133,"context_line":"    cleanup_module \"doc\""},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"    # Add all changed files to git"},{"line_number":136,"context_line":"    git_add_po_files doc/source/locale"},{"line_number":137,"context_line":"}"},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"# Propose updates for python and django projects"},{"line_number":140,"context_line":"function propose_python_django {"}],"source_content_type":"text/x-sh","patch_set":1,"id":"5f7c97a3_f32975f1","line":137,"range":{"start_line":114,"start_character":0,"end_line":137,"end_character":1},"in_reply_to":"5f7c97a3_f5de420e","updated":"2018-07-09 16:25:25.000000000","message":"agreed with Andreas","commit_id":"e9e64d467f33636464d759a3ae53011a698a919d"},{"author":{"_account_id":14482,"name":"Ian Y. Choi","email":"ianyrchoi@gmail.com","username":"ianychoi"},"change_message_id":"81145700fd7c978a485ca8287d72ff3fbccab2ae","unresolved":false,"context_lines":[{"line_number":328,"context_line":"        setup_i18n \"$ZANATA_VERSION\""},{"line_number":329,"context_line":"        propose_i18n"},{"line_number":330,"context_line":"        ;;"},{"line_number":331,"context_line":"    openstack-ansible|openstack-helm)"},{"line_number":332,"context_line":"        setup_project_doc \"$PROJECT\" \"$ZANATA_VERSION\""},{"line_number":333,"context_line":"        propose_project_doc"},{"line_number":334,"context_line":"        ;;"},{"line_number":335,"context_line":"    tripleo-ui)"},{"line_number":336,"context_line":"        setup_reactjs_project \"$PROJECT\" \"$ZANATA_VERSION\""},{"line_number":337,"context_line":"        propose_reactjs"}],"source_content_type":"text/x-sh","patch_set":1,"id":"5f7c97a3_53e949a8","line":334,"range":{"start_line":331,"start_character":0,"end_line":334,"end_character":10},"updated":"2018-07-09 16:25:25.000000000","message":"No need to specify here since from my remembrance those two targets are also dealt in \"*)\" part well.","commit_id":"e9e64d467f33636464d759a3ae53011a698a919d"},{"author":{"_account_id":17765,"name":"Frank Kloeker","email":"f.kloeker@telekom.de","username":"eumel8"},"change_message_id":"dde6e35bd3865fa8faebd6b866e6e3f14616094a","unresolved":false,"context_lines":[{"line_number":328,"context_line":"        setup_i18n \"$ZANATA_VERSION\""},{"line_number":329,"context_line":"        propose_i18n"},{"line_number":330,"context_line":"        ;;"},{"line_number":331,"context_line":"    openstack-ansible|openstack-helm)"},{"line_number":332,"context_line":"        setup_project_doc \"$PROJECT\" \"$ZANATA_VERSION\""},{"line_number":333,"context_line":"        propose_project_doc"},{"line_number":334,"context_line":"        ;;"},{"line_number":335,"context_line":"    tripleo-ui)"},{"line_number":336,"context_line":"        setup_reactjs_project \"$PROJECT\" \"$ZANATA_VERSION\""},{"line_number":337,"context_line":"        propose_reactjs"}],"source_content_type":"text/x-sh","patch_set":1,"id":"5f7c97a3_12d122f9","line":334,"range":{"start_line":331,"start_character":0,"end_line":334,"end_character":10},"in_reply_to":"5f7c97a3_53e949a8","updated":"2018-07-13 09:04:04.000000000","message":"That\u0027s exactly the problem. Without that the script is doing nothing. extract_messages_django and extract_messages_python are called, but you want to run the new extract_messages_doc.\nTo use a new function propose_project_doc is clearer for me as to mix up things in python programming and django stuff.","commit_id":"e9e64d467f33636464d759a3ae53011a698a919d"},{"author":{"_account_id":6547,"name":"Andreas Jaeger","email":"jaegerandi@gmail.com","username":"jaegerandi"},"change_message_id":"8e6ae1e3e07e2340b98f0b1342cee386e556b7f7","unresolved":false,"context_lines":[{"line_number":326,"context_line":"        ;;"},{"line_number":327,"context_line":"    *)"},{"line_number":328,"context_line":"        # Common setup for python and django repositories"},{"line_number":329,"context_line":"        handle_python_django_project $PROJECT"},{"line_number":330,"context_line":"        ;;"},{"line_number":331,"context_line":"esac"},{"line_number":332,"context_line":""}],"source_content_type":"text/x-sh","patch_set":2,"id":"5f7c97a3_66c21738","line":329,"range":{"start_line":329,"start_character":8,"end_line":329,"end_character":45},"updated":"2018-07-13 09:41:11.000000000","message":"previously this was run as well - don\u0027t we need this as well in general?","commit_id":"e676667bd642080491eb7421392dc8280f6e6687"},{"author":{"_account_id":17765,"name":"Frank Kloeker","email":"f.kloeker@telekom.de","username":"eumel8"},"change_message_id":"52950ca0ba4b5b89bd284cd8e971cdd993ef7e3f","unresolved":false,"context_lines":[{"line_number":326,"context_line":"        ;;"},{"line_number":327,"context_line":"    *)"},{"line_number":328,"context_line":"        # Common setup for python and django repositories"},{"line_number":329,"context_line":"        handle_python_django_project $PROJECT"},{"line_number":330,"context_line":"        ;;"},{"line_number":331,"context_line":"esac"},{"line_number":332,"context_line":""}],"source_content_type":"text/x-sh","patch_set":2,"id":"5f7c97a3_715e4a52","line":329,"range":{"start_line":329,"start_character":8,"end_line":329,"end_character":45},"in_reply_to":"5f7c97a3_66c21738","updated":"2018-07-13 18:28:18.000000000","message":"Yeah, I rechecked the logs and it\u0027s doing things for python module in projects like http://logs.openstack.org/periodic/git.openstack.org/openstack/openstack-ansible/master/propose-translation-update/3d25e2e/job-output.txt.gz#_2018-07-13_08_07_14_072870\nBut what we want is working on doc folder. I realized that projects can have both, so I will complete rework and add the stuff to default rule","commit_id":"e676667bd642080491eb7421392dc8280f6e6687"},{"author":{"_account_id":14482,"name":"Ian Y. Choi","email":"ianyrchoi@gmail.com","username":"ianychoi"},"change_message_id":"f8d5e31e4f2bf4d9c52604c3d35a0a67dd9f41d3","unresolved":false,"context_lines":[{"line_number":175,"context_line":"# Handle project doc proposals"},{"line_number":176,"context_line":"function handle_project_doc {"},{"line_number":177,"context_line":"    # doing only things in the test repos for project doc translation"},{"line_number":178,"context_line":"    if ! [[ \"$project\" \u003d~ ^(openstack-ansible|openstack-helm)$ ]]; then"},{"line_number":179,"context_line":"        return"},{"line_number":180,"context_line":"    fi"},{"line_number":181,"context_line":"    # setup_project and pull_from_zanata are already done"}],"source_content_type":"text/x-sh","patch_set":5,"id":"5f7c97a3_eabc8f08","line":178,"range":{"start_line":178,"start_character":27,"end_line":178,"end_character":61},"updated":"2018-07-15 14:58:44.000000000","message":"horizon is missing [1]?\n\n[1] https://git.openstack.org/cgit/openstack-infra/project-config/tree/roles/prep-zanata/files/upstream_translation_update.sh#n119","commit_id":"ed9f5ea9a62dc04dbae53c92cd9ba76c2954de3a"},{"author":{"_account_id":17765,"name":"Frank Kloeker","email":"f.kloeker@telekom.de","username":"eumel8"},"change_message_id":"a261b94c89a237b537f5bf516611e843a942e656","unresolved":false,"context_lines":[{"line_number":175,"context_line":"# Handle project doc proposals"},{"line_number":176,"context_line":"function handle_project_doc {"},{"line_number":177,"context_line":"    # doing only things in the test repos for project doc translation"},{"line_number":178,"context_line":"    if ! [[ \"$project\" \u003d~ ^(openstack-ansible|openstack-helm)$ ]]; then"},{"line_number":179,"context_line":"        return"},{"line_number":180,"context_line":"    fi"},{"line_number":181,"context_line":"    # setup_project and pull_from_zanata are already done"}],"source_content_type":"text/x-sh","patch_set":5,"id":"5f7c97a3_c406431c","line":178,"range":{"start_line":178,"start_character":27,"end_line":178,"end_character":61},"in_reply_to":"5f7c97a3_eabc8f08","updated":"2018-07-17 08:30:28.000000000","message":"horizon? Ah, there is a doc folder, just checked \u0026 added here. thx\nLater we can replace this with:\nif [[ -f doc/source/conf.py ]];","commit_id":"ed9f5ea9a62dc04dbae53c92cd9ba76c2954de3a"},{"author":{"_account_id":14482,"name":"Ian Y. Choi","email":"ianyrchoi@gmail.com","username":"ianychoi"},"change_message_id":"f8d5e31e4f2bf4d9c52604c3d35a0a67dd9f41d3","unresolved":false,"context_lines":[{"line_number":337,"context_line":"    *)"},{"line_number":338,"context_line":"        # Common setup for python and django repositories"},{"line_number":339,"context_line":"        handle_python_django_project $PROJECT"},{"line_number":340,"context_line":"        handle_project_doc $PROJECT"},{"line_number":341,"context_line":"        ;;"},{"line_number":342,"context_line":"esac"},{"line_number":343,"context_line":""}],"source_content_type":"text/x-sh","patch_set":5,"id":"5f7c97a3_4a5ca3ef","line":340,"range":{"start_line":340,"start_character":0,"end_line":340,"end_character":35},"updated":"2018-07-15 14:58:44.000000000","message":"How about adding this to the same location as \"propose_releasenotes\": https://git.openstack.org/cgit/openstack-infra/project-config/tree/roles/prep-zanata/files/propose_translation_update.sh#n189 ?","commit_id":"ed9f5ea9a62dc04dbae53c92cd9ba76c2954de3a"},{"author":{"_account_id":17765,"name":"Frank Kloeker","email":"f.kloeker@telekom.de","username":"eumel8"},"change_message_id":"d4ffc6cac056be0d9ed8905d9037b1cfaf30e6a0","unresolved":false,"context_lines":[{"line_number":337,"context_line":"    *)"},{"line_number":338,"context_line":"        # Common setup for python and django repositories"},{"line_number":339,"context_line":"        handle_python_django_project $PROJECT"},{"line_number":340,"context_line":"        handle_project_doc $PROJECT"},{"line_number":341,"context_line":"        ;;"},{"line_number":342,"context_line":"esac"},{"line_number":343,"context_line":""}],"source_content_type":"text/x-sh","patch_set":5,"id":"3f79a3b5_a178758f","line":340,"range":{"start_line":340,"start_character":0,"end_line":340,"end_character":35},"in_reply_to":"3f79a3b5_14c43e5e","updated":"2018-08-15 21:28:13.000000000","message":"Done","commit_id":"ed9f5ea9a62dc04dbae53c92cd9ba76c2954de3a"},{"author":{"_account_id":17765,"name":"Frank Kloeker","email":"f.kloeker@telekom.de","username":"eumel8"},"change_message_id":"a261b94c89a237b537f5bf516611e843a942e656","unresolved":false,"context_lines":[{"line_number":337,"context_line":"    *)"},{"line_number":338,"context_line":"        # Common setup for python and django repositories"},{"line_number":339,"context_line":"        handle_python_django_project $PROJECT"},{"line_number":340,"context_line":"        handle_project_doc $PROJECT"},{"line_number":341,"context_line":"        ;;"},{"line_number":342,"context_line":"esac"},{"line_number":343,"context_line":""}],"source_content_type":"text/x-sh","patch_set":5,"id":"5f7c97a3_c40ba379","line":340,"range":{"start_line":340,"start_character":0,"end_line":340,"end_character":35},"in_reply_to":"5f7c97a3_4a5ca3ef","updated":"2018-07-17 08:30:28.000000000","message":"You mean rename the function?","commit_id":"ed9f5ea9a62dc04dbae53c92cd9ba76c2954de3a"},{"author":{"_account_id":14482,"name":"Ian Y. Choi","email":"ianyrchoi@gmail.com","username":"ianychoi"},"change_message_id":"0ce1ec7fadb6962f059210552e6c405536a2895d","unresolved":false,"context_lines":[{"line_number":337,"context_line":"    *)"},{"line_number":338,"context_line":"        # Common setup for python and django repositories"},{"line_number":339,"context_line":"        handle_python_django_project $PROJECT"},{"line_number":340,"context_line":"        handle_project_doc $PROJECT"},{"line_number":341,"context_line":"        ;;"},{"line_number":342,"context_line":"esac"},{"line_number":343,"context_line":""}],"source_content_type":"text/x-sh","patch_set":5,"id":"5f7c97a3_e06207d9","line":340,"range":{"start_line":340,"start_character":0,"end_line":340,"end_character":35},"in_reply_to":"5f7c97a3_c40ba379","updated":"2018-07-19 12:58:20.000000000","message":"Similar location as propose_release_notes in handle_python_django function assuming that propose translation work can support all projects similar as releasenotes","commit_id":"ed9f5ea9a62dc04dbae53c92cd9ba76c2954de3a"},{"author":{"_account_id":6547,"name":"Andreas Jaeger","email":"jaegerandi@gmail.com","username":"jaegerandi"},"change_message_id":"b75135919d0dcf665d4f99717909121d379c5fdf","unresolved":false,"context_lines":[{"line_number":337,"context_line":"    *)"},{"line_number":338,"context_line":"        # Common setup for python and django repositories"},{"line_number":339,"context_line":"        handle_python_django_project $PROJECT"},{"line_number":340,"context_line":"        handle_project_doc $PROJECT"},{"line_number":341,"context_line":"        ;;"},{"line_number":342,"context_line":"esac"},{"line_number":343,"context_line":""}],"source_content_type":"text/x-sh","patch_set":5,"id":"3f79a3b5_14c43e5e","line":340,"range":{"start_line":340,"start_character":0,"end_line":340,"end_character":35},"in_reply_to":"5f7c97a3_e06207d9","updated":"2018-08-13 17:04:35.000000000","message":"Frank, move the invocation *into* handle_python_django_project function instead of besides it.","commit_id":"ed9f5ea9a62dc04dbae53c92cd9ba76c2954de3a"},{"author":{"_account_id":7118,"name":"Ian Wienand","email":"iwienand@redhat.com","username":"iwienand"},"change_message_id":"554cec7f5802568c3f263d8db2b78fd20d94ee52","unresolved":false,"context_lines":[{"line_number":176,"context_line":"# Handle project doc proposals"},{"line_number":177,"context_line":"function handle_project_doc {"},{"line_number":178,"context_line":"    # doing only things in the test repos for project doc translation"},{"line_number":179,"context_line":"    if ! [[ \"$project\" \u003d~ ^(horizon|openstack-ansible|openstack-helm)$ ]]; then"},{"line_number":180,"context_line":"        return"},{"line_number":181,"context_line":"    fi"},{"line_number":182,"context_line":"    # setup_project and pull_from_zanata are already done"}],"source_content_type":"text/x-sh","patch_set":7,"id":"3f79a3b5_30737fe9","line":179,"updated":"2018-09-06 06:11:25.000000000","message":"from looking at these other ones, this wants to redefine \n\n local $project \u003d $1 before using it","commit_id":"af24ec8921796ccb848ec47a748a612ddb35856c"}]}
