)]}'
{".zuul.yaml":[{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"change_message_id":"a37b1d96dbdd316a7b031db6b53ba94a7ac7c0c1","unresolved":false,"context_lines":[{"line_number":10,"context_line":"# See the License for the specific language governing permissions and"},{"line_number":11,"context_line":"# limitations under the License."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"- project:"},{"line_number":14,"context_line":"    templates:"},{"line_number":15,"context_line":"      - docs-on-readthedocs"},{"line_number":16,"context_line":"      - openstack-python35-jobs"},{"line_number":17,"context_line":"      - openstack-python36-jobs"},{"line_number":18,"context_line":"    vars:"},{"line_number":19,"context_line":"      rtd_webhook_id: \u002738576\u0027"},{"line_number":20,"context_line":"    check:"},{"line_number":21,"context_line":"      jobs:"},{"line_number":22,"context_line":"        - openstack-tox-pep8"},{"line_number":23,"context_line":"        - airship-shipyard-chart-build-gate"},{"line_number":24,"context_line":"        - airship-shipyard-whitespace-lint-gate"},{"line_number":25,"context_line":"        - airship-shipyard-image-gate"},{"line_number":26,"context_line":"    gate:"},{"line_number":27,"context_line":"      jobs:"},{"line_number":28,"context_line":"        - openstack-tox-pep8"},{"line_number":29,"context_line":"        - airship-shipyard-chart-build-gate"},{"line_number":30,"context_line":"        - airship-shipyard-whitespace-lint-gate"},{"line_number":31,"context_line":"        - airship-shipyard-image-gate"},{"line_number":32,"context_line":"    post:"},{"line_number":33,"context_line":"      jobs:"},{"line_number":34,"context_line":"        - airship-shipyard-docker-build-post"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"- nodeset:"},{"line_number":37,"context_line":"    name: airship-shipyard-single-node"},{"line_number":38,"context_line":"    nodes:"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"9fdfeff1_ff33cfa9","line":35,"range":{"start_line":13,"start_character":2,"end_line":35,"end_character":0},"updated":"2019-02-11 22:10:14.000000000","message":"Job airship-shipyard-image-gate not defined","commit_id":"6eba34a4f9cd23d51057c13904150ddce5354d7a"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"change_message_id":"a7ee98c31bc9694901d8b0845c92dbd47d6823c6","unresolved":false,"context_lines":[{"line_number":10,"context_line":"# See the License for the specific language governing permissions and"},{"line_number":11,"context_line":"# limitations under the License."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"- project:"},{"line_number":14,"context_line":"    templates:"},{"line_number":15,"context_line":"      - docs-on-readthedocs"},{"line_number":16,"context_line":"      - openstack-python35-jobs"},{"line_number":17,"context_line":"      - openstack-python36-jobs"},{"line_number":18,"context_line":"    vars:"},{"line_number":19,"context_line":"      rtd_webhook_id: \u002738576\u0027"},{"line_number":20,"context_line":"    check:"},{"line_number":21,"context_line":"      jobs:"},{"line_number":22,"context_line":"        - openstack-tox-pep8"},{"line_number":23,"context_line":"        - airship-shipyard-chart-build-gate"},{"line_number":24,"context_line":"        - airship-shipyard-whitespace-lint-gate"},{"line_number":25,"context_line":"        - airship-shipyard-image-gate-ubuntu"},{"line_number":26,"context_line":"        - airship-shipyard-image-gate-opensuse"},{"line_number":27,"context_line":"    gate:"},{"line_number":28,"context_line":"      jobs:"},{"line_number":29,"context_line":"        - openstack-tox-pep8"},{"line_number":30,"context_line":"        - airship-shipyard-chart-build-gate"},{"line_number":31,"context_line":"        - airship-shipyard-whitespace-lint-gate"},{"line_number":32,"context_line":"        - airship-shipyard-image-gate-ubuntu"},{"line_number":33,"context_line":"        - airship-shipyard-image-gate-opensuse"},{"line_number":34,"context_line":"    post:"},{"line_number":35,"context_line":"      jobs:"},{"line_number":36,"context_line":"        - airship-shipyard-docker-build-post"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"- nodeset:"},{"line_number":39,"context_line":"    name: airship-shipyard-single-node"},{"line_number":40,"context_line":"    nodes:"}],"source_content_type":"text/x-yaml","patch_set":2,"id":"9fdfeff1_bfb787f5","line":37,"range":{"start_line":13,"start_character":2,"end_line":37,"end_character":0},"updated":"2019-02-11 22:12:36.000000000","message":"Job airship-shipyard-docker-build-post not defined","commit_id":"57c6121c87a672e10c217272cbca0320edfe62a4"}],"Makefile":[{"author":{"_account_id":28618,"name":"Drew Walters","email":"drewwalters@microsoft.com","username":"drewwalters96"},"change_message_id":"af279e95ce2f3cb6e8318f49fd49a8fd63c71090","unresolved":false,"context_lines":[{"line_number":34,"context_line":"DISTRO_BASE_IMAGE          ?\u003d"},{"line_number":35,"context_line":"DISTRO                     ?\u003d ubuntu"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"IMAGE:\u003d${DOCKER_REGISTRY}/${IMAGE_PREFIX}/$(IMAGE_NAME):${IMAGE_TAG}"},{"line_number":38,"context_line":"IMAGE_DIR:\u003dimages/$(IMAGE_NAME)"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":".PHONY: images"}],"source_content_type":"application/octet-stream","patch_set":10,"id":"5fc1f717_0ad2f300","line":37,"range":{"start_line":37,"start_character":0,"end_line":37,"end_character":68},"updated":"2019-03-13 16:04:03.000000000","message":"This needs to include the distro or a race condition will exist in which the Ubuntu and openSUSE images overwrite each other, depending on which was published second.\n\nSomething like:\n\n  ${DOCKER_REGISTRY}/${IMAGE_PREFIX}/${IMAGE_NAME}:${IMAGE_TAG}-${DISTRO}","commit_id":"8b9faa6582d934289e495236c4eaa34a36ace344"}],"doc/source/multi-distro-support.rst":[{"author":{"_account_id":28618,"name":"Drew Walters","email":"drewwalters@microsoft.com","username":"drewwalters96"},"change_message_id":"af279e95ce2f3cb6e8318f49fd49a8fd63c71090","unresolved":false,"context_lines":[{"line_number":14,"context_line":"    under the License."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Multiple Distro Support"},{"line_number":18,"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"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"This project builds images for shipyard and airflow components. Currently it"}],"source_content_type":"text/x-rst","patch_set":10,"id":"5fc1f717_4a80fbbf","line":17,"range":{"start_line":17,"start_character":0,"end_line":17,"end_character":23},"updated":"2019-03-13 16:04:03.000000000","message":"Can we perhaps make this guide part of a new developer, getting started, or image guide? This knowledge does not yet seem to exist in any form, so an add-on guide for image building doesn\u0027t quite fit yet.","commit_id":"8b9faa6582d934289e495236c4eaa34a36ace344"},{"author":{"_account_id":28618,"name":"Drew Walters","email":"drewwalters@microsoft.com","username":"drewwalters96"},"change_message_id":"af279e95ce2f3cb6e8318f49fd49a8fd63c71090","unresolved":false,"context_lines":[{"line_number":17,"context_line":"Multiple Distro Support"},{"line_number":18,"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"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"This project builds images for shipyard and airflow components. Currently it"},{"line_number":21,"context_line":"supports building images for ubuntu and opensuse ( leap 15.0 as base image)."},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"By default, ubuntu images are built and are published to public registry"}],"source_content_type":"text/x-rst","patch_set":10,"id":"5fc1f717_0a57535a","line":20,"range":{"start_line":20,"start_character":44,"end_line":20,"end_character":51},"updated":"2019-03-13 16:04:03.000000000","message":"Airflow","commit_id":"8b9faa6582d934289e495236c4eaa34a36ace344"},{"author":{"_account_id":28618,"name":"Drew Walters","email":"drewwalters@microsoft.com","username":"drewwalters96"},"change_message_id":"af279e95ce2f3cb6e8318f49fd49a8fd63c71090","unresolved":false,"context_lines":[{"line_number":17,"context_line":"Multiple Distro Support"},{"line_number":18,"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"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"This project builds images for shipyard and airflow components. Currently it"},{"line_number":21,"context_line":"supports building images for ubuntu and opensuse ( leap 15.0 as base image)."},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"By default, ubuntu images are built and are published to public registry"}],"source_content_type":"text/x-rst","patch_set":10,"id":"5fc1f717_2a548f52","line":20,"range":{"start_line":20,"start_character":64,"end_line":20,"end_character":74},"updated":"2019-03-13 16:04:03.000000000","message":"Comma required here","commit_id":"8b9faa6582d934289e495236c4eaa34a36ace344"},{"author":{"_account_id":28618,"name":"Drew Walters","email":"drewwalters@microsoft.com","username":"drewwalters96"},"change_message_id":"af279e95ce2f3cb6e8318f49fd49a8fd63c71090","unresolved":false,"context_lines":[{"line_number":17,"context_line":"Multiple Distro Support"},{"line_number":18,"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"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"This project builds images for shipyard and airflow components. Currently it"},{"line_number":21,"context_line":"supports building images for ubuntu and opensuse ( leap 15.0 as base image)."},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"By default, ubuntu images are built and are published to public registry"}],"source_content_type":"text/x-rst","patch_set":10,"id":"5fc1f717_6a5e1777","line":20,"range":{"start_line":20,"start_character":31,"end_line":20,"end_character":39},"updated":"2019-03-13 16:04:03.000000000","message":"Shipyard","commit_id":"8b9faa6582d934289e495236c4eaa34a36ace344"},{"author":{"_account_id":28618,"name":"Drew Walters","email":"drewwalters@microsoft.com","username":"drewwalters96"},"change_message_id":"af279e95ce2f3cb6e8318f49fd49a8fd63c71090","unresolved":false,"context_lines":[{"line_number":20,"context_line":"This project builds images for shipyard and airflow components. Currently it"},{"line_number":21,"context_line":"supports building images for ubuntu and opensuse ( leap 15.0 as base image)."},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"By default, ubuntu images are built and are published to public registry"},{"line_number":24,"context_line":"server. Recently support for publishing opensuse image is also added."},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"If need to build and publish opensuse images locally, following"}],"source_content_type":"text/x-rst","patch_set":10,"id":"5fc1f717_4afd5b6c","line":23,"range":{"start_line":23,"start_character":12,"end_line":23,"end_character":18},"updated":"2019-03-13 16:04:03.000000000","message":"Ubuntu","commit_id":"8b9faa6582d934289e495236c4eaa34a36ace344"},{"author":{"_account_id":28618,"name":"Drew Walters","email":"drewwalters@microsoft.com","username":"drewwalters96"},"change_message_id":"af279e95ce2f3cb6e8318f49fd49a8fd63c71090","unresolved":false,"context_lines":[{"line_number":27,"context_line":"parameters can be passed to *make* command in shipyard repository\u0027s root"},{"line_number":28,"context_line":"directory with *images* as target::"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"    DISTRO: opensuse_leap15"},{"line_number":31,"context_line":"    DISTRO_BASE_IMAGE: \"opensuse/leap:15.0\""},{"line_number":32,"context_line":"    DOCKER_REGISTRY: { your_docker_registry }"},{"line_number":33,"context_line":"    IMAGE_TAG: opensuse_15.0"},{"line_number":34,"context_line":"    PUSH_IMAGE: true"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"Following parameters need to be passed as environment/shell variable to make"}],"source_content_type":"text/x-rst","patch_set":10,"id":"5fc1f717_0adc33e2","line":34,"range":{"start_line":30,"start_character":0,"end_line":34,"end_character":20},"updated":"2019-03-13 16:04:03.000000000","message":"It would probably be better to give an example command rather than a list of items here i.e.\n\n  make images DISTRO\u003dopensuse_leap15 ...\n\nAdditionally, I would recommend moving or omitting the push example to keep this guide simple, as its an optional operation.","commit_id":"8b9faa6582d934289e495236c4eaa34a36ace344"},{"author":{"_account_id":28618,"name":"Drew Walters","email":"drewwalters@microsoft.com","username":"drewwalters96"},"change_message_id":"af279e95ce2f3cb6e8318f49fd49a8fd63c71090","unresolved":false,"context_lines":[{"line_number":37,"context_line":"Following parameters need to be passed as environment/shell variable to make"},{"line_number":38,"context_line":"command::"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"    DISTRO: parameter to identify distro specific Dockerfile, ubuntu (Default)"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"    DISTRO_BASE_IMAGE: parameter to use different base image other than what\u0027s"},{"line_number":43,"context_line":"    used in DISTRO specific Dockerfile (optional)"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"    DOCKER_REGISTRY: parameter to specify local/internal docker registry if need"},{"line_number":46,"context_line":"    to publish image (optional), quay.io (Default)"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"    IMAGE_TAG: tag to be used for image built, untagged (Default)"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"    PUSH_IMAGE: flag to indicate if images needs to be pushed to a docker"},{"line_number":51,"context_line":"    registry, false (Default)"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"This work is done as per approved spec `multi_distro_support`. Currently only image"}],"source_content_type":"text/x-rst","patch_set":10,"id":"5fc1f717_6aa13746","line":51,"range":{"start_line":40,"start_character":0,"end_line":51,"end_character":29},"updated":"2019-03-13 16:04:03.000000000","message":"Can we make this a list, rather than a code block?","commit_id":"8b9faa6582d934289e495236c4eaa34a36ace344"},{"author":{"_account_id":28618,"name":"Drew Walters","email":"drewwalters@microsoft.com","username":"drewwalters96"},"change_message_id":"af279e95ce2f3cb6e8318f49fd49a8fd63c71090","unresolved":false,"context_lines":[{"line_number":51,"context_line":"    registry, false (Default)"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"This work is done as per approved spec `multi_distro_support`. Currently only image"},{"line_number":55,"context_line":"building logic is enhanced to support multiple distro."},{"line_number":56,"context_line":""},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"Adding New Distro Support"}],"source_content_type":"text/x-rst","patch_set":10,"id":"5fc1f717_8abfc35f","line":55,"range":{"start_line":54,"start_character":0,"end_line":55,"end_character":54},"updated":"2019-03-13 16:04:03.000000000","message":"It looks like the link was omitted here.","commit_id":"8b9faa6582d934289e495236c4eaa34a36ace344"},{"author":{"_account_id":28618,"name":"Drew Walters","email":"drewwalters@microsoft.com","username":"drewwalters96"},"change_message_id":"af279e95ce2f3cb6e8318f49fd49a8fd63c71090","unresolved":false,"context_lines":[{"line_number":55,"context_line":"building logic is enhanced to support multiple distro."},{"line_number":56,"context_line":""},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"Adding New Distro Support"},{"line_number":59,"context_line":"--------------------------"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"To add support for building images for a new distro, following steps can be"}],"source_content_type":"text/x-rst","patch_set":10,"id":"5fc1f717_aa695ff9","line":58,"range":{"start_line":58,"start_character":0,"end_line":58,"end_character":25},"updated":"2019-03-13 16:04:03.000000000","message":"This guide might be out-of-scope for Shipyard (i.e. could be better included in Treasuremap); I left some comments in-line.","commit_id":"8b9faa6582d934289e495236c4eaa34a36ace344"},{"author":{"_account_id":28618,"name":"Drew Walters","email":"drewwalters@microsoft.com","username":"drewwalters96"},"change_message_id":"af279e95ce2f3cb6e8318f49fd49a8fd63c71090","unresolved":false,"context_lines":[{"line_number":61,"context_line":"To add support for building images for a new distro, following steps can be"},{"line_number":62,"context_line":"followed."},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"  #. Shippyard uses images for shipyard and airflow. So images for those"},{"line_number":65,"context_line":"     components need to be built."},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"  #. Add distro specific Dockerfile which will have steps to include necessary"}],"source_content_type":"text/x-rst","patch_set":10,"id":"5fc1f717_6a6ff7fb","line":64,"range":{"start_line":64,"start_character":5,"end_line":64,"end_character":14},"updated":"2019-03-13 16:04:03.000000000","message":"Shipyard","commit_id":"8b9faa6582d934289e495236c4eaa34a36ace344"},{"author":{"_account_id":28618,"name":"Drew Walters","email":"drewwalters@microsoft.com","username":"drewwalters96"},"change_message_id":"af279e95ce2f3cb6e8318f49fd49a8fd63c71090","unresolved":false,"context_lines":[{"line_number":61,"context_line":"To add support for building images for a new distro, following steps can be"},{"line_number":62,"context_line":"followed."},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"  #. Shippyard uses images for shipyard and airflow. So images for those"},{"line_number":65,"context_line":"     components need to be built."},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"  #. Add distro specific Dockerfile which will have steps to include necessary"},{"line_number":68,"context_line":"     packages and run environment configuration. Use existing Dockerfile as sample"}],"source_content_type":"text/x-rst","patch_set":10,"id":"5fc1f717_4a431b6d","line":65,"range":{"start_line":64,"start_character":5,"end_line":65,"end_character":33},"updated":"2019-03-13 16:04:03.000000000","message":"We should probably include what this implies: two Dockerfiles are required, one for each component.","commit_id":"8b9faa6582d934289e495236c4eaa34a36ace344"},{"author":{"_account_id":28618,"name":"Drew Walters","email":"drewwalters@microsoft.com","username":"drewwalters96"},"change_message_id":"af279e95ce2f3cb6e8318f49fd49a8fd63c71090","unresolved":false,"context_lines":[{"line_number":64,"context_line":"  #. Shippyard uses images for shipyard and airflow. So images for those"},{"line_number":65,"context_line":"     components need to be built."},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"  #. Add distro specific Dockerfile which will have steps to include necessary"},{"line_number":68,"context_line":"     packages and run environment configuration. Use existing Dockerfile as sample"},{"line_number":69,"context_line":"     to identify needed packages and environment information."},{"line_number":70,"context_line":""}],"source_content_type":"text/x-rst","patch_set":10,"id":"5fc1f717_6a3db7db","line":67,"updated":"2019-03-13 16:04:03.000000000","message":"for each component","commit_id":"8b9faa6582d934289e495236c4eaa34a36ace344"},{"author":{"_account_id":28618,"name":"Drew Walters","email":"drewwalters@microsoft.com","username":"drewwalters96"},"change_message_id":"af279e95ce2f3cb6e8318f49fd49a8fd63c71090","unresolved":false,"context_lines":[{"line_number":71,"context_line":"  #. New dockerfile can be named as Dockefile.{DISTRO} where DISTRO is expected to be"},{"line_number":72,"context_line":"     distro identifier which is passed to makefile."},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"  #. Respective dockerfile needs to be placed in {shipyard_root}/images/airflow and"},{"line_number":75,"context_line":"     {shipyard_root}/images/shipyard"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"  #. Add check, gate and post jobs for building, testing and publishing images. These"}],"source_content_type":"text/x-rst","patch_set":10,"id":"5fc1f717_0a0f5337","line":74,"range":{"start_line":74,"start_character":16,"end_line":74,"end_character":32},"updated":"2019-03-13 16:04:03.000000000","message":"dockerfiles should","commit_id":"8b9faa6582d934289e495236c4eaa34a36ace344"},{"author":{"_account_id":28618,"name":"Drew Walters","email":"drewwalters@microsoft.com","username":"drewwalters96"},"change_message_id":"af279e95ce2f3cb6e8318f49fd49a8fd63c71090","unresolved":false,"context_lines":[{"line_number":74,"context_line":"  #. Respective dockerfile needs to be placed in {shipyard_root}/images/airflow and"},{"line_number":75,"context_line":"     {shipyard_root}/images/shipyard"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"  #. Add check, gate and post jobs for building, testing and publishing images. These"},{"line_number":78,"context_line":"     entries need to be added in {shipyard_root}/.zuul.yaml file."},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"  #. Add any relevant information in this document."},{"line_number":81,"context_line":""}],"source_content_type":"text/x-rst","patch_set":10,"id":"5fc1f717_15145843","line":78,"range":{"start_line":77,"start_character":5,"end_line":78,"end_character":65},"updated":"2019-03-13 16:04:03.000000000","message":"This is the most difficult part of adding support for an additional distro. We should include more detail here about standards etc. However, it should probably be added to the spec.","commit_id":"8b9faa6582d934289e495236c4eaa34a36ace344"},{"author":{"_account_id":28618,"name":"Drew Walters","email":"drewwalters@microsoft.com","username":"drewwalters96"},"change_message_id":"af279e95ce2f3cb6e8318f49fd49a8fd63c71090","unresolved":false,"context_lines":[{"line_number":79,"context_line":""},{"line_number":80,"context_line":"  #. Add any relevant information in this document."},{"line_number":81,"context_line":""},{"line_number":82,"context_line":""},{"line_number":83,"context_line":".. _multi_distro_support: https://airship-specs.readthedocs.io/en/latest/specs/approved/multi-linux-distros.html"}],"source_content_type":"text/x-rst","patch_set":10,"id":"5fc1f717_f5166c49","line":82,"updated":"2019-03-13 16:04:03.000000000","message":"extra spacing","commit_id":"8b9faa6582d934289e495236c4eaa34a36ace344"},{"author":{"_account_id":30106,"name":"Matt Carter","email":"matt.coach.carter@gmail.com","username":"MattCarter"},"change_message_id":"12e4435bb3970b3a89735a69b53add88479aeaf9","unresolved":false,"context_lines":[{"line_number":21,"context_line":"supports building images for ubuntu and opensuse ( leap 15.0 as base image)."},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"By default, Ubuntu images are built and are published to public registry"},{"line_number":24,"context_line":"server. Recently support for publishing opensuse image is also added."},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"If need to build opensuse images locally, following parameters"},{"line_number":27,"context_line":"can be passed to *make* command in shipyard repository\u0027s root"}],"source_content_type":"text/x-rst","patch_set":19,"id":"dfbec78f_34877012","line":24,"range":{"start_line":24,"start_character":55,"end_line":24,"end_character":68},"updated":"2019-05-08 16:38:08.000000000","message":"I think \"has also been added\" might sound a bit better","commit_id":"c5d144207483b0191ade6bfc939304a96fcaa258"},{"author":{"_account_id":30106,"name":"Matt Carter","email":"matt.coach.carter@gmail.com","username":"MattCarter"},"change_message_id":"12e4435bb3970b3a89735a69b53add88479aeaf9","unresolved":false,"context_lines":[{"line_number":23,"context_line":"By default, Ubuntu images are built and are published to public registry"},{"line_number":24,"context_line":"server. Recently support for publishing opensuse image is also added."},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"If need to build opensuse images locally, following parameters"},{"line_number":27,"context_line":"can be passed to *make* command in shipyard repository\u0027s root"},{"line_number":28,"context_line":"directory with *images* as target::"},{"line_number":29,"context_line":""}],"source_content_type":"text/x-rst","patch_set":19,"id":"dfbec78f_54dd4412","line":26,"range":{"start_line":26,"start_character":0,"end_line":26,"end_character":10},"updated":"2019-05-08 16:38:08.000000000","message":"If you need to","commit_id":"c5d144207483b0191ade6bfc939304a96fcaa258"},{"author":{"_account_id":30106,"name":"Matt Carter","email":"matt.coach.carter@gmail.com","username":"MattCarter"},"change_message_id":"12e4435bb3970b3a89735a69b53add88479aeaf9","unresolved":false,"context_lines":[{"line_number":23,"context_line":"By default, Ubuntu images are built and are published to public registry"},{"line_number":24,"context_line":"server. Recently support for publishing opensuse image is also added."},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"If need to build opensuse images locally, following parameters"},{"line_number":27,"context_line":"can be passed to *make* command in shipyard repository\u0027s root"},{"line_number":28,"context_line":"directory with *images* as target::"},{"line_number":29,"context_line":""}],"source_content_type":"text/x-rst","patch_set":19,"id":"dfbec78f_74e088cd","line":26,"range":{"start_line":26,"start_character":41,"end_line":26,"end_character":62},"updated":"2019-05-08 16:38:08.000000000","message":"the following parameters","commit_id":"c5d144207483b0191ade6bfc939304a96fcaa258"},{"author":{"_account_id":30106,"name":"Matt Carter","email":"matt.coach.carter@gmail.com","username":"MattCarter"},"change_message_id":"12e4435bb3970b3a89735a69b53add88479aeaf9","unresolved":false,"context_lines":[{"line_number":24,"context_line":"server. Recently support for publishing opensuse image is also added."},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"If need to build opensuse images locally, following parameters"},{"line_number":27,"context_line":"can be passed to *make* command in shipyard repository\u0027s root"},{"line_number":28,"context_line":"directory with *images* as target::"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"    DISTRO: opensuse_15"}],"source_content_type":"text/x-rst","patch_set":19,"id":"dfbec78f_d4d054fa","line":27,"range":{"start_line":27,"start_character":14,"end_line":27,"end_character":31},"updated":"2019-05-08 16:38:08.000000000","message":"to the *make* command","commit_id":"c5d144207483b0191ade6bfc939304a96fcaa258"},{"author":{"_account_id":30106,"name":"Matt Carter","email":"matt.coach.carter@gmail.com","username":"MattCarter"},"change_message_id":"12e4435bb3970b3a89735a69b53add88479aeaf9","unresolved":false,"context_lines":[{"line_number":86,"context_line":"  #. Respective dockerfile should be placed in {shipyard_root}/images/airflow and"},{"line_number":87,"context_line":"     {shipyard_root}/images/shipyard"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"  #. Add check, gate and post jobs for building, testing and publishing images. These"},{"line_number":90,"context_line":"     entries need to be added in {shipyard_root}/.zuul.yaml file. Please refer to"},{"line_number":91,"context_line":"     existing zuul file for better existing opensuse support."},{"line_number":92,"context_line":""}],"source_content_type":"text/x-rst","patch_set":19,"id":"dfbec78f_d46cd437","line":89,"range":{"start_line":89,"start_character":9,"end_line":89,"end_character":34},"updated":"2019-05-08 16:38:08.000000000","message":"Personal preference for oxford comma.\n\"check, gate, and post jobs\"","commit_id":"c5d144207483b0191ade6bfc939304a96fcaa258"},{"author":{"_account_id":30106,"name":"Matt Carter","email":"matt.coach.carter@gmail.com","username":"MattCarter"},"change_message_id":"12e4435bb3970b3a89735a69b53add88479aeaf9","unresolved":false,"context_lines":[{"line_number":90,"context_line":"     entries need to be added in {shipyard_root}/.zuul.yaml file. Please refer to"},{"line_number":91,"context_line":"     existing zuul file for better existing opensuse support."},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"  #. Add any relevant information in this document."},{"line_number":94,"context_line":""},{"line_number":95,"context_line":".. _multi_distro_support: https://airship-specs.readthedocs.io/en/latest/specs/approved/airship_multi_linux_distros.html"}],"source_content_type":"text/x-rst","patch_set":19,"id":"dfbec78f_3411b0ad","line":93,"range":{"start_line":93,"start_character":34,"end_line":93,"end_character":50},"updated":"2019-05-08 16:38:08.000000000","message":"to this document","commit_id":"c5d144207483b0191ade6bfc939304a96fcaa258"},{"author":{"_account_id":22477,"name":"Matt McEuen","email":"matt.mceuen@att.com","username":"mattmceuen"},"change_message_id":"7b29141aa00e5ff1d7bd1184fa4f21f22c48381b","unresolved":false,"context_lines":[{"line_number":1,"context_line":".."},{"line_number":2,"context_line":"    Copyright 2019 SUSE LLC"},{"line_number":3,"context_line":""},{"line_number":4,"context_line":"    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-rst","patch_set":21,"id":"dfbec78f_8ccef0b1","line":1,"updated":"2019-05-14 22:58:14.000000000","message":"Thanks for adding this doc!","commit_id":"83567e4aba6abafd768f3c00e77a93b22d92f33f"}],"images/airflow/Dockerfile.opensuse":[{"author":{"_account_id":29928,"name":"Rajeshwari Dharwadkar","email":"rdharwadkar@suse.com","username":"RajDharwadkar"},"change_message_id":"348c4305f3c8533fd2775d36f9933b94f29b2ac2","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2018 AT\u0026T Intellectual Property.  All other rights reserved."},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\");"},{"line_number":4,"context_line":"# you may not use this file except in compliance with the License."},{"line_number":5,"context_line":"# You may obtain a copy of the License at"}],"source_content_type":"application/octet-stream","patch_set":3,"id":"9fdfeff1_2cdd7c6f","line":2,"range":{"start_line":2,"start_character":0,"end_line":2,"end_character":1},"updated":"2019-02-14 03:55:00.000000000","message":"I think year and copyright is not correct ?","commit_id":"53ee19ce6e919bf778d854c2da73b4351482d42c"},{"author":{"_account_id":28208,"name":"Roman Gorshunov","email":"roman.gorshunov@att.com","username":"gorshunovr"},"change_message_id":"7f7930c9bf8a6d89f6de9cb140c6ad399cc0954f","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2018 AT\u0026T Intellectual Property.  All other rights reserved."},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\");"},{"line_number":4,"context_line":"# you may not use this file except in compliance with the License."},{"line_number":5,"context_line":"# You may obtain a copy of the License at"}],"source_content_type":"application/octet-stream","patch_set":3,"id":"9fdfeff1_05ee8621","line":2,"range":{"start_line":2,"start_character":0,"end_line":2,"end_character":1},"in_reply_to":"9fdfeff1_2cdd7c6f","updated":"2019-02-25 11:23:43.000000000","message":"\u003e I think year and copyright is not correct ?\n\nIt is correct. The difference with the original is just a few lines out of 136.","commit_id":"53ee19ce6e919bf778d854c2da73b4351482d42c"}],"images/airflow/Dockerfile.opensuse_15":[{"author":{"_account_id":6593,"name":"Dirk Mueller","email":"dirk@dmllr.de","username":"dmllr"},"change_message_id":"babe6cb3377e6bb2e65f7b221636e8684cbb3308","unresolved":false,"context_lines":[{"line_number":47,"context_line":""},{"line_number":48,"context_line":"RUN set -ex \u0026\u0026 \\"},{"line_number":49,"context_line":"    zypper -q update -y ;\\"},{"line_number":50,"context_line":"    zypper install -y --no-recommends \\"},{"line_number":51,"context_line":"        ca-certificates \\"},{"line_number":52,"context_line":"        curl \\"},{"line_number":53,"context_line":"        git \\"}],"source_content_type":"application/octet-stream","patch_set":17,"id":"dfbec78f_ef47fabb","line":50,"updated":"2019-05-04 15:22:00.000000000","message":"-y is deprecated, better use\n\nzypper --non-interactive install --no-recommends \\","commit_id":"1d4056e7d242d1664dbab268c08155375b743931"},{"author":{"_account_id":6593,"name":"Dirk Mueller","email":"dirk@dmllr.de","username":"dmllr"},"change_message_id":"cc635eb81bdc84ddb4b71aa2c8ac8ea67dfedd66","unresolved":false,"context_lines":[{"line_number":50,"context_line":"    zypper install -y --no-recommends \\"},{"line_number":51,"context_line":"        ca-certificates \\"},{"line_number":52,"context_line":"        curl \\"},{"line_number":53,"context_line":"        git \\"},{"line_number":54,"context_line":"        gcc-c++ \\"},{"line_number":55,"context_line":"        libffi-devel \\"},{"line_number":56,"context_line":"        libopenssl-devel \\"}],"source_content_type":"application/octet-stream","patch_set":17,"id":"dfbec78f_8a5e6ce4","line":53,"updated":"2019-05-04 16:07:54.000000000","message":"git-core should be enough","commit_id":"1d4056e7d242d1664dbab268c08155375b743931"},{"author":{"_account_id":6593,"name":"Dirk Mueller","email":"dirk@dmllr.de","username":"dmllr"},"change_message_id":"cc635eb81bdc84ddb4b71aa2c8ac8ea67dfedd66","unresolved":false,"context_lines":[{"line_number":96,"context_line":"COPY images/airflow/config/*.py ${AIRFLOW_HOME}/config/"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"# Change permissions"},{"line_number":99,"context_line":"RUN chown -R airflow:airflow ${AIRFLOW_HOME}"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"# Setting the version explicitly for PBR"},{"line_number":102,"context_line":"ENV PBR_VERSION 0.1a1"}],"source_content_type":"application/octet-stream","patch_set":17,"id":"dfbec78f_4a707473","line":99,"updated":"2019-05-04 16:07:54.000000000","message":"whats the reason for explicitly listing the group?","commit_id":"1d4056e7d242d1664dbab268c08155375b743931"},{"author":{"_account_id":1091,"name":"Arun Kant","email":"arukant@cisco.com","username":"arunkant-uws"},"change_message_id":"1c78d07ef1473749e8b797b85b715b7030a1bf6f","unresolved":false,"context_lines":[{"line_number":96,"context_line":"COPY images/airflow/config/*.py ${AIRFLOW_HOME}/config/"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"# Change permissions"},{"line_number":99,"context_line":"RUN chown -R airflow:airflow ${AIRFLOW_HOME}"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"# Setting the version explicitly for PBR"},{"line_number":102,"context_line":"ENV PBR_VERSION 0.1a1"}],"source_content_type":"application/octet-stream","patch_set":17,"id":"dfbec78f_09649ce3","line":99,"in_reply_to":"dfbec78f_4a707473","updated":"2019-05-08 01:06:01.000000000","message":"It was because of difference between airflow group creation between ubuntu and opensuse  flavors\nIn suse,\n\n cat /etc/login.defs | grep USERGROUPS\nUSERGROUPS_ENAB no\n\nwhereas in ubuntu, value is yes\n\nSo as airflow group is not created during the install, we are explicitly creating it and then changing ownership for files under airflow home. There were errors seen (during build or runtime, I don\u0027t recall exactly) if we don\u0027t have this ownership.","commit_id":"1d4056e7d242d1664dbab268c08155375b743931"},{"author":{"_account_id":30106,"name":"Matt Carter","email":"matt.coach.carter@gmail.com","username":"MattCarter"},"change_message_id":"12e4435bb3970b3a89735a69b53add88479aeaf9","unresolved":false,"context_lines":[{"line_number":19,"context_line":"LABEL org.opencontainers.image.authors\u003d\u0027airship-discuss@lists.airshipit.org, irc://#airshipit@freenode\u0027"},{"line_number":20,"context_line":"LABEL org.opencontainers.image.url\u003d\u0027https://airshipit.org\u0027"},{"line_number":21,"context_line":"LABEL org.opencontainers.image.documentation\u003d\u0027https://airship-shipyard.readthedocs.org\u0027"},{"line_number":22,"context_line":"LABEL org.opencontainers.image.source\u003d\u0027https://opendev.org/airship/shipyard\u0027"},{"line_number":23,"context_line":"LABEL org.opencontainers.image.vendor\u003d\u0027The Airship Authors\u0027"},{"line_number":24,"context_line":"LABEL org.opencontainers.image.licenses\u003d\u0027Apache-2.0\u0027"},{"line_number":25,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":19,"id":"dfbec78f_14d10cce","line":22,"updated":"2019-05-08 16:38:08.000000000","message":"Good catch","commit_id":"c5d144207483b0191ade6bfc939304a96fcaa258"},{"author":{"_account_id":7102,"name":"Thomas Bechtold","email":"thomas.bechtold@canonical.com","username":"toabctl"},"change_message_id":"f448f90e67932e408db8a9ad20a5505cb6d4fd99","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":21,"id":"dfbec78f_52ad0199","side":"PARENT","line":6,"updated":"2019-05-14 05:10:36.000000000","message":"Could you rename the file to Dockerfile.opensuse_leap_15 please? See the discussion at https://review.opendev.org/#/c/651787/","commit_id":"d479d6b9696bb2ec28d9eba1d80ed7cdeaf4ab73"},{"author":{"_account_id":1091,"name":"Arun Kant","email":"arukant@cisco.com","username":"arunkant-uws"},"change_message_id":"7d2e2e27d190489d88551ae2c0a47b82269411c3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":21,"id":"dfbec78f_acde540e","side":"PARENT","line":6,"in_reply_to":"dfbec78f_52ad0199","updated":"2019-05-14 16:48:17.000000000","message":"Looks like changing to opensuse_leap_15 is not needed here as there is no leap or SLE 15 specific requirements in Dockerfile. \nAnd ARG FROM allows to build SLE images if needed. \n\nAlso as per approved spec around the naming convention, the convention is to use {DISTRO}_{MAJOR_VERSION}\nhttps://review.opendev.org/#/c/643106/","commit_id":"d479d6b9696bb2ec28d9eba1d80ed7cdeaf4ab73"},{"author":{"_account_id":22477,"name":"Matt McEuen","email":"matt.mceuen@att.com","username":"mattmceuen"},"change_message_id":"7b29141aa00e5ff1d7bd1184fa4f21f22c48381b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":21,"id":"dfbec78f_ccef081c","side":"PARENT","line":6,"in_reply_to":"dfbec78f_52ad0199","updated":"2019-05-14 22:58:14.000000000","message":"Since we already have opensuse_15 in our approved spec, I think we\u0027re ok as-is.\n\nhttps://opendev.org/airship/specs/src/branch/master/specs/approved/airship_multi_linux_distros.rst","commit_id":"d479d6b9696bb2ec28d9eba1d80ed7cdeaf4ab73"}],"images/shipyard/Dockerfile.opensuse":[{"author":{"_account_id":29928,"name":"Rajeshwari Dharwadkar","email":"rdharwadkar@suse.com","username":"RajDharwadkar"},"change_message_id":"3d987758806b9e4535962074b726d6cdbea528d7","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2017 AT\u0026T Intellectual Property.  All other rights reserved."},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\");"},{"line_number":4,"context_line":"# you may not use this file except in compliance with the License."},{"line_number":5,"context_line":"# You may obtain a copy of the License at"}],"source_content_type":"application/octet-stream","patch_set":3,"id":"9fdfeff1_0cb99813","line":2,"range":{"start_line":2,"start_character":0,"end_line":2,"end_character":1},"updated":"2019-02-14 03:57:30.000000000","message":"Year and Copyright is wrong. It has to be suse copyright ?","commit_id":"53ee19ce6e919bf778d854c2da73b4351482d42c"},{"author":{"_account_id":28208,"name":"Roman Gorshunov","email":"roman.gorshunov@att.com","username":"gorshunovr"},"change_message_id":"7f7930c9bf8a6d89f6de9cb140c6ad399cc0954f","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2017 AT\u0026T Intellectual Property.  All other rights reserved."},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\");"},{"line_number":4,"context_line":"# you may not use this file except in compliance with the License."},{"line_number":5,"context_line":"# You may obtain a copy of the License at"}],"source_content_type":"application/octet-stream","patch_set":3,"id":"9fdfeff1_25e2aa31","line":2,"range":{"start_line":2,"start_character":0,"end_line":2,"end_character":1},"in_reply_to":"9fdfeff1_0cb99813","updated":"2019-02-25 11:23:43.000000000","message":"\u003e Year and Copyright is wrong. It has to be suse copyright ?\n\nIt is correct. The difference with the original is just a few lines out of 107.","commit_id":"53ee19ce6e919bf778d854c2da73b4351482d42c"}]}
