+- job:
+ name: pbr-installation-devstack-base
+ parent: legacy-dsvm-base
+ timeout: 7800
+ required-projects:
+ - openstack-dev/devstack
+ - openstack-dev/grenade
+ - openstack-dev/pbr
+ - openstack-infra/devstack-gate
+ - openstack-infra/tripleo-ci
+ - openstack/aodh
+ - openstack/automaton
+ - openstack/ceilometer
+ - openstack/ceilometermiddleware
+ - openstack/cinder
+ - openstack/cliff
+ - openstack/debtcollector
+ - openstack/dib-utils
+ - openstack/diskimage-builder
+ - openstack/django_openstack_auth
+ - openstack/futurist
+ - openstack/glance
+ - openstack/glance_store
+ - openstack/heat
+ - openstack/heat-cfntools
+ - openstack/heat-templates
+ - openstack/horizon
+ - openstack/ironic
+ - openstack/ironic-lib
+ - openstack/ironic-python-agent
+ - openstack/keystone
+ - openstack/keystoneauth
+ - openstack/keystonemiddleware
+ - openstack/manila
+ - openstack/manila-ui
+ - openstack/neutron
+ - openstack/neutron-fwaas
+ - openstack/neutron-lbaas
+ - openstack/neutron-vpnaas
+ - openstack/nova
+ - openstack/octavia
+ - openstack/os-apply-config
+ - openstack/os-brick
+ - openstack/os-client-config
+ - openstack/os-collect-config
+ - openstack/os-net-config
+ - openstack/os-refresh-config
+ - openstack/osc-lib
+ - openstack/oslo.cache
+ - openstack/oslo.concurrency
+ - openstack/oslo.config
+ - openstack/oslo.context
+ - openstack/oslo.db
+ - openstack/oslo.i18n
+ - openstack/oslo.log
+ - openstack/oslo.messaging
+ - openstack/oslo.middleware
+ - openstack/oslo.policy
+ - openstack/oslo.reports
+ - openstack/oslo.rootwrap
+ - openstack/oslo.serialization
+ - openstack/oslo.service
+ - openstack/oslo.utils
+ - openstack/oslo.versionedobjects
+ - openstack/oslo.vmware
+ - openstack/pycadf
+ - openstack/python-cinderclient
+ - openstack/python-glanceclient
+ - openstack/python-heatclient
+ - openstack/python-ironicclient
+ - openstack/python-keystoneclient
+ - openstack/python-manilaclient
+ - openstack/python-neutronclient
+ - openstack/python-novaclient
+ - openstack/python-openstackclient
+ - openstack/python-saharaclient
+ - openstack/python-swiftclient
+ - openstack/python-troveclient
+ - openstack/python-zaqarclient
+ - openstack/requirements
+ - openstack/sahara
+ - openstack/sahara-dashboard
+ - openstack/stevedore
+ - openstack/swift
+ - openstack/taskflow
+ - openstack/tempest
+ - openstack/tooz
+ - openstack/tripleo-heat-templates
+ - openstack/tripleo-image-elements
+ - openstack/trove
+ - openstack/trove-dashboard
+ - openstack/zaqar
+
+- job:
+ name: pbr-installation-devstack
+ parent: pbr-installation-devstack-base
+ run: playbooks/legacy/pbr-installation-devstack/run.yaml
+ post-run: playbooks/legacy/pbr-installation-devstack/post.yaml
+
+- job:
+ name: pbr-installation-upstream-devstack
+ parent: pbr-installation-devstack-base
+ run: playbooks/legacy/pbr-installation-upstream-devstack/run.yaml
+ post-run: playbooks/legacy/pbr-installation-upstream-devstack/post.yaml
+
- project:
+ templates:
+ - openstack-python-jobs
+ - openstack-python35-jobs
+ - openstack-python36-jobs
+ - lib-forward-testing
+ - lib-forward-testing-python3
+ - publish-openstack-docs-pti
+ - periodic-stable-jobs
check:
jobs:
- openstack-tox-lower-constraints
+ - pbr-installation-devstack
+ - pbr-installation-upstream-devstack
gate:
jobs:
- openstack-tox-lower-constraints
+ - pbr-installation-devstack
+ - pbr-installation-upstream-devstack
+ post:
+ jobs:
+ - openstack-tox-cover
Cao Xuan Hoang <hoangcx@vn.fujitsu.com>
Chang Bo Guo <guochbo@cn.ibm.com>
ChangBo Guo(gcb) <eric.guo@easystack.cn>
+Chris Dent <cdent@anticdent.org>
Christian Berendt <berendt@b1-systems.de>
Chuck Short <chuck.short@canonical.com>
Clark Boylan <clark.boylan@gmail.com>
Michael Basnight <mbasnight@gmail.com>
Michael Still <mikal@stillhq.com>
Mike Heald <mike.heald@hp.com>
+Moises Guimaraes de Medeiros <moguimar@redhat.com>
Monty Taylor <mordred@inaugust.com>
Nikhil Manchanda <SlickNik@gmail.com>
Octavian Ciuhandu <ociuhandu@cloudbasesolutions.com>
Thomas Herve <therve@redhat.com>
Thomas Leaman <thomas.leaman@hp.com>
Thomas Morin <thomas.morin@orange.com>
+Tim Burke <tim.burke@gmail.com>
Tim Simpson <tim.simpson@rackspace.com>
Timothy Chavez <timothy.chavez@hp.com>
Toilal <toilal.dev@gmail.com>
Vasudev Kamath <kamathvasudev@gmail.com>
Vincent Untz <vuntz@suse.com>
Vishvananda Ishaya <vishvananda@gmail.com>
+Wei Tie <nuaafe@gmail.com>
YAMAMOTO Takashi <yamamoto@valinux.co.jp>
Yaguang Tang <heut2008@gmail.com>
Yuriy Taraday <yorik.sar@gmail.com>
Zhongyue Luo <zhongyue.nah@intel.com>
-Zuul <zuul@review.openstack.org>
alexpilotti <ap@pilotti.it>
cbjchen@cn.ibm.com <cbjchen@cn.ibm.com>
dineshbhor <dinesh.bhor@nttdata.com>
CHANGES
=======
+4.3.0
+-----
+
+* Remove my\_ip from generated wsgi script
+* Fix typo in contribution instructions
+* Add release note for fix to bug 1786306
+* Move pbr-installation jobs in-tree
+* Support subdirectory in the url
+* remove pypy jobs
+* add lib-forward-testing-python3 test job
+* add python 3.6 unit test job
+* switch documentation job to new PTI
+* import zuul job settings from project-config
+* Ignore Zuul when generating AUTHORS
+* tox: Re-add cover target
+
4.2.0
-----
Metadata-Version: 2.1
Name: pbr
-Version: 4.2.0
+Version: 4.3.0
Summary: Python Build Reasonableness
Home-page: https://docs.openstack.org/pbr/latest/
Author: OpenStack
Author-email: openstack-dev@lists.openstack.org
License: UNKNOWN
+Project-URL: Documentation, https://docs.openstack.org/pbr/
Project-URL: Bug Tracker, https://bugs.launchpad.net/pbr/
Project-URL: Source Code, https://git.openstack.org/cgit/openstack-dev/pbr/
-Project-URL: Documentation, https://docs.openstack.org/pbr/
Description: Introduction
============
pip install -r requirements.txt -r test-requirements.txt
-In you go this route, you can interact with the testr command directly.
+If you go this route, you can interact with the testr command directly.
Running ``testr run`` will run the entire test suite. ``testr run --parallel``
will run it in parallel (this is the default incantation tox uses). More
information about testr can be found at: http://wiki.openstack.org/testr
Metadata-Version: 2.1
Name: pbr
-Version: 4.2.0
+Version: 4.3.0
Summary: Python Build Reasonableness
Home-page: https://docs.openstack.org/pbr/latest/
Author: OpenStack
Author-email: openstack-dev@lists.openstack.org
License: UNKNOWN
+Project-URL: Documentation, https://docs.openstack.org/pbr/
Project-URL: Bug Tracker, https://bugs.launchpad.net/pbr/
Project-URL: Source Code, https://git.openstack.org/cgit/openstack-dev/pbr/
-Project-URL: Documentation, https://docs.openstack.org/pbr/
Description: Introduction
============
pbr/tests/testpackage/pbr_testpackage/package_data/1.txt
pbr/tests/testpackage/pbr_testpackage/package_data/2.txt
pbr/tests/testpackage/src/testext.c
+playbooks/legacy/pbr-installation-devstack/post.yaml
+playbooks/legacy/pbr-installation-devstack/run.yaml
+playbooks/legacy/pbr-installation-upstream-devstack/post.yaml
+playbooks/legacy/pbr-installation-upstream-devstack/run.yaml
releasenotes/notes/deprecate-pyN-requirements-364655c38fa5b780.yaml
releasenotes/notes/deprecate-testr-nose-integration-56e3e11248d946fc.yaml
releasenotes/notes/remove-command-hooks-907d9c2325f306ca.yaml
+releasenotes/notes/support-vcs-uris-with-subdirectories-20ad68b6138f72ca.yaml
releasenotes/notes/v_version-457b38c8679c5868.yaml
releasenotes/source/conf.py
releasenotes/source/index.rst
and not os.access(new_authors, os.W_OK)):
return
log.info('[pbr] Generating AUTHORS')
- ignore_emails = '(jenkins@review|infra@lists|jenkins@openstack)'
+ ignore_emails = '((jenkins|zuul)@review|infra@lists|jenkins@openstack)'
if git_dir is None:
git_dir = _get_git_directory()
if git_dir:
# such as:
# -e git://github.com/openstack/nova/master#egg=nova
# -e git://github.com/openstack/nova/master#egg=nova-1.2.3
+ # -e git+https://foo.com/zipball#egg=bar&subdirectory=baz
if re.match(r'\s*-e\s+', line):
- line = re.sub(r'\s*-e\s+.*#egg=(.*)$', egg_fragment, line)
+ line = re.sub(r'\s*-e\s+.*#egg=([^&]+).*$', egg_fragment, line)
# such as:
# http://github.com/openstack/nova/zipball/master#egg=nova
# http://github.com/openstack/nova/zipball/master#egg=nova-1.2.3
+ # git+https://foo.com/zipball#egg=bar&subdirectory=baz
elif re.match(r'\s*(https?|git(\+(https|ssh))?):', line):
- line = re.sub(r'\s*(https?|git(\+(https|ssh))?):.*#egg=(.*)$',
+ line = re.sub(r'\s*(https?|git(\+(https|ssh))?):.*#egg=([^&]+).*$',
egg_fragment, line)
# -f lines are for index locations, and don't get used here
elif re.match(r'\s*-f\s+', line):
import sys
import wsgiref.simple_server as wss
- my_ip = socket.gethostbyname(socket.gethostname())
-
parser = argparse.ArgumentParser(
description=%(import_target)s.__doc__,
formatter_class=argparse.ArgumentDefaultsHelpFormatter,
('versioned', {'versioned': True, 'expected': ['bar>=1.2.3']})
]
+ subdirectory_scenarios = [
+ ('non-subdirectory', {'has_subdirectory': False}),
+ ('has-subdirectory', {'has_subdirectory': True})
+ ]
+
scenarios = [
('normal', {'url': "foo\nbar", 'expected': ['foo', 'bar']}),
('normal_with_comments', {
('ssh_egg_url', {'url': 'git+ssh://foo.com/zipball#egg=bar'}),
('git_https_egg_url', {'url': 'git+https://foo.com/zipball#egg=bar'}),
('http_egg_url', {'url': 'https://foo.com/zipball#egg=bar'}),
- ], versioned_scenarios)
+ ], versioned_scenarios, subdirectory_scenarios)
scenarios = scenarios + testscenarios.multiply_scenarios(
[
('non-editable', {'editable': False}),
('editable', {'editable': True}),
],
- versioned_scenarios)
+ versioned_scenarios, subdirectory_scenarios)
def test_parse_requirements(self):
tmp_file = tempfile.NamedTemporaryFile()
req_string = ("-e %s" % req_string)
if hasattr(self, 'versioned') and self.versioned:
req_string = ("%s-1.2.3" % req_string)
+ if hasattr(self, 'has_subdirectory') and self.has_subdirectory:
+ req_string = ("%s&subdirectory=baz" % req_string)
with open(tmp_file.name, 'w') as fh:
fh.write(req_string)
self.assertEqual(self.expected,
--- /dev/null
+- hosts: primary
+ tasks:
+
+ - name: Copy files from {{ ansible_user_dir }}/workspace/ on node
+ synchronize:
+ src: '{{ ansible_user_dir }}/workspace/'
+ dest: '{{ zuul.executor.log_root }}'
+ mode: pull
+ copy_links: true
+ verify_host: true
+ rsync_opts:
+ - --include=/logs/**
+ - --include=*/
+ - --exclude=*
+ - --prune-empty-dirs
--- /dev/null
+- hosts: all
+ name: Autoconverted job legacy-pbr-installation-dsvm from old job gate-pbr-installation-dsvm-ubuntu-xenial
+ tasks:
+
+ - name: Ensure legacy workspace directory
+ file:
+ path: '{{ ansible_user_dir }}/workspace'
+ state: directory
+
+ - shell:
+ cmd: |
+ set -e
+ set -x
+ cat > clonemap.yaml << EOF
+ clonemap:
+ - name: openstack-infra/devstack-gate
+ dest: devstack-gate
+ EOF
+ /usr/zuul-env/bin/zuul-cloner -m clonemap.yaml --cache-dir /opt/git \
+ git://git.openstack.org \
+ openstack-infra/devstack-gate
+ executable: /bin/bash
+ chdir: '{{ ansible_user_dir }}/workspace'
+ environment: '{{ zuul | zuul_legacy_vars }}'
+
+ - shell:
+ cmd: |
+ set -e
+ set -x
+ # Define the entire projects list here so that what we
+ # test requirements against is independent of what d-g
+ # thinks is relevant.
+ export PROJECTS="openstack-infra/devstack-gate $PROJECTS"
+ export PROJECTS="openstack-dev/devstack $PROJECTS"
+ export PROJECTS="openstack-dev/grenade $PROJECTS"
+ export PROJECTS="openstack-dev/pbr $PROJECTS"
+ export PROJECTS="openstack-infra/tripleo-ci $PROJECTS"
+ export PROJECTS="openstack/aodh $PROJECTS"
+ export PROJECTS="openstack/automaton $PROJECTS"
+ export PROJECTS="openstack/ceilometer $PROJECTS"
+ export PROJECTS="openstack/ceilometermiddleware $PROJECTS"
+ export PROJECTS="openstack/cinder $PROJECTS"
+ export PROJECTS="openstack/cliff $PROJECTS"
+ export PROJECTS="openstack/debtcollector $PROJECTS"
+ export PROJECTS="openstack/dib-utils $PROJECTS"
+ export PROJECTS="openstack/diskimage-builder $PROJECTS"
+ export PROJECTS="openstack/django_openstack_auth $PROJECTS"
+ export PROJECTS="openstack/futurist $PROJECTS"
+ export PROJECTS="openstack/glance $PROJECTS"
+ export PROJECTS="openstack/glance_store $PROJECTS"
+ export PROJECTS="openstack/heat $PROJECTS"
+ export PROJECTS="openstack/heat-cfntools $PROJECTS"
+ export PROJECTS="openstack/heat-templates $PROJECTS"
+ export PROJECTS="openstack/horizon $PROJECTS"
+ export PROJECTS="openstack/ironic $PROJECTS"
+ export PROJECTS="openstack/ironic-lib $PROJECTS"
+ export PROJECTS="openstack/ironic-python-agent $PROJECTS"
+ export PROJECTS="openstack/keystone $PROJECTS"
+ export PROJECTS="openstack/keystoneauth $PROJECTS"
+ export PROJECTS="openstack/keystonemiddleware $PROJECTS"
+ export PROJECTS="openstack/manila $PROJECTS"
+ export PROJECTS="openstack/manila-ui $PROJECTS"
+ export PROJECTS="openstack/zaqar $PROJECTS"
+ export PROJECTS="openstack/neutron $PROJECTS"
+ export PROJECTS="openstack/neutron-fwaas $PROJECTS"
+ export PROJECTS="openstack/neutron-lbaas $PROJECTS"
+ export PROJECTS="openstack/octavia $PROJECTS"
+ export PROJECTS="openstack/neutron-vpnaas $PROJECTS"
+ export PROJECTS="openstack/nova $PROJECTS"
+ export PROJECTS="openstack/os-apply-config $PROJECTS"
+ export PROJECTS="openstack/os-brick $PROJECTS"
+ export PROJECTS="openstack/os-client-config $PROJECTS"
+ export PROJECTS="openstack/os-collect-config $PROJECTS"
+ export PROJECTS="openstack/os-net-config $PROJECTS"
+ export PROJECTS="openstack/os-refresh-config $PROJECTS"
+ export PROJECTS="openstack/osc-lib $PROJECTS"
+ export PROJECTS="openstack/oslo.cache $PROJECTS"
+ export PROJECTS="openstack/oslo.concurrency $PROJECTS"
+ export PROJECTS="openstack/oslo.config $PROJECTS"
+ export PROJECTS="openstack/oslo.context $PROJECTS"
+ export PROJECTS="openstack/oslo.db $PROJECTS"
+ export PROJECTS="openstack/oslo.i18n $PROJECTS"
+ export PROJECTS="openstack/oslo.log $PROJECTS"
+ export PROJECTS="openstack/oslo.messaging $PROJECTS"
+ export PROJECTS="openstack/oslo.middleware $PROJECTS"
+ export PROJECTS="openstack/oslo.policy $PROJECTS"
+ export PROJECTS="openstack/oslo.reports $PROJECTS"
+ export PROJECTS="openstack/oslo.rootwrap $PROJECTS"
+ export PROJECTS="openstack/oslo.utils $PROJECTS"
+ export PROJECTS="openstack/oslo.serialization $PROJECTS"
+ export PROJECTS="openstack/oslo.service $PROJECTS"
+ export PROJECTS="openstack/oslo.versionedobjects $PROJECTS"
+ export PROJECTS="openstack/oslo.vmware $PROJECTS"
+ export PROJECTS="openstack/pycadf $PROJECTS"
+ export PROJECTS="openstack/python-cinderclient $PROJECTS"
+ export PROJECTS="openstack/python-glanceclient $PROJECTS"
+ export PROJECTS="openstack/python-heatclient $PROJECTS"
+ export PROJECTS="openstack/python-ironicclient $PROJECTS"
+ export PROJECTS="openstack/python-keystoneclient $PROJECTS"
+ export PROJECTS="openstack/python-manilaclient $PROJECTS"
+ export PROJECTS="openstack/python-zaqarclient $PROJECTS"
+ export PROJECTS="openstack/python-neutronclient $PROJECTS"
+ export PROJECTS="openstack/python-novaclient $PROJECTS"
+ export PROJECTS="openstack/python-openstackclient $PROJECTS"
+ export PROJECTS="openstack/python-saharaclient $PROJECTS"
+ export PROJECTS="openstack/python-swiftclient $PROJECTS"
+ export PROJECTS="openstack/python-troveclient $PROJECTS"
+ export PROJECTS="openstack/requirements $PROJECTS"
+ export PROJECTS="openstack/sahara $PROJECTS"
+ export PROJECTS="openstack/sahara-dashboard $PROJECTS"
+ export PROJECTS="openstack/stevedore $PROJECTS"
+ export PROJECTS="openstack/swift $PROJECTS"
+ export PROJECTS="openstack/taskflow $PROJECTS"
+ export PROJECTS="openstack/tempest $PROJECTS"
+ export PROJECTS="openstack/tooz $PROJECTS"
+ export PROJECTS="openstack/tripleo-heat-templates $PROJECTS"
+ export PROJECTS="openstack/tripleo-image-elements $PROJECTS"
+ export PROJECTS="openstack/trove $PROJECTS"
+ export PROJECTS="openstack/trove-dashboard $PROJECTS"
+ export PYTHONUNBUFFERED=true
+ export DEVSTACK_GATE_TEMPEST=0
+ export DEVSTACK_GATE_EXERCISES=0
+ export DEVSTACK_GATE_REQS_INTEGRATION=1
+ export PIP_PROCESS_DEPENDENCY_LINKS=1
+ if [ "" = "-upstream" ]; then
+ export PBR_PIP_VERSION=git+https://github.com/pypa/pip.git#egg=pip
+ fi
+ function gate_hook {
+ set -x
+ bash -xe $BASE/new/pbr/tools/integration.sh $(cat $BASE/new/requirements/projects.txt)
+ }
+ export -f gate_hook
+ cp devstack-gate/devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh
+ ./safe-devstack-vm-gate-wrap.sh
+ executable: /bin/bash
+ chdir: '{{ ansible_user_dir }}/workspace'
+ environment: '{{ zuul | zuul_legacy_vars }}'
--- /dev/null
+- hosts: primary
+ tasks:
+
+ - name: Copy files from {{ ansible_user_dir }}/workspace/ on node
+ synchronize:
+ src: '{{ ansible_user_dir }}/workspace/'
+ dest: '{{ zuul.executor.log_root }}'
+ mode: pull
+ copy_links: true
+ verify_host: true
+ rsync_opts:
+ - --include=/logs/**
+ - --include=*/
+ - --exclude=*
+ - --prune-empty-dirs
--- /dev/null
+- hosts: all
+ name: Autoconverted job legacy-pbr-installation-dsvm-upstream from old job gate-pbr-installation-dsvm-upstream-ubuntu-xenial
+ tasks:
+
+ - name: Ensure legacy workspace directory
+ file:
+ path: '{{ ansible_user_dir }}/workspace'
+ state: directory
+
+ - shell:
+ cmd: |
+ set -e
+ set -x
+ cat > clonemap.yaml << EOF
+ clonemap:
+ - name: openstack-infra/devstack-gate
+ dest: devstack-gate
+ EOF
+ /usr/zuul-env/bin/zuul-cloner -m clonemap.yaml --cache-dir /opt/git \
+ git://git.openstack.org \
+ openstack-infra/devstack-gate
+ executable: /bin/bash
+ chdir: '{{ ansible_user_dir }}/workspace'
+ environment: '{{ zuul | zuul_legacy_vars }}'
+
+ - shell:
+ cmd: |
+ set -e
+ set -x
+ # Define the entire projects list here so that what we
+ # test requirements against is independent of what d-g
+ # thinks is relevant.
+ export PROJECTS="openstack-infra/devstack-gate $PROJECTS"
+ export PROJECTS="openstack-dev/devstack $PROJECTS"
+ export PROJECTS="openstack-dev/grenade $PROJECTS"
+ export PROJECTS="openstack-dev/pbr $PROJECTS"
+ export PROJECTS="openstack-infra/tripleo-ci $PROJECTS"
+ export PROJECTS="openstack/aodh $PROJECTS"
+ export PROJECTS="openstack/automaton $PROJECTS"
+ export PROJECTS="openstack/ceilometer $PROJECTS"
+ export PROJECTS="openstack/ceilometermiddleware $PROJECTS"
+ export PROJECTS="openstack/cinder $PROJECTS"
+ export PROJECTS="openstack/cliff $PROJECTS"
+ export PROJECTS="openstack/debtcollector $PROJECTS"
+ export PROJECTS="openstack/dib-utils $PROJECTS"
+ export PROJECTS="openstack/diskimage-builder $PROJECTS"
+ export PROJECTS="openstack/django_openstack_auth $PROJECTS"
+ export PROJECTS="openstack/futurist $PROJECTS"
+ export PROJECTS="openstack/glance $PROJECTS"
+ export PROJECTS="openstack/glance_store $PROJECTS"
+ export PROJECTS="openstack/heat $PROJECTS"
+ export PROJECTS="openstack/heat-cfntools $PROJECTS"
+ export PROJECTS="openstack/heat-templates $PROJECTS"
+ export PROJECTS="openstack/horizon $PROJECTS"
+ export PROJECTS="openstack/ironic $PROJECTS"
+ export PROJECTS="openstack/ironic-lib $PROJECTS"
+ export PROJECTS="openstack/ironic-python-agent $PROJECTS"
+ export PROJECTS="openstack/keystone $PROJECTS"
+ export PROJECTS="openstack/keystoneauth $PROJECTS"
+ export PROJECTS="openstack/keystonemiddleware $PROJECTS"
+ export PROJECTS="openstack/manila $PROJECTS"
+ export PROJECTS="openstack/manila-ui $PROJECTS"
+ export PROJECTS="openstack/zaqar $PROJECTS"
+ export PROJECTS="openstack/neutron $PROJECTS"
+ export PROJECTS="openstack/neutron-fwaas $PROJECTS"
+ export PROJECTS="openstack/neutron-lbaas $PROJECTS"
+ export PROJECTS="openstack/octavia $PROJECTS"
+ export PROJECTS="openstack/neutron-vpnaas $PROJECTS"
+ export PROJECTS="openstack/nova $PROJECTS"
+ export PROJECTS="openstack/os-apply-config $PROJECTS"
+ export PROJECTS="openstack/os-brick $PROJECTS"
+ export PROJECTS="openstack/os-client-config $PROJECTS"
+ export PROJECTS="openstack/os-collect-config $PROJECTS"
+ export PROJECTS="openstack/os-net-config $PROJECTS"
+ export PROJECTS="openstack/os-refresh-config $PROJECTS"
+ export PROJECTS="openstack/osc-lib $PROJECTS"
+ export PROJECTS="openstack/oslo.cache $PROJECTS"
+ export PROJECTS="openstack/oslo.concurrency $PROJECTS"
+ export PROJECTS="openstack/oslo.config $PROJECTS"
+ export PROJECTS="openstack/oslo.context $PROJECTS"
+ export PROJECTS="openstack/oslo.db $PROJECTS"
+ export PROJECTS="openstack/oslo.i18n $PROJECTS"
+ export PROJECTS="openstack/oslo.log $PROJECTS"
+ export PROJECTS="openstack/oslo.messaging $PROJECTS"
+ export PROJECTS="openstack/oslo.middleware $PROJECTS"
+ export PROJECTS="openstack/oslo.policy $PROJECTS"
+ export PROJECTS="openstack/oslo.reports $PROJECTS"
+ export PROJECTS="openstack/oslo.rootwrap $PROJECTS"
+ export PROJECTS="openstack/oslo.utils $PROJECTS"
+ export PROJECTS="openstack/oslo.serialization $PROJECTS"
+ export PROJECTS="openstack/oslo.service $PROJECTS"
+ export PROJECTS="openstack/oslo.versionedobjects $PROJECTS"
+ export PROJECTS="openstack/oslo.vmware $PROJECTS"
+ export PROJECTS="openstack/pycadf $PROJECTS"
+ export PROJECTS="openstack/python-cinderclient $PROJECTS"
+ export PROJECTS="openstack/python-glanceclient $PROJECTS"
+ export PROJECTS="openstack/python-heatclient $PROJECTS"
+ export PROJECTS="openstack/python-ironicclient $PROJECTS"
+ export PROJECTS="openstack/python-keystoneclient $PROJECTS"
+ export PROJECTS="openstack/python-manilaclient $PROJECTS"
+ export PROJECTS="openstack/python-zaqarclient $PROJECTS"
+ export PROJECTS="openstack/python-neutronclient $PROJECTS"
+ export PROJECTS="openstack/python-novaclient $PROJECTS"
+ export PROJECTS="openstack/python-openstackclient $PROJECTS"
+ export PROJECTS="openstack/python-saharaclient $PROJECTS"
+ export PROJECTS="openstack/python-swiftclient $PROJECTS"
+ export PROJECTS="openstack/python-troveclient $PROJECTS"
+ export PROJECTS="openstack/requirements $PROJECTS"
+ export PROJECTS="openstack/sahara $PROJECTS"
+ export PROJECTS="openstack/sahara-dashboard $PROJECTS"
+ export PROJECTS="openstack/stevedore $PROJECTS"
+ export PROJECTS="openstack/swift $PROJECTS"
+ export PROJECTS="openstack/taskflow $PROJECTS"
+ export PROJECTS="openstack/tempest $PROJECTS"
+ export PROJECTS="openstack/tooz $PROJECTS"
+ export PROJECTS="openstack/tripleo-heat-templates $PROJECTS"
+ export PROJECTS="openstack/tripleo-image-elements $PROJECTS"
+ export PROJECTS="openstack/trove $PROJECTS"
+ export PROJECTS="openstack/trove-dashboard $PROJECTS"
+ export PYTHONUNBUFFERED=true
+ export DEVSTACK_GATE_TEMPEST=0
+ export DEVSTACK_GATE_EXERCISES=0
+ export DEVSTACK_GATE_REQS_INTEGRATION=1
+ export PIP_PROCESS_DEPENDENCY_LINKS=1
+ if [ "-upstream" = "-upstream" ]; then
+ export PBR_PIP_VERSION=git+https://github.com/pypa/pip.git#egg=pip
+ fi
+ function gate_hook {
+ set -x
+ bash -xe $BASE/new/pbr/tools/integration.sh $(cat $BASE/new/requirements/projects.txt)
+ }
+ export -f gate_hook
+ cp devstack-gate/devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh
+ ./safe-devstack-vm-gate-wrap.sh
+ executable: /bin/bash
+ chdir: '{{ ansible_user_dir }}/workspace'
+ environment: '{{ zuul | zuul_legacy_vars }}'
--- /dev/null
+---
+features:
+ - |
+ Subdirectories can now be included when specfifying a requirement in
+ ``requirements.txt`` or ``test-requirements.txt`` using VCS URIs. For
+ example:
+
+ -e git+https://foo.com/zipball#egg=bar&subdirectory=baz
+
+ For more information, refer to the `pip documentation
+ <https://pip.pypa.io/en/latest/reference/pip_install/#vcs-support>`__.
basepython = python3
commands = {posargs}
+[testenv:cover]
+basepython = python3
+setenv =
+ PYTHON=coverage run --source pbr --parallel-mode
+commands =
+ stestr run {posargs}
+ coverage combine
+ coverage html -d cover
+ coverage xml -o cover/coverage.xml
+
[flake8]
# H405 multi line docstring summary not separated with an empty line
# H904 "Wrap lines in parentheses and not a backslash for line continuation