Imported Upstream version 4.3.0 upstream/4.3.0
authorJinWang An <jinwang.an@samsung.com>
Mon, 28 Dec 2020 04:46:22 +0000 (13:46 +0900)
committerJinWang An <jinwang.an@samsung.com>
Mon, 28 Dec 2020 04:46:22 +0000 (13:46 +0900)
16 files changed:
.zuul.yaml
AUTHORS
ChangeLog
PKG-INFO
doc/source/contributor/index.rst
pbr.egg-info/PKG-INFO
pbr.egg-info/SOURCES.txt
pbr/git.py
pbr/packaging.py
pbr/tests/test_packaging.py
playbooks/legacy/pbr-installation-devstack/post.yaml [new file with mode: 0644]
playbooks/legacy/pbr-installation-devstack/run.yaml [new file with mode: 0644]
playbooks/legacy/pbr-installation-upstream-devstack/post.yaml [new file with mode: 0644]
playbooks/legacy/pbr-installation-upstream-devstack/run.yaml [new file with mode: 0644]
releasenotes/notes/support-vcs-uris-with-subdirectories-20ad68b6138f72ca.yaml [new file with mode: 0644]
tox.ini

index 67a39c429e0e3cc5d5440e334eb8be98cbd083b7..0541e40e9a2064a2cf878dde52587db92b2d59c7 100644 (file)
@@ -1,7 +1,127 @@
+- 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
diff --git a/AUTHORS b/AUTHORS
index 5fdea423412ecebfa5f9145a7601acd7fd4e4bac..8d53f4677180641a414d02d767278b0ae17eaa72 100644 (file)
--- a/AUTHORS
+++ b/AUTHORS
@@ -16,6 +16,7 @@ Brian Waldon <bcwaldon@gmail.com>
 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>
@@ -80,6 +81,7 @@ Mehdi Abaakouk <sileht@sileht.net>
 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>
@@ -114,17 +116,18 @@ Thomas Grainger <tagrain@gmail.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>
index 3641c3c2f125d656041000e317d5d4cbbe9fad73..4f3640d5e4760cec5ee5724dc399fd100e8bd3fc 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,22 @@
 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
 -----
 
index 9b34816dd951962dc3735a5e6703e6ba44b3a74b..50d222f566645109ba0d5f044c0a3a106215d598 100644 (file)
--- a/PKG-INFO
+++ b/PKG-INFO
@@ -1,14 +1,14 @@
 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
         ============
         
index b7b4a757f0081a5559fbe9ab2444053876c4e1b9..95daead833980b632056f1b19c7dfd8439af8b91 100644 (file)
@@ -27,7 +27,7 @@ are listed in ``requirements.txt`` and the requirements for testing are in
 
   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
index 9b34816dd951962dc3735a5e6703e6ba44b3a74b..50d222f566645109ba0d5f044c0a3a106215d598 100644 (file)
@@ -1,14 +1,14 @@
 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
         ============
         
index 88cc210690f9946b65e9f5e341e188828edda781..ff5be826e56b27e618f4ebc0c59d87abd727eaf3 100644 (file)
@@ -89,9 +89,14 @@ pbr/tests/testpackage/pbr_testpackage/wsgi.py
 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
index f2855dde15d2f3cfcede02948fdc22b629f2e3b5..6e18adae88c80542b6c47839c01dba7354c7108d 100644 (file)
@@ -300,7 +300,7 @@ def generate_authors(git_dir=None, dest_dir='.', option_dict=dict()):
             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:
index 8656a6ce778199fb89833a4cddd88329eccab1fb..dc0b60c5eae29f8393718b8f36777d531f58a139 100644 (file)
@@ -137,13 +137,15 @@ def parse_requirements(requirements_files=None, strip_markers=False):
         # 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):
@@ -310,8 +312,6 @@ if __name__ == "__main__":
     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,
index 5512d5d62aa995aec42f51fd340a21a0aa8ae0c2..9bd91ae024aeaaf19c942985636bcc1c88f3c331 100644 (file)
@@ -579,6 +579,11 @@ class ParseRequirementsTestScenarios(base.BaseTestCase):
         ('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', {
@@ -591,7 +596,7 @@ class ParseRequirementsTestScenarios(base.BaseTestCase):
         ('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(
         [
@@ -601,7 +606,7 @@ class ParseRequirementsTestScenarios(base.BaseTestCase):
             ('non-editable', {'editable': False}),
             ('editable', {'editable': True}),
         ],
-        versioned_scenarios)
+        versioned_scenarios, subdirectory_scenarios)
 
     def test_parse_requirements(self):
         tmp_file = tempfile.NamedTemporaryFile()
@@ -610,6 +615,8 @@ class ParseRequirementsTestScenarios(base.BaseTestCase):
             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,
diff --git a/playbooks/legacy/pbr-installation-devstack/post.yaml b/playbooks/legacy/pbr-installation-devstack/post.yaml
new file mode 100644 (file)
index 0000000..e07f551
--- /dev/null
@@ -0,0 +1,15 @@
+- 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
diff --git a/playbooks/legacy/pbr-installation-devstack/run.yaml b/playbooks/legacy/pbr-installation-devstack/run.yaml
new file mode 100644 (file)
index 0000000..9b48a34
--- /dev/null
@@ -0,0 +1,137 @@
+- 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 }}'
diff --git a/playbooks/legacy/pbr-installation-upstream-devstack/post.yaml b/playbooks/legacy/pbr-installation-upstream-devstack/post.yaml
new file mode 100644 (file)
index 0000000..e07f551
--- /dev/null
@@ -0,0 +1,15 @@
+- 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
diff --git a/playbooks/legacy/pbr-installation-upstream-devstack/run.yaml b/playbooks/legacy/pbr-installation-upstream-devstack/run.yaml
new file mode 100644 (file)
index 0000000..a8fb806
--- /dev/null
@@ -0,0 +1,137 @@
+- 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 }}'
diff --git a/releasenotes/notes/support-vcs-uris-with-subdirectories-20ad68b6138f72ca.yaml b/releasenotes/notes/support-vcs-uris-with-subdirectories-20ad68b6138f72ca.yaml
new file mode 100644 (file)
index 0000000..02669ab
--- /dev/null
@@ -0,0 +1,11 @@
+---
+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>`__.
diff --git a/tox.ini b/tox.ini
index cf27d987edf09cf8c040da6692df33ba887f620a..d97e6ff782b7d11ad620a837fabb0a53ff0149af 100644 (file)
--- a/tox.ini
+++ b/tox.ini
@@ -31,6 +31,16 @@ commands =
 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