)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":1,"name":"James E. Blair","email":"jim@acmegating.com","username":"corvus"},"change_message_id":"831d1386d7aa827d9766b5d077a72b627fe92534","unresolved":false,"context_lines":[{"line_number":12,"context_line":"This patch creates four new scripts:"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"* afs-slug, which generates both a long-form and short-form version of the"},{"line_number":15,"context_line":"  platform architecture, derived from the node name."},{"line_number":16,"context_line":"* wheel-build, which generates all wheels, from all branches, in `pwd`/wheels"},{"line_number":17,"context_line":"* wheel-copy, which copies this wheels directory into our AFS file structure."},{"line_number":18,"context_line":"* wheel-index, which rebuilds the index.html file from the directories"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":28,"id":"7a5de9d1_00ce61b4","line":15,"updated":"2016-02-02 17:19:41.000000000","message":"I only see it generating long-form.","commit_id":"fe9c11344395c31ce34f9ae67c1c172c37404dd7"}],"jenkins/jobs/macros.yaml":[{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"6e079a5b994ac3b445493077cde6c1f47d414571","unresolved":false,"context_lines":[{"line_number":568,"context_line":"    builders:"},{"line_number":569,"context_line":"      - shell: |"},{"line_number":570,"context_line":"          #!/bin/bash -eux"},{"line_number":571,"context_line":"          run-mirror -c /home/jenkins/pypimirror/etc/pypi-mirror.yaml"},{"line_number":572,"context_line":"          DISTRO_DIR\u003d$(lsb_release -i -r -s | tr \u0027\\n\u0027 - | rev | cut -c 2- | rev) rsync -a --ignore-existing --itemize-changes /home/jenkins/pypimirror/mirror/openstack/$DISTRO_DIR/ jenkins@static.openstack.org:/srv/stsatic/mirror/web/openstack/$DISTRO_DIR/"},{"line_number":573,"context_line":""},{"line_number":574,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":3,"id":"1a6ced46_253c77e2","line":571,"updated":"2015-03-23 22:47:01.000000000","message":"Won\u0027t this make non wheel sdists too? The DISTRO_DIR below shouldn\u0027 contain them so the file coping will do the correct thing but can we speed this process up by avoiding the sdists?","commit_id":"e790df7c8637a68a2158f4e8c166a65c32e0f4c0"},{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"6e079a5b994ac3b445493077cde6c1f47d414571","unresolved":false,"context_lines":[{"line_number":569,"context_line":"      - shell: |"},{"line_number":570,"context_line":"          #!/bin/bash -eux"},{"line_number":571,"context_line":"          run-mirror -c /home/jenkins/pypimirror/etc/pypi-mirror.yaml"},{"line_number":572,"context_line":"          DISTRO_DIR\u003d$(lsb_release -i -r -s | tr \u0027\\n\u0027 - | rev | cut -c 2- | rev) rsync -a --ignore-existing --itemize-changes /home/jenkins/pypimirror/mirror/openstack/$DISTRO_DIR/ jenkins@static.openstack.org:/srv/stsatic/mirror/web/openstack/$DISTRO_DIR/"},{"line_number":573,"context_line":""},{"line_number":574,"context_line":""},{"line_number":575,"context_line":"# \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"}],"source_content_type":"text/x-yaml","patch_set":3,"id":"1a6ced46_45417359","line":572,"updated":"2015-03-23 22:47:01.000000000","message":"\u0027static\u0027 is typoed here.","commit_id":"e790df7c8637a68a2158f4e8c166a65c32e0f4c0"},{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"8e0a1c05155b25d4756e1d9ad3f682d3cd9c18e8","unresolved":false,"context_lines":[{"line_number":569,"context_line":"      - shell: |"},{"line_number":570,"context_line":"          #!/bin/bash -eux"},{"line_number":571,"context_line":"          run-mirror -c /home/jenkins/pypimirror/etc/pypi-mirror.yaml"},{"line_number":572,"context_line":"          DISTRO_DIR\u003d$(lsb_release -i -r -s | tr \u0027\\n\u0027 - | rev | cut -c 2- | rev) rsync -a --ignore-existing --itemize-changes /home/jenkins/pypimirror/mirror/openstack/$DISTRO_DIR/ jenkins@static.openstack.org:/srv/stsatic/mirror/web/openstack/$DISTRO_DIR/"},{"line_number":573,"context_line":""},{"line_number":574,"context_line":""},{"line_number":575,"context_line":"# \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"}],"source_content_type":"text/x-yaml","patch_set":3,"id":"1a6ced46_650caf43","line":572,"updated":"2015-03-23 22:48:18.000000000","message":"Oh We also use region specific mirrors now, so you will need one rsync per remote endpoint. maybe make that a parameter for an rsync builder that can be used multiple times.","commit_id":"e790df7c8637a68a2158f4e8c166a65c32e0f4c0"},{"author":{"_account_id":5263,"name":"Jeremy Stanley","display_name":"fungi","email":"fungi@yuggoth.org","username":"fungi","status":"missing, presumed fed"},"change_message_id":"b05ab544a66da676cf7ec6951283f1bfeb1b5068","unresolved":false,"context_lines":[{"line_number":742,"context_line":"    builders:"},{"line_number":743,"context_line":"      - shell: |"},{"line_number":744,"context_line":"          #!/bin/bash -eux"},{"line_number":745,"context_line":"          DISTRO_DIR\u003d$(lsb_release -i -r -s | tr \u0027\\n\u0027 - | rev | cut -c 2- | rev) rsync -a --ignore-existing --itemize-changes /home/jenkins/pypimirror/mirror/openstack/$DISTRO_DIR/ jenkins@{mirror_host}:/srv/static/mirror/web/openstack/$DISTRO_DIR/"},{"line_number":746,"context_line":""},{"line_number":747,"context_line":"# \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":748,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":11,"id":"fa80f949_d478b7c6","line":745,"updated":"2015-11-05 20:10:38.000000000","message":"Here\u0027s a sample of DISTRO_DIRs I get on various relevant platforms:\n\n    Ubuntu-12.04\n    Ubuntu-14.04\n    Fedora 21\n    Fedora 22\n    CentOS 6.7\n    CentOS 7.1.1503\n\nI suspect this part still needs work for our Red Hat derivative machines?","commit_id":"04eba45dc9bbf02db1043187a9c905ca14497462"},{"author":{"_account_id":7156,"name":"Mathieu Gagné","email":"mgagne@calavera.ca","username":"mgagne"},"change_message_id":"2bf96c697ecb43a323f820eb47769690735eb68e","unresolved":false,"context_lines":[{"line_number":741,"context_line":"          for BRANCH in $BRANCHES; do"},{"line_number":742,"context_line":"              git --git-dir\u003dopenstack/requirements/.git show $BRANCH:upper-constraints.txt \\"},{"line_number":743,"context_line":"                  2\u003e/dev/null \u003e /tmp/upper-constraints.txt  || true"},{"line_number":744,"context_line":"              pip wheel -r /tmp/upper-constraints.txt -w /home/jenkins/wheelhouse"},{"line_number":745,"context_line":""},{"line_number":746,"context_line":"- builder:"},{"line_number":747,"context_line":"    name: distribute-wheel-mirror"}],"source_content_type":"text/x-yaml","patch_set":15,"id":"9a8ffd7b_80a8bbdc","line":744,"updated":"2015-12-02 02:22:02.000000000","message":"This will build and copy all wheels in /home/jenkins/wheelhouse.\n\nMy test shows that pip won\u0027t be able to find them unless wheels are placed in folders named after the package name like pypi.\n\nFor example, lxml needs to be in /home/jenkins/wheelhouse/lxml/lxml-XXX.whl\n\nLet me know if there is a pip option I\u0027m not aware of.","commit_id":"4f0ac4d4b6a5ed7bcc0ef216242e044e17fc95e2"},{"author":{"_account_id":6547,"name":"Andreas Jaeger","email":"jaegerandi@gmail.com","username":"jaegerandi"},"change_message_id":"a0ad9fef7bb4e91a6389c28f3c0d68ec1a44b147","unresolved":false,"context_lines":[{"line_number":777,"context_line":"            BASENAME\u003d$(basename $f)"},{"line_number":778,"context_line":"            IFS\u003d\u0027-\u0027 read -a parts \u003c\u003c\u003c $BASENAME"},{"line_number":779,"context_line":"            if [ -z ${parts[0]:1:1} ]; then"},{"line_number":780,"context_line":"              DEST_DIR\u003d\"${parts[0]:0:1}/${parts[0]}\""},{"line_number":781,"context_line":"            else"},{"line_number":782,"context_line":"              DEST_DIR\u003d\"${parts[0]:0:1}/${parts[0]:1:1}/${parts[0]}\""},{"line_number":783,"context_line":"            fi"}],"source_content_type":"text/x-yaml","patch_set":16,"id":"fa69d971_a1d9d758","line":780,"range":{"start_line":780,"start_character":42,"end_line":780,"end_character":47},"updated":"2016-01-06 17:39:24.000000000","message":"I fear that the single { in this line is wrong, you need double { due to macro expansion. Check output of gate-project-config-compare-xml","commit_id":"5eef70ddf92dd4043ccbdf6de9ef30cccf1d8019"},{"author":{"_account_id":6547,"name":"Andreas Jaeger","email":"jaegerandi@gmail.com","username":"jaegerandi"},"change_message_id":"cdf56720a18c1d2a49cc40acf41522223ec53d95","unresolved":false,"context_lines":[{"line_number":767,"context_line":"          fi"},{"line_number":768,"context_line":""},{"line_number":769,"context_line":"          AFS_DIR\u003d/afs/.openstack.org/mirror/wheel/$DISTRO_NAME-$DISTRO_VERSION/"},{"line_number":770,"context_line":"          WHEEL_DIR\u003d/tmp/wheelhouse"},{"line_number":771,"context_line":""},{"line_number":772,"context_line":"          # Build the wheels into staging directory"},{"line_number":773,"context_line":"          echo \"Building wheels\""}],"source_content_type":"text/x-yaml","patch_set":24,"id":"7a5de9d1_fc5e18e8","line":770,"updated":"2016-01-28 18:25:09.000000000","message":"What about using a temporary directory instead?","commit_id":"80481515de8f7605607ac8fa4a6179e3b528310b"},{"author":{"_account_id":9717,"name":"Michael Krotscheck","email":"krotscheck@gmail.com","username":"krotscheck"},"change_message_id":"ab444ff0120fd865db453bd85c384d45473f7653","unresolved":false,"context_lines":[{"line_number":767,"context_line":"          fi"},{"line_number":768,"context_line":""},{"line_number":769,"context_line":"          AFS_DIR\u003d/afs/.openstack.org/mirror/wheel/$DISTRO_NAME-$DISTRO_VERSION/"},{"line_number":770,"context_line":"          WHEEL_DIR\u003d/tmp/wheelhouse"},{"line_number":771,"context_line":""},{"line_number":772,"context_line":"          # Build the wheels into staging directory"},{"line_number":773,"context_line":"          echo \"Building wheels\""}],"source_content_type":"text/x-yaml","patch_set":24,"id":"7a5de9d1_9791fd54","line":770,"in_reply_to":"7a5de9d1_fc5e18e8","updated":"2016-01-28 18:47:32.000000000","message":"This is intended to run on a long-lived slave, and I\u0027d like to avoid filling up the tmp directory with duplicate wheels. I\u0027m not certain whether pip will rebuild wheels it has already found, however using a consistent directory will keep the disk footprint far smaller than creating a new temp directory every time.","commit_id":"80481515de8f7605607ac8fa4a6179e3b528310b"},{"author":{"_account_id":6547,"name":"Andreas Jaeger","email":"jaegerandi@gmail.com","username":"jaegerandi"},"change_message_id":"cdf56720a18c1d2a49cc40acf41522223ec53d95","unresolved":false,"context_lines":[{"line_number":787,"context_line":"              -- timeout -k 2m 30m \\"},{"line_number":788,"context_line":"              /usr/local/jenkins/slave_scripts/wheel-index.sh $AFS_DIR"},{"line_number":789,"context_line":""},{"line_number":790,"context_line":"          echo \"Done.\""},{"line_number":791,"context_line":""},{"line_number":792,"context_line":""},{"line_number":793,"context_line":"# \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"}],"source_content_type":"text/x-yaml","patch_set":24,"id":"7a5de9d1_7cfa28bf","line":790,"updated":"2016-01-28 18:25:09.000000000","message":"Do we need to clean up afterwards?","commit_id":"80481515de8f7605607ac8fa4a6179e3b528310b"},{"author":{"_account_id":6547,"name":"Andreas Jaeger","email":"jaegerandi@gmail.com","username":"jaegerandi"},"change_message_id":"8a0c1186257300aa31911cc591d34a76e36d4378","unresolved":false,"context_lines":[{"line_number":787,"context_line":"              -- timeout -k 2m 30m \\"},{"line_number":788,"context_line":"              /usr/local/jenkins/slave_scripts/wheel-index.sh $AFS_DIR"},{"line_number":789,"context_line":""},{"line_number":790,"context_line":"          echo \"Done.\""},{"line_number":791,"context_line":""},{"line_number":792,"context_line":""},{"line_number":793,"context_line":"# \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"}],"source_content_type":"text/x-yaml","patch_set":24,"id":"7a5de9d1_17674d26","line":790,"in_reply_to":"7a5de9d1_77cb2154","updated":"2016-01-28 18:50:37.000000000","message":"I\u0027m fine either way - just wanted to be sure we know what we do. Might be worth a comment...","commit_id":"80481515de8f7605607ac8fa4a6179e3b528310b"},{"author":{"_account_id":9717,"name":"Michael Krotscheck","email":"krotscheck@gmail.com","username":"krotscheck"},"change_message_id":"ab444ff0120fd865db453bd85c384d45473f7653","unresolved":false,"context_lines":[{"line_number":787,"context_line":"              -- timeout -k 2m 30m \\"},{"line_number":788,"context_line":"              /usr/local/jenkins/slave_scripts/wheel-index.sh $AFS_DIR"},{"line_number":789,"context_line":""},{"line_number":790,"context_line":"          echo \"Done.\""},{"line_number":791,"context_line":""},{"line_number":792,"context_line":""},{"line_number":793,"context_line":"# \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"}],"source_content_type":"text/x-yaml","patch_set":24,"id":"7a5de9d1_77cb2154","line":790,"in_reply_to":"7a5de9d1_7cfa28bf","updated":"2016-01-28 18:47:32.000000000","message":"We could. Upside is that we\u0027d have a clean start every time, and don\u0027t carry forward wheels that are out of date. Downside is that previously built wheels will have to be rebuilt. Do you have a strong opinion either way?","commit_id":"80481515de8f7605607ac8fa4a6179e3b528310b"},{"author":{"_account_id":1,"name":"James E. Blair","email":"jim@acmegating.com","username":"corvus"},"change_message_id":"a52b25030950ecf38fb29548fbddaa597ccad4da","unresolved":false,"context_lines":[{"line_number":764,"context_line":"    name: wheel-build"},{"line_number":765,"context_line":"    builders:"},{"line_number":766,"context_line":"      - shell: |"},{"line_number":767,"context_line":"          #!/bin/bash -x"},{"line_number":768,"context_line":""},{"line_number":769,"context_line":"          # Env detection."},{"line_number":770,"context_line":"          DISTRO_NAME\u003d$(lsb_release -i -s)"}],"source_content_type":"text/x-yaml","patch_set":25,"id":"7a5de9d1_2cd63028","line":767,"updated":"2016-02-01 21:07:50.000000000","message":"This script should probably be set -e so that it exits on the first error; either that, or we should add specific error checks after each step where we think it should abort on failure.","commit_id":"fa6bbac6d408022f1ff9ce9dfab5df011bc3f495"}],"jenkins/jobs/projects.yaml":[{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"a5453aa53cf4ccb2d173a6ac726a71f4f78e10fa","unresolved":false,"context_lines":[{"line_number":1585,"context_line":"      - gate-{name}-pep8"},{"line_number":1586,"context_line":"      - gate-{name}-python27"},{"line_number":1587,"context_line":"      - gate-{name}-pypy"},{"line_number":1588,"context_line":"      - wheel-bulid-{node}:"},{"line_number":1589,"context_line":"          node:"},{"line_number":1590,"context_line":"            - wheel-mirror-ubuntu-trusty-amd64"},{"line_number":1591,"context_line":"            - wheel-mirror-ubuntu-precise-amd64"}],"source_content_type":"text/x-yaml","patch_set":6,"id":"fa963961_c77957fe","line":1588,"updated":"2015-03-27 20:17:57.000000000","message":"Typo here \u0027bulid\u0027","commit_id":"74a0d736ea4f0b0e87a0e94ccd68ce94e4405292"},{"author":{"_account_id":6547,"name":"Andreas Jaeger","email":"jaegerandi@gmail.com","username":"jaegerandi"},"change_message_id":"a0ad9fef7bb4e91a6389c28f3c0d68ec1a44b147","unresolved":false,"context_lines":[{"line_number":6690,"context_line":"          envlist: validate"},{"line_number":6691,"context_line":"      - wheel-build-{node}:"},{"line_number":6692,"context_line":"          node:"},{"line_number":6693,"context_line":"            - wheel-mirror-ubuntu-trusty-amd64"},{"line_number":6694,"context_line":"            - wheel-mirror-ubuntu-precise-amd64"},{"line_number":6695,"context_line":"            - wheel-mirror-centos-7-amd64"},{"line_number":6696,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":16,"id":"fa69d971_4157bbc9","line":6693,"range":{"start_line":6693,"start_character":14,"end_line":6693,"end_character":46},"updated":"2016-01-06 17:39:24.000000000","message":"wheel-mirror-ubuntu-trusty-amd64 is not a name for a node AFAIK. Same for the others.","commit_id":"5eef70ddf92dd4043ccbdf6de9ef30cccf1d8019"},{"author":{"_account_id":9717,"name":"Michael Krotscheck","email":"krotscheck@gmail.com","username":"krotscheck"},"change_message_id":"2b7924557ee193639b3561aa445f3db04490d57e","unresolved":false,"context_lines":[{"line_number":6690,"context_line":"          envlist: validate"},{"line_number":6691,"context_line":"      - wheel-build-{node}:"},{"line_number":6692,"context_line":"          node:"},{"line_number":6693,"context_line":"            - wheel-mirror-ubuntu-trusty-amd64"},{"line_number":6694,"context_line":"            - wheel-mirror-ubuntu-precise-amd64"},{"line_number":6695,"context_line":"            - wheel-mirror-centos-7-amd64"},{"line_number":6696,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":16,"id":"da6ed579_9c7942ff","line":6693,"range":{"start_line":6693,"start_character":14,"end_line":6693,"end_character":46},"in_reply_to":"fa69d971_4157bbc9","updated":"2016-01-12 18:42:20.000000000","message":"These nodes are defined in https://review.openstack.org/#/c/164927/","commit_id":"5eef70ddf92dd4043ccbdf6de9ef30cccf1d8019"},{"author":{"_account_id":9717,"name":"Michael Krotscheck","email":"krotscheck@gmail.com","username":"krotscheck"},"change_message_id":"68d44e085a588249e6d57dea48c28e2bd733c9c2","unresolved":false,"context_lines":[{"line_number":6860,"context_line":"          envlist: validate"},{"line_number":6861,"context_line":"      - wheel-build-{node}:"},{"line_number":6862,"context_line":"          node:"},{"line_number":6863,"context_line":"            - wheel-mirror-ubuntu-trusty-amd64"},{"line_number":6864,"context_line":""},{"line_number":6865,"context_line":"- project:"},{"line_number":6866,"context_line":"    name: requirements-jobs"}],"source_content_type":"text/x-yaml","patch_set":22,"id":"7a5de9d1_15a99bdf","line":6863,"range":{"start_line":6863,"start_character":14,"end_line":6863,"end_character":46},"updated":"2016-01-28 13:49:27.000000000","message":"We\u0027re only using one node for the time being. CentOS and Fedora will be added once we get these patches working.","commit_id":"9e4d870f7e378dfeb56896c4c5fe6a2e226e7890"},{"author":{"_account_id":6547,"name":"Andreas Jaeger","email":"jaegerandi@gmail.com","username":"jaegerandi"},"change_message_id":"cdf56720a18c1d2a49cc40acf41522223ec53d95","unresolved":false,"context_lines":[{"line_number":6858,"context_line":"          branch-override: stable/liberty"},{"line_number":6859,"context_line":"      - \u0027gate-{name}-tox-{envlist}\u0027:"},{"line_number":6860,"context_line":"          envlist: validate"},{"line_number":6861,"context_line":"      - wheel-build-{node}:"},{"line_number":6862,"context_line":"          node:"},{"line_number":6863,"context_line":"            - wheel-mirror-ubuntu-trusty-amd64"},{"line_number":6864,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":24,"id":"7a5de9d1_7c21c84c","line":6861,"updated":"2016-01-28 18:25:09.000000000","message":"Why as part of requirements?","commit_id":"80481515de8f7605607ac8fa4a6179e3b528310b"},{"author":{"_account_id":6547,"name":"Andreas Jaeger","email":"jaegerandi@gmail.com","username":"jaegerandi"},"change_message_id":"8a0c1186257300aa31911cc591d34a76e36d4378","unresolved":false,"context_lines":[{"line_number":6858,"context_line":"          branch-override: stable/liberty"},{"line_number":6859,"context_line":"      - \u0027gate-{name}-tox-{envlist}\u0027:"},{"line_number":6860,"context_line":"          envlist: validate"},{"line_number":6861,"context_line":"      - wheel-build-{node}:"},{"line_number":6862,"context_line":"          node:"},{"line_number":6863,"context_line":"            - wheel-mirror-ubuntu-trusty-amd64"},{"line_number":6864,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":24,"id":"7a5de9d1_577dc5af","line":6861,"in_reply_to":"7a5de9d1_57738515","updated":"2016-01-28 18:50:37.000000000","message":"So, fits nowhere ;) Worth a comment IMHO.","commit_id":"80481515de8f7605607ac8fa4a6179e3b528310b"},{"author":{"_account_id":9717,"name":"Michael Krotscheck","email":"krotscheck@gmail.com","username":"krotscheck"},"change_message_id":"ab444ff0120fd865db453bd85c384d45473f7653","unresolved":false,"context_lines":[{"line_number":6858,"context_line":"          branch-override: stable/liberty"},{"line_number":6859,"context_line":"      - \u0027gate-{name}-tox-{envlist}\u0027:"},{"line_number":6860,"context_line":"          envlist: validate"},{"line_number":6861,"context_line":"      - wheel-build-{node}:"},{"line_number":6862,"context_line":"          node:"},{"line_number":6863,"context_line":"            - wheel-mirror-ubuntu-trusty-amd64"},{"line_number":6864,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":24,"id":"7a5de9d1_57738515","line":6861,"in_reply_to":"7a5de9d1_7c21c84c","updated":"2016-01-28 18:47:32.000000000","message":"The goal is to make sure that we have prebuilt wheels of all of the global requirements. While pushing one of our projects to pypi does trigger this built, it could be that transient requirements change in the interim, and are thus missed. Adding it to the periodic queue ensures that we don\u0027t miss these updates, and since it\u0027s requirements related, this seems to be the best place to put it.","commit_id":"80481515de8f7605607ac8fa4a6179e3b528310b"}],"jenkins/jobs/wheel-mirror.yaml":[{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"6e079a5b994ac3b445493077cde6c1f47d414571","unresolved":false,"context_lines":[{"line_number":50,"context_line":"      - update-wheel-mirror"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"    publishers:"},{"line_number":53,"context_line":"      - console-log"}],"source_content_type":"text/x-yaml","patch_set":3,"id":"1a6ced46_05377b00","line":53,"updated":"2015-03-23 22:47:01.000000000","message":"You should make these three jobs a single job template that takes node as a parameter (will needto have that update the name too for uniqueness) then we can have arbitrary wheels for arbitrary nodes.","commit_id":"e790df7c8637a68a2158f4e8c166a65c32e0f4c0"},{"author":{"_account_id":6039,"name":"Joni Harker","email":"code@gentlydownthe.net","username":"jesusaurus"},"change_message_id":"4f1522846c345d27c9f15551601ec4c3454515a0","unresolved":false,"context_lines":[{"line_number":1,"context_line":"- job:"},{"line_number":2,"context_line":"    name: \u0027wheel-build-{node}\u0027"},{"line_number":3,"context_line":"    node: \u0027{node}\u0027"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"    wrappers:"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"fa963961_e0744c9d","line":2,"updated":"2015-03-27 16:31:56.000000000","message":"Since we have a parameter in the name here, we will need to make this a job-template and create several jobs from it in projects.yaml","commit_id":"6ce36747dfe25bf337ebc011757210046364403b"},{"author":{"_account_id":5263,"name":"Jeremy Stanley","display_name":"fungi","email":"fungi@yuggoth.org","username":"fungi","status":"missing, presumed fed"},"change_message_id":"b05ab544a66da676cf7ec6951283f1bfeb1b5068","unresolved":false,"context_lines":[{"line_number":19,"context_line":"      - distribute-wheel-mirror:"},{"line_number":20,"context_line":"          mirror_host: \u0027pypi.ord.openstack.org\u0027"},{"line_number":21,"context_line":"      - distribute-wheel-mirror:"},{"line_number":22,"context_line":"          mirror_host: \u0027pypi.region-b.geo-1.openstack.org\u0027"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"    publishers:"},{"line_number":25,"context_line":"      - console-log"}],"source_content_type":"text/x-yaml","patch_set":11,"id":"fa80f949_9430ef02","line":22,"updated":"2015-11-05 20:10:38.000000000","message":"We also have gra1 in OVH now.","commit_id":"04eba45dc9bbf02db1043187a9c905ca14497462"}],"jenkins/scripts/afs-slug.sh":[{"author":{"_account_id":1,"name":"James E. Blair","email":"jim@acmegating.com","username":"corvus"},"change_message_id":"831d1386d7aa827d9766b5d077a72b627fe92534","unresolved":false,"context_lines":[{"line_number":33,"context_line":"fi"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"################################################################################"},{"line_number":36,"context_line":"# Get the processor architecture, reduce to 3 characters"},{"line_number":37,"context_line":"#  x86_64, i386, armv7l, armv6l"},{"line_number":38,"context_line":"OS_ARCH\u003d$(uname -m)"},{"line_number":39,"context_line":""}],"source_content_type":"text/x-sh","patch_set":28,"id":"7a5de9d1_a0c3cd89","line":36,"updated":"2016-02-02 17:19:41.000000000","message":"I\u0027m not seeing the reduce to 3 chars part.","commit_id":"fe9c11344395c31ce34f9ae67c1c172c37404dd7"},{"author":{"_account_id":6547,"name":"Andreas Jaeger","email":"jaegerandi@gmail.com","username":"jaegerandi"},"change_message_id":"29cc46e6352ffef1547af31ad8ef3b21fc764e74","unresolved":false,"context_lines":[{"line_number":34,"context_line":""},{"line_number":35,"context_line":"################################################################################"},{"line_number":36,"context_line":"# Get the processor architecture."},{"line_number":37,"context_line":"#  x86_64, i386, armv7l, armv6l"},{"line_number":38,"context_line":"OS_ARCH\u003d$(uname -m)"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"################################################################################"}],"source_content_type":"text/x-sh","patch_set":30,"id":"7a5de9d1_3e57fdcb","line":37,"updated":"2016-02-02 19:20:21.000000000","message":"uname -m is most probably i686 on 32-bit x86 systems, not i386. Just tested locally.\n\nWill that be a problem?","commit_id":"00be0049fa074bb0d395c47a8f26db442a315476"}],"jenkins/scripts/wheel-build.sh":[{"author":{"_account_id":6547,"name":"Andreas Jaeger","email":"jaegerandi@gmail.com","username":"jaegerandi"},"change_message_id":"cdf56720a18c1d2a49cc40acf41522223ec53d95","unresolved":false,"context_lines":[{"line_number":10,"context_line":"/usr/zuul-env/bin/zuul-cloner \\"},{"line_number":11,"context_line":"    --cache-dir $CACHE_DIR \\"},{"line_number":12,"context_line":"    https://git.openstack.org \\"},{"line_number":13,"context_line":"    $PROJECT"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"# Extract and iterate over all the branch names."},{"line_number":16,"context_line":"BRANCHES\u003d`git --git-dir\u003d$WORKING_DIR/.git branch -r | grep \u0027^  origin/[^H]\u0027`"}],"source_content_type":"text/x-sh","patch_set":24,"id":"7a5de9d1_dc855c07","line":13,"updated":"2016-01-28 18:25:09.000000000","message":"You could also use one of the macros for checking this out.","commit_id":"80481515de8f7605607ac8fa4a6179e3b528310b"},{"author":{"_account_id":9717,"name":"Michael Krotscheck","email":"krotscheck@gmail.com","username":"krotscheck"},"change_message_id":"ab444ff0120fd865db453bd85c384d45473f7653","unresolved":false,"context_lines":[{"line_number":10,"context_line":"/usr/zuul-env/bin/zuul-cloner \\"},{"line_number":11,"context_line":"    --cache-dir $CACHE_DIR \\"},{"line_number":12,"context_line":"    https://git.openstack.org \\"},{"line_number":13,"context_line":"    $PROJECT"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"# Extract and iterate over all the branch names."},{"line_number":16,"context_line":"BRANCHES\u003d`git --git-dir\u003d$WORKING_DIR/.git branch -r | grep \u0027^  origin/[^H]\u0027`"}],"source_content_type":"text/x-sh","patch_set":24,"id":"7a5de9d1_f7ee318a","line":13,"in_reply_to":"7a5de9d1_dc855c07","updated":"2016-01-28 18:47:32.000000000","message":"Do the macros permit me to check out the requirements project, even if it\u0027s attached to a different projects\u0027 release pipeline? If so, yeah, I could totally do that.","commit_id":"80481515de8f7605607ac8fa4a6179e3b528310b"},{"author":{"_account_id":6547,"name":"Andreas Jaeger","email":"jaegerandi@gmail.com","username":"jaegerandi"},"change_message_id":"8a0c1186257300aa31911cc591d34a76e36d4378","unresolved":false,"context_lines":[{"line_number":10,"context_line":"/usr/zuul-env/bin/zuul-cloner \\"},{"line_number":11,"context_line":"    --cache-dir $CACHE_DIR \\"},{"line_number":12,"context_line":"    https://git.openstack.org \\"},{"line_number":13,"context_line":"    $PROJECT"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"# Extract and iterate over all the branch names."},{"line_number":16,"context_line":"BRANCHES\u003d`git --git-dir\u003d$WORKING_DIR/.git branch -r | grep \u0027^  origin/[^H]\u0027`"}],"source_content_type":"text/x-sh","patch_set":24,"id":"7a5de9d1_b209a72e","line":13,"in_reply_to":"7a5de9d1_f7ee318a","updated":"2016-01-28 18:50:37.000000000","message":"Yes, it does.\n\nThat\u0027s also a consideration for later, let\u0027s see what others suggest","commit_id":"80481515de8f7605607ac8fa4a6179e3b528310b"}],"zuul/layout.yaml":[{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"a5453aa53cf4ccb2d173a6ac726a71f4f78e10fa","unresolved":false,"context_lines":[{"line_number":412,"context_line":"        - \u0027{name}-pypi-both-upload\u0027:"},{"line_number":413,"context_line":"            - wheel-mirror-ubuntu-trusty-amd64"},{"line_number":414,"context_line":"            - wheel-mirror-ubuntu-precise-amd64"},{"line_number":415,"context_line":"            - wheel-mirror-centos-7-amd64"},{"line_number":416,"context_line":""},{"line_number":417,"context_line":"  # Release OpenStack Server packages."},{"line_number":418,"context_line":"  - name: openstack-server-release-jobs"}],"source_content_type":"text/x-yaml","patch_set":6,"id":"fa963961_4755474e","line":415,"updated":"2015-03-27 20:17:57.000000000","message":"Job name is \u0027wheel-build-wheel-mirror-ubuntu-trusty-amd64\u0027 and so on.","commit_id":"74a0d736ea4f0b0e87a0e94ccd68ce94e4405292"},{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"a5453aa53cf4ccb2d173a6ac726a71f4f78e10fa","unresolved":false,"context_lines":[{"line_number":2734,"context_line":"    periodic:"},{"line_number":2735,"context_line":"      - wheel-mirror-ubuntu-trusty-amd64"},{"line_number":2736,"context_line":"      - wheel-mirror-ubuntu-precise-amd64"},{"line_number":2737,"context_line":"      - wheel-mirror-centos-7-amd64"},{"line_number":2738,"context_line":""},{"line_number":2739,"context_line":"# TODO: add docs"},{"line_number":2740,"context_line":"  - name: openstack/sahara-dashboard"}],"source_content_type":"text/x-yaml","patch_set":6,"id":"fa963961_e74b3baf","line":2737,"updated":"2015-03-27 20:17:57.000000000","message":"See above comment.","commit_id":"74a0d736ea4f0b0e87a0e94ccd68ce94e4405292"},{"author":{"_account_id":5263,"name":"Jeremy Stanley","display_name":"fungi","email":"fungi@yuggoth.org","username":"fungi","status":"missing, presumed fed"},"change_message_id":"b05ab544a66da676cf7ec6951283f1bfeb1b5068","unresolved":false,"context_lines":[{"line_number":456,"context_line":"        - \u0027{name}-pypi-both-upload\u0027:"},{"line_number":457,"context_line":"            - wheel-build-wheel-mirror-ubuntu-trusty-amd64"},{"line_number":458,"context_line":"            - wheel-build-wheel-mirror-ubuntu-precise-amd64"},{"line_number":459,"context_line":"            - wheel-build-wheel-mirror-centos-7-amd64"},{"line_number":460,"context_line":""},{"line_number":461,"context_line":"  # Release OpenStack Server packages."},{"line_number":462,"context_line":"  - name: openstack-server-release-jobs"}],"source_content_type":"text/x-yaml","patch_set":11,"id":"fa80f949_ef0f242c","line":459,"updated":"2015-11-05 20:10:38.000000000","message":"I guess we\u0027re not doing CentOS 6 because it\u0027s soon to be ripped out, and Fedora because it\u0027s not a LTS so we\u0027d be replacing the servers with too much regularity?","commit_id":"04eba45dc9bbf02db1043187a9c905ca14497462"}]}
