includes:
  - python-file: openstack_functions.py

pipelines:
  - name: check
    description: Newly uploaded patchsets enter this pipeline to receive an initial +/-1 Verified vote from Jenkins.
    failure-message: Build failed.  For information on how to proceed, see https://wiki.openstack.org/wiki/GerritJenkinsGit#Test_Failures
    manager: IndependentPipelineManager
    precedence: low
    require:
      open: True
      current-patchset: True
    trigger:
      gerrit:
        - event: patchset-created
        - event: change-restored
        - event: comment-added
          comment: (?i)^(Patch Set [0-9]+:)?( [\w\\+-]*)*(\n\n)?\s*recheck(( (?:bug|lp)[\s#:]*(\d+))|( no bug))\s*$
        - event: comment-added
          require-approval:
            - username: jenkins
              older-than: 72h
              verified: 1
        - event: comment-added
          require-approval:
            - workflow: 1
            - username: jenkins
              older-than: 24h
        - event: comment-added
          comment: (?i)^(Patch Set [0-9]+:)?( [\w\\+-]*)*(\n\n)?\s*reverify( (?:bug|lp)[\s#:]*(\d+))\s*$
          require-approval:
            - workflow: 1
            - username: jenkins
        - event: comment-added
          require-approval:
            - verified: [-1, -2]
              username: jenkins
          approval:
            - workflow: 1
    start:
      gerrit:
        verified: 0
    success:
      gerrit:
        verified: 1
    failure:
      gerrit:
        verified: -1

  - name: gate
    description: Changes that have been approved by core developers are enqueued in order in this pipeline, and if they pass tests in Jenkins, will be merged.
    failure-message: Build failed.  For information on how to proceed, see https://wiki.openstack.org/wiki/GerritJenkinsGit#Test_Failures
    manager: DependentPipelineManager
    precedence: normal
    require:
      open: True
      current-patchset: True
      approval:
        - verified: [1, 2]
          username: jenkins
          newer-than: 24h
        - workflow: 1
    trigger:
      gerrit:
        - event: comment-added
          approval:
            - workflow: 1
        - event: comment-added
          approval:
            - verified: 1
          username: jenkins
    start:
      gerrit:
        verified: 0
    success:
      gerrit:
        verified: 2
        submit: true
    failure:
      gerrit:
        verified: -2
    window-floor: 20
    window-increase-factor: 2

  - name: post
    description: This pipeline runs jobs that operate after each change is merged.
    manager: IndependentPipelineManager
    precedence: low
    trigger:
      gerrit:
        - event: ref-updated
          ref: ^(?!(devnull|refs/.*)).*$

  - name: tag
    description: This pipeline runs jobs in response to any tag event.
    manager: IndependentPipelineManager
    precedence: high
    trigger:
      gerrit:
        - event: ref-updated
          ref: ^refs/tags/.*$

  - name: pre-release
    description: This pipeline runs jobs on projects in response to pre-release tags.
    manager: IndependentPipelineManager
    precedence: high
    trigger:
      gerrit:
        - event: ref-updated
          ref: ^refs/tags/([0-9]+\.?)+(alpha|beta|candidate|rc|a|b|c|r|g)[0-9]*$

  - name: release
    description: When a commit is tagged as a release, this pipeline runs jobs that publish archives and documentation.
    manager: IndependentPipelineManager
    precedence: high
    trigger:
      gerrit:
        - event: ref-updated
          ref: ^refs/tags/([0-9]+\.)*[0-9]+$

  - name: silent
    description: This pipeline is used for silently testing new jobs.
    manager: IndependentPipelineManager
    precedence: low
    trigger:
      gerrit:
        - event: patchset-created
        - event: comment-added
          comment: (?i)^(Patch Set [0-9]+:)?( [\w\\+-]*)*(\n\n)?\s*recheck(( (?:bug|lp)[\s#:]*(\d+))|( no bug))\s*$

  - name: experimental
    description: On-demand pipeline for requesting a run against a set of jobs that are not yet gating. Leave review comment of "check experimental" to run jobs in this pipeline.
    manager: IndependentPipelineManager
    precedence: low
    trigger:
      gerrit:
        - event: comment-added
          comment: (?i)^(Patch Set [0-9]+:)?( [\w\\+-]*)*(\n\n)?\s*check experimental\s*$
    success:
      gerrit: {}
    failure:
      gerrit: {}

  - name: periodic
    description: Jobs in this queue are triggered on a timer.
    manager: IndependentPipelineManager
    precedence: low
    trigger:
      timer:
        - time: '0 6 * * *'

  - name: periodic-stable
    description: Periodic checks of the stable branches.
    manager: IndependentPipelineManager
    precedence: low
    trigger:
      timer:
        - time: '1 6 * * *'
    failure:
      smtp:
        from: jenkins@openstack.org
        to: openstack-stable-maint@lists.openstack.org
        subject: 'Stable check of {change.project} failed'

  - name: periodic-qa
    description: Periodic jobs for the QA team.
    manager: IndependentPipelineManager
    precedence: low
    trigger:
      timer:
        - time: '2 6 * * *'
    failure:
      smtp:
        from: jenkins@openstack.org
        to: openstack-qa@lists.openstack.org
        subject: 'Periodic jobs for {change.project} failed'

  - name: check-tripleo
    description: >
      Newly uploaded patchsets enter this pipeline to receive an initial +/-1
      Verified vote from Jenkins. This is used for TripleO patchsets only so
      that if the TripleO cloud suffers a failure, folk looking can tell that
      there isn't a system infra problem. only a TripleO specific problem.
      Once the TripleO test cloud is multi region and has some months of
      proven stability this will be folded back into the normal check pipeline.
    failure-message: >
      Build failed.  For information on how to proceed, see
      https://wiki.openstack.org/wiki/GerritJenkinsGit#Test_Failures
    manager: IndependentPipelineManager
    precedence: low
    require:
      open: True
      current-patchset: True
    trigger:
      gerrit:
        - event: patchset-created
        - event: change-restored
        - event: comment-added
          comment: (?i)^(Patch Set [0-9]+:)?( [\w\\+-]*)*(\n\n)?\s*recheck(( (?:bug|lp)[\s#:]*(\d+))|( no bug))\s*$
    success:
      gerrit: {}
    failure:
      gerrit: {}

  - name: experimental-tripleo
    description: >
      On-demand pipeline for requesting a run against a tripleo experimental
      jobs - slower and running without redundancy - so not yet gating. Leave
      review comment of "check experimental" to run jobs in this pipeline.
    manager: IndependentPipelineManager
    precedence: low
    trigger:
      gerrit:
        - event: comment-added
          comment: (?i)^(Patch Set [0-9]+:)?( [\w\\+-]*)*(\n\n)?\s*check experimental\s*$
    success:
      gerrit: {}
    failure:
      gerrit: {}


project-templates:
  - name: python-jobs
    check:
      - 'gate-{name}-pep8'
      - 'gate-{name}-docs'
      - 'gate-{name}-python26'
      - 'gate-{name}-python27'
    gate:
      - 'gate-{name}-docs'
      - 'gate-{name}-pep8'
      - 'gate-{name}-python26'
      - 'gate-{name}-python27'
    post:
      - '{name}-branch-tarball'
      - '{name}-coverage'

  - name: integrated-gate
    check:
      - 'check-tempest-dsvm-full'
      - 'check-tempest-dsvm-postgres-full'
      - 'check-tempest-dsvm-neutron'
      - 'check-tempest-dsvm-neutron-heat-slow'
      - 'check-grenade-dsvm'
    gate:
      - 'gate-tempest-dsvm-full'
      - 'gate-tempest-dsvm-postgres-full'
      - 'gate-tempest-dsvm-neutron'
      - 'gate-tempest-dsvm-neutron-heat-slow'
      - 'gate-grenade-dsvm'
    experimental:
      - 'check-grenade-dsvm-neutron'

  - name: integrated-gate-neutron
    check:
      - 'check-tempest-dsvm-neutron'
      - 'check-tempest-dsvm-neutron-pg'
      - 'check-tempest-dsvm-neutron-heat-slow'
      - 'check-tempest-dsvm-neutron-full'
      - 'gate-tempest-dsvm-neutron-large-ops'
      - 'check-grenade-dsvm-neutron'
    gate:
      - 'gate-tempest-dsvm-neutron'
      - 'gate-tempest-dsvm-neutron-pg'
      - 'gate-tempest-dsvm-neutron-heat-slow'
      - 'gate-tempest-dsvm-neutron-large-ops'

  - name: integrated-gate-sahara
    check:
      - 'check-tempest-dsvm-full'
      - 'check-tempest-dsvm-neutron'
      - 'check-tempest-dsvm-postgres-full'
      - 'check-tempest-dsvm-neutron-heat-slow'
    gate:
      - 'gate-tempest-dsvm-full'
      - 'gate-tempest-dsvm-neutron'
      - 'gate-tempest-dsvm-postgres-full'

  - name: python3-jobs
    check:
      - 'gate-{name}-python33'
    gate:
      - 'gate-{name}-python33'

  - name: pypy-jobs
    check:
      - 'gate-{name}-pypy'
    gate:
      - 'gate-{name}-pypy'

  - name: stable-compat-jobs
    # trunk clients and libs are used in stable jobs, so run stable jobs
    # on those repos
    # TODO(jogo): run this on libraries
    check:
      - 'check-tempest-dsvm-full-havana'
      - 'check-tempest-dsvm-neutron-havana'
      - 'check-tempest-dsvm-full-icehouse'
      - 'check-tempest-dsvm-neutron-icehouse'

  - name: openstack-server-publish-jobs
    post:
      - '{name}-docs'
    release:
      - '{name}-docs'

  - name: openstack-client-publish-jobs
    release:
      - '{name}-docs'

  - name: check-requirements
    check:
      - 'gate-{name}-requirements'
    gate:
      - 'gate-{name}-requirements'

  - name: periodic-havana
    periodic-stable:
      - 'periodic-{name}-docs-havana'
      - 'periodic-{name}-python26-havana'
      - 'periodic-{name}-python27-havana'

  - name: openstack-doc-gate
    check:
      - gate-{name}-tox-checkniceness
      - gate-{name}-tox-checksyntax
      - gate-{name}-tox-checkdeletions
      - gate-{name}-tox-doc-publish-checkbuild
    gate:
      - gate-{name}-tox-checksyntax
      - gate-{name}-tox-checkdeletions
      - gate-{name}-tox-doc-publish-checkbuild

  - name: openstack-doc-translation
    check:
      - 'gate-{name}-tox-checklang'
    post:
      - '{name}-manuals-upstream-translation-update'
      - '{name}-tox-doc-publishlang'
    periodic:
      - '{name}-manuals-propose-translation-update'

  - name: translation-jobs
    post:
      - '{name}-upstream-translation-update'
    periodic:
      - '{name}-propose-translation-update'

  - name: infra-publish-jobs
    check:
      - 'gate-{name}-docs'
    post:
      - '{name}-infra-docs'

  # Publish pre-releases as wheels and official releases as sdist and
  # wheels, then sync to all of the appropriate mirrors.
  - name: publish-to-pypi
    pre-release:
      - '{name}-tarball':
          - '{name}-pypi-wheel-upload'
    release:
      - '{name}-tarball':
        - '{name}-pypi-both-upload'

  - name: docs-on-rtfd
    post:
      - 'hook-{name}-rtfd'
    pre-release:
      - 'hook-{name}-rtfd'
    release:
      - 'hook-{name}-rtfd'


jobs:
  - name: ^.*$
    parameter-function: set_node_options_default_precise
  # Pecan ceilometer tests need new mongodb available in trusty
  - name: ^gate-pecan-tox-ceilometer-.*$
    parameter-function: set_node_options_default_trusty
  # IPA image builds need docker which requires trusty
  - name: ironic-python-agent-buildimage-coreos
    parameter-function: set_node_options_default_trusty
  - name: gate-ironic-python-agent-buildimage-coreos
    parameter-function: set_node_options_default_trusty
  - name: ^gate-neutron-.*$
    parameter-function: set_node_options_default_trusty
  - name: ^gate-ceilometer-.*$
    parameter-function: set_node_options_default_trusty
  - name: ^gate-cinder-.*$
    parameter-function: set_node_options_default_trusty
  - name: ^gate-glance-.*$
    parameter-function: set_node_options_default_trusty
  - name: ^gate-swift-.*$
    parameter-function: set_node_options_default_trusty
  - name: ^gate-heat-.*$
    parameter-function: set_node_options_default_trusty
  - name: ^gate-keystone.*$
    parameter-function: set_node_options_default_trusty
  - name: ^gate-ironic-.*$
    parameter-function: set_node_options_default_trusty
  - name: ^gate-nova-.*$
    parameter-function: set_node_options_default_trusty
  - name: ^gate-sahara-.*$
    parameter-function: set_node_options_default_trusty
  - name: ^gate-trove-.*$
    parameter-function: set_node_options_default_trusty
  - name: ^gate-python-cinderclient.*$
    parameter-function: set_node_options_default_trusty
  - name: ^gate-python-glanceclient.*$
    parameter-function: set_node_options_default_trusty
  - name: ^gate-python-heatclient.*$
    parameter-function: set_node_options_default_trusty
  - name: ^gate-python-ironicclient.*$
    parameter-function: set_node_options_default_trusty
  - name: ^gate-python-keystoneclient.*$
    parameter-function: set_node_options_default_trusty
  - name: ^gate-python-ceilometerclient.*$
    parameter-function: set_node_options_default_trusty
  - name: ^gate-python-neutronclient.*$
    parameter-function: set_node_options_default_trusty
  - name: ^gate-python-novaclient.*$
    parameter-function: set_node_options_default_trusty
  - name: ^gate-python-swiftclient.*$
    parameter-function: set_node_options_default_trusty
  - name: ^gate-python-saharaclient.*$
    parameter-function: set_node_options_default_trusty
  - name: ^gate-python-troveclient.*$
    parameter-function: set_node_options_default_trusty
  - name: ^gate-oslo.*$
    parameter-function: set_node_options_default_trusty
  # tempest and d-g branchless tests need to only run on master
  # (needs to be early to not impact non-voting stanzas later)
  - name: ^(?!periodic-).*(-icehouse|-havana)$
    branch: ^master.*$
  - name: gate-tempest-dsvm-full
    queue-name: integrated
  - name: check-rally-dsvm-neutron-neutron
    voting: false
  - name: ^(gate|check)-tempest-dsvm-neutron-full$
    voting: false
  - name: ^(gate|check)-tempest-dsvm-neutron-full-icehouse$
    voting: false
  - name: ^(gate|check)-tempest-dsvm-neutron-heat-slow
    branch: ^(?!stable/havana).*$
  - name: check-tempest-dsvm-ironic-nv
    voting: false
  - name: check-tempest-dsvm-ironic-postgres-nv
    voting: false
  - name: check-tempest-dsvm-virtual-ironic-nv
    voting: false
  - name: ^(gate|check)-tempest-dsvm-cells$
    voting: false
  - name: ^(gate|check)-tempest-dsvm-cells-full$
    voting: false
  - name: ^(gate|check)-tempest-dsvm-nova-v3-full$
    branch: ^(?!stable/havana).*$
  - name: ^(gate|check)-grenade-dsvm$
    branch: ^(?!stable/havana).*$
  - name: ^(gate|check)-grenade-dsvm-neutron$
    branch: ^(?!stable/havana).*$
    voting: false
  - name: ^(gate|check)-grenade-dsvm-neutron-icehouse$
    branch: ^(?!stable/havana).*$
    voting: false
  - name: ^(gate|check)-grenade-dsvm-partial-ncpu$
    branch: ^(?!stable/havana).*$
    # only here until stable is votable, then merge
    # back to a single job
  - name: ^(gate|check)-grenade-dsvm-forward$
    branch: ^(stable/).*$
    voting: false
  - name: ^(gate|check)-grenade-dsvm-neutron-forward
    branch: ^(stable/).*$
    voting: false
  - name: ^(gate|check)-tempest-dsvm-large-ops
    branch: ^(?!stable/havana).*$
  - name: ^(gate|check)-tempest-dsvm-neutron-large-ops
    branch: ^(?!stable/havana).*$
  - name: check-tempest-dsvm-full-havana
    voting: false
  - name: check-tempest-dsvm-neutron-havana
    voting: false
  - name: check-tempest-dsvm-postgres-full-havana
    voting: false
  - name: check-devstack-dsvm-cells-havana
    voting: false
  - name: check-tempest-dsvm-cells-havana
    voting: false
  - name: check-tempest-dsvm-cells-full-havana
    voting: false
  - name: check-tempest-dsvm-cells-full
    voting: false
  - name: check-tempest-dsvm-f20
    voting: false
  - name: gate-designate-devstack-dsvm
    branch: ^(?!stable/(?:havana|icehouse)).*$
# For Gerrit ver 2.4.x (using maven)
  - name: ^(gate|check)-gerrit-unittests$
    branch: ^openstack/2\.4.*$
  - name: gerrit-package
    branch: ^openstack/2\.4.*$
# For Gerrit ver 2.8.x and later (using buck)
  - name: ^.*gerrit.*buck$
    branch: ^openstack/(?!2\.4).*$
  - name: gate-nova-pylint
    voting: false
  - name: gate-cinder-pylint
    voting: false
  - name: check-rally-dsvm-cinder
    voting: false
  - name: dev-zuul-coverage
    voting: false
  - name: jenkins-job-builder-compare-xml
    voting: false
    failure-message: XML output has changed.
    success-message: XML output is unchanged.
  - name: config-compare-xml
    voting: false
    failure-message: Jenkins XML output has changed.
    success-message: Jenkins XML output is unchanged.
  - name: gate-jenkins-job-builder-python33
    voting: false
  - name: gate-config-irc-access
    voting: false
    files:
      - 'modules/openstack_project/files/accessbot/channels.yaml'
# Continous publishing from master of the following documentation targets:
  - name: ^.*manuals-upstream-translation-update$
    branch: master
  - name: ^.*-tox-doc-publishlang$
    branch: master
  - name: gate-openstack-manuals-tox-checkniceness
    voting: false
  - name: ^gate-.*-tox-doc-publish-checkbuild$
    success-pattern: http://docs-draft.openstack.org/{build.parameters[LOG_PATH]}/publish-docs/
  - name: ^gate-.*-tox-checklang$
    branch: master
    voting: false
  - name: ^gate-.*-tox-checkniceness$
    voting: false
  - name: ^gate-.*-docs$
    success-pattern: http://docs-draft.openstack.org/{build.parameters[LOG_PATH]}/doc/build/html/
  - name: gate-storyboard-webclient-js-unittests
    parameter-function: set_node_options_default_trusty
    success-pattern: http://docs-draft.openstack.org/{build.parameters[LOG_PATH]}/dist/
  - name: gate-vinz-webclient-js-unittests
    parameter-function: set_node_options_default_trusty
    success-pattern: http://docs-draft.openstack.org/{build.parameters[LOG_PATH]}/dist/
  - name: infra-publications-publish
    branch: ^(?!master).*$
  - name: ^gate-.*-requirements$
    failure-message: Incompatible requirement found; see https://wiki.openstack.org/wiki/Requirements
    branch: ^(?!stable/havana).*$
    files:
      - '^tools/.*-requires$'
      - '^.*requirements.txt$'
  - name: gate-hacking-pypy
    voting: false
  - name: gate-hacking-integration-nova
    voting: false
  - name: gate-sahara-pylint
    voting: false
  - name: gate-kite-python33
    voting: false
  - name: ^(gate|check)-tempest-master
    voting: false
  - name: gate-keystone-python33
    branch: ^(?!stable/(havana|icehouse)).*$
    voting: false
  - name: check-rally-dsvm-keystone
    branch: ^(?!stable/(havana|icehouse)).*$
    voting: false
  - name: check-rally-dsvm-glance
    voting: false
  - name: gate-python-neutronclient-python33
    voting: false
  - name: gate-python-openstackclient-python33
    voting: false
  - name: gate-python-troveclient-pypy
    voting: false
  - name: gate-magnetodb-python26
    voting: false
  - name: gate-magnetodb-requirements
    voting: false
  - name: gate-mistral-python33
    voting: false
  - name: gate-mistral-devstack-dsvm
    voting: false
  - name: gate-mistral-dashboard-python33
    voting: false
  - name: gate-mistral-extra-python33
    voting: false
  - name: python-jenkins-coverage
    voting: false
  - name: gate-python-mistralclient-python33
    voting: false
  - name: gate-python-muranoclient-python33
    voting: false
  - name: gate-murano-requirements
    voting: false
  - name: gate-murano-agent-requirements
    voting: false
  - name: gate-python-muranoclient-requirements
    voting: false
  - name: gate-murano-dashboard-requirements
    voting: false
  - name: gate-oslo.utils-docs
    voting: false
  - name: gate-oslo.utils-python33
    voting: false
  - name: gate-oslo.vmware-docs
    voting: false
  - name: gate-oslo.vmware-requirements
    voting: false
  - name: gate-oslo.vmware-python33
    voting: false
  - name: gate-solum-pypy
    voting: false
  - name: gate-solum-requirements
    voting: false
  - name: gate-solum-python33
    voting: false
  - name: gate-solum-devstack-dsvm
    voting: false
  - name: gate-reviewstats-python33
    voting: false
  - name: gate-refstack-python33
    voting: false
  - name: gate-refstack-client-python33
    voting: false
  - name: ^(gate|check)-sqlalchemy-migrate-devstack-dsvm$
    voting: false
  - name: gate-python-manilaclient-python33
    voting: false
  - name: gate-manila-pylint
    voting: false
  - name: gate-manila-tempest-dsvm-neutron
    voting: false
  - name: gate-manila-tempest-dsvm-neutron-multibackend
    voting: false
  - name: gate-manila-devstack-dsvm-neutron
    branch: master
    voting: false
  - name: gate-blazar-devstack-dsvm
    voting: false
  - name: gate-blazar-pylint
    voting: false
  - name: gate-storyboard-python33
    voting: false
  - name: gate-oslo-incubator-python33
    branch: ^(?!stable/havana).*$
  - name: check-nova-docker-dsvm-f20
    voting: false
  - name: check-neutron-dsvm-functional
    branch: ^(?!stable/havana).*$
  - name: gate-neutron-dsvm-functional
    branch: ^(?!stable/havana).*$
  - name: check-neutron-dsvm-api
    branch: ^(?!stable/(havana|icehouse)).*$
    voting: false
  - name: gate-trove-buildimage-mysql
    voting: false
  - name: gate-trove-functional-dsvm-mysql
    voting: false
  - name: gate-trove-functional-dsvm-mongodb
    voting: false
# puppet-openstack targets
  - name: gate-puppet-vswitch-puppet-lint
    voting: false
  - name: gate-puppet-vswitch-puppet-syntax
    voting: false
  - name: gate-tomograph-python33
    voting: false
  - name: check-rally-dsvm-cli
    voting: false
  - name: gate-stevedore-docs
    voting: false
  - name: gate-cliff-requirements
    voting: false
  - name: gate-heat-templates-dsvm
    voting: false
  - name: gate-swift-tox-func
    branch: ^(?!stable/(havana|icehouse)).*$
    voting: false
  - name: gate-tuskar-ui-selenium
    voting: false
  # Swift log publishing details
  - name: ^experimental-swift-logs.*$
    swift:
      - name: logs
  - name: gate-tuskar-ui-jshint
    voting: false
  - name: ^(gate|check)-pecan-tox-ceilometer-stable
    voting: false
  - name: ^(gate|check)-pecan-tox-designate-stable
    voting: false
  - name: ^(gate|check)-pecan-tox-ironic-stable
    voting: false
  - name: ^(gate|check)-marconi-python33
    branch: ^(?!stable/(havana|icehouse)).*$

# The project list is grouped by type of project, and within each
# group, projects are sorted (mostly) alphabetically.
projects:

# Section: OpenStack server projects

  - name: openstack/barbican
    template:
      - name: translation-jobs
    check:
      - gate-barbican-pep8
      - gate-barbican-python27
      - gate-barbican-python26
      - gate-barbican-devstack-dsvm
    gate:
      - gate-barbican-pep8
      - gate-barbican-python27
      - gate-barbican-python26
      - gate-barbican-devstack-dsvm
    post:
      - barbican-branch-tarball

  - name: openstack/barbican-specs
    check:
      - gate-barbican-specs-docs
    gate:
      - gate-barbican-specs-docs

  - name: openstack/ceilometer
    template:
      - name: python-jobs
      - name: openstack-server-publish-jobs
      - name: periodic-havana
      - name: check-requirements
      - name: integrated-gate
      - name: translation-jobs
    check:
      - check-devstack-dsvm-cells
      - check-swift-dsvm-functional
    gate:
      - gate-devstack-dsvm-cells
      - gate-swift-dsvm-functional
    experimental:
      - gate-grenade-dsvm-forward
    pre-release:
      - ceilometer-tarball
    release:
      - ceilometer-tarball
      - ceilometer-merge-release-tags

  - name: openstack/ceilometer-specs
    check:
      - gate-ceilometer-specs-python27
      - gate-ceilometer-specs-docs
    gate:
      - gate-ceilometer-specs-python27
      - gate-ceilometer-specs-docs

  - name: openstack/cinder
    template:
      - name: python-jobs
      - name: openstack-server-publish-jobs
      - name: periodic-havana
      - name: check-requirements
      - name: integrated-gate
      - name: translation-jobs
    check:
      - gate-cinder-pylint
      - check-devstack-dsvm-cells
      - check-rally-dsvm-cinder
    gate:
      - gate-devstack-dsvm-cells
    experimental:
      - gate-grenade-dsvm-forward
    experimental-tripleo:
      - check-tripleo-overcloud-precise
    pre-release:
      - cinder-tarball
    release:
      - cinder-tarball
      - cinder-merge-release-tags

  - name: openstack/cinder-specs
    check:
      - noop
    gate:
      - noop

  - name: openstack/cliff
    template:
      - name: python-jobs
      - name: python3-jobs
      - name: pypy-jobs
      - name: check-requirements
      - name: integrated-gate
      - name: publish-to-pypi
      - name: docs-on-rtfd
    check:
      - gate-cliff-tox-neutronclient-stable
      - gate-cliff-tox-neutronclient-tip
      - gate-cliff-tox-openstackclient-stable
      - gate-cliff-tox-openstackclient-tip
    gate:
      - gate-cliff-tox-neutronclient-stable
      - gate-cliff-tox-neutronclient-tip
      - gate-cliff-tox-openstackclient-stable
      - gate-cliff-tox-openstackclient-tip

  - name: stackforge/driverlog
    check:
      - gate-driverlog-pep8
      - gate-driverlog-python27
    gate:
      - gate-driverlog-pep8
      - gate-driverlog-python27
    post:
      - driverlog-branch-tarball
    pre-release:
      - driverlog-tarball
    release:
      - driverlog-tarball

  - name: openstack/gantt
    template:
      - name: python-jobs
      - name: openstack-server-publish-jobs
      - name: check-requirements
    check:
      - gate-gantt-pylint
    gate:
      - noop

  - name: openstack/designate
    template:
      - name: python-jobs
      - name: check-requirements
      - name: publish-to-pypi
      - name: translation-jobs
    check:
      - gate-designate-devstack-dsvm
    gate:
      - gate-designate-devstack-dsvm

  - name: openstack/designate-specs
    check:
      - gate-designate-specs-python27
      - gate-designate-specs-docs
    gate:
      - gate-designate-specs-python27
      - gate-designate-specs-docs

  - name: openstack/glance
    template:
      - name: python-jobs
      - name: openstack-server-publish-jobs
      - name: periodic-havana
      - name: check-requirements
      - name: integrated-gate
      - name: translation-jobs
    check:
      - check-devstack-dsvm-cells
      - gate-tempest-dsvm-large-ops
      - gate-tempest-dsvm-neutron-large-ops
      - check-rally-dsvm-glance
    gate:
      - gate-devstack-dsvm-cells
      - gate-tempest-dsvm-large-ops
      - gate-tempest-dsvm-neutron-large-ops
    experimental:
      - gate-grenade-dsvm-forward
    experimental-tripleo:
      - check-tripleo-ironic-seed-precise
      - check-tripleo-undercloud-precise
      - check-tripleo-ironic-undercloud-precise
      - check-tripleo-overcloud-precise
    pre-release:
      - glance-tarball
    release:
      - glance-tarball
      - glance-merge-release-tags

  - name: openstack/glance-specs
    check:
      - gate-glance-specs-docs
    gate:
      - gate-glance-specs-docs

  - name: openstack/heat
    template:
      - name: python-jobs
      - name: openstack-server-publish-jobs
      - name: periodic-havana
      - name: check-requirements
      - name: integrated-gate
      - name: translation-jobs
    check:
      - check-devstack-dsvm-cells
    gate:
      - gate-devstack-dsvm-cells
    experimental-tripleo:
      - check-tripleo-ironic-seed-precise
      - check-tripleo-undercloud-precise
      - check-tripleo-ironic-undercloud-precise
      - check-tripleo-overcloud-precise
    pre-release:
      - heat-tarball
    release:
      - heat-tarball
      - heat-merge-release-tags

  - name: openstack/heat-specs
    check:
      - gate-heat-specs-docs
    gate:
      - gate-heat-specs-docs

  - name: openstack/horizon
    template:
      - name: python-jobs
      - name: openstack-server-publish-jobs
      - name: periodic-havana
      - name: check-requirements
      - name: integrated-gate
      - name: translation-jobs
    check:
      - gate-horizon-python27-django14
      - gate-horizon-selenium
      - check-devstack-dsvm-cells
    gate:
      - gate-horizon-python27-django14
      - gate-horizon-selenium
      - check-devstack-dsvm-cells
    experimental:
      - gate-grenade-dsvm-forward
    pre-release:
      - horizon-tarball
    release:
      - horizon-tarball
      - horizon-merge-release-tags

  - name: openstack/ironic
    template:
      - name: python-jobs
      - name: openstack-server-publish-jobs
      - name: check-requirements
      - name: translation-jobs
    check:
      - check-tempest-dsvm-ironic
      - check-tempest-dsvm-ironic-postgres
      - check-tempest-dsvm-virtual-ironic
    check-tripleo:
      - check-tripleo-ironic-undercloud-precise
    experimental-tripleo:
      - check-tripleo-ironic-seed-precise
    gate:
      - gate-tempest-dsvm-ironic
      - gate-tempest-dsvm-ironic-postgres
      - gate-tempest-dsvm-virtual-ironic
    pre-release:
      - ironic-tarball
    release:
      - ironic-tarball
      - ironic-merge-release-tags

  - name: openstack/ironic-specs
    check:
      - gate-ironic-specs-python27
      - gate-ironic-specs-docs
    gate:
      - gate-ironic-specs-python27
      - gate-ironic-specs-docs

  - name: openstack/keystone
    template:
      - name: python-jobs
      - name: openstack-server-publish-jobs
      - name: periodic-havana
      - name: check-requirements
      - name: integrated-gate
      - name: translation-jobs
    check:
      - gate-keystone-python33
      - check-devstack-dsvm-cells
      - gate-tempest-dsvm-large-ops
      - gate-tempest-dsvm-neutron-large-ops
      - check-swift-dsvm-functional
      - check-rally-dsvm-keystone
    gate:
      - gate-devstack-dsvm-cells
      - gate-tempest-dsvm-large-ops
      - gate-tempest-dsvm-neutron-large-ops
      - gate-swift-dsvm-functional
    experimental:
      - gate-grenade-dsvm-forward
    experimental-tripleo:
      - check-tripleo-ironic-seed-precise
      - check-tripleo-undercloud-precise
      - check-tripleo-ironic-undercloud-precise
      - check-tripleo-overcloud-precise
    pre-release:
      - keystone-tarball
    release:
      - keystone-tarball
      - keystone-merge-release-tags
    periodic:
      - periodic-swift-dsvm-functional-havana

  - name: openstack/keystonemiddleware
    template:
      - name: python-jobs
      - name: openstack-client-publish-jobs
      - name: check-requirements
      - name: integrated-gate
      - name: stable-compat-jobs
      - name: publish-to-pypi
    check:
      - gate-keystonemiddleware-python33
    gate:
      - gate-keystonemiddleware-python33

  - name: openstack/marconi
    template:
      - name: python-jobs
      - name: check-requirements
      - name: translation-jobs
    check:
      - check-tempest-dsvm-marconi
      - gate-marconi-python33
      - gate-marconi-pypy
    gate:
      - gate-tempest-dsvm-marconi
      - gate-marconi-pypy
    post:
      - marconi-branch-tarball
    pre-release:
      - marconi-tarball
    release:
      - marconi-tarball
      - marconi-docs

  - name: openstack/marconi-specs
    check:
      - gate-marconi-specs-python27
      - gate-marconi-specs-docs
    gate:
      - gate-marconi-specs-python27
      - gate-marconi-specs-docs

  - name: openstack/neutron
    template:
      - name: python-jobs
      - name: openstack-server-publish-jobs
      - name: periodic-havana
      - name: check-requirements
      - name: integrated-gate-neutron
      - name: translation-jobs
    check:
      - check-neutron-dsvm-functional
      - check-rally-dsvm-neutron-neutron
      - check-tempest-dsvm-neutron-2
      - check-tempest-dsvm-neutron-pg-2
    gate:
      - gate-neutron-dsvm-functional
      - gate-tempest-dsvm-neutron-2
      - gate-tempest-dsvm-neutron-pg-2
    experimental:
      - check-neutron-dsvm-api
      - gate-grenade-dsvm-neutron-forward
    experimental-tripleo:
      - check-tripleo-ironic-seed-precise
      - check-tripleo-undercloud-precise
      - check-tripleo-ironic-undercloud-precise
      - check-tripleo-overcloud-precise
    pre-release:
      - neutron-tarball
    release:
      - neutron-tarball
      - neutron-merge-release-tags

  - name: openstack/neutron-specs
    check:
      - gate-neutron-specs-python27
      - gate-neutron-specs-docs
    gate:
      - gate-neutron-specs-python27
      - gate-neutron-specs-docs

  - name: openstack/nova
    template:
      - name: python-jobs
      - name: openstack-server-publish-jobs
      - name: periodic-havana
      - name: check-requirements
      - name: integrated-gate
      - name: translation-jobs
    check:
      - check-devstack-dsvm-cells
      - gate-tempest-dsvm-large-ops
      - gate-tempest-dsvm-neutron-large-ops
      - gate-nova-pylint
      - check-grenade-dsvm-partial-ncpu
      - check-tempest-dsvm-virtual-ironic-nv
    gate:
      - gate-devstack-dsvm-cells
      - gate-tempest-dsvm-large-ops
      - gate-tempest-dsvm-neutron-large-ops
      - gate-grenade-dsvm-partial-ncpu
    experimental:
      - gate-grenade-dsvm-forward
      - check-tempest-dsvm-cells-full
      - check-tempest-dsvm-neutron-pg
      - check-tempest-dsvm-nova-v3-full
    experimental-tripleo:
      - check-tripleo-ironic-seed-precise
      - check-tripleo-undercloud-precise
      - check-tripleo-ironic-undercloud-precise
      - check-tripleo-overcloud-precise
    pre-release:
      - nova-tarball
    release:
      - nova-tarball
      - nova-merge-release-tags

  - name: openstack/nova-specs
    check:
      - gate-nova-specs-python27
      - gate-nova-specs-docs
    gate:
      - gate-nova-specs-python27
      - gate-nova-specs-docs

  - name: stackforge/nova-docker
    template:
      - name: python-jobs
      - name: check-requirements
    check:
      - check-nova-docker-dsvm-f20

  - name: openstack/pycadf
    template:
      - name: python-jobs
      - name: openstack-server-publish-jobs
      - name: check-requirements
      - name: integrated-gate
      - name: publish-to-pypi

  - name: openstack/sahara
    template:
      - name: python-jobs
      - name: openstack-server-publish-jobs
      - name: check-requirements
      - name: integrated-gate-sahara
      - name: publish-to-pypi
      - name: docs-on-rtfd
      - name: translation-jobs
    check:
      - gate-sahara-pylint
    release:
      - sahara-merge-release-tags

  - name: openstack/sahara-specs
    check:
      - gate-sahara-specs-docs
      - gate-sahara-specs-python27
    gate:
      - gate-sahara-specs-docs
      - gate-sahara-specs-python27

  - name: openstack/stevedore
    template:
      - name: python-jobs
      - name: python3-jobs
      - name: pypy-jobs
      - name: check-requirements
      - name: integrated-gate
      - name: publish-to-pypi
      - name: docs-on-rtfd

  - name: openstack/swift
    template:
      - name: python-jobs
      - name: openstack-server-publish-jobs
      - name: check-requirements
      - name: integrated-gate
    check:
      - gate-swift-tox-func
      - check-swift-dsvm-functional
      - check-devstack-dsvm-cells
      - gate-tempest-dsvm-large-ops
      - gate-tempest-dsvm-neutron-large-ops
    gate:
      - gate-swift-tox-func
      - gate-swift-dsvm-functional
      - gate-devstack-dsvm-cells
      - gate-tempest-dsvm-large-ops
      - gate-tempest-dsvm-neutron-large-ops
    experimental:
      - gate-grenade-dsvm-forward
    experimental-tripleo:
      - check-tripleo-ironic-seed-precise
      - check-tripleo-undercloud-precise
      - check-tripleo-ironic-undercloud-precise
      - check-tripleo-overcloud-precise
    pre-release:
      - swift-tarball
    release:
      - swift-tarball
      - swift-merge-release-tags

  - name: openstack/taskflow
    template:
      - name: python-jobs
      - name: python3-jobs
      - name: openstack-server-publish-jobs
      - name: integrated-gate
      - name: publish-to-pypi
    check:
      - gate-taskflow-tox-py26-sa7-mysql
      - gate-taskflow-tox-py27-sa8-mysql
    gate:
      - gate-taskflow-tox-py26-sa7-mysql
      - gate-taskflow-tox-py27-sa8-mysql

  - name: openstack/trove
    template:
      - name: python-jobs
      - name: openstack-server-publish-jobs
      - name: check-requirements
      - name: integrated-gate
      - name: openstack-doc-gate
      - name: translation-jobs
    post:
      - trove-tox-doc-publishdocs
    pre-release:
      - trove-tarball
    release:
      - trove-tarball
      - trove-merge-release-tags
    experimental:
      - gate-trove-functional-dsvm-mysql
      - gate-trove-functional-dsvm-mongodb

  - name: openstack/tuskar
    template:
      - name: python-jobs
    check-tripleo:
      - check-tripleo-ironic-undercloud-precise
      - check-tripleo-undercloud-precise
      - check-tripleo-overcloud-f20
    experimental-tripleo:
      - check-tripleo-ironic-seed-precise
      - check-tripleo-overcloud-precise
    pre-release:
      - tuskar-tarball
    release:
      - tuskar-tarball:
        - tuskar-pypi-both-upload

# Section: OpenStack client projects

  - name: openstack/python-barbicanclient
    template:
      - name: publish-to-pypi
    check:
      - gate-python-barbicanclient-pep8
      - gate-python-barbicanclient-python26
      - gate-python-barbicanclient-python27
      - gate-python-barbicanclient-python33
      - gate-python-barbicanclient-pypy
    gate:
      - gate-python-barbicanclient-pep8
      - gate-python-barbicanclient-python26
      - gate-python-barbicanclient-python27
      - gate-python-barbicanclient-python33
      - gate-python-barbicanclient-pypy
    post:
      - python-barbicanclient-branch-tarball

  - name: openstack/python-ceilometerclient
    template:
      - name: python-jobs
      - name: openstack-client-publish-jobs
      - name: check-requirements
      - name: integrated-gate
      - name: stable-compat-jobs
      - name: publish-to-pypi
    check:
      - gate-python-ceilometerclient-python33
      - gate-python-ceilometerclient-pypy
      - check-devstack-dsvm-cells
    gate:
      - gate-python-ceilometerclient-python33
      - gate-python-ceilometerclient-pypy
      - gate-devstack-dsvm-cells

  - name: openstack/python-cinderclient
    template:
      - name: python-jobs
      - name: openstack-client-publish-jobs
      - name: check-requirements
      - name: integrated-gate
      - name: stable-compat-jobs
      - name: publish-to-pypi
    check:
      - gate-python-cinderclient-python33
      - gate-python-cinderclient-pypy
      - check-devstack-dsvm-cells
    gate:
      - gate-python-cinderclient-python33
      - gate-python-cinderclient-pypy
      - gate-devstack-dsvm-cells
    experimental:
      - gate-grenade-dsvm-forward
    experimental-tripleo:
      - check-tripleo-ironic-seed-precise
      - check-tripleo-undercloud-precise
      - check-tripleo-ironic-undercloud-precise
      - check-tripleo-overcloud-precise

  - name: openstack/python-designateclient
    template:
      - name: python-jobs
      - name: check-requirements
      - name: publish-to-pypi
    check:
      - gate-designate-devstack-dsvm
    gate:
      - gate-designate-devstack-dsvm

  - name: openstack/python-ganttclient
    template:
      - name: python-jobs
      - name: openstack-client-publish-jobs
      - name: check-requirements
      - name: integrated-gate
      - name: publish-to-pypi
    check:
      - check-devstack-dsvm-cells
      - gate-tempest-dsvm-large-ops
      - gate-tempest-dsvm-neutron-large-ops
    gate:
      - gate-devstack-dsvm-cells
      - gate-tempest-dsvm-large-ops
      - gate-tempest-dsvm-neutron-large-ops
    experimental:
      - gate-grenade-dsvm-forward
    experimental-tripleo:
      - check-tripleo-ironic-seed-precise
      - check-tripleo-undercloud-precise
      - check-tripleo-ironic-undercloud-precise
      - check-tripleo-overcloud-precise

  - name: openstack/python-glanceclient
    template:
      - name: python-jobs
      - name: python3-jobs
      - name: openstack-client-publish-jobs
      - name: check-requirements
      - name: integrated-gate
      - name: stable-compat-jobs
      - name: publish-to-pypi
    check:
      - gate-python-glanceclient-pypy
      - check-devstack-dsvm-cells
      - gate-tempest-dsvm-large-ops
      - gate-tempest-dsvm-neutron-large-ops
    gate:
      - gate-python-glanceclient-pypy
      - gate-devstack-dsvm-cells
      - gate-tempest-dsvm-large-ops
      - gate-tempest-dsvm-neutron-large-ops
    experimental:
      - gate-grenade-dsvm-forward
    experimental-tripleo:
      - check-tripleo-ironic-seed-precise
      - check-tripleo-undercloud-precise
      - check-tripleo-ironic-undercloud-precise
      - check-tripleo-overcloud-precise

#TODO: add docs
  - name: openstack/python-heatclient
    template:
      - name: check-requirements
      - name: integrated-gate
      - name: stable-compat-jobs
      - name: publish-to-pypi
    check:
      - gate-python-heatclient-pep8
      - gate-python-heatclient-python26
      - gate-python-heatclient-python27
      - gate-python-heatclient-python33
      - gate-python-heatclient-pypy
      - check-devstack-dsvm-cells
    gate:
      - gate-python-heatclient-pep8
      - gate-python-heatclient-python26
      - gate-python-heatclient-python27
      - gate-python-heatclient-python33
      - gate-python-heatclient-pypy
      - gate-devstack-dsvm-cells
    post:
      - python-heatclient-branch-tarball
      - python-heatclient-coverage
    experimental-tripleo:
      - check-tripleo-ironic-seed-precise
      - check-tripleo-undercloud-precise
      - check-tripleo-ironic-undercloud-precise
      - check-tripleo-overcloud-precise
    release:
      - python-heatclient-docs

  - name: openstack/python-ironicclient
    template:
      - name: python-jobs
      - name: openstack-client-publish-jobs
      - name: check-requirements
      - name: publish-to-pypi
    check:
      - gate-python-ironicclient-python33
      - gate-python-ironicclient-pypy
      - check-tempest-dsvm-ironic
      - check-tempest-dsvm-virtual-ironic
    check-tripleo:
      - check-tripleo-ironic-undercloud-precise
    experimental-tripleo:
      - check-tripleo-ironic-seed-precise
    gate:
      - gate-python-ironicclient-python33
      - gate-python-ironicclient-pypy
      - gate-tempest-dsvm-ironic
      - gate-tempest-dsvm-virtual-ironic

  - name: openstack/python-keystoneclient
    template:
      - name: python-jobs
      - name: openstack-client-publish-jobs
      - name: check-requirements
      - name: integrated-gate
      - name: stable-compat-jobs
      - name: publish-to-pypi
    check:
      - gate-python-keystoneclient-python33
      - check-devstack-dsvm-cells
      - gate-tempest-dsvm-large-ops
      - gate-tempest-dsvm-neutron-large-ops
    gate:
      - gate-python-keystoneclient-python33
      - gate-devstack-dsvm-cells
      - gate-tempest-dsvm-large-ops
      - gate-tempest-dsvm-neutron-large-ops
    experimental:
      - gate-grenade-dsvm-forward
    experimental-tripleo:
      - check-tripleo-ironic-seed-precise
      - check-tripleo-undercloud-precise
      - check-tripleo-ironic-undercloud-precise
      - check-tripleo-overcloud-precise

  - name: openstack/python-marconiclient
    template:
      - name: check-requirements
      - name: publish-to-pypi
    check:
      - gate-python-marconiclient-pep8
      - gate-python-marconiclient-python26
      - gate-python-marconiclient-python27
      - gate-python-marconiclient-python33
      - gate-python-marconiclient-pypy
    gate:
      - gate-python-marconiclient-pep8
      - gate-python-marconiclient-python26
      - gate-python-marconiclient-python27
      - gate-python-marconiclient-python33
      - gate-python-marconiclient-pypy
    post:
      - python-marconiclient-branch-tarball

  - name: openstack/python-neutronclient
    template:
      - name: python-jobs
      - name: openstack-client-publish-jobs
      - name: check-requirements
      - name: integrated-gate-neutron
      - name: stable-compat-jobs
      - name: publish-to-pypi
    check:
      - gate-python-neutronclient-python33
      - gate-python-neutronclient-pypy
    gate:
      - gate-python-neutronclient-pypy
    experimental:
      - gate-grenade-dsvm-forward
    experimental-tripleo:
      - check-tripleo-ironic-seed-precise
      - check-tripleo-undercloud-precise
      - check-tripleo-ironic-undercloud-precise
      - check-tripleo-overcloud-precise

  - name: openstack/python-novaclient
    template:
      - name: python-jobs
      - name: openstack-client-publish-jobs
      - name: check-requirements
      - name: integrated-gate
      - name: stable-compat-jobs
      - name: publish-to-pypi
    check:
      - gate-python-novaclient-python33
      - gate-python-novaclient-pypy
      - check-devstack-dsvm-cells
      - gate-tempest-dsvm-large-ops
      - gate-tempest-dsvm-neutron-large-ops
    gate:
      - gate-python-novaclient-python33
      - gate-python-novaclient-pypy
      - gate-devstack-dsvm-cells
      - gate-tempest-dsvm-large-ops
      - gate-tempest-dsvm-neutron-large-ops
    experimental:
      - gate-grenade-dsvm-forward
    experimental-tripleo:
      - check-tripleo-ironic-seed-precise
      - check-tripleo-undercloud-precise
      - check-tripleo-ironic-undercloud-precise
      - check-tripleo-overcloud-precise

  - name: openstack/python-openstackclient
    template:
      - name: python-jobs
      - name: openstack-client-publish-jobs
      - name: check-requirements
      - name: integrated-gate
      - name: stable-compat-jobs
      - name: publish-to-pypi
    check:
      - gate-python-openstackclient-python33

  - name: openstack/python-saharaclient
    template:
      - name: python-jobs
      - name: openstack-server-publish-jobs
      - name: check-requirements
      - name: integrated-gate-sahara
      - name: publish-to-pypi
    experimental:
       - gate-python-saharaclient-python33
       - gate-python-saharaclient-pypy

  - name: openstack/python-swiftclient
    template:
      - name: python-jobs
      - name: openstack-client-publish-jobs
      - name: check-requirements
      - name: integrated-gate
      - name: stable-compat-jobs
      - name: publish-to-pypi
    check:
      - gate-python-swiftclient-python33
      - gate-python-swiftclient-pypy
      - check-swift-dsvm-functional
      - gate-tempest-dsvm-large-ops
      - gate-tempest-dsvm-neutron-large-ops
    gate:
      - gate-python-swiftclient-python33
      - gate-python-swiftclient-pypy
      - gate-swift-dsvm-functional
      - gate-tempest-dsvm-large-ops
      - gate-tempest-dsvm-neutron-large-ops
    experimental-tripleo:
      - check-tripleo-ironic-seed-precise
      - check-tripleo-undercloud-precise
      - check-tripleo-ironic-undercloud-precise
      - check-tripleo-overcloud-precise

  - name: openstack/python-troveclient
    template:
      - name: check-requirements
      - name: openstack-client-publish-jobs
      - name: python-jobs
      - name: integrated-gate
      - name: stable-compat-jobs
      - name: publish-to-pypi
    check:
      - gate-python-troveclient-python33
      - gate-python-troveclient-pypy
    gate:
      - gate-python-troveclient-python33
      - gate-python-troveclient-pypy

  - name: openstack/python-tuskarclient
    template:
      - name: python-jobs
      - name: publish-to-pypi
    check:
      - gate-python-tuskarclient-python33
    check-tripleo:
      - check-tripleo-ironic-undercloud-precise
      - check-tripleo-undercloud-precise
      - check-tripleo-overcloud-precise
    experimental-tripleo:
      - check-tripleo-ironic-seed-precise

# Section: Other OpenStack projects

#TODO: add docs
  - name: openstack/diskimage-builder
    template:
      - name: check-requirements
      - name: publish-to-pypi
    check:
      - gate-diskimage-builder-pep8
      - gate-diskimage-builder-python26
      - gate-diskimage-builder-python27
      - check-tempest-dsvm-virtual-ironic
    check-tripleo:
      - check-tripleo-undercloud-precise
      - check-tripleo-ironic-undercloud-precise
      - check-tripleo-overcloud-f20
    gate:
      - gate-diskimage-builder-pep8
      - gate-diskimage-builder-python26
      - gate-diskimage-builder-python27
      - gate-tempest-dsvm-virtual-ironic
    experimental-tripleo:
      - check-tripleo-ironic-seed-precise
      - check-tripleo-overcloud-precise
    post:
      - diskimage-builder-coverage
      - diskimage-builder-branch-tarball

  - name: openstack/dib-utils
    template:
      - name: check-requirements
      - name: publish-to-pypi
    check:
      - noop
    check-tripleo:
      - check-tripleo-undercloud-precise
      - check-tripleo-ironic-undercloud-precise
      - check-tripleo-overcloud-f20
    gate:
      - noop
    experimental-tripleo:
      - check-tripleo-overcloud-precise
      - check-tripleo-ironic-seed-precise
    post:
      - dib-utils-branch-tarball

  - name: openstack/django_openstack_auth
    template:
      - name: python-jobs
      - name: python3-jobs
      - name: openstack-client-publish-jobs
      - name: check-requirements
      - name: integrated-gate
      - name: stable-compat-jobs
      - name: translation-jobs
    pre-release:
      - django_openstack_auth-tarball
    release:
      - django_openstack_auth-tarball:
        - django_openstack_auth-pypi-both-upload

  - name: stackforge/gertty
    check:
      - noop
    gate:
      - noop

  - name: stackforge/gerrit-dash-creator
    check:
      - noop
    gate:
      - noop

  - name: stackforge/gce-api
    template:
      - name: check-requirements
    check:
      - gate-gce-api-pep8
      - gate-gce-api-python26
      - gate-gce-api-python27
    gate:
      - gate-gce-api-pep8
      - gate-gce-api-python26
      - gate-gce-api-python27

  - name: stackforge/ec2-api
    template:
      - name: check-requirements
    check:
      - gate-ec2-api-pep8
      - gate-ec2-api-python27
    gate:
      - gate-ec2-api-pep8
      - gate-ec2-api-python27

  - name: openstack/governance
    check:
      - noop
    gate:
      - noop

#TODO: add docs
  - name: openstack/heat-cfntools
    template:
      - name: check-requirements
      - name: publish-to-pypi
    check:
      - gate-heat-cfntools-pep8
      - gate-heat-cfntools-python26
      - gate-heat-cfntools-python27
    gate:
      - gate-heat-cfntools-pep8
      - gate-heat-cfntools-python26
      - gate-heat-cfntools-python27
    post:
      - heat-cfntools-branch-tarball
      - heat-cfntools-coverage
    release:
      - heat-cfntools-docs

  - name: openstack/heat-templates
    check:
      - gate-heat-templates-dsvm
    gate:
      - noop

  - name: openstack/openstack
    check:
      - noop
    gate:
      - noop

  - name: openstack/openstack-doc-tools
    template:
      - name: publish-to-pypi
    check:
      - gate-openstack-doc-tools-pep8
    gate:
      - gate-openstack-doc-tools-pep8

  - name: openstack/openstack-planet
    check:
      - gate-openstack-planet-unittest
    gate:
      - gate-openstack-planet-unittest


#TODO: add docs
  - name: openstack/os-apply-config
    template:
      - name: check-requirements
      - name: publish-to-pypi
    check:
      - gate-os-apply-config-pep8
      - gate-os-apply-config-python26
      - gate-os-apply-config-python27
    check-tripleo:
      - check-tripleo-undercloud-precise
      - check-tripleo-ironic-undercloud-precise
      - check-tripleo-overcloud-f20
    gate:
      - gate-os-apply-config-pep8
      - gate-os-apply-config-python26
      - gate-os-apply-config-python27
    experimental-tripleo:
      - check-tripleo-ironic-seed-precise
      - check-tripleo-overcloud-precise
    post:
      - os-apply-config-coverage
      - os-apply-config-branch-tarball

  - name: openstack/os-cloud-config
    template:
      - name: check-requirements
      - name: publish-to-pypi
    check:
      - gate-os-cloud-config-pep8
      - gate-os-cloud-config-python26
      - gate-os-cloud-config-python27
    check-tripleo:
      - check-tripleo-undercloud-precise
      - check-tripleo-ironic-undercloud-precise
      - check-tripleo-overcloud-f20
    gate:
      - gate-os-cloud-config-pep8
      - gate-os-cloud-config-python26
      - gate-os-cloud-config-python27
    experimental-tripleo:
      - check-tripleo-ironic-seed-precise
      - check-tripleo-overcloud-precise
    post:
      - os-cloud-config-docs
      - os-cloud-config-coverage
      - os-cloud-config-branch-tarball

#TODO: add docs
  - name: openstack/os-collect-config
    template:
      - name: check-requirements
      - name: publish-to-pypi
    check:
      - gate-os-collect-config-pep8
      - gate-os-collect-config-python26
      - gate-os-collect-config-python27
    check-tripleo:
      - check-tripleo-undercloud-precise
      - check-tripleo-ironic-undercloud-precise
      - check-tripleo-overcloud-f20
    gate:
      - gate-os-collect-config-pep8
      - gate-os-collect-config-python26
      - gate-os-collect-config-python27
    experimental-tripleo:
      - check-tripleo-ironic-seed-precise
      - check-tripleo-overcloud-precise
    post:
      - os-collect-config-coverage
      - os-collect-config-branch-tarball

#TODO: add docs
  - name: openstack/os-refresh-config
    template:
      - name: check-requirements
      - name: publish-to-pypi
    check:
      - gate-os-refresh-config-pep8
      - gate-os-refresh-config-python26
      - gate-os-refresh-config-python27
    check-tripleo:
      - check-tripleo-undercloud-precise
      - check-tripleo-ironic-undercloud-precise
      - check-tripleo-overcloud-f20
    gate:
      - gate-os-refresh-config-pep8
      - gate-os-refresh-config-python26
      - gate-os-refresh-config-python27
    experimental-tripleo:
      - check-tripleo-ironic-seed-precise
      - check-tripleo-overcloud-precise
    post:
      - os-refresh-config-coverage
      - os-refresh-config-branch-tarball

#TODO: add docs
  - name: openstack/oslosphinx
    template:
      - name: check-requirements
      - name: publish-to-pypi
    check:
      - gate-oslosphinx-pep8
    gate:
      - gate-oslosphinx-pep8
    post:
      - oslosphinx-branch-tarball

  - name: openstack/oslotest
    template:
      - name: python-jobs
      - name: python3-jobs
      - name: pypy-jobs
      - name: openstack-server-publish-jobs
      - name: check-requirements
      - name: publish-to-pypi
    check:
      - check-oslotest-dsvm-oslo.config
      - check-oslotest-dsvm-oslo.messaging
    gate:
      - gate-oslotest-dsvm-oslo.config
      - gate-oslotest-dsvm-oslo.messaging

  - name: openstack/oslo-incubator
    template:
      - name: python-jobs
      - name: openstack-server-publish-jobs
      - name: check-requirements
    check:
      - gate-oslo-incubator-python33
    gate:
      - gate-oslo-incubator-python33

  - name: openstack/oslo-specs
    check:
      - gate-oslo-specs-python27
      - gate-oslo-specs-docs
    gate:
      - gate-oslo-specs-python27
      - gate-oslo-specs-docs

  - name: openstack/oslo.config
    template:
      - name: python-jobs
      - name: openstack-server-publish-jobs
      - name: check-requirements
      - name: integrated-gate
      - name: publish-to-pypi
    check:
      - gate-oslo.config-python33
      - check-devstack-dsvm-cells
      - check-oslotest-dsvm-oslo.config
    gate:
      - gate-oslo.config-python33
      - gate-devstack-dsvm-cells
    experimental-tripleo:
      - check-tripleo-ironic-seed-precise
      - check-tripleo-undercloud-precise
      - check-tripleo-ironic-undercloud-precise
      - check-tripleo-overcloud-precise

  - name: openstack/oslo.db
    template:
      - name: python-jobs
      - name: openstack-server-publish-jobs
      - name: check-requirements
      - name: integrated-gate
      - name: publish-to-pypi
      - name: translation-jobs
    check:
      - check-devstack-dsvm-cells
      - gate-tempest-dsvm-large-ops
      - gate-tempest-dsvm-neutron-large-ops
    gate:
      - gate-devstack-dsvm-cells
      - gate-tempest-dsvm-large-ops
      - gate-tempest-dsvm-neutron-large-ops
    experimental-tripleo:
      - check-tripleo-ironic-seed-precise
      - check-tripleo-undercloud-precise
      - check-tripleo-ironic-undercloud-precise
      - check-tripleo-overcloud-precise

  - name: openstack/oslo.i18n
    template:
      - name: python-jobs
      - name: openstack-server-publish-jobs
      - name: check-requirements
      - name: integrated-gate
      - name: publish-to-pypi
      - name: translation-jobs
    check:
      - gate-oslo.i18n-python33
      - check-devstack-dsvm-cells
      - check-oslotest-dsvm-oslo.i18n
    gate:
      - gate-oslo.i18n-python33
      - gate-devstack-dsvm-cells
    experimental-tripleo:
      - check-tripleo-ironic-seed-precise
      - check-tripleo-undercloud-precise
      - check-tripleo-ironic-undercloud-precise
      - check-tripleo-overcloud-precise

  - name: openstack/oslo.messaging
    template:
      - name: python-jobs
      - name: openstack-server-publish-jobs
      - name: check-requirements
      - name: integrated-gate
      - name: publish-to-pypi
      - name: translation-jobs
    check:
      - check-devstack-dsvm-cells
      - gate-tempest-dsvm-large-ops
      - gate-tempest-dsvm-neutron-large-ops
      - check-oslotest-dsvm-oslo.messaging
    gate:
      - gate-devstack-dsvm-cells
      - gate-tempest-dsvm-large-ops
      - gate-tempest-dsvm-neutron-large-ops
    experimental-tripleo:
      - check-tripleo-ironic-seed-precise
      - check-tripleo-undercloud-precise
      - check-tripleo-ironic-undercloud-precise
      - check-tripleo-overcloud-precise

#TODO: add docs
  - name: openstack/oslo.rootwrap
    template:
      - name: check-requirements
      - name: integrated-gate
      - name: publish-to-pypi
    check:
      - gate-oslo.rootwrap-pep8
      - gate-oslo.rootwrap-python26
      - gate-oslo.rootwrap-python27
      - gate-oslo.rootwrap-python33
      - check-devstack-dsvm-cells
      - gate-tempest-dsvm-large-ops
      - gate-tempest-dsvm-neutron-large-ops
    gate:
      - gate-oslo.rootwrap-pep8
      - gate-oslo.rootwrap-python26
      - gate-oslo.rootwrap-python27
      - gate-oslo.rootwrap-python33
      - gate-devstack-dsvm-cells
      - gate-tempest-dsvm-large-ops
      - gate-tempest-dsvm-neutron-large-ops
    post:
      - oslo.rootwrap-branch-tarball
    experimental-tripleo:
      - check-tripleo-ironic-seed-precise
      - check-tripleo-undercloud-precise
      - check-tripleo-ironic-undercloud-precise
      - check-tripleo-overcloud-precise

  - name: openstack/oslo.utils
    template:
      - name: python-jobs
      - name: openstack-server-publish-jobs
      - name: check-requirements
      - name: integrated-gate
      - name: publish-to-pypi
    check:
      - gate-oslo.utils-python33
    gate:
      - gate-oslo.utils-python33

  - name: openstack/oslo.version
    template:
      - name: python-jobs
      - name: openstack-server-publish-jobs
      - name: check-requirements
      - name: integrated-gate
      - name: publish-to-pypi
    check:
      - gate-oslo.version-pypy
      - gate-oslo.version-python33
      - check-devstack-dsvm-cells
    gate:
      - gate-oslo.version-pypy
      - gate-oslo.version-python33
      - gate-devstack-dsvm-cells
    experimental-tripleo:
      - check-tripleo-ironic-seed-precise
      - check-tripleo-undercloud-precise
      - check-tripleo-ironic-undercloud-precise
      - check-tripleo-overcloud-precise

  - name: openstack/oslo.vmware
    template:
      - name: python-jobs
      - name: openstack-server-publish-jobs
      - name: check-requirements
      - name: integrated-gate
      - name: publish-to-pypi
      - name: translation-jobs
    check:
      - gate-oslo.vmware-requirements
      - gate-oslo.vmware-python33

  - name: openstack/requirements
    template:
      - name: integrated-gate
    check:
      - gate-requirements-pep8
      - gate-requirements-python27
      - gate-requirements-pypy
      - check-requirements-integration-dsvm
      - check-devstack-dsvm-cells
      - gate-tempest-dsvm-large-ops
      - gate-tempest-dsvm-neutron-large-ops
      - check-swift-dsvm-functional
    gate:
      - gate-requirements-pep8
      - gate-requirements-python27
      - gate-requirements-pypy
      - gate-requirements-integration-dsvm
      - gate-devstack-dsvm-cells
      - gate-tempest-dsvm-large-ops
      - gate-tempest-dsvm-neutron-large-ops
      - gate-swift-dsvm-functional
    post:
      - propose-requirements-updates
    experimental-tripleo:
      - check-tripleo-ironic-seed-precise
      - check-tripleo-undercloud-precise
      - check-tripleo-ironic-undercloud-precise
      - check-tripleo-overcloud-precise

# TODO: add docs
  - name: openstack/sahara-dashboard
    template:
      - name: check-requirements
      - name: publish-to-pypi
    check:
      - gate-sahara-dashboard-pep8
      - gate-sahara-dashboard-python26
      - gate-sahara-dashboard-python27
    gate:
      - gate-sahara-dashboard-pep8
      - gate-sahara-dashboard-python26
      - gate-sahara-dashboard-python27
    post:
      - sahara-dashboard-branch-tarball
      - sahara-dashboard-coverage

# TODO: add docs
  - name: openstack/sahara-extra
    template:
      - name: check-requirements
    check:
      - gate-sahara-extra-pep8
    gate:
      - gate-sahara-extra-pep8
    post:
      - sahara-extra-branch-tarball
    pre-release:
      - sahara-extra-tarball
    release:
      - sahara-extra-tarball

# TODO: add docs
  - name: openstack/sahara-image-elements
    template:
      - name: check-requirements
      - name: publish-to-pypi
    check:
      - gate-sahara-image-elements-pep8
    gate:
      - gate-sahara-image-elements-pep8
    post:
      - sahara-image-elements-branch-tarball

#TODO: add docs
  - name: openstack/swift-bench
    template:
      - name: publish-to-pypi
    check:
      - gate-swift-bench-pep8
      - gate-swift-bench-python26
      - gate-swift-bench-python27
    gate:
      - gate-swift-bench-pep8
      - gate-swift-bench-python26
      - gate-swift-bench-python27
    post:
      - swift-bench-branch-tarball

#TODO: add docs
  - name: openstack/ironic-python-agent
    check:
      - gate-ironic-python-agent-pep8
      - gate-ironic-python-agent-python26
      - gate-ironic-python-agent-python27
      - gate-ironic-python-agent-buildimage-coreos
    gate:
      - gate-ironic-python-agent-pep8
      - gate-ironic-python-agent-python26
      - gate-ironic-python-agent-python27
      - gate-ironic-python-agent-buildimage-coreos
    post:
      - ironic-python-agent-buildimage-coreos

  # This is not strictly necessary; there is currently a transitive
  # relationship between g-t-dsvm,
  # g-t-dsvm-{postgres,cinder,neutron} and g-t-dsvm-full
  # that will ensure that these projects end up in the same shared
  # change queue, however, this fake project makes it explicit that
  # g-t-dsvm and g-t-dsvm-full must share a change
  # queue, which should protect against accidental queue divorce in
  # case jobs get moved around.  Since g-t-dsvm-full is a
  # superset of g-t-dsvm, the whole set of projects is still
  # gated on g-t-dsvm.

  - name: z/tempest
    gate:
      - gate-tempest-dsvm-full
      - gate-tempest-dsvm-postgres-full
      - gate-tempest-dsvm-large-ops
      - gate-tempest-dsvm-neutron-large-ops

  - name: openstack/qa-specs
    check:
      - gate-qa-specs-docs
    gate:
      - gate-qa-specs-docs

  - name: openstack/tempest
    template:
      - name: check-requirements
      - name: integrated-gate
    check:
      - gate-tempest-pep8
      - gate-tempest-docs
      - gate-tempest-python27
      - check-tempest-dsvm-neutron-full
      - gate-tempest-dsvm-large-ops
      - gate-tempest-dsvm-neutron-large-ops
      - check-grenade-dsvm-partial-ncpu
      - check-tempest-dsvm-ironic-nv
      - check-tempest-dsvm-ironic-postgres-nv
      # icehouse compat jobs for tempest master
      - check-tempest-dsvm-full-icehouse
      - check-tempest-dsvm-neutron-icehouse
      - check-tempest-dsvm-neutron-heat-slow-icehouse
      - check-grenade-dsvm-icehouse
      - check-grenade-dsvm-neutron-icehouse
      - check-tempest-dsvm-postgres-full-icehouse
      - check-tempest-dsvm-neutron-full-icehouse
      - check-tempest-dsvm-virtual-ironic-nv
      - gate-tempest-dsvm-large-ops-icehouse
      - gate-tempest-dsvm-neutron-large-ops-icehouse
      - check-grenade-dsvm-partial-ncpu-icehouse
    gate:
      - gate-tempest-pep8
      - gate-tempest-docs
      - gate-tempest-python27
      - gate-tempest-dsvm-large-ops
      - gate-tempest-dsvm-neutron-large-ops
      - gate-grenade-dsvm-partial-ncpu
    experimental:
      - gate-grenade-dsvm-forward
      - check-tempest-dsvm-cells-full
      - check-tempest-dsvm-marconi
      - check-tempest-dsvm-keystonev3-full
      - check-tempest-dsvm-neutron-keystonev3-full
      - check-tempest-dsvm-nova-v3-full
      # havana compat jobs for tempest master (non voting)
      - check-tempest-master-dsvm-full-havana
      - check-tempest-master-dsvm-neutron-havana
    experimental-tripleo:
      - check-tripleo-ironic-seed-precise
      - check-tripleo-undercloud-precise
      - check-tripleo-ironic-undercloud-precise
      - check-tripleo-overcloud-precise
    post:
      - tempest-docs
      - tempest-coverage
      - tempest-branch-tarball
    pre-release:
      - tempest-tarball
    release:
      - tempest-tarball
    periodic-stable:
      - periodic-tempest-dsvm-full-havana
      - periodic-tempest-dsvm-neutron-havana
      - periodic-tempest-dsvm-postgres-full-havana
    periodic-qa:
      - periodic-tempest-dsvm-full-non-isolated-master
      - periodic-tempest-dsvm-neutron-full-non-isolated-master
      - periodic-tempest-dsvm-all-master
      - periodic-tempest-dsvm-stress-master
      - periodic-tempest-dsvm-nova-v3-full-master

  - name: openstack/tripleo-heat-templates
    template:
      - name: publish-to-pypi
    check:
      - noop
    check-tripleo:
      - check-tripleo-undercloud-precise
      - check-tripleo-ironic-undercloud-precise
      - check-tripleo-overcloud-f20
    gate:
      - noop
    experimental-tripleo:
      - check-tripleo-ironic-seed-precise
      - check-tripleo-overcloud-precise
    post:
      - tripleo-heat-templates-branch-tarball
    pre-release:
      - tripleo-heat-templates-tarball
    release:
      - tripleo-heat-templates-tarball

  - name: openstack/tripleo-image-elements
    template:
      - name: publish-to-pypi
    check:
      - noop
    check-tripleo:
      - check-tripleo-undercloud-precise
      - check-tripleo-ironic-undercloud-precise
      - check-tripleo-overcloud-f20
    gate:
      - noop
    experimental-tripleo:
      - check-tripleo-ironic-seed-precise
      - check-tripleo-overcloud-precise
    post:
      - tripleo-image-elements-branch-tarball

  - name: openstack/tripleo-incubator
    check:
      - gate-tripleo-incubator-docs
    check-tripleo:
      - check-tripleo-undercloud-precise
      - check-tripleo-ironic-undercloud-precise
      - check-tripleo-overcloud-f20
    gate:
      - gate-tripleo-incubator-docs
    experimental-tripleo:
      - check-tripleo-ironic-seed-precise
      - check-tripleo-overcloud-precise
      - check-tripleo-vlan-precise
    post:
      - tripleo-incubator-docs
    pre-release:
      - tripleo-incubator-docs
    release:
      - tripleo-incubator-docs

  - name: openstack/tripleo-specs
    check:
      - gate-tripleo-specs-python27
      - gate-tripleo-specs-docs
    gate:
      - gate-tripleo-specs-python27
      - gate-tripleo-specs-docs

  - name: openstack/trove-integration
    check:
      - noop
    gate:
      - noop
    experimental:
      - gate-trove-buildimage-mysql

# TODO: add docs
  - name: openstack/tuskar-ui
    template:
      - name: publish-to-pypi
    check:
      - gate-tuskar-ui-pep8
      - gate-tuskar-ui-python26
      - gate-tuskar-ui-python27
      - gate-tuskar-ui-selenium
      - gate-tuskar-ui-jshint
    gate:
      - gate-tuskar-ui-pep8
      - gate-tuskar-ui-python26
      - gate-tuskar-ui-python27
      - gate-tuskar-ui-selenium
    experimental-tripleo:
      - check-tripleo-ironic-seed-precise
      - check-tripleo-undercloud-precise
      - check-tripleo-ironic-undercloud-precise
      - check-tripleo-overcloud-precise
    post:
      - tuskar-ui-branch-tarball

# Section: OpenStack API projects

  - name: openstack/compute-api
    template:
      - name: openstack-doc-gate
    post:
      - compute-api-tox-doc-publishdocs

  - name: openstack/identity-api
    template:
      - name: openstack-doc-gate
    post:
      - identity-api-tox-doc-publishdocs

  - name: openstack/keystone-specs
    check:
      - gate-keystone-specs-python27
      - gate-keystone-specs-docs
    gate:
      - gate-keystone-specs-python27
      - gate-keystone-specs-docs

  - name: openstack/image-api
    template:
      - name: openstack-doc-gate
    post:
      - image-api-tox-doc-publishdocs

  - name: openstack/netconn-api
    template:
      - name: openstack-doc-gate
    post:
      - netconn-api-tox-doc-publishdocs

  - name: openstack/object-api
    template:
      - name: openstack-doc-gate
    post:
      - object-api-tox-doc-publishdocs

  - name: openstack/swift-specs
    check:
      - gate-swift-specs-docs
    gate:
      - gate-swift-specs-docs

  - name: openstack/volume-api
    template:
      - name: openstack-doc-gate
    post:
      - volume-api-tox-doc-publishdocs

# Section: OpenStack documentation projects

  - name: openstack/api-site
    template:
      - name: openstack-doc-gate
      - name: openstack-doc-translation
    post:
      - api-site-tox-doc-publishdocs
      - openstack-api-site
      - openstack-api-ref

  - name: openstack/docs-specs
    check:
      - gate-docs-specs-docs
      - gate-docs-specs-python27
    gate:
      - gate-docs-specs-docs
      - gate-docs-specs-python27

  - name: openstack/openstack-manuals
    template:
      - name: openstack-doc-gate
      - name: openstack-doc-translation
    post:
      - openstack-manuals-tox-doc-publishdocs

  - name: openstack/operations-guide
    template:
      - name: openstack-doc-gate
      - name: openstack-doc-translation
    post:
      - operations-guide-tox-doc-publishdocs

  - name: openstack/openstack-security-notes
    check:
      - noop
    gate:
      - noop

  - name: openstack/security-doc
    template:
      - name: openstack-doc-gate
      - name: openstack-doc-translation
    post:
      - security-doc-tox-doc-publishdocs

# Section: OpenStack development projects

  - name: openstack-dev/bashate
    template:
      - name: publish-to-pypi
    check:
      - gate-bashate-pep8
      - gate-bashate-python26
      - gate-bashate-python27
    gate:
      - gate-bashate-pep8
      - gate-bashate-python26
      - gate-bashate-python27
    post:
      - bashate-branch-tarball
      - bashate-coverage

  - name: openstack-dev/cookiecutter
    check:
      - noop
    gate:
      - noop

  - name: openstack-dev/devstack-vagrant
    check:
      - noop
    gate:
      - noop

  - name: openstack-dev/devstack
    template:
      - name: integrated-gate
    check:
      - gate-devstack-bashate
      - check-devstack-dsvm-cells
      - check-tempest-dsvm-neutron-full
      - gate-tempest-dsvm-large-ops
      - gate-tempest-dsvm-neutron-large-ops
      - check-grenade-dsvm-forward
      - check-grenade-dsvm-partial-ncpu
      - check-neutron-dsvm-functional
      - check-swift-dsvm-functional
      - check-tempest-dsvm-ironic-nv
      - check-tempest-dsvm-ironic-postgres-nv
      - check-tempest-dsvm-virtual-ironic-nv
    gate:
      - gate-devstack-bashate
      - gate-devstack-dsvm-cells
      - gate-tempest-dsvm-large-ops
      - gate-tempest-dsvm-neutron-large-ops
      - gate-grenade-dsvm-forward
      - gate-grenade-dsvm-partial-ncpu
      - gate-neutron-dsvm-functional
      - gate-swift-dsvm-functional
    experimental:
      - check-tempest-dsvm-cells-full
      - check-tempest-dsvm-marconi
      - gate-grenade-dsvm-forward
      - check-tempest-master-dsvm-full-havana
      - check-tempest-master-dsvm-neutron-havana
      - check-tempest-dsvm-f20

  - name: openstack-dev/grenade
    check:
      - check-grenade-dsvm
      - check-grenade-dsvm-forward
      - check-grenade-dsvm-neutron
      - check-grenade-dsvm-partial-ncpu
    gate:
      - gate-grenade-dsvm
      - gate-grenade-dsvm-forward
      - gate-grenade-dsvm-neutron
      - gate-grenade-dsvm-partial-ncpu
    experimental:
      - gate-grenade-dsvm-neutron-forward

  - name: openstack-dev/hacking
    template:
      - name: python-jobs
      - name: publish-to-pypi
    check:
      - gate-hacking-python33
      - gate-hacking-pypy
      - gate-hacking-integration-nova
    gate:
      - gate-hacking-python33
      - gate-hacking-pypy
      - gate-hacking-integration-nova
    post:
      - hacking-docs
    pre-release:
      - hacking-docs
    release:
      - hacking-docs

  - name: openstack-dev/heat-cfnclient
    check:
      - gate-heat-cfnclient-pep8
      - gate-heat-cfnclient-python26
      - gate-heat-cfnclient-python27
    gate:
      - gate-heat-cfnclient-pep8
      - gate-heat-cfnclient-python26
      - gate-heat-cfnclient-python27

  - name: openstack-dev/openstack-nose
    check:
      - noop
    gate:
      - noop

  - name: openstack-dev/oslo-cookiecutter
    check:
      - noop
    gate:
      - noop

  - name: openstack-dev/pbr
    template:
      - name: python-jobs
      - name: integrated-gate
      - name: publish-to-pypi
    check:
      - gate-pbr-python33
      - gate-pbr-pypy
      - check-requirements-integration-dsvm
      - check-devstack-dsvm-cells
      - gate-tempest-dsvm-large-ops
      - gate-tempest-dsvm-neutron-large-ops
      - check-swift-dsvm-functional
    gate:
      - gate-pbr-python33
      - gate-pbr-pypy
      - gate-requirements-integration-dsvm
      - gate-devstack-dsvm-cells
      - gate-tempest-dsvm-large-ops
      - gate-tempest-dsvm-neutron-large-ops
      - gate-swift-dsvm-functional
    experimental-tripleo:
      - check-tripleo-ironic-seed-precise
      - check-tripleo-undercloud-precise
      - check-tripleo-ironic-undercloud-precise
      - check-tripleo-overcloud-precise
    post:
      - pbr-docs
    pre-release:
      - pbr-docs
    release:
      - pbr-docs

  - name: openstack-dev/sandbox
    check:
      - noop
    gate:
      - noop
    pre-release:
      - sandbox-tag
    release:
      - sandbox-tag

  - name: openstack-dev/specs-cookiecutter
    check:
      - noop
    gate:
      - noop

# Section: OpenStack infrastructure projects

  - name: openstack-infra/activity-board
    check:
      - noop
    gate:
      - noop

  - name: openstack-infra/askbot-theme
    check:
      - noop
    gate:
      - noop

  - name: openstack-infra/bugdaystats
    template:
      - name: publish-to-pypi
    check:
      - gate-bugdaystats-pep8
    gate:
      - gate-bugdaystats-pep8
    post:
      - bugdaystats-branch-tarball
      - bugdaystats-coverage

  - name: openstack-infra/config
    check:
      - config-compare-xml
      - gate-config-layout
      - gate-config-pep8
      - gate-config-puppet-lint
      - gate-config-puppet-syntax
      - gate-config-puppet-apply-precise
      - gate-config-puppet-apply-centos6
      - gate-config-irc-access
      - gate-ci-docs
      - check-projects-yaml-alphabetized
      - check-projects-yaml-upstream
    gate:
      - gate-config-layout
      - gate-config-pep8
      - gate-config-puppet-lint
      - gate-config-puppet-syntax
      - gate-config-puppet-apply-precise
      - gate-config-puppet-apply-centos6
      - gate-config-irc-access
      - check-projects-yaml-alphabetized
      - check-projects-yaml-upstream
    post:
      - ci-docs
    experimental:
      - experimental-swift-logs-config-pep8

  - name: openstack-infra/devstack-gate
    template:
      - name: integrated-gate
    check:
      - gate-devstack-gate-unittests
      - check-devstack-dsvm-cells
      - check-dg-tempest-dsvm-full
      - check-dg-tempest-dsvm-full-reexec
      - check-dg-hooks-dsvm
      - gate-tempest-dsvm-large-ops
      - gate-tempest-dsvm-neutron-large-ops
      - check-grenade-dsvm-partial-ncpu
      - check-swift-dsvm-functional
      - check-tempest-dsvm-full-icehouse
      - check-tempest-dsvm-neutron-icehouse
      - check-tempest-dsvm-postgres-full-icehouse
      - check-devstack-dsvm-cells-icehouse
      - check-tempest-dsvm-full-havana
      - check-tempest-dsvm-neutron-havana
      - check-tempest-dsvm-postgres-full-havana
      - check-devstack-dsvm-cells-havana
      - check-tempest-dsvm-ironic-nv
      - check-tempest-dsvm-ironic-postgres-nv
      - check-tempest-dsvm-virtual-ironic-nv
    gate:
      - gate-devstack-gate-unittests
      - gate-devstack-dsvm-cells
      - gate-tempest-dsvm-large-ops
      - gate-tempest-dsvm-neutron-large-ops
      - gate-grenade-dsvm-partial-ncpu
      - gate-swift-dsvm-functional
    experimental:
      - gate-grenade-dsvm-forward
      - check-tempest-master-dsvm-full-havana
      - check-tempest-master-dsvm-neutron-havana
      - check-tempest-dsvm-f20
    experimental-tripleo:
      - check-tripleo-ironic-seed-precise
      - check-tripleo-undercloud-precise
      - check-tripleo-ironic-undercloud-precise
      - check-tripleo-overcloud-precise

  - name: openstack-infra/elastic-recheck
    check:
      - gate-elastic-recheck-pep8
      - gate-elastic-recheck-docs
      - gate-elastic-recheck-python27
    gate:
      - gate-elastic-recheck-pep8
      - gate-elastic-recheck-docs
      - gate-elastic-recheck-python27
    post:
      - elastic-recheck-docs

  - name: openstack-infra/gear
    template:
      - name: python-jobs
      - name: publish-to-pypi
      - name: docs-on-rtfd

  - name: openstack-infra/gearman-plugin
    check:
      - gate-gearman-plugin-build
    gate:
      - gate-gearman-plugin-build
    post:
      - gearman-plugin-hpi-artifact
    release:
      - gearman-plugin-hpi-artifact:
        - gearman-plugin-jenkinsci-upload

  - name: openstack-infra/gerrit
    check:
      - check-gerrit-unittests
      - check-gerrit-buck
    gate:
      - gate-gerrit-unittests
      - gate-gerrit-buck
    post:
      - gerrit-package
      - gerrit-package-buck
    periodic:
      - periodic-gerrit-plugin-delete-project-gerrit-plugin
      - periodic-gerrit-plugin-javamelody-gerrit-plugin

  - name: openstack-infra/gerrit-powered-agenda
    check:
      - gate-gerrit-powered-agenda-pep8
      - gate-gerrit-powered-agenda-python33
    gate:
      - gate-gerrit-powered-agenda-pep8
      - gate-gerrit-powered-agenda-python33

  - name: openstack-infra/gerritbot
    template:
      - name: publish-to-pypi
    check:
      - gate-gerritbot-pep8
    gate:
      - gate-gerritbot-pep8
    post:
      - gerritbot-branch-tarball

  - name: openstack-infra/gerritlib
    template:
      - name: publish-to-pypi
    check:
      - gate-gerritlib-pep8
    gate:
      - gate-gerritlib-pep8

  - name: openstack-infra/gitdm
    check:
      - gate-gitdm
    gate:
      - gate-gitdm
    periodic:
      - periodic-gitdm

  - name: openstack-infra/git-review
    template:
      - name: publish-to-pypi
    check:
      - gate-git-review-pep8
      - gate-git-review-python26
      - gate-git-review-python27
      - gate-git-review-python33
    gate:
      - gate-git-review-pep8
      - gate-git-review-python26
      - gate-git-review-python27
      - gate-git-review-python33
    post:
      - git-review-branch-tarball

  - name: openstack-infra/groups
    check:
      - gate-groups-unittests
    gate:
      - gate-groups-unittests
    post:
      - groups-release-branch
    release:
      - groups-release-master

  - name: openstack-infra/infra-manual
    template:
      - name: infra-publish-jobs
    gate:
      - noop

  - name: openstack-infra/infra-specs
    check:
      - gate-infra-specs-docs
    gate:
      - gate-infra-specs-docs

  - name: openstack-infra/groups-static-pages
    check:
      - noop
    gate:
      - noop

  - name: openstack-infra/jeepyb
    template:
      - name: publish-to-pypi
    check:
      - gate-jeepyb-pep8
    gate:
      - gate-jeepyb-pep8

  - name: openstack-infra/jenkins-job-builder
    template:
      - name: python-jobs
      - name: python3-jobs
      - name: publish-to-pypi
    check:
      - jenkins-job-builder-compare-xml
      - jenkins-job-builder-coverage
    post:
      - jenkins-job-builder-docs

  - name: openstack-infra/lodgeit
    check:
      - noop
    gate:
      - noop

  - name: openstack-infra/meetbot
    check:
      - noop
    gate:
      - noop

  - name: openstack-infra/nodepool
    template:
      - name: python-jobs
      - name: publish-to-pypi
    post:
      - nodepool-docs

  - name: openstack-infra/nose-html-output
    template:
      - name: publish-to-pypi
    check:
      - noop
    gate:
      - noop
    post:
      - nose-html-output-branch-tarball

  - name: openstack-infra/odsreg
    check:
      - noop
    gate:
      - noop

  - name: openstack-infra/openstackid
    check:
      - gate-openstackid-unittests
    gate:
      - gate-openstackid-unittests
    post:
      - openstackid-release-branch
    release:
      - openstackid-release-master

  - name: openstack-infra/os-loganalyze
    check:
      - gate-os-loganalyze-pep8
      - gate-os-loganalyze-python27
    gate:
      - gate-os-loganalyze-pep8
      - gate-os-loganalyze-python27

  - name: openstack-infra/publications
    check:
      - noop
    gate:
      - noop
    post:
      - infra-publications-publish
      - infra-publications-publish-index
    tag:
      - infra-publications-publish
      - infra-publications-publish-index

  - name: openstack-infra/puppet-apparmor
    check:
      - noop
    gate:
      - noop

  - name: openstack-infra/puppet-dashboard
    check:
      - noop
    gate:
      - noop

  - name: openstack-infra/puppet-storyboard
    check:
      - gate-config-puppet-lint
      - gate-config-puppet-syntax
    gate:
      - gate-config-puppet-lint
      - gate-config-puppet-syntax

  - name: openstack-infra/puppet-vinz
    check:
      - gate-config-puppet-lint
      - gate-config-puppet-syntax
    gate:
      - gate-config-puppet-lint
      - gate-config-puppet-syntax

  - name: openstack-infra/puppet-zuul
    check:
      - gate-config-puppet-lint
      - gate-config-puppet-syntax
    gate:
      - gate-config-puppet-lint
      - gate-config-puppet-syntax

  - name: openstack-infra/puppet-vcsrepo
    check:
      - noop
    gate:
      - noop

  - name: openstack-infra/puppet-yum
    check:
      - gate-config-puppet-lint
      - gate-config-puppet-syntax
    gate:
      - gate-config-puppet-lint
      - gate-config-puppet-syntax

  - name: openstack-infra/pypi-mirror
    template:
      - name: publish-to-pypi
    check:
      - gate-pypi-mirror-pep8
      - check-requirements-integration-dsvm
    gate:
      - gate-pypi-mirror-pep8
      - gate-requirements-integration-dsvm

  - name: stackforge/python-jenkins
    # docs is missing a build_sphinx entry point in setup.py
    check:
      #- gate-python-jenkins-docs
      - gate-python-jenkins-pep8
      - gate-python-jenkins-python26
      - gate-python-jenkins-python27
      - gate-python-jenkins-python33
      - python-jenkins-coverage
    gate:
      #- gate-python-jenkins-docs
      - gate-python-jenkins-pep8
      - gate-python-jenkins-python26
      - gate-python-jenkins-python27
      - gate-python-jenkins-python33
    post:
      - python-jenkins-branch-tarball
      - python-jenkins-coverage
    release:
      - python-jenkins-tarball:
        - python-jenkins-pypi-both-upload

  - name: openstack-infra/releasestatus
    check:
      - noop
    gate:
      - noop

# TODO: add docs
  - name: openstack-infra/release-tools
    check:
      - gate-release-tools-pep8
      - gate-release-tools-python26
      - gate-release-tools-python27
      - gate-release-tools-pypy
    gate:
      - gate-release-tools-pep8
      - gate-release-tools-python26
      - gate-release-tools-python27
      - gate-release-tools-pypy

  - name: openstack-infra/reviewday
    template:
      - name: publish-to-pypi
    check:
      - gate-reviewday-pep8
    gate:
      - gate-reviewday-pep8
    post:
      - reviewday-branch-tarball
      - reviewday-coverage

  - name: openstack-infra/reviewstats
    template:
      - name: publish-to-pypi
    template:
      - name: python-jobs
    check:
      - gate-reviewstats-python33
    gate:
      - gate-reviewstats-python33

  - name: openstack-infra/statusbot
    template:
      - name: publish-to-pypi
    check:
      - gate-statusbot-pep8
    gate:
      - gate-statusbot-pep8
    post:
      - statusbot-branch-tarball

  - name: openstack-infra/storyboard
    template:
      - name: publish-to-pypi
    template:
      - name: python-jobs
    post:
      - storyboard-docs
    pre-release:
      - storyboard-docs
    release:
      - storyboard-docs

  - name: openstack-infra/storyboard-webclient
    check:
      - gate-storyboard-webclient-js-unittests
    gate:
      - gate-storyboard-webclient-js-unittests
    post:
      - storyboard-webclient-js-release-branch
    release:
      - storyboard-webclient-js-release-master

  - name: openstack-infra/subunit2sql
    check:
      - gate-subunit2sql-pep8
      - gate-subunit2sql-python27
    gate:
      - gate-subunit2sql-pep8
      - gate-subunit2sql-python27

  - name: openstack-infra/vinz
    template:
      - name: publish-to-pypi
    template:
      - name: python-jobs
    post:
      - vinz-docs
    pre-release:
      - vinz-docs
    release:
      - vinz-docs

  - name: openstack-infra/vinz-webclient
    check:
      - gate-vinz-webclient-js-unittests
    gate:
      - gate-vinz-webclient-js-unittests
    post:
      - vinz-webclient-js-release-branch
    release:
      - vinz-webclient-js-release-master

  - name: openstack-infra/tripleo-ci
    check:
      - noop
    check-tripleo:
      - check-tripleo-undercloud-precise
      - check-tripleo-ironic-undercloud-precise
      - check-tripleo-overcloud-f20
    gate:
      - noop
    experimental-tripleo:
      - check-tripleo-ironic-seed-precise
      - check-tripleo-overcloud-precise

  - name: openstack-infra/zmq-event-publisher
    check:
      - gate-zmq-event-publisher-build
    gate:
      - gate-zmq-event-publisher-build
    post:
      - zmq-event-publisher-hpi-artifact
    release:
      - zmq-event-publisher-hpi-artifact:
        - zmq-event-publisher-jenkinsci-upload

  - name: openstack-infra/zuul
    template:
      - name: publish-to-pypi
    template:
      - name: python-jobs
    check:
      - dev-zuul-coverage
    post:
      - zuul-docs
    pre-release:
      - zuul-docs
    release:
      - zuul-docs
    periodic:
      - periodic-test

  - name: openstack-infra/zuul-packaging
    check:
      - noop
    gate:
      - noop

# Section: Stackforge projects

  - name: stackforge/anvil
    check:
      - gate-anvil-pep8
      - gate-anvil-python26
      - gate-anvil-python27
      - gate-anvil-pylint
    gate:
      - gate-anvil-pep8
      - gate-anvil-python26
      - gate-anvil-python27
      - gate-anvil-pylint

  - name: stackforge/aviator
    check:
      - gate-aviator-tests
    gate:
      - gate-aviator-tests

  - name: stackforge/billingstack
    template:
      - name: publish-to-pypi
      - name: docs-on-rtfd
    check:
      - gate-billingstack-pep8
      - gate-billingstack-python26
      - gate-billingstack-python27
    gate:
      - gate-billingstack-pep8
      - gate-billingstack-python26
      - gate-billingstack-python27
    post:
      - billingstack-coverage
      - billingstack-branch-tarball

  - name: stackforge/bindep
    template:
      - name: publish-to-pypi
    check:
      - gate-bindep-pep8
      - gate-bindep-python26
      - gate-bindep-python27
    gate:
      - gate-bindep-pep8
      - gate-bindep-python26
      - gate-bindep-python27
    post:
      - bindep-branch-tarball
      - bindep-coverage

  - name: stackforge/bufunfa
    template:
      - name: docs-on-rtfd
    check:
      - gate-bufunfa-pep8
      - gate-bufunfa-python26
      - gate-bufunfa-python27
    gate:
      - gate-bufunfa-pep8
      - gate-bufunfa-python26
      - gate-bufunfa-python27

  - name: stackforge/blazar
    template:
      - name: python-jobs
      - name: check-requirements
    check:
      - gate-blazar-devstack-dsvm
      - gate-blazar-pylint
    pre-release:
      - blazar-tarball
    release:
      - blazar-tarball

  - name: stackforge/blazar-nova
    template:
      - name: check-requirements
    check:
      - gate-blazar-nova-pep8
      - gate-blazar-nova-python26
      - gate-blazar-nova-python27
    gate:
      - gate-blazar-nova-pep8
      - gate-blazar-nova-python26
      - gate-blazar-nova-python27
    post:
      - blazar-nova-branch-tarball
    pre-release:
      - blazar-nova-tarball
    release:
      - blazar-nova-tarball

  - name: stackforge/cachemonkey
    check:
      - gate-cachemonkey-pep8
      - gate-cachemonkey-python26
      - gate-cachemonkey-python27
    gate:
      - gate-cachemonkey-pep8
      - gate-cachemonkey-python26
      - gate-cachemonkey-python27
    post:
      - cachemonkey-coverage

  - name: stackforge/cl-openstack-client
    check:
      - gate-cl-openstack-client-run-tests
    gate:
      - gate-cl-openstack-client-run-tests

  - name: stackforge/cloudcafe
    check:
      - noop
    gate:
      - noop

  - name: stackforge/clouddocs-maven-plugin
    check:
      - gate-clouddocs-maven-plugin-build
    gate:
      - gate-clouddocs-maven-plugin-build
    post:
      - clouddocs-maven-plugin-localrepo-upload
    release:
      - clouddocs-maven-plugin-localrepo-upload:
        - clouddocs-maven-plugin-mavencentral-upload

  - name: stackforge/cloudkitty
    check:
      - gate-cloudkitty-docs
      - gate-cloudkitty-pep8
      - gate-cloudkitty-python26
      - gate-cloudkitty-python27
      - gate-cloudkitty-python33
    gate:
      - gate-cloudkitty-docs
      - gate-cloudkitty-pep8
      - gate-cloudkitty-python26
      - gate-cloudkitty-python27
      - gate-cloudkitty-python33

  - name: stackforge/cloudroast
    check:
      - noop
    gate:
      - noop

  - name: stackforge/compass-adapters
    check:
      - noop
    gate:
      - noop

  - name: stackforge/compass-core
    check:
      - gate-compass-core-pep8
      - gate-compass-core-python26
      - gate-compass-core-python27
    gate:
      - gate-compass-core-pep8
      - gate-compass-core-python26
      - gate-compass-core-python27

  - name: stackforge/compass-monit
    check:
      - noop
    gate:
      - noop

  - name: stackforge/compass-web
    check:
      - noop
    gate:
      - noop

  - name: stackforge/congress
    check:
      - gate-congress-pep8
      - gate-congress-python27
    gate:
      - gate-congress-pep8
      - gate-congress-python27

  - name: stackforge/cookbook-openstack-block-storage
    check:
      - gate-cookbook-openstack-block-storage-chef-lint
      - gate-cookbook-openstack-block-storage-chef-style
      - gate-cookbook-openstack-block-storage-chef-unit
    gate:
      - gate-cookbook-openstack-block-storage-chef-lint
      - gate-cookbook-openstack-block-storage-chef-unit

  - name: stackforge/cookbook-ceph
    check:
      - gate-cookbook-ceph-chef-lint
      - gate-cookbook-ceph-chef-style
      - gate-cookbook-ceph-chef-unit
    gate:
      - gate-cookbook-ceph-chef-lint
      - gate-cookbook-ceph-chef-unit

  - name: stackforge/cookbook-openstack-client
    check:
      - gate-cookbook-openstack-client-chef-lint
      - gate-cookbook-openstack-client-chef-style
      - gate-cookbook-openstack-client-chef-unit
    gate:
      - gate-cookbook-openstack-client-chef-lint
      - gate-cookbook-openstack-client-chef-unit

  - name: stackforge/cookbook-openstack-common
    check:
      - gate-cookbook-openstack-common-chef-lint
      - gate-cookbook-openstack-common-chef-style
      - gate-cookbook-openstack-common-chef-unit
    gate:
      - gate-cookbook-openstack-common-chef-lint
      - gate-cookbook-openstack-common-chef-unit

  - name: stackforge/cookbook-openstack-compute
    check:
      - gate-cookbook-openstack-compute-chef-lint
      - gate-cookbook-openstack-compute-chef-style
      - gate-cookbook-openstack-compute-chef-unit
    gate:
      - gate-cookbook-openstack-compute-chef-lint
      - gate-cookbook-openstack-compute-chef-unit

  - name: stackforge/cookbook-openstack-dashboard
    check:
      - gate-cookbook-openstack-dashboard-chef-lint
      - gate-cookbook-openstack-dashboard-chef-style
      - gate-cookbook-openstack-dashboard-chef-unit
    gate:
      - gate-cookbook-openstack-dashboard-chef-lint
      - gate-cookbook-openstack-dashboard-chef-unit

  - name: stackforge/cookbook-openstack-data-processing
    check:
      - gate-cookbook-openstack-data-processing-chef-lint
      - gate-cookbook-openstack-data-processing-chef-style
      - gate-cookbook-openstack-data-processing-chef-unit
    gate:
      - gate-cookbook-openstack-data-processing-chef-lint
      - gate-cookbook-openstack-data-processing-chef-unit

  - name: stackforge/cookbook-openstack-database
    check:
      - gate-cookbook-openstack-database-chef-lint
      - gate-cookbook-openstack-database-chef-style
      - gate-cookbook-openstack-database-chef-unit
    gate:
      - gate-cookbook-openstack-database-chef-lint
      - gate-cookbook-openstack-database-chef-unit

  - name: stackforge/cookbook-openstack-identity
    check:
      - gate-cookbook-openstack-identity-chef-lint
      - gate-cookbook-openstack-identity-chef-style
      - gate-cookbook-openstack-identity-chef-unit
    gate:
      - gate-cookbook-openstack-identity-chef-lint
      - gate-cookbook-openstack-identity-chef-unit

  - name: stackforge/cookbook-openstack-image
    check:
      - gate-cookbook-openstack-image-chef-lint
      - gate-cookbook-openstack-image-chef-style
      - gate-cookbook-openstack-image-chef-unit
    gate:
      - gate-cookbook-openstack-image-chef-lint
      - gate-cookbook-openstack-image-chef-unit

  - name: stackforge/cookbook-openstack-network
    check:
      - gate-cookbook-openstack-network-chef-lint
      - gate-cookbook-openstack-network-chef-style
      - gate-cookbook-openstack-network-chef-unit
    gate:
      - gate-cookbook-openstack-network-chef-lint
      - gate-cookbook-openstack-network-chef-unit

  - name: stackforge/cookbook-openstack-object-storage
    check:
      - gate-cookbook-openstack-object-storage-chef-lint
      - gate-cookbook-openstack-object-storage-chef-style
      - gate-cookbook-openstack-object-storage-chef-unit
    gate:
      - gate-cookbook-openstack-object-storage-chef-lint
      - gate-cookbook-openstack-object-storage-chef-unit

  - name: stackforge/cookbook-openstack-ops-database
    check:
      - gate-cookbook-openstack-ops-database-chef-lint
      - gate-cookbook-openstack-ops-database-chef-style
      - gate-cookbook-openstack-ops-database-chef-unit
    gate:
      - gate-cookbook-openstack-ops-database-chef-lint
      - gate-cookbook-openstack-ops-database-chef-unit

  - name: stackforge/cookbook-openstack-ops-messaging
    check:
      - gate-cookbook-openstack-ops-messaging-chef-lint
      - gate-cookbook-openstack-ops-messaging-chef-style
      - gate-cookbook-openstack-ops-messaging-chef-unit
    gate:
      - gate-cookbook-openstack-ops-messaging-chef-lint
      - gate-cookbook-openstack-ops-messaging-chef-unit

  - name: stackforge/cookbook-openstack-orchestration
    check:
      - gate-cookbook-openstack-orchestration-chef-lint
      - gate-cookbook-openstack-orchestration-chef-style
      - gate-cookbook-openstack-orchestration-chef-unit
    gate:
      - gate-cookbook-openstack-orchestration-chef-lint
      - gate-cookbook-openstack-orchestration-chef-unit

  - name: stackforge/cookbook-openstack-integration-test
    check:
      - gate-cookbook-openstack-integration-test-chef-lint
      - gate-cookbook-openstack-integration-test-chef-style
      - gate-cookbook-openstack-integration-test-chef-unit
    gate:
      - gate-cookbook-openstack-integration-test-chef-lint
      - gate-cookbook-openstack-integration-test-chef-unit

  - name: stackforge/cookbook-openstack-telemetry
    check:
      - gate-cookbook-openstack-telemetry-chef-lint
      - gate-cookbook-openstack-telemetry-chef-style
      - gate-cookbook-openstack-telemetry-chef-unit
    gate:
      - gate-cookbook-openstack-telemetry-chef-lint
      - gate-cookbook-openstack-telemetry-chef-unit

  - name: stackforge/entropy
    check:
      - gate-entropy-docs
      - gate-entropy-pep8
      - gate-entropy-python26
      - gate-entropy-python27
      - gate-entropy-python33
    gate:
      - gate-entropy-docs
      - gate-entropy-pep8
      - gate-entropy-python26
      - gate-entropy-python27
      - gate-entropy-python33
    post:
      - entropy-coverage

  - name: stackforge/fuel-astute
    check:
      - noop
    gate:
      - noop

  - name: stackforge/fuel-devops
    check:
      - noop
    gate:
      - noop

  - name: stackforge/fuel-docs
    check:
      - noop
    gate:
      - noop

  - name: stackforge/fuel-library
    check:
      - noop
    gate:
      - noop

  - name: stackforge/fuel-main
    check:
      - noop
    gate:
      - noop

  - name: stackforge/fuel-ostf
    check:
      - noop
    gate:
      - noop

  - name: stackforge/fuel-ostf-plugin
    check:
      - noop
    gate:
      - noop

  - name: stackforge/fuel-provision
    check:
      - noop
    gate:
      - noop

  - name: stackforge/fuel-specs
    check:
      - gate-fuel-specs-python27
      - gate-fuel-specs-docs
    gate:
      - gate-fuel-specs-python27
      - gate-fuel-specs-docs

  - name: stackforge/fuel-web
    check:
      - noop
    gate:
      - noop

  - name: stackforge/golang-client
    check:
      - noop
    gate:
      - noop

  - name: stackforge/gnocchi
    check:
      - gate-gnocchi-pep8
      - gate-gnocchi-python26
      - gate-gnocchi-python27
      - gate-gnocchi-tox-py27-postgresql
      - gate-gnocchi-tox-py27-mysql
      - gate-gnocchi-python33
    gate:
      - gate-gnocchi-pep8
      - gate-gnocchi-python26
      - gate-gnocchi-python27
      - gate-gnocchi-python33
      - gate-gnocchi-tox-py27-postgresql
      - gate-gnocchi-tox-py27-mysql

  - name: stackforge/healthnmon
    check:
      - gate-healthnmon-pep8
      - gate-healthnmon-python27
    gate:
      - gate-healthnmon-pep8
      - gate-healthnmon-python27

  - name: stackforge/heat-translator
    template:
      - name: python-jobs
    check:
      - gate-heat-translator-python33
    gate:
      - gate-heat-translator-python33
    post:
      - heat-translator-coverage
      - heat-translator-branch-tarball
    pre-release:
      - heat-translator-tarball
    release:
      - heat-translator-tarball

  - name: stackforge/inception
    check:
      - gate-inception-pep8
    gate:
      - gate-inception-pep8

  - name: stackforge/kwapi
    check:
      - gate-kwapi-pep8
    gate:
      - gate-kwapi-pep8

  - name: stackforge/kickstack
    check:
      - noop
    gate:
      - noop

  - name: stackforge/kite
    template:
      - name: python-jobs
      - name: check-requirements
    check:
      - gate-kite-python33
    pre-release:
      - kite-tarball
    release:
      - kite-tarball

  - name: stackforge/libra
    template:
      - name: docs-on-rtfd
    check:
      - gate-libra-pep8
      - gate-libra-python27
    gate:
      - gate-libra-pep8
      - gate-libra-python27
    post:
      - libra-branch-tarball
    pre-release:
      - libra-tarball
    release:
      - libra-tarball

  - name: stackforge/logaas
    template:
      - name: python-jobs
      - name: check-requirements
      - name: docs-on-rtfd
      - name: publish-to-pypi
    check:
      - logaas-coverage

  - name: stackforge/manila
    check:
      - gate-manila-devstack-dsvm-neutron
      - gate-manila-docs
      - gate-manila-pep8
      - gate-manila-pylint
      - gate-manila-python26
      - gate-manila-python27
      - gate-manila-tempest-dsvm-neutron
      - gate-manila-tempest-dsvm-neutron-multibackend
    gate:
      - gate-manila-docs
      - gate-manila-pep8
      - gate-manila-python26
      - gate-manila-python27
    post:
      - manila-branch-tarball
      - manila-coverage

  - name: stackforge/milk
    check:
      - noop
    gate:
      - noop

  - name: stackforge/mistral
    template:
      - name: publish-to-pypi
    check:
      - gate-mistral-pep8
      - gate-mistral-python26
      - gate-mistral-python27
      - gate-mistral-python33
      - gate-mistral-docs
      - gate-mistral-devstack-dsvm
    gate:
      - gate-mistral-pep8
      - gate-mistral-python26
      - gate-mistral-python27
      - gate-mistral-docs
    post:
      - mistral-branch-tarball

  - name: stackforge/mistral-dashboard
    template:
      - name: python-jobs
      - name: python3-jobs
      - name: publish-to-pypi

  - name: stackforge/mistral-extra
    template:
      - name: publish-to-pypi
    check:
      - gate-mistral-extra-pep8
      - gate-mistral-extra-python26
      - gate-mistral-extra-python27
      - gate-mistral-extra-python33
      - gate-mistral-extra-docs
    gate:
      - gate-mistral-extra-pep8
      - gate-mistral-extra-python26
      - gate-mistral-extra-python27
      - gate-mistral-extra-docs
    post:
      - mistral-extra-branch-tarball

  - name: stackforge/python-congressclient
    check:
      - gate-python-congressclient-pep8
      - gate-python-congressclient-python27
    gate:
      - gate-python-congressclient-pep8
      - gate-python-congressclient-python27

  - name: stackforge/python-mistralclient
    template:
      - name: publish-to-pypi
    check:
      - gate-python-mistralclient-pep8
      - gate-python-mistralclient-python26
      - gate-python-mistralclient-python27
      - gate-python-mistralclient-python33
      - gate-python-mistralclient-docs
    gate:
      - gate-python-mistralclient-pep8
      - gate-python-mistralclient-python26
      - gate-python-mistralclient-python27
      - gate-python-mistralclient-docs
    post:
      - python-mistralclient-branch-tarball

  - name: stackforge/magnetodb
    template:
      - name: publish-to-pypi
      - name: docs-on-rtfd
    check:
      - gate-magnetodb-pep8
      - gate-magnetodb-python26
      - gate-magnetodb-python27
      - gate-magnetodb-docs
      - gate-magnetodb-requirements
      - gate-magnetodb-devstack-dsvm
    gate:
      - gate-magnetodb-pep8
      - gate-magnetodb-python27
      - gate-magnetodb-docs
      - gate-magnetodb-devstack-dsvm
    post:
      - magnetodb-branch-tarball

  - name: stackforge/MRaaS
    check:
      - noop
    gate:
      - noop

  - name: stackforge/murano-agent
    template:
      - name: python-jobs
    check:
      - gate-murano-agent-requirements
    pre-release:
      - murano-agent-tarball
    release:
      - murano-agent-tarball

  - name: stackforge/murano
    template:
      - name: python-jobs
      - name: docs-on-rtfd
    check:
      - gate-murano-requirements
      - gate-murano-devstack-dsvm
    gate:
      - gate-murano-devstack-dsvm
    pre-release:
      - murano-tarball
    release:
      - murano-tarball

  - name: stackforge/murano-dashboard
    check:
      - gate-murano-dashboard-pep8
      - gate-murano-dashboard-python26
      - gate-murano-dashboard-python27
      - gate-murano-dashboard-requirements
      - gate-murano-devstack-dsvm
    gate:
      - gate-murano-dashboard-pep8
      - gate-murano-dashboard-python26
      - gate-murano-dashboard-python27
      - gate-murano-devstack-dsvm
    post:
      - murano-dashboard-branch-tarball
    pre-release:
      - murano-dashboard-tarball
    release:
      - murano-dashboard-tarball

  - name: stackforge/murano-deployment
    check:
      - noop
    gate:
      - noop

  - name: stackforge/murano-docs
    check:
      - noop
    gate:
      - noop

  - name: stackforge/novaimagebuilder
    check:
      - noop
    gate:
      - noop

  - name: stackforge/occi-os
    check:
      - noop
    gate:
      - noop

  - name: stackforge/opencafe
    check:
      - noop
    gate:
      - noop

  - name: stackforge/openstack-chef-repo
    check:
      - gate-openstack-chef-repo
    gate:
      - gate-openstack-chef-repo

  - name: stackforge/openstack-cli-powershell
    check:
      - noop
    gate:
      - noop

  - name: stackforge/openstack-sdk-dotnet
    check:
      - noop
    gate:
      - noop

  - name: stackforge/openstack-sdk-php
    check:
      - noop
    gate:
      - noop

  - name: stackforge/openstackdroid
    check:
      - noop
    gate:
      - noop

  - name: stackforge/openvz-nova-driver
    check:
      - noop
    gate:
      - noop

  - name: stackforge/osprofiler
    template:
      - name: check-requirements
      - name: publish-to-pypi
    check:
      - gate-osprofiler-pep8
      - gate-osprofiler-python26
      - gate-osprofiler-python27
      - gate-osprofiler-python33
    gate:
      - gate-osprofiler-pep8
      - gate-osprofiler-python26
      - gate-osprofiler-python27
      - gate-osprofiler-python33
    post:
      - osprofiler-branch-tarball
    pre-release:
      - osprofiler-tarball
    release:
      - osprofiler-tarball

  - name: stackforge/ospurge
    check:
      - noop
    gate:
      - noop

  - name: stackforge/packstack
    check:
      - gate-packstack-pep8
      - gate-packstack-python26
      - gate-packstack-python27
    gate:
      - gate-packstack-pep8
      - gate-packstack-python26
      - gate-packstack-python27

  - name: stackforge/pecan
    template:
      - name: publish-to-pypi
      - name: docs-on-rtfd
    check:
      - gate-pecan-pep8
      - gate-pecan-python26
      - gate-pecan-python27
      - gate-pecan-python33
      - gate-pecan-pypy
      - gate-pecan-tox-scaffolds-26
      - gate-pecan-tox-scaffolds-27
      - gate-pecan-tox-scaffolds-33
      - gate-pecan-tox-wsme-stable
      - gate-pecan-tox-wsme-tip
      - gate-pecan-tox-ceilometer-stable
      - gate-pecan-tox-ceilometer-tip
      - gate-pecan-tox-ironic-stable
      - gate-pecan-tox-ironic-tip
      - gate-pecan-tox-designate-stable
      - gate-pecan-tox-designate-tip
      - gate-pecan-tox-barbican-tip
      - gate-pecan-tox-storyboard-tip
    gate:
      - gate-pecan-pep8
      - gate-pecan-python26
      - gate-pecan-python27
      - gate-pecan-python33
      - gate-pecan-pypy
      - gate-pecan-tox-scaffolds-26
      - gate-pecan-tox-scaffolds-27
      - gate-pecan-tox-scaffolds-33
      - gate-pecan-tox-wsme-stable
      - gate-pecan-tox-wsme-tip
      - gate-pecan-tox-ceilometer-tip
      - gate-pecan-tox-ironic-tip
      - gate-pecan-tox-designate-tip
      - gate-pecan-tox-barbican-tip
      - gate-pecan-tox-storyboard-tip
    post:
      - pecan-branch-tarball

  - name: stackforge/powervc-driver
    check:
      - noop
    gate:
      - noop

  - name: stackforge/puppet-ceilometer
    check:
      - gate-puppet-ceilometer-puppet-lint
      - gate-puppet-ceilometer-puppet-syntax
      - gate-puppet-ceilometer-puppet-unit-2.7
      - gate-puppet-ceilometer-puppet-unit-3.1
      - gate-puppet-ceilometer-puppet-unit-3.2
      - gate-puppet-ceilometer-puppet-unit-3.3
      - gate-puppet-ceilometer-puppet-unit-3.4
    gate:
      - gate-puppet-ceilometer-puppet-lint
      - gate-puppet-ceilometer-puppet-syntax
      - gate-puppet-ceilometer-puppet-unit-2.7
      - gate-puppet-ceilometer-puppet-unit-3.1
      - gate-puppet-ceilometer-puppet-unit-3.2
      - gate-puppet-ceilometer-puppet-unit-3.3
      - gate-puppet-ceilometer-puppet-unit-3.4

  - name: stackforge/puppet-ceph
    check:
      - gate-puppet-ceph-puppet-lint
      - gate-puppet-ceph-puppet-syntax
      - gate-puppet-ceph-puppet-unit-2.7
      - gate-puppet-ceph-puppet-unit-3.1
    gate:
      - gate-puppet-ceph-puppet-lint
      - gate-puppet-ceph-puppet-syntax
      - gate-puppet-ceph-puppet-unit-2.7
      - gate-puppet-ceph-puppet-unit-3.1

  - name: stackforge/puppet-cinder
    check:
      - gate-puppet-cinder-puppet-lint
      - gate-puppet-cinder-puppet-syntax
      - gate-puppet-cinder-puppet-unit-2.7
      - gate-puppet-cinder-puppet-unit-3.1
      - gate-puppet-cinder-puppet-unit-3.2
      - gate-puppet-cinder-puppet-unit-3.3
      - gate-puppet-cinder-puppet-unit-3.4
    gate:
      - gate-puppet-cinder-puppet-lint
      - gate-puppet-cinder-puppet-syntax
      - gate-puppet-cinder-puppet-unit-2.7
      - gate-puppet-cinder-puppet-unit-3.1
      - gate-puppet-cinder-puppet-unit-3.2
      - gate-puppet-cinder-puppet-unit-3.3
      - gate-puppet-cinder-puppet-unit-3.4

  - name: stackforge/puppet-designate
    check:
      - gate-puppet-designate-puppet-lint
      - gate-puppet-designate-puppet-syntax
      - gate-puppet-designate-puppet-unit-2.7
      - gate-puppet-designate-puppet-unit-3.1
      - gate-puppet-designate-puppet-unit-3.2
      - gate-puppet-designate-puppet-unit-3.3
      - gate-puppet-designate-puppet-unit-3.4
    gate:
      - gate-puppet-designate-puppet-lint
      - gate-puppet-designate-puppet-syntax
      - gate-puppet-designate-puppet-unit-2.7
      - gate-puppet-designate-puppet-unit-3.1
      - gate-puppet-designate-puppet-unit-3.2
      - gate-puppet-designate-puppet-unit-3.3
      - gate-puppet-designate-puppet-unit-3.4

  - name: stackforge/puppet-glance
    check:
      - gate-puppet-glance-puppet-lint
      - gate-puppet-glance-puppet-syntax
      - gate-puppet-glance-puppet-unit-2.7
      - gate-puppet-glance-puppet-unit-3.1
      - gate-puppet-glance-puppet-unit-3.2
      - gate-puppet-glance-puppet-unit-3.3
      - gate-puppet-glance-puppet-unit-3.4
    gate:
      - gate-puppet-glance-puppet-lint
      - gate-puppet-glance-puppet-syntax
      - gate-puppet-glance-puppet-unit-2.7
      - gate-puppet-glance-puppet-unit-3.1
      - gate-puppet-glance-puppet-unit-3.2
      - gate-puppet-glance-puppet-unit-3.3
      - gate-puppet-glance-puppet-unit-3.4

  - name: stackforge/puppet-heat
    check:
      - gate-puppet-heat-puppet-lint
      - gate-puppet-heat-puppet-syntax
      - gate-puppet-heat-puppet-unit-2.7
      - gate-puppet-heat-puppet-unit-3.1
      - gate-puppet-heat-puppet-unit-3.2
      - gate-puppet-heat-puppet-unit-3.3
      - gate-puppet-heat-puppet-unit-3.4
    gate:
      - gate-puppet-heat-puppet-lint
      - gate-puppet-heat-puppet-syntax
      - gate-puppet-heat-puppet-unit-2.7
      - gate-puppet-heat-puppet-unit-3.1
      - gate-puppet-heat-puppet-unit-3.2
      - gate-puppet-heat-puppet-unit-3.3
      - gate-puppet-heat-puppet-unit-3.4

  - name: stackforge/puppet-horizon
    check:
      - gate-puppet-horizon-puppet-lint
      - gate-puppet-horizon-puppet-syntax
      - gate-puppet-horizon-puppet-unit-2.7
      - gate-puppet-horizon-puppet-unit-3.1
      - gate-puppet-horizon-puppet-unit-3.2
      - gate-puppet-horizon-puppet-unit-3.3
      - gate-puppet-horizon-puppet-unit-3.4
    gate:
      - gate-puppet-horizon-puppet-lint
      - gate-puppet-horizon-puppet-syntax
      - gate-puppet-horizon-puppet-unit-2.7
      - gate-puppet-horizon-puppet-unit-3.1
      - gate-puppet-horizon-puppet-unit-3.2
      - gate-puppet-horizon-puppet-unit-3.3
      - gate-puppet-horizon-puppet-unit-3.4

  - name: stackforge/puppet-ironic
    check:
      - gate-puppet-ironic-puppet-lint
      - gate-puppet-ironic-puppet-syntax
      - gate-puppet-ironic-puppet-unit-2.7
      - gate-puppet-ironic-puppet-unit-3.1
      - gate-puppet-ironic-puppet-unit-3.2
      - gate-puppet-ironic-puppet-unit-3.3
      - gate-puppet-ironic-puppet-unit-3.4
    gate:
      - gate-puppet-ironic-puppet-lint
      - gate-puppet-ironic-puppet-syntax
      - gate-puppet-ironic-puppet-unit-2.7
      - gate-puppet-ironic-puppet-unit-3.1
      - gate-puppet-ironic-puppet-unit-3.2
      - gate-puppet-ironic-puppet-unit-3.3
      - gate-puppet-ironic-puppet-unit-3.4

  - name: stackforge/puppet-keystone
    check:
      - gate-puppet-keystone-puppet-lint
      - gate-puppet-keystone-puppet-syntax
      - gate-puppet-keystone-puppet-unit-2.7
      - gate-puppet-keystone-puppet-unit-3.1
      - gate-puppet-keystone-puppet-unit-3.2
      - gate-puppet-keystone-puppet-unit-3.3
      - gate-puppet-keystone-puppet-unit-3.4
    gate:
      - gate-puppet-keystone-puppet-lint
      - gate-puppet-keystone-puppet-syntax
      - gate-puppet-keystone-puppet-unit-2.7
      - gate-puppet-keystone-puppet-unit-3.1
      - gate-puppet-keystone-puppet-unit-3.2
      - gate-puppet-keystone-puppet-unit-3.3
      - gate-puppet-keystone-puppet-unit-3.4

  - name: stackforge/puppet-neutron
    check:
      - gate-puppet-neutron-puppet-lint
      - gate-puppet-neutron-puppet-syntax
      - gate-puppet-neutron-puppet-unit-2.7
      - gate-puppet-neutron-puppet-unit-3.1
      - gate-puppet-neutron-puppet-unit-3.2
      - gate-puppet-neutron-puppet-unit-3.3
      - gate-puppet-neutron-puppet-unit-3.4
    gate:
      - gate-puppet-neutron-puppet-lint
      - gate-puppet-neutron-puppet-syntax
      - gate-puppet-neutron-puppet-unit-2.7
      - gate-puppet-neutron-puppet-unit-3.1
      - gate-puppet-neutron-puppet-unit-3.2
      - gate-puppet-neutron-puppet-unit-3.3
      - gate-puppet-neutron-puppet-unit-3.4

  - name: stackforge/puppet-nova
    check:
      - gate-puppet-nova-puppet-lint
      - gate-puppet-nova-puppet-syntax
      - gate-puppet-nova-puppet-unit-2.7
      - gate-puppet-nova-puppet-unit-3.1
      - gate-puppet-nova-puppet-unit-3.2
      - gate-puppet-nova-puppet-unit-3.3
      - gate-puppet-nova-puppet-unit-3.4
    gate:
      - gate-puppet-nova-puppet-lint
      - gate-puppet-nova-puppet-syntax
      - gate-puppet-nova-puppet-unit-2.7
      - gate-puppet-nova-puppet-unit-3.1
      - gate-puppet-nova-puppet-unit-3.2
      - gate-puppet-nova-puppet-unit-3.3
      - gate-puppet-nova-puppet-unit-3.4

  - name: stackforge/puppet-openstack
    check:
      - gate-puppet-openstack-puppet-lint
      - gate-puppet-openstack-puppet-syntax
      - gate-puppet-openstack-puppet-unit-2.7
      - gate-puppet-openstack-puppet-unit-3.1
      - gate-puppet-openstack-puppet-unit-3.2
      - gate-puppet-openstack-puppet-unit-3.3
      - gate-puppet-openstack-puppet-unit-3.4
    gate:
      - gate-puppet-openstack-puppet-lint
      - gate-puppet-openstack-puppet-syntax
      - gate-puppet-openstack-puppet-unit-2.7
      - gate-puppet-openstack-puppet-unit-3.1
      - gate-puppet-openstack-puppet-unit-3.2
      - gate-puppet-openstack-puppet-unit-3.3
      - gate-puppet-openstack-puppet-unit-3.4

  - name: stackforge/puppet-openstack-specs
    check:
      - noop
    gate:
      - noop

  - name: stackforge/puppet-openstacklib
    check:
      - gate-puppet-openstacklib-puppet-lint
      - gate-puppet-openstacklib-puppet-syntax
      - gate-puppet-openstacklib-puppet-unit-2.7
      - gate-puppet-openstacklib-puppet-unit-3.1
      - gate-puppet-openstacklib-puppet-unit-3.2
      - gate-puppet-openstacklib-puppet-unit-3.3
      - gate-puppet-openstacklib-puppet-unit-3.4
    gate:
      - gate-puppet-openstacklib-puppet-lint
      - gate-puppet-openstacklib-puppet-syntax
      - gate-puppet-openstacklib-puppet-unit-2.7
      - gate-puppet-openstacklib-puppet-unit-3.1
      - gate-puppet-openstacklib-puppet-unit-3.2
      - gate-puppet-openstacklib-puppet-unit-3.3
      - gate-puppet-openstacklib-puppet-unit-3.4

  - name: stackforge/puppet_openstack_builder
    check:
      - noop
    gate:
      - noop

  - name: stackforge/puppet-openstack_dev_env
    check:
      - noop
    gate:
      - noop

  - name: stackforge/puppet-openstack_extras
    check:
      - gate-puppet-openstack_extras-puppet-lint
      - gate-puppet-openstack_extras-puppet-syntax
      - gate-puppet-openstack_extras-puppet-unit-2.7
      - gate-puppet-openstack_extras-puppet-unit-3.1
      - gate-puppet-openstack_extras-puppet-unit-3.2
      - gate-puppet-openstack_extras-puppet-unit-3.3
      - gate-puppet-openstack_extras-puppet-unit-3.4
    gate:
      - gate-puppet-openstack_extras-puppet-lint
      - gate-puppet-openstack_extras-puppet-syntax
      - gate-puppet-openstack_extras-puppet-unit-2.7
      - gate-puppet-openstack_extras-puppet-unit-3.1
      - gate-puppet-openstack_extras-puppet-unit-3.2
      - gate-puppet-openstack_extras-puppet-unit-3.3
      - gate-puppet-openstack_extras-puppet-unit-3.4

  - name: stackforge/puppet-sahara
    check:
      - gate-puppet-sahara-puppet-lint
      - gate-puppet-sahara-puppet-syntax
      - gate-puppet-sahara-puppet-unit-2.7
      - gate-puppet-sahara-puppet-unit-3.1
      - gate-puppet-sahara-puppet-unit-3.2
      - gate-puppet-sahara-puppet-unit-3.3
      - gate-puppet-sahara-puppet-unit-3.4
    gate:
      - gate-puppet-sahara-puppet-lint
      - gate-puppet-sahara-puppet-syntax
      - gate-puppet-sahara-puppet-unit-2.7
      - gate-puppet-sahara-puppet-unit-3.1
      - gate-puppet-sahara-puppet-unit-3.2
      - gate-puppet-sahara-puppet-unit-3.3
      - gate-puppet-sahara-puppet-unit-3.4

  - name: stackforge/sahara-ci-config
    check:
      - gate-sahara-ci-config-pep8
    gate:
      - gate-sahara-ci-config-pep8

  - name: stackforge/sahara-guestagent
    template:
      - name: python-jobs
      - name: check-requirements
      - name: publish-to-pypi

  - name: stackforge/puppet-swift
    check:
      - gate-puppet-swift-puppet-lint
      - gate-puppet-swift-puppet-syntax
      - gate-puppet-swift-puppet-unit-2.7
      - gate-puppet-swift-puppet-unit-3.1
      - gate-puppet-swift-puppet-unit-3.2
      - gate-puppet-swift-puppet-unit-3.3
      - gate-puppet-swift-puppet-unit-3.4
    gate:
      - gate-puppet-swift-puppet-lint
      - gate-puppet-swift-puppet-syntax
      - gate-puppet-swift-puppet-unit-2.7
      - gate-puppet-swift-puppet-unit-3.1
      - gate-puppet-swift-puppet-unit-3.2
      - gate-puppet-swift-puppet-unit-3.3
      - gate-puppet-swift-puppet-unit-3.4

  - name: stackforge/puppet-tempest
    check:
      - gate-puppet-tempest-puppet-lint
      - gate-puppet-tempest-puppet-syntax
      - gate-puppet-tempest-puppet-unit-2.7
      - gate-puppet-tempest-puppet-unit-3.1
      - gate-puppet-tempest-puppet-unit-3.2
      - gate-puppet-tempest-puppet-unit-3.3
      - gate-puppet-tempest-puppet-unit-3.4
    gate:
      - gate-puppet-tempest-puppet-lint
      - gate-puppet-tempest-puppet-syntax
      - gate-puppet-tempest-puppet-unit-2.7
      - gate-puppet-tempest-puppet-unit-3.1
      - gate-puppet-tempest-puppet-unit-3.2
      - gate-puppet-tempest-puppet-unit-3.3
      - gate-puppet-tempest-puppet-unit-3.4

  - name: stackforge/puppet-trove
    check:
      - gate-puppet-trove-puppet-lint
      - gate-puppet-trove-puppet-syntax
      - gate-puppet-trove-puppet-unit-2.7
      - gate-puppet-trove-puppet-unit-3.1
      - gate-puppet-trove-puppet-unit-3.2
      - gate-puppet-trove-puppet-unit-3.3
      - gate-puppet-trove-puppet-unit-3.4
    gate:
      - gate-puppet-trove-puppet-lint
      - gate-puppet-trove-puppet-syntax
      - gate-puppet-trove-puppet-unit-2.7
      - gate-puppet-trove-puppet-unit-3.1
      - gate-puppet-trove-puppet-unit-3.2
      - gate-puppet-trove-puppet-unit-3.3
      - gate-puppet-trove-puppet-unit-3.4

  - name: stackforge/puppet-vswitch
    check:
      - gate-puppet-vswitch-puppet-lint
      - gate-puppet-vswitch-puppet-syntax
      - gate-puppet-vswitch-puppet-unit-2.7
      - gate-puppet-vswitch-puppet-unit-3.1
    gate:
      - gate-puppet-vswitch-puppet-unit-2.7
      - gate-puppet-vswitch-puppet-unit-3.1

  - name: stackforge/pyghmi
    template:
      - name: publish-to-pypi
    check:
      - gate-pyghmi-pep8
      - gate-pyghmi-requirements
    gate:
      - gate-pyghmi-pep8
      - gate-pyghmi-requirements
    post:
      - pyghmi-branch-tarball

  - name: stackforge/python-blazarclient
    template:
      - name: check-requirements
    check:
      - gate-python-blazarclient-pep8
      - gate-python-blazarclient-python26
      - gate-python-blazarclient-python27
    gate:
      - gate-python-blazarclient-pep8
      - gate-python-blazarclient-python26
      - gate-python-blazarclient-python27
    post:
      - python-blazarclient-branch-tarball
    pre-release:
      - python-blazarclient-tarball
    release:
      - python-blazarclient-tarball

  - name: stackforge/python-kiteclient
    template:
      - name: python-jobs
      - name: publish-to-pypi
    check:
      - gate-python-kiteclient-requirements
      - gate-python-kiteclient-python33
    gate:
      - gate-python-kiteclient-requirements
      - gate-python-kiteclient-python33

  - name: stackforge/python-libraclient
    template:
      - name: publish-to-pypi
      - name: docs-on-rtfd
    check:
      - gate-python-libraclient-pep8
      - gate-python-libraclient-python27
    gate:
      - gate-python-libraclient-pep8
      - gate-python-libraclient-python27
    post:
      - python-libraclient-coverage
      - python-libraclient-branch-tarball

  - name: stackforge/python-magnetodbclient
    template:
      - name: check-requirements
      - name: docs-on-rtfd
      - name: python-jobs
    pre-release:
      - python-magnetodbclient-tarball
    release:
      - python-magnetodbclient-tarball

  - name: stackforge/python-manilaclient
    check:
      - gate-python-manilaclient-docs
      - gate-python-manilaclient-pep8
      - gate-python-manilaclient-python26
      - gate-python-manilaclient-python27
      - gate-python-manilaclient-python33
      - gate-manila-tempest-dsvm-neutron
    gate:
      - gate-python-manilaclient-docs
      - gate-python-manilaclient-pep8
      - gate-python-manilaclient-python26
      - gate-python-manilaclient-python27
    post:
      - python-manilaclient-branch-tarball
      - python-manilaclient-coverage

  - name: stackforge/python-monascaclient
    template:
      - name: publish-to-pypi
    check:
      - gate-python-monascaclient-pep8
      - gate-python-monascaclient-python27
    gate:
      - gate-python-monascaclient-pep8
      - gate-python-monascaclient-python27
    post:
      - python-monascaclient-coverage

  - name: stackforge/python-muranoclient
    template:
      - name: publish-to-pypi
    check:
      - gate-python-muranoclient-pep8
      - gate-python-muranoclient-python26
      - gate-python-muranoclient-python27
      - gate-python-muranoclient-python33
      - gate-python-muranoclient-requirements
      - gate-murano-devstack-dsvm
    gate:
      - gate-python-muranoclient-pep8
      - gate-python-muranoclient-python26
      - gate-python-muranoclient-python27
      - gate-murano-devstack-dsvm
    post:
      - python-muranoclient-branch-tarball

  - name: stackforge/python-rallyclient
    template:
      - name: check-requirements
    check:
      - python-rallyclient-coverage
      - gate-python-rallyclient-pep8
      - gate-python-rallyclient-python26
      - gate-python-rallyclient-python27
      - gate-python-rallyclient-docs
    gate:
      - gate-python-rallyclient-pep8
      - gate-python-rallyclient-python26
      - gate-python-rallyclient-python27
      - gate-python-rallyclient-docs
    post:
      - python-rallyclient-coverage

  - name: stackforge/python-solumclient
    template:
      - name: python-jobs
      - name: check-requirements
      - name: publish-to-pypi
    check:
      - gate-python-solumclient-python33
      - gate-python-solumclient-pypy
    gate:
      - gate-python-solumclient-python33
      - gate-python-solumclient-pypy

  - name: stackforge/python-tackerclient
    check:
      - noop
    gate:
      - noop

  - name: stackforge/solum-dashboard
    template:
      - name: python-jobs
      - name: check-requirements
      - name: publish-to-pypi
    check:
      - gate-solum-dashboard-pypy
    gate:
      - gate-solum-dashboard-pypy

  - name: stackforge/solum-specs
    check:
      - gate-solum-specs-docs
    gate:
      - gate-solum-specs-docs

  - name: stackforge/python-surveilclient
    check:
      - noop
    gate:
      - noop

  - name: stackforge/solum-infra-guestagent
    template:
      - name: python-jobs
      - name: check-requirements
      - name: publish-to-pypi
    check:
      - gate-solum-infra-guestagent-python33
      - gate-solum-infra-guestagent-pypy
    gate:
      - gate-solum-infra-guestagent-python33
      - gate-solum-infra-guestagent-pypy

  - name: stackforge/rally
    template:
      - name: check-requirements
      - name: docs-on-rtfd
    check:
      - rally-coverage
      - gate-rally-pep8
      - gate-rally-python26
      - gate-rally-python27
      - gate-rally-install-bare-centos6
      - gate-rally-install-bare-precise
      - check-rally-dsvm-rally
      - check-rally-dsvm-neutron-rally
      - check-rally-dsvm-cli
    gate:
      - gate-rally-pep8
      - gate-rally-python26
      - gate-rally-python27
      - gate-rally-install-bare-centos6
      - gate-rally-install-bare-precise
    post:
      - rally-branch-tarball
      - rally-coverage
    pre-release:
      - rally-tarball
    release:
      - rally-tarball

  - name: stackforge/refstack
    check:
      - gate-refstack-pep8
      - gate-refstack-python27
      - gate-refstack-python33
    gate:
      - gate-refstack-pep8
      - gate-refstack-python27
    post:
      - refstack-coverage

  - name: stackforge/refstack-client
    check:
      - gate-refstack-client-pep8
      - gate-refstack-client-python27
      - gate-refstack-client-python33
    gate:
      - gate-refstack-client-pep8
      - gate-refstack-client-python27
    post:
      - refstack-client-coverage

  - name: stackforge/rubick
    check:
      - gate-rubick-pep8
      - gate-rubick-python27
      - gate-rubick-python33
    gate:
      - gate-rubick-pep8
      - gate-rubick-python27
      - gate-rubick-python33
    post:
      - rubick-coverage

  - name: stackforge/satori
    template:
      - name: python-jobs
      - name: docs-on-rtfd
    check:
      - gate-satori-python33
      - gate-satori-pypy
    gate:
      - gate-satori-python33
      - gate-satori-pypy

  - name: stackforge/solum
    template:
      - name: python-jobs
      - name: check-requirements
      - name: docs-on-rtfd
    check:
      - gate-solum-python33
      - gate-solum-pypy
      - gate-solum-devstack-dsvm
      - gate-solum-devstack-dsvm-f20
    gate:
      - gate-solum-pypy
      - gate-solum-devstack-dsvm-f20
    pre-release:
      - solum-tarball
    release:
      - solum-tarball

  - name: stackforge/sphinxcontrib-docbookrestapi
    template:
      - name: publish-to-pypi
    check:
      - gate-sphinxcontrib-docbookrestapi-pep8
      - gate-sphinxcontrib-docbookrestapi-python26
      - gate-sphinxcontrib-docbookrestapi-python27
      - gate-sphinxcontrib-docbookrestapi-python33
    gate:
      - gate-sphinxcontrib-docbookrestapi-pep8
      - gate-sphinxcontrib-docbookrestapi-python26
      - gate-sphinxcontrib-docbookrestapi-python27
      - gate-sphinxcontrib-docbookrestapi-python33

  - name: stackforge/sqlalchemy-migrate
    template:
      - name: publish-to-pypi
      - name: docs-on-rtfd
    check:
      - gate-sqlalchemy-migrate-python26
      - gate-sqlalchemy-migrate-python27
      - gate-sqlalchemy-migrate-unittests-26sa07
      - gate-sqlalchemy-migrate-unittests-27sa07
      - check-sqlalchemy-migrate-devstack-dsvm
    gate:
      - gate-sqlalchemy-migrate-python26
      - gate-sqlalchemy-migrate-python27
      - gate-sqlalchemy-migrate-unittests-26sa07
      - gate-sqlalchemy-migrate-unittests-27sa07
    post:
      - sqlalchemy-migrate-branch-tarball

  - name: stackforge/staccato
    check:
      - noop
    gate:
      - noop

  - name: stackforge/stackalytics
    template:
      - name: docs-on-rtfd
    check:
      - gate-stackalytics-docs
      - gate-stackalytics-pep8
      - gate-stackalytics-python26
      - gate-stackalytics-python27
      - gate-stackalytics-python33
    gate:
      - gate-stackalytics-docs
      - gate-stackalytics-pep8
      - gate-stackalytics-python26
      - gate-stackalytics-python27
      - gate-stackalytics-python33
    post:
      - stackalytics-branch-tarball
    pre-release:
      - stackalytics-tarball
    release:
      - stackalytics-tarball:
        - stackalytics-pypi-both-upload

  - name: stackforge/swift-ceph-backend
    check:
      - gate-swift-ceph-backend-pep8
      - gate-swift-ceph-backend-python27
    gate:
      - gate-swift-ceph-backend-pep8
      - gate-swift-ceph-backend-python27

  - name: stackforge/swift3
    template:
      - name: python-jobs
    check:
      - gate-swift3-pylint
      - gate-swift3-tox-tempauth
      - gate-swift3-tox-keystone
    gate:
      - gate-swift3-pylint
      - gate-swift3-tox-tempauth
      - gate-swift3-tox-keystone

  - name: stackforge/swiftsync
    check:
      - gate-swiftsync-pep8
      - gate-swiftsync-python27
    gate:
      - gate-swiftsync-pep8
      - gate-swiftsync-python27
    post:
      - swiftsync-branch-tarball
    pre-release:
      - swiftsync-tarball
    release:
      - swiftsync-tarball

  - name: stackforge/tomograph
    template:
      - name: publish-to-pypi
    check:
      - gate-tomograph-pep8
      - gate-tomograph-python26
      - gate-tomograph-python27
      - gate-tomograph-python33
      - gate-tomograph-docs
    gate:
      - gate-tomograph-pep8
      - gate-tomograph-python26
      - gate-tomograph-python27
    post:
      - tomograph-branch-tarball

  - name: stackforge/tooz
    template:
      - name: publish-to-pypi
    check:
      - gate-tooz-pep8
      - gate-tooz-python26
      - gate-tooz-python27
      - gate-tooz-python33
    gate:
      - gate-tooz-pep8
      - gate-tooz-python26
      - gate-tooz-python27
      - gate-tooz-python33
    post:
      - tooz-branch-tarball

  - name: stackforge/turbo-hipster
    template:
      - name: docs-on-rtfd
    check:
      - gate-turbo-hipster-docs
      - gate-turbo-hipster-pep8
      - gate-turbo-hipster-python27
    gate:
      - gate-turbo-hipster-docs
      - gate-turbo-hipster-pep8
      - gate-turbo-hipster-python27
    post:
      - turbo-hipster-coverage

  - name: stackforge/warm
    check:
      - gate-warm-pep8
      - gate-warm-python27
    gate:
      - gate-warm-pep8
      - gate-warm-python27

  - name: stackforge/wsme
    template:
      - name: publish-to-pypi
    check:
      - gate-wsme-python26
      - gate-wsme-python27
      - gate-wsme-python33
      - gate-wsme-pep8
    gate:
      - gate-wsme-python26
      - gate-wsme-python27
      - gate-wsme-python33
      - gate-wsme-pep8
    post:
      - wsme-branch-tarball

  - name: stackforge/python-openstacksdk
    template:
      - name: python-jobs
      - name: check-requirements
    check:
      - gate-python-openstacksdk-python33
      - gate-python-openstacksdk-pypy
    gate:
      - gate-python-openstacksdk-python33
      - gate-python-openstacksdk-pypy

  - name: stackforge/graffiti
    check:
      - gate-graffiti-docs
      - gate-graffiti-pep8
      - gate-graffiti-python26
      - gate-graffiti-python27
    gate:
      - gate-graffiti-docs
      - gate-graffiti-pep8
      - gate-graffiti-python26
      - gate-graffiti-python27
    post:
      - graffiti-coverage

  - name: stackforge/stacktach
    check:
      - gate-stacktach-pep8
      - gate-stacktach-python27
    gate:
      - gate-stacktach-pep8
      - gate-stacktach-python27

  - name: stackforge/surveil
    check:
      - noop
    gate:
      - noop

  - name: stackforge/surveil-specs
    check:
      - noop
    gate:
      - noop

  - name: stackforge/xenapi-os-testing
    check:
      - noop
    gate:
      - noop

  - name: stackforge/doc8
    template:
      - name: python-jobs
      - name: publish-to-pypi

  - name: stackforge/tacker
    check:
      - noop
    gate:
      - noop

  - name: stackforge/tacker-specs
    check:
      - gate-tacker-specs-python27
      - gate-tacker-specs-docs
    gate:
      - gate-tacker-specs-python27
      - gate-tacker-specs-docs

  - name: openstack/training-guides
    template:
      - name: openstack-doc-gate
    post:
      - training-guides-tox-doc-publishdocs
      - training-guides-manuals-upstream-translation-update
    periodic:
      - training-guides-manuals-propose-translation-update

  - name: stackforge/octavia
    check:
      - gate-octavia-pep8
      - gate-octavia-python26
      - gate-octavia-python27
      - gate-octavia-python33
    gate:
      - gate-octavia-pep8
      - gate-octavia-python26
      - gate-octavia-python27
      - gate-octavia-python33

  - name: stackforge/xstatic-angular
    check:
      - noop
    gate:
      - noop

  - name: stackforge/xstatic-angular-cookies
    check:
      - noop
    gate:
      - noop

  - name: stackforge/xstatic-angular-mock
    check:
      - noop
    gate:
      - noop

  - name: stackforge/xstatic-bootstrap-datepicker
    check:
      - noop
    gate:
      - noop

  - name: stackforge/xstatic-bootstrap-scss
    check:
      - noop
    gate:
      - noop

  - name: stackforge/xstatic-d3
    check:
      - noop
    gate:
      - noop

  - name: stackforge/xstatic-hogan
    check:
      - noop
    gate:
      - noop

  - name: stackforge/xstatic-jasmine
    check:
      - noop
    gate:
      - noop

  - name: stackforge/xstatic-jquery-migrate
    check:
      - noop
    gate:
      - noop

  - name: stackforge/xstatic-jquery.bootstrap.wizard
    check:
      - noop
    gate:
      - noop

  - name: stackforge/xstatic-jquery.quicksearch
    check:
      - noop
    gate:
      - noop

  - name: stackforge/xstatic-jquery.tablesorter
    check:
      - noop
    gate:
      - noop

  - name: stackforge/xstatic-jsencrypt
    check:
      - noop
    gate:
      - noop

  - name: stackforge/xstatic-qunit
    check:
      - noop
    gate:
      - noop

  - name: stackforge/xstatic-rickshaw
    check:
      - noop
    gate:
      - noop

  - name: stackforge/xstatic-spin
    check:
      - noop
    gate:
      - noop

  - name: stackforge/rack
    check:
      - noop
    gate:
      - noop