)]}'
{"jenkins/jobs/osc.yaml":[{"author":{"_account_id":6547,"name":"Andreas Jaeger","email":"jaegerandi@gmail.com","username":"jaegerandi"},"change_message_id":"09a693ac5245fdd3c18d14bf60b6d2de1b1456c3","unresolved":false,"context_lines":[{"line_number":42,"context_line":""},{"line_number":43,"context_line":"- job:"},{"line_number":44,"context_line":"    name: check-osc-plugins"},{"line_number":45,"context_line":"    node: proposal"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"    builders:"},{"line_number":48,"context_line":"      - revoke-sudo"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"1a7b0d38_2a1e6f5f","line":45,"range":{"start_line":45,"start_character":10,"end_line":45,"end_character":18},"updated":"2015-12-27 10:21:13.000000000","message":"why should this run on the proposal node?","commit_id":"cd3edbd0a3e017c6e6686019dac62c3ba704143a"},{"author":{"_account_id":6547,"name":"Andreas Jaeger","email":"jaegerandi@gmail.com","username":"jaegerandi"},"change_message_id":"96e96a38c4f24c29a775914f445a9f78e8a4cba0","unresolved":false,"context_lines":[{"line_number":40,"context_line":"      - devstack-logs"},{"line_number":41,"context_line":"      - console-log"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"- job-template:"},{"line_number":44,"context_line":"    name: check-osc-plugins"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    builders:"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"1a7b0d38_0444c747","line":43,"range":{"start_line":43,"start_character":6,"end_line":43,"end_character":14},"updated":"2015-12-27 18:20:31.000000000","message":"This should be a job and have a node declaration - use bare-trusty.\n\nYou need to add a template to zuul. Zuul templates and Jenkins-Job-builder templates are completely independent.","commit_id":"b29f5a6a8fb2de78c8d3e55a5f9ea91711da42e3"},{"author":{"_account_id":6547,"name":"Andreas Jaeger","email":"jaegerandi@gmail.com","username":"jaegerandi"},"change_message_id":"579065c8118aa39e773d427484006a294b142741","unresolved":false,"context_lines":[{"line_number":41,"context_line":"      - console-log"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"- job:"},{"line_number":44,"context_line":"    name: check-osc-plugins"},{"line_number":45,"context_line":"    node: bare-trusty"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"    builders:"}],"source_content_type":"text/x-yaml","patch_set":5,"id":"1a7b0d38_8e4f6e6a","line":44,"range":{"start_line":44,"start_character":10,"end_line":44,"end_character":15},"updated":"2015-12-28 07:03:18.000000000","message":"Here it\u0027s called check-osc-plugins","commit_id":"65783c9217c2921ecf21dd3ac02a9810e9a1ee39"}],"jenkins/scripts/check-osc-plugins.sh":[{"author":{"_account_id":6547,"name":"Andreas Jaeger","email":"jaegerandi@gmail.com","username":"jaegerandi"},"change_message_id":"09a693ac5245fdd3c18d14bf60b6d2de1b1456c3","unresolved":false,"context_lines":[{"line_number":17,"context_line":""},{"line_number":18,"context_line":"virtualenv osc_plugins"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"# install known_OpenStackClient plugins"},{"line_number":21,"context_line":"./osc_plugins/bin/pip install python-openstackclient"},{"line_number":22,"context_line":"./osc_plugins/bin/pip install python-barbicanclient"},{"line_number":23,"context_line":"./osc_plugins/bin/pip install python-congressclient"}],"source_content_type":"text/x-sh","patch_set":1,"id":"1a7b0d38_8a2d2397","line":20,"updated":"2015-12-27 10:21:13.000000000","message":"This installs the released version from pypi, this is to late to catch any problems IMHO. You want to install from source.","commit_id":"cd3edbd0a3e017c6e6686019dac62c3ba704143a"},{"author":{"_account_id":6547,"name":"Andreas Jaeger","email":"jaegerandi@gmail.com","username":"jaegerandi"},"change_message_id":"09a693ac5245fdd3c18d14bf60b6d2de1b1456c3","unresolved":false,"context_lines":[{"line_number":35,"context_line":"echo \"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\""},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"# now check the current proposed change doesn\u0027t cause a conflict"},{"line_number":38,"context_line":"# we should already be in the project\u0027s root directory where setup.py exists"},{"line_number":39,"context_line":"pip install -e ."},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"content\u003d`openstack --help`"}],"source_content_type":"text/x-sh","patch_set":1,"id":"1a7b0d38_ea3ce7c9","line":38,"range":{"start_line":38,"start_character":5,"end_line":38,"end_character":11},"updated":"2015-12-27 10:21:13.000000000","message":"I see - you only want to install the one project from source but not the others. So if two projects have *unreleased* changes, you will not catch it - just if one has a released change and another tries to add it.","commit_id":"cd3edbd0a3e017c6e6686019dac62c3ba704143a"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"d096568fbfe9a68356f6a737ad7c35c8f0c7fcd6","unresolved":false,"context_lines":[{"line_number":35,"context_line":"echo \"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\""},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"# now check the current proposed change doesn\u0027t cause a conflict"},{"line_number":38,"context_line":"# we should already be in the project\u0027s root directory where setup.py exists"},{"line_number":39,"context_line":"pip install -e ."},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"content\u003d`openstack --help`"}],"source_content_type":"text/x-sh","patch_set":1,"id":"1a7b0d38_d0d67af0","line":38,"range":{"start_line":38,"start_character":5,"end_line":38,"end_character":11},"in_reply_to":"1a7b0d38_ea3ce7c9","updated":"2015-12-27 17:09:45.000000000","message":"you got it! \n\n*ideally* i would like to install them all from source, but wasn\u0027t sure how to do that easily on a first pass, so I settled for this instead.\n\nUsing this method, unless the two projects release on same day, then we\u0027ll catch most of the conflicts (a project may be broken though - if it\u0027s voting).","commit_id":"cd3edbd0a3e017c6e6686019dac62c3ba704143a"},{"author":{"_account_id":6547,"name":"Andreas Jaeger","email":"jaegerandi@gmail.com","username":"jaegerandi"},"change_message_id":"09a693ac5245fdd3c18d14bf60b6d2de1b1456c3","unresolved":false,"context_lines":[{"line_number":36,"context_line":""},{"line_number":37,"context_line":"# now check the current proposed change doesn\u0027t cause a conflict"},{"line_number":38,"context_line":"# we should already be in the project\u0027s root directory where setup.py exists"},{"line_number":39,"context_line":"pip install -e ."},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"content\u003d`openstack --help`"},{"line_number":42,"context_line":"echo $content"}],"source_content_type":"text/x-sh","patch_set":1,"id":"1a7b0d38_0a3a93cc","line":39,"range":{"start_line":39,"start_character":4,"end_line":39,"end_character":11},"updated":"2015-12-27 10:21:13.000000000","message":"Shouldn\u0027t you install this also in the venv?","commit_id":"cd3edbd0a3e017c6e6686019dac62c3ba704143a"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"d096568fbfe9a68356f6a737ad7c35c8f0c7fcd6","unresolved":false,"context_lines":[{"line_number":36,"context_line":""},{"line_number":37,"context_line":"# now check the current proposed change doesn\u0027t cause a conflict"},{"line_number":38,"context_line":"# we should already be in the project\u0027s root directory where setup.py exists"},{"line_number":39,"context_line":"pip install -e ."},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"content\u003d`openstack --help`"},{"line_number":42,"context_line":"echo $content"}],"source_content_type":"text/x-sh","patch_set":1,"id":"1a7b0d38_7006a687","line":39,"range":{"start_line":39,"start_character":4,"end_line":39,"end_character":11},"in_reply_to":"1a7b0d38_0a3a93cc","updated":"2015-12-27 17:09:45.000000000","message":"Done","commit_id":"cd3edbd0a3e017c6e6686019dac62c3ba704143a"},{"author":{"_account_id":6547,"name":"Andreas Jaeger","email":"jaegerandi@gmail.com","username":"jaegerandi"},"change_message_id":"095dbfbdc07505a3b724880be11477be8843c735","unresolved":false,"context_lines":[{"line_number":16,"context_line":"# the proposed change and see what blows up."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"virtualenv osc_plugins"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"# install known_OpenStackClient plugins"},{"line_number":21,"context_line":"./osc_plugins/bin/pip install python-openstackclient"},{"line_number":22,"context_line":"./osc_plugins/bin/pip install python-barbicanclient"}],"source_content_type":"text/x-sh","patch_set":4,"id":"1a7b0d38_64cd8bb6","line":19,"updated":"2015-12-27 18:48:19.000000000","message":"What do you think of the following for installing from source:\n\n\nfunction install_from_source {\n    repo \u003d $1\n\n    root \u003d $(mktemp -d)\n    $zc --cache-dir /opt/git --workspace ${root} \\\n        git://git.openstack.org openstack/${repo}\n\n    (cd ${root} \u0026\u0026 $VENV/bin/pip install .)\n    rm -rf $root\n}\n\nzc \u003d \u0027/usr/zuul-env/bin/zuul-cloner\u0027\n\ninstall_from_source python-openstackclient","commit_id":"b29f5a6a8fb2de78c8d3e55a5f9ea91711da42e3"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"62b132df2f8024087746ad633940a20a7da2465a","unresolved":false,"context_lines":[{"line_number":16,"context_line":"# the proposed change and see what blows up."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"virtualenv osc_plugins"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"# install known_OpenStackClient plugins"},{"line_number":21,"context_line":"./osc_plugins/bin/pip install python-openstackclient"},{"line_number":22,"context_line":"./osc_plugins/bin/pip install python-barbicanclient"}],"source_content_type":"text/x-sh","patch_set":4,"id":"1a7b0d38_d8045c19","line":19,"in_reply_to":"1a7b0d38_64cd8bb6","updated":"2015-12-28 06:03:18.000000000","message":"had to make a few minor adjustments, but i got it to completely run in my local environment.","commit_id":"b29f5a6a8fb2de78c8d3e55a5f9ea91711da42e3"},{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"83dcf86c1433d41c81f45c646518a46791e59be9","unresolved":false,"context_lines":[{"line_number":34,"context_line":""},{"line_number":35,"context_line":"# install known OpenStackClient plugins"},{"line_number":36,"context_line":"install_from_source python-openstackclient"},{"line_number":37,"context_line":"install_from_source python-openstackclient"},{"line_number":38,"context_line":"install_from_source python-barbicanclient"},{"line_number":39,"context_line":"install_from_source python-congressclient"},{"line_number":40,"context_line":"install_from_source python-cueclient"}],"source_content_type":"text/x-sh","patch_set":8,"id":"1a7b0d38_df43cf11","line":37,"updated":"2015-12-28 17:20:18.000000000","message":"Why is this installed twice?","commit_id":"99868626f01f7d57193789f0177982abd2d939a4"},{"author":{"_account_id":14937,"name":"Tang Chen","email":"imtangchen@163.com","username":"tangchen"},"change_message_id":"0d5c5df3a7863ae26f33eb8d4e8fe9245e0322fe","unresolved":false,"context_lines":[{"line_number":34,"context_line":""},{"line_number":35,"context_line":"# install known OpenStackClient plugins"},{"line_number":36,"context_line":"install_from_source python-openstackclient"},{"line_number":37,"context_line":"install_from_source python-openstackclient"},{"line_number":38,"context_line":"install_from_source python-barbicanclient"},{"line_number":39,"context_line":"install_from_source python-congressclient"},{"line_number":40,"context_line":"install_from_source python-cueclient"}],"source_content_type":"text/x-sh","patch_set":8,"id":"1a7b0d38_48e08296","line":37,"in_reply_to":"1a7b0d38_df43cf11","updated":"2015-12-29 05:19:06.000000000","message":"I think it is a mistake here.","commit_id":"99868626f01f7d57193789f0177982abd2d939a4"},{"author":{"_account_id":6547,"name":"Andreas Jaeger","email":"jaegerandi@gmail.com","username":"jaegerandi"},"change_message_id":"8dd6ea36621d734ad6bcd99f8bf31f99a6885b23","unresolved":false,"context_lines":[{"line_number":39,"context_line":"install_from_source python-cueclient"},{"line_number":40,"context_line":"install_from_source python-designateclient"},{"line_number":41,"context_line":"install_from_source python-heatclient"},{"line_number":42,"context_line":"install_from_source python-ironicclient"},{"line_number":43,"context_line":"install_from_source python-saharaclient"},{"line_number":44,"context_line":"install_from_source python-tuskarclient"},{"line_number":45,"context_line":"install_from_source python-zaqarclient"}],"source_content_type":"text/x-sh","patch_set":13,"id":"fa69d971_386299ae","line":42,"range":{"start_line":42,"start_character":27,"end_line":42,"end_character":39},"updated":"2015-12-31 18:51:11.000000000","message":"mistral is also missing - besides the mentioned ironic-inspector-","commit_id":"bbc4638496f63e78968a64d42951fdab26cafc3e"}],"jenkins/scripts/check_osc_commands.py":[{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"ee2ecdcf685770c4de04d44804a913e702da3236","unresolved":false,"context_lines":[{"line_number":27,"context_line":"        if not set(valid_commands).intersection(module[\u0027Commands\u0027]):"},{"line_number":28,"context_line":"            valid_commands.extend(module[\u0027Commands\u0027])"},{"line_number":29,"context_line":"        else:"},{"line_number":30,"context_line":"            print(\"duplicate commands found, breaking early\")"},{"line_number":31,"context_line":"            print(valid_commands)"},{"line_number":32,"context_line":"            print(module[\u0027Commands\u0027])"},{"line_number":33,"context_line":"            return True"}],"source_content_type":"text/x-python","patch_set":9,"id":"fa69d971_10624cd9","line":30,"updated":"2015-12-29 16:43:24.000000000","message":"I wonder if it\u0027s possible to easily show the source where the dupes are? Knowing that two copies of \"quota show\" are defined in the \"openstack.common\" group doesn\u0027t tell me what package had the original version that I\u0027m duplicating, for example, because it could be any of the other libraries being installed.","commit_id":"546dd314e21918b26a12434414013ac59b67d80f"},{"author":{"_account_id":6547,"name":"Andreas Jaeger","email":"jaegerandi@gmail.com","username":"jaegerandi"},"change_message_id":"e5c0c6cdbb9b3c698285a463d7dff4b6c728fbba","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"fa69d971_1ec81d74","updated":"2015-12-29 17:59:22.000000000","message":"I suggest to add some printing for those developers that see this the first time, like at least\n\"Checking for duplicated commands registered with openstackclient\"","commit_id":"4936f48a5dba5e9bd4373fd2f0ee568b397a7daa"},{"author":{"_account_id":6547,"name":"Andreas Jaeger","email":"jaegerandi@gmail.com","username":"jaegerandi"},"change_message_id":"e5c0c6cdbb9b3c698285a463d7dff4b6c728fbba","unresolved":false,"context_lines":[{"line_number":33,"context_line":"            invalid_commands.extend(result)"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"    if invalid_commands:"},{"line_number":36,"context_line":"        print(\"duplicate commands found...\")"},{"line_number":37,"context_line":"        print(invalid_commands)"},{"line_number":38,"context_line":"        return True"},{"line_number":39,"context_line":"    else:"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa69d971_1e9fbd60","line":36,"range":{"start_line":36,"start_character":15,"end_line":36,"end_character":16},"updated":"2015-12-29 17:59:22.000000000","message":"nit: Upper case the first word of all the prints","commit_id":"4936f48a5dba5e9bd4373fd2f0ee568b397a7daa"},{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"ad2fd96fb0a525aada77cb368de855881de90dbd","unresolved":false,"context_lines":[{"line_number":96,"context_line":"    return False"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"def _is_valid_command(ep, valid_cmds):"},{"line_number":100,"context_line":"    \"\"\"Determine if the entry point is valid."},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"    Aside from a simple check to see if the entry point short name is in our"}],"source_content_type":"text/x-python","patch_set":12,"id":"fa69d971_ae4bc62a","line":99,"updated":"2015-12-30 13:28:43.000000000","message":"cliff does some mapping between the entry point names and command name. Doesn\u0027t that need to be reproduced here? For example, I think it splits on \u0027_\u0027 to create multi-word commands, but it\u0027s also possible for a plugin to have a space in the name, so that \u0027one_two\u0027 and \u0027one two\u0027 map to the same command in cliff but would not match in this check.","commit_id":"76b7829be034e2589ef33ac894e084293c12594a"}],"zuul/layout.yaml":[{"author":{"_account_id":6547,"name":"Andreas Jaeger","email":"jaegerandi@gmail.com","username":"jaegerandi"},"change_message_id":"09a693ac5245fdd3c18d14bf60b6d2de1b1456c3","unresolved":false,"context_lines":[{"line_number":8030,"context_line":"      - name: pypy-jobs"},{"line_number":8031,"context_line":"      - name: openstack-client-publish-jobs"},{"line_number":8032,"context_line":"      - name: check-requirements"},{"line_number":8033,"context_line":"      - name: osc-check-plugins"},{"line_number":8034,"context_line":"    check:"},{"line_number":8035,"context_line":"      - gate-python-barbicanclient-devstack-dsvm"},{"line_number":8036,"context_line":"      - gate-python-barbicanclient-devstack-dsvm-oldstable"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"1a7b0d38_aa325ff0","line":8033,"range":{"start_line":8033,"start_character":23,"end_line":8033,"end_character":24},"updated":"2015-12-27 10:21:13.000000000","message":"You defined a job and use a template. Create a template if you want one and use it everywhere (that makes adding it as voting easier in the future)","commit_id":"cd3edbd0a3e017c6e6686019dac62c3ba704143a"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"d096568fbfe9a68356f6a737ad7c35c8f0c7fcd6","unresolved":false,"context_lines":[{"line_number":8030,"context_line":"      - name: pypy-jobs"},{"line_number":8031,"context_line":"      - name: openstack-client-publish-jobs"},{"line_number":8032,"context_line":"      - name: check-requirements"},{"line_number":8033,"context_line":"      - name: osc-check-plugins"},{"line_number":8034,"context_line":"    check:"},{"line_number":8035,"context_line":"      - gate-python-barbicanclient-devstack-dsvm"},{"line_number":8036,"context_line":"      - gate-python-barbicanclient-devstack-dsvm-oldstable"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"1a7b0d38_b0f08e92","line":8033,"range":{"start_line":8033,"start_character":23,"end_line":8033,"end_character":24},"in_reply_to":"1a7b0d38_aa325ff0","updated":"2015-12-27 17:09:45.000000000","message":"Done","commit_id":"cd3edbd0a3e017c6e6686019dac62c3ba704143a"},{"author":{"_account_id":6547,"name":"Andreas Jaeger","email":"jaegerandi@gmail.com","username":"jaegerandi"},"change_message_id":"c0a0b0013e74884dcc0d7876a9c6091bcbcf797f","unresolved":false,"context_lines":[{"line_number":8030,"context_line":"      - name: pypy-jobs"},{"line_number":8031,"context_line":"      - name: openstack-client-publish-jobs"},{"line_number":8032,"context_line":"      - name: check-requirements"},{"line_number":8033,"context_line":"      - name: osc-check-plugins"},{"line_number":8034,"context_line":"    check:"},{"line_number":8035,"context_line":"      - gate-python-barbicanclient-devstack-dsvm"},{"line_number":8036,"context_line":"      - gate-python-barbicanclient-devstack-dsvm-oldstable"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"1a7b0d38_c41b1f72","line":8033,"range":{"start_line":8033,"start_character":8,"end_line":8033,"end_character":31},"updated":"2015-12-27 18:15:08.000000000","message":"This is the name of a template - you have not defined it.\n\nDefine a template above, see above. For now just add osc-check-plugins to the check queue - example is pypi-jobs http://git.openstack.org/cgit/openstack-infra/project-config/tree/zuul/layout.yaml#n390.\n\nAnd then name the template something like osc-plugin-jobs","commit_id":"b29f5a6a8fb2de78c8d3e55a5f9ea91711da42e3"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"62b132df2f8024087746ad633940a20a7da2465a","unresolved":false,"context_lines":[{"line_number":8030,"context_line":"      - name: pypy-jobs"},{"line_number":8031,"context_line":"      - name: openstack-client-publish-jobs"},{"line_number":8032,"context_line":"      - name: check-requirements"},{"line_number":8033,"context_line":"      - name: osc-check-plugins"},{"line_number":8034,"context_line":"    check:"},{"line_number":8035,"context_line":"      - gate-python-barbicanclient-devstack-dsvm"},{"line_number":8036,"context_line":"      - gate-python-barbicanclient-devstack-dsvm-oldstable"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"1a7b0d38_473f3187","line":8033,"range":{"start_line":8033,"start_character":8,"end_line":8033,"end_character":31},"in_reply_to":"1a7b0d38_c41b1f72","updated":"2015-12-28 06:03:18.000000000","message":"ah okay, i follow you. thanks for the clarification. next patch will have it","commit_id":"b29f5a6a8fb2de78c8d3e55a5f9ea91711da42e3"},{"author":{"_account_id":6547,"name":"Andreas Jaeger","email":"jaegerandi@gmail.com","username":"jaegerandi"},"change_message_id":"579065c8118aa39e773d427484006a294b142741","unresolved":false,"context_lines":[{"line_number":389,"context_line":""},{"line_number":390,"context_line":"  - name: osc-plugin-jobs"},{"line_number":391,"context_line":"    check:"},{"line_number":392,"context_line":"      - \u0027osc-check-plugins\u0027"},{"line_number":393,"context_line":""},{"line_number":394,"context_line":"  - name: pypy-jobs"},{"line_number":395,"context_line":"    check:"}],"source_content_type":"text/x-yaml","patch_set":5,"id":"1a7b0d38_ae7b4a8b","line":392,"range":{"start_line":392,"start_character":9,"end_line":392,"end_character":25},"updated":"2015-12-28 07:03:18.000000000","message":"And here differently, use the same name in all places, also in the regex below","commit_id":"65783c9217c2921ecf21dd3ac02a9810e9a1ee39"},{"author":{"_account_id":6547,"name":"Andreas Jaeger","email":"jaegerandi@gmail.com","username":"jaegerandi"},"change_message_id":"e5c0c6cdbb9b3c698285a463d7dff4b6c728fbba","unresolved":false,"context_lines":[{"line_number":388,"context_line":"      - \u0027gate-{name}-python34-constraints\u0027"},{"line_number":389,"context_line":""},{"line_number":390,"context_line":"  - name: osc-plugin-jobs"},{"line_number":391,"context_line":"    check:"},{"line_number":392,"context_line":"      - \u0027check-osc-plugins\u0027"},{"line_number":393,"context_line":""},{"line_number":394,"context_line":"  - name: pypy-jobs"}],"source_content_type":"text/x-yaml","patch_set":10,"id":"fa69d971_3e73a14f","line":391,"range":{"start_line":391,"start_character":9,"end_line":391,"end_character":10},"updated":"2015-12-29 17:59:22.000000000","message":"Suggestion: use experimental here and add the template below - then you only need to update this place...","commit_id":"4936f48a5dba5e9bd4373fd2f0ee568b397a7daa"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"623552152fe13ccc1e057a390a058e867149818c","unresolved":false,"context_lines":[{"line_number":388,"context_line":"      - \u0027gate-{name}-python34-constraints\u0027"},{"line_number":389,"context_line":""},{"line_number":390,"context_line":"  - name: osc-plugin-jobs"},{"line_number":391,"context_line":"    check:"},{"line_number":392,"context_line":"      - \u0027check-osc-plugins\u0027"},{"line_number":393,"context_line":""},{"line_number":394,"context_line":"  - name: pypy-jobs"}],"source_content_type":"text/x-yaml","patch_set":10,"id":"fa69d971_9b965193","line":391,"range":{"start_line":391,"start_character":9,"end_line":391,"end_character":10},"in_reply_to":"fa69d971_3e73a14f","updated":"2015-12-30 08:31:01.000000000","message":"thanks! didn\u0027t know i could do that","commit_id":"4936f48a5dba5e9bd4373fd2f0ee568b397a7daa"}]}
