)]}'
{"jenkins/scripts/common_translation_update.sh":[{"author":{"_account_id":6547,"name":"Andreas Jaeger","email":"jaegerandi@gmail.com","username":"jaegerandi"},"change_message_id":"bd11bff7be1101270ed279564ef80ee4476b56b7","unresolved":false,"context_lines":[{"line_number":87,"context_line":""},{"line_number":88,"context_line":"    # While we spin up, we want to not error out if we can\u0027t generate the"},{"line_number":89,"context_line":"    # zanata.xml file."},{"line_number":90,"context_line":"    if ! /usr/local/jenkins/slave_scripts/create-zanata-xml.py -p $project -v master --srcdir . --txdir . -r \u0027horizon/*.pot\u0027 \u0027horizon/locale/{locale}/LC_MESSAGES}/{filename}.pot\u0027 -r \u0027openstack_dashboard/*.pot\u0027 \u0027openstack_dashboard/locale/{locale}/LC_MESSAGES/{filename}.pot\u0027 -f zanata.xml; then"},{"line_number":91,"context_line":"        echo \"Failed to generate zanata.xml\""},{"line_number":92,"context_line":"    fi"},{"line_number":93,"context_line":""}],"source_content_type":"text/x-sh","patch_set":3,"id":"fa32b979_a1906396","line":90,"updated":"2015-06-23 10:27:53.000000000","message":"There aren\u0027t any *pot in locale/{locale}/LC_MESSAGES with current horizon.","commit_id":"3535497220947fa014f1d00643a1a371a7cc7e7e"},{"author":{"_account_id":9369,"name":"Steve Kowalik","email":"steven@wedontsleep.org","username":"stevenk"},"change_message_id":"4a8e978f843f4ce10740d35fef0047d803390196","unresolved":false,"context_lines":[{"line_number":87,"context_line":""},{"line_number":88,"context_line":"    # While we spin up, we want to not error out if we can\u0027t generate the"},{"line_number":89,"context_line":"    # zanata.xml file."},{"line_number":90,"context_line":"    if ! /usr/local/jenkins/slave_scripts/create-zanata-xml.py -p $project -v master --srcdir . --txdir . -r \u0027horizon/*.pot\u0027 \u0027horizon/locale/{locale}/LC_MESSAGES}/{filename}.pot\u0027 -r \u0027openstack_dashboard/*.pot\u0027 \u0027openstack_dashboard/locale/{locale}/LC_MESSAGES/{filename}.pot\u0027 -f zanata.xml; then"},{"line_number":91,"context_line":"        echo \"Failed to generate zanata.xml\""},{"line_number":92,"context_line":"    fi"},{"line_number":93,"context_line":""}],"source_content_type":"text/x-sh","patch_set":3,"id":"fa32b979_c1fec7ad","line":90,"in_reply_to":"fa32b979_a1906396","updated":"2015-06-23 10:30:16.000000000","message":"Well spotted, those should be .po.","commit_id":"3535497220947fa014f1d00643a1a371a7cc7e7e"},{"author":{"_account_id":6547,"name":"Andreas Jaeger","email":"jaegerandi@gmail.com","username":"jaegerandi"},"change_message_id":"cf2d3e1c2728564b86c47540ec64b9a63edd551d","unresolved":false,"context_lines":[{"line_number":87,"context_line":""},{"line_number":88,"context_line":"    # While we spin up, we want to not error out if we can\u0027t generate the"},{"line_number":89,"context_line":"    # zanata.xml file."},{"line_number":90,"context_line":"    if ! /usr/local/jenkins/slave_scripts/create-zanata-xml.py -p $project -v master --srcdir . --txdir . -r \u0027horizon/*.pot\u0027 \u0027horizon/locale/{locale}/LC_MESSAGES}/{filename}.po\u0027 -r \u0027openstack_dashboard/*.pot\u0027 \u0027openstack_dashboard/locale/{locale}/LC_MESSAGES/{filename}.po\u0027 -f zanata.xml; then"},{"line_number":91,"context_line":"        echo \"Failed to generate zanata.xml\""},{"line_number":92,"context_line":"    fi"},{"line_number":93,"context_line":""}],"source_content_type":"text/x-sh","patch_set":4,"id":"fa32b979_ffd84681","line":90,"updated":"2015-06-23 11:12:05.000000000","message":"Could you break this line up, so that it\u0027s smaller than 79 chars, please?","commit_id":"0bc95e4defceb27ee7706800c314f1e72e2496db"},{"author":{"_account_id":6547,"name":"Andreas Jaeger","email":"jaegerandi@gmail.com","username":"jaegerandi"},"change_message_id":"d315609c7d84e5e6e3349f60831948192000ed0a","unresolved":false,"context_lines":[{"line_number":87,"context_line":""},{"line_number":88,"context_line":"    # While we spin up, we want to not error out if we can\u0027t generate the"},{"line_number":89,"context_line":"    # zanata.xml file."},{"line_number":90,"context_line":"    if ! /usr/local/jenkins/slave_scripts/create-zanata-xml.py -p $project -v master --srcdir . --txdir . -r \u0027horizon/*.pot\u0027 \u0027horizon/locale/{locale}/LC_MESSAGES}/{filename}.po\u0027 -r \u0027openstack_dashboard/*.pot\u0027 \u0027openstack_dashboard/locale/{locale}/LC_MESSAGES/{filename}.po\u0027 -f zanata.xml; then"},{"line_number":91,"context_line":"        echo \"Failed to generate zanata.xml\""},{"line_number":92,"context_line":"    fi"},{"line_number":93,"context_line":""}],"source_content_type":"text/x-sh","patch_set":4,"id":"fa32b979_90fc873f","line":90,"in_reply_to":"fa32b979_508fdf22","updated":"2015-06-23 12:24:56.000000000","message":"I\u0027m fine doing it as part of this change but only asking to not make it worth here ;)","commit_id":"0bc95e4defceb27ee7706800c314f1e72e2496db"},{"author":{"_account_id":9369,"name":"Steve Kowalik","email":"steven@wedontsleep.org","username":"stevenk"},"change_message_id":"d205d9e72ec94e175a3f29630acb133cc3359388","unresolved":false,"context_lines":[{"line_number":87,"context_line":""},{"line_number":88,"context_line":"    # While we spin up, we want to not error out if we can\u0027t generate the"},{"line_number":89,"context_line":"    # zanata.xml file."},{"line_number":90,"context_line":"    if ! /usr/local/jenkins/slave_scripts/create-zanata-xml.py -p $project -v master --srcdir . --txdir . -r \u0027horizon/*.pot\u0027 \u0027horizon/locale/{locale}/LC_MESSAGES}/{filename}.po\u0027 -r \u0027openstack_dashboard/*.pot\u0027 \u0027openstack_dashboard/locale/{locale}/LC_MESSAGES/{filename}.po\u0027 -f zanata.xml; then"},{"line_number":91,"context_line":"        echo \"Failed to generate zanata.xml\""},{"line_number":92,"context_line":"    fi"},{"line_number":93,"context_line":""}],"source_content_type":"text/x-sh","patch_set":4,"id":"fa32b979_508fdf22","line":90,"in_reply_to":"fa32b979_ffd84681","updated":"2015-06-23 12:13:20.000000000","message":"This adds a third call of create-zanata-xml to this file. The existing ones are 158 and 166 characters, and this one weighs in at 293 characters, did you want me to split them all up in this patch?","commit_id":"0bc95e4defceb27ee7706800c314f1e72e2496db"}],"jenkins/scripts/create-zanata-xml.py":[{"author":{"_account_id":6547,"name":"Andreas Jaeger","email":"jaegerandi@gmail.com","username":"jaegerandi"},"change_message_id":"cf2d3e1c2728564b86c47540ec64b9a63edd551d","unresolved":false,"context_lines":[{"line_number":27,"context_line":"    parser.add_argument(\u0027-d\u0027, \u0027--txdir\u0027)"},{"line_number":28,"context_line":"    parser.add_argument(\u0027-r\u0027, \u0027--rule\u0027, nargs\u003d2, metavar\u003d(\u0027PATTERN\u0027, \u0027RULE\u0027),"},{"line_number":29,"context_line":"                        action\u003d\u0027append\u0027,"},{"line_number":30,"context_line":"                        help\u003d\u0027append a rule, can be specified multiple times, \u0027"},{"line_number":31,"context_line":"                        \u0027if no rules are specified a default is used\u0027)"},{"line_number":32,"context_line":"    parser.add_argument(\u0027-f\u0027, \u0027--file\u0027, required\u003dTrue)"},{"line_number":33,"context_line":"    return parser.parse_args()"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa32b979_5f05b2bf","line":30,"updated":"2015-06-23 11:12:05.000000000","message":"What is a rule in this context? Would be nice to briefly explain.","commit_id":"0bc95e4defceb27ee7706800c314f1e72e2496db"},{"author":{"_account_id":9369,"name":"Steve Kowalik","email":"steven@wedontsleep.org","username":"stevenk"},"change_message_id":"d205d9e72ec94e175a3f29630acb133cc3359388","unresolved":false,"context_lines":[{"line_number":27,"context_line":"    parser.add_argument(\u0027-d\u0027, \u0027--txdir\u0027)"},{"line_number":28,"context_line":"    parser.add_argument(\u0027-r\u0027, \u0027--rule\u0027, nargs\u003d2, metavar\u003d(\u0027PATTERN\u0027, \u0027RULE\u0027),"},{"line_number":29,"context_line":"                        action\u003d\u0027append\u0027,"},{"line_number":30,"context_line":"                        help\u003d\u0027append a rule, can be specified multiple times, \u0027"},{"line_number":31,"context_line":"                        \u0027if no rules are specified a default is used\u0027)"},{"line_number":32,"context_line":"    parser.add_argument(\u0027-f\u0027, \u0027--file\u0027, required\u003dTrue)"},{"line_number":33,"context_line":"    return parser.parse_args()"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa32b979_d50c4144","line":30,"in_reply_to":"fa32b979_5f05b2bf","updated":"2015-06-23 12:13:20.000000000","message":"A rule is used by Zanata to find translations files and their associated translations. I will work on better wording.","commit_id":"0bc95e4defceb27ee7706800c314f1e72e2496db"},{"author":{"_account_id":6547,"name":"Andreas Jaeger","email":"jaegerandi@gmail.com","username":"jaegerandi"},"change_message_id":"cf2d3e1c2728564b86c47540ec64b9a63edd551d","unresolved":false,"context_lines":[{"line_number":36,"context_line":"def main():"},{"line_number":37,"context_line":"    args \u003d get_args()"},{"line_number":38,"context_line":"    zc \u003d IniConfig(os.path.expanduser(\u0027~/.config/zanata.ini\u0027))"},{"line_number":39,"context_line":"    rules \u003d args.rule or [(\u0027*.pot\u0027, \u0027{locale}/LC_MESSAGES/{filename}.po\u0027)]"},{"line_number":40,"context_line":"    ProjectConfig(zc, args.file, rules, project\u003dargs.project,"},{"line_number":41,"context_line":"                  version\u003dargs.version,"},{"line_number":42,"context_line":"                  srcdir\u003dargs.srcdir, txdir\u003dargs.txdir)"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa32b979_1f588af9","line":39,"updated":"2015-06-23 11:12:05.000000000","message":"This rule will never match in OpenStack - but that\u0027s not a problem, isn\u0027t it?\n\nFor OpenStack the above files are below \"$REPO/locale/\"","commit_id":"0bc95e4defceb27ee7706800c314f1e72e2496db"},{"author":{"_account_id":9369,"name":"Steve Kowalik","email":"steven@wedontsleep.org","username":"stevenk"},"change_message_id":"d205d9e72ec94e175a3f29630acb133cc3359388","unresolved":false,"context_lines":[{"line_number":36,"context_line":"def main():"},{"line_number":37,"context_line":"    args \u003d get_args()"},{"line_number":38,"context_line":"    zc \u003d IniConfig(os.path.expanduser(\u0027~/.config/zanata.ini\u0027))"},{"line_number":39,"context_line":"    rules \u003d args.rule or [(\u0027*.pot\u0027, \u0027{locale}/LC_MESSAGES/{filename}.po\u0027)]"},{"line_number":40,"context_line":"    ProjectConfig(zc, args.file, rules, project\u003dargs.project,"},{"line_number":41,"context_line":"                  version\u003dargs.version,"},{"line_number":42,"context_line":"                  srcdir\u003dargs.srcdir, txdir\u003dargs.txdir)"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa32b979_b553bd38","line":39,"in_reply_to":"fa32b979_1f588af9","updated":"2015-06-23 12:13:20.000000000","message":"Ahh, but in this case, the rule is correct. Firstly, this code already existed in ZanataUtils, I\u0027ve moved it out a level in this patch. Second, $REPO/locale will be the base since we specify that as both the source directory and translations directory for every other project -- only Horizon is the odd one out with both of those specified as \u0027.\u0027.","commit_id":"0bc95e4defceb27ee7706800c314f1e72e2496db"},{"author":{"_account_id":6547,"name":"Andreas Jaeger","email":"jaegerandi@gmail.com","username":"jaegerandi"},"change_message_id":"d315609c7d84e5e6e3349f60831948192000ed0a","unresolved":false,"context_lines":[{"line_number":36,"context_line":"def main():"},{"line_number":37,"context_line":"    args \u003d get_args()"},{"line_number":38,"context_line":"    zc \u003d IniConfig(os.path.expanduser(\u0027~/.config/zanata.ini\u0027))"},{"line_number":39,"context_line":"    rules \u003d args.rule or [(\u0027*.pot\u0027, \u0027{locale}/LC_MESSAGES/{filename}.po\u0027)]"},{"line_number":40,"context_line":"    ProjectConfig(zc, args.file, rules, project\u003dargs.project,"},{"line_number":41,"context_line":"                  version\u003dargs.version,"},{"line_number":42,"context_line":"                  srcdir\u003dargs.srcdir, txdir\u003dargs.txdir)"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa32b979_7098e31b","line":39,"in_reply_to":"fa32b979_b553bd38","updated":"2015-06-23 12:24:56.000000000","message":"Ah, good to know!","commit_id":"0bc95e4defceb27ee7706800c314f1e72e2496db"},{"author":{"_account_id":6547,"name":"Andreas Jaeger","email":"jaegerandi@gmail.com","username":"jaegerandi"},"change_message_id":"87d0a6683c18fcef0abd3ec646dc32881ff13774","unresolved":false,"context_lines":[{"line_number":27,"context_line":"    parser.add_argument(\u0027-d\u0027, \u0027--txdir\u0027)"},{"line_number":28,"context_line":"    parser.add_argument(\u0027-r\u0027, \u0027--rule\u0027, nargs\u003d2, metavar\u003d(\u0027PATTERN\u0027, \u0027RULE\u0027),"},{"line_number":29,"context_line":"                        action\u003d\u0027append\u0027,"},{"line_number":30,"context_line":"                        help\u003d\u0027append a rule, used by the Zanata client to \u0027"},{"line_number":31,"context_line":"                        \u0027match .pot files to translations. Can be specified \u0027"},{"line_number":32,"context_line":"                        \u0027multiple times, and if no rules are specified a \u0027"},{"line_number":33,"context_line":"                        \u0027default will be used\u0027)"}],"source_content_type":"text/x-python","patch_set":7,"id":"fa32b979_63d554e3","line":30,"updated":"2015-06-24 06:42:53.000000000","message":"nit: Capitalize first word. Best would be to end every thing with a \".\" - also line 23.","commit_id":"dae4845dd9e2b2ef9aa73f07f7830613edea9f4d"}]}
