Update the requirements-check job to run on repos other than the
zuul.project, but keep that as the default. Add the job as a check
and gate job to this repo, but targeting nova. This allows us to
run the job on changes to its definition.
Change-Id: I67b818cdff01d29c62497826d4b4e3387c74e9e9
Depends-On: https://review.opendev.org/c/openstack/requirements/+/934249
There is no real reason we should be using some of the
terms we do, they're outdated, and we're behind other
open-source projects in this respect. Let's switch to
using more inclusive terms in all possible places.
Change-Id: I90ac679c1745a31474c6f24ec7953624ad056d79
All normal CI jobs use wheels that have been built previously, but
possibly are no longer buildable with the current set of requirements.
Add jobs that do not use these wheels to the experimental pipeline for
now.
Change-Id: Id2a5bca02ad37b5fbe3391ece9944112234ac52a
Move the library names that we are flexible with - backports from the
std.lib - from a hard coded list in code into a txt file
Change-Id: I414f7c386b838248f45fbce003a64d0c83a9919c
Requirements for confluent-kafka-python are behind what Debian offers so
there is no point in building librdkafka anymore.
Change-Id: Iebb88900ba9a78ba3c2b0348bdc3fca67279bfdf
Current base of nodjs-npm-run-test is deprecated. We need to switch to
the newer base job to pick up new behavior. Horizon npm tests require
a browser so the job inherit nodejs-run-test-browser now.
In addition, tox is not anymore pre-installed on the OpenDev CI images.
npm jobs in horizon need tox, so we need to install it in pre-run phase.
Change-Id: Iffa3f7631bec0a5f7b0c701df87305725cae5708
Signed-off-by: Sean McGinnis <sean.mcginnis@gmail.com>
Co-Authored-By: Akihiro Motoki <amotoki@gmail.com>
Recent changes to the base nodepool images removed the system-wide
installation of pip and virtualenv. As a result of this, some
requirements-check jobs are failing with an error that pip could not be
found.
This adds the ensure-pip role as part of pre_tasks in our
requirements-check playbook.
Change-Id: Id4969156383545eb94462677e3321b89c1160b48
Signed-off-by: Sean McGinnis <sean.mcginnis@gmail.com>
There are moments when bumping versions breaks all non-x86 builds
because upstream forgets to upload source tarball to Pypi.
As we need librdkafka 1.4.0+ we build version from Debian 'testing'.
Change-Id: Ib4a4eac5e5f14eab8104fb8fe4f49c90e333dab0
Ussuri and later will be Python 3 only. This updates our requirements
checks to only enforce local requirements match the exact global
requirements for the py3.5 and later entries.
Python 2 requirements can still be present in the local files, but this
allows teams that want to remove all Python 2 code to clean up their
requirements files for entries that are no longer relevant.
Change-Id: Ifaa44593b08630f84bb50060871412c66315adcc
Signed-off-by: Sean McGinnis <sean.mcginnis@gmail.com>
This ensures the playbook has done a local install of the repo so the
script run can assume that it is installed and can be loaded without
additional handling.
Change-Id: Iaf759b183e6821bf6690195586e7e65bf0533c82
This job was a legacy job that attempted to verify each project could be
independently installed after all global-requirements had been
installed.
This job is no longer necessary since we have much better coverage with
requirements-check and other jobs that make sure the requirements are
compatible. It is also a legacy zuulv2 job, uses the long deprecated
devstack-gate, and runs with Python 2.7.
For historical reference, this was added originally to PBR back in 2013
[0] and moved to requirements in 2014 [1].
[0] 378261a8cb
[1] 8e073738db
Change-Id: I29abcba929995f9307c392110160d889a29b47c3
Signed-off-by: Sean McGinnis <sean.mcginnis@gmail.com>
This updates the virtual environment handling to assume it is running
with Python 3.7 instead of 2.7. It also updates the virtualenv detection
to recognize if it is running python from a virtualenv without the
virtualenv actually being activated.
Change-Id: Ib841f1d6a683eff4836bfeeb73678199745a3a2f
Signed-off-by: Sean McGinnis <sean.mcginnis@gmail.com>
Existing handling was looking for the local path by moving up the
directory chain. With a relative path this would result in an empty
string for the requirements directory, then fail to find fail to find
files in the system root.
Change-Id: I0b77859eea4d2841ba148623b5bca7d1d165c89b
Signed-off-by: Sean McGinnis <sean.mcginnis@gmail.com>
This adds the use of upper constraints in our tox environments. Jobs
like openstack-tox-py27 have started failing due to trying to install
lib versions that only support Python 3.
The 'generate' target keeps the unconstrained deps since we actually do
need the latest installed for that.
Updates the requirements-integration job to run using py36 since that
now fails with running under py27. This should get the job to pass until
we are able to rewrite it to not be a legacy job.
NOTE(dmllr): updated install_command to include local constraints file
Change-Id: I2598503c2d4397d7efbb03a76df9a4e91dd0c1cf
Signed-off-by: Sean McGinnis <sean.mcginnis@gmail.com>
This patch changes the _DEFAULT_REQS_DIR constant to use opendev.org
rather than git.openstack.org in project-requirements-change.py to
address failures such as [1].
[1] http://logs.openstack.org/09/653009/5/check/requirements-check/
cb0e2ad/job-output.txt.gz#_2019-04-22_15_02_24_958181
Change-Id: I8ecadff2737a40d5dece4c7511ebe54a5efddf64
This is a mechanically generated change to replace openstack.org
git:// URLs with https:// equivalents.
This is in aid of a planned future move of the git hosting
infrastructure to a self-hosted instance of gitea (https://gitea.io),
which does not support the git wire protocol at this stage.
This update should result in no functional change.
For more information see the thread at
http://lists.openstack.org/pipermail/openstack-discuss/2019-March/003825.html
Change-Id: I53162497c2f53e45139e6a3aa9ff20538ec1b35e
There are two legacy jobs only used by this repository so they are
being moved from openstack-zuul-jobs to here. They need to be renamed
as part of the copy to avoid colliding with the old job and playbook
names.
Import legacy-requirements-integration-dsvm as
requirements-integration and
legacy-requirements-integration-dsvm-ubuntu-trusty as
requirements-integration-ubuntu-trusty.
Change-Id: I7d251a3f4c79b40ad00b6ce9e73dcc85ddd83edc
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
Update the version of python used to run the requirements-check script
as part of the python3-first goal.
Change-Id: Ifa21c3b3d55988c725e049733b227fa0ee22fbbd
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
Support local use more easily by skipping the installation step if it
looks like the user has already done that once manually. This makes
running the script multiple times much much faster.
Change-Id: Id2a139c9d68c2ebcee558cbc493b47167d2a2e1d
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
When a requirement setting is changed, require that all requirements
follow the rules.
Without this change, it is possible to partially update the dependency
list for a project in a way that leaves some of the dependencies out
of compliance. With this change, all dependencies must be compliant in
order to update any of them.
Change-Id: I154245339a36618ac2e9a5922bc37121d44bca29
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
Show the directories being read and the SHA of the patch being tested.
Change-Id: Ifa73c15a4cb7d965a397753463fdd2df68ae4acf
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
When --reqs is specified on the command line, take the
value. Otherwise select an appropriate default.
Change-Id: I97bf967c49f6765139b89e434297c9985daca28c
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
Without this patch, users running the script to test changes locally
must specify both the path to the script and the path to the local
copy of the requirements repository. This is inconvenient.
With this patch, when running in "local" mode the location of the
script is used as the default for the --reqs argument. This means the
user does not need to pass an extra argument on the command line.
Change-Id: I739750ddff2da55ad059641343637f91f3416127
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
The requirement lower bound and lower-constraints.txt value must
match.
The lower-constraints.txt value must be compatible with the specified
range, including exclusions.
If there is no lower-constraints.txt file the additional tests are
skipped.
If no minimum is specified, the misconfiguration is left to the other
validation logic to catch.
Only files associated with test jobs are checked because other jobs
are not run with the lower constraints list.
Change-Id: Iefe3ef8a89e965537486a1c9a62ab887b4401530
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
Rearrange and refactor the existing requirements check logic to better
support testing. Add a few tests for the function that determines if
a setting matches the global requirements.
Change-Id: I3ea9049cf728b11ef71ca180304ee7041303a409
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
The --reqs argument was not being used which made it difficult to run
the script locally to test it.
This change passes the directory given to --reqs as the requirements
repository directory so that in local mode the repository can live
anywhere.
The default is still set to the location used on the CI nodes.
Change-Id: Id812628345313b781d65140bb3c25adf1eb00bc5
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
Fix check-requirements: The assumptions with remote branch are not valid
anymore with Zuul v3, the change is on the proposed branch, check against
HEAD^1 instead.
Use the command module instead of script to get stdout in the
job-output.txt.gz file. Zuul v3 currently will not record the output from script
module in that file, only when command is used.
Note that the script module copied the file to the remote system - the
system where the tests are run - while command does not do this. But
the command is already on the remote system, use correct path for it.
Co-Authored-By: James E. Blair <corvus@inaugust.com>
Change-Id: Ib44332b4daf63b9d3fca6eadf0b4825614ca4aeb
We should be able to set the tox work dir in the job definition.
Also, updates the files matcher so changes to the jobs cause them
to run.
Change-Id: I519a5257bb3806169ee78dee9ac6ae92d282a889
Convert the existing legacy-cross-* jobs over to the
new cross-check-job.
Adds a small bump to upper-constraints in order to test
the success of this review.
Co-Authored-By: Dirk Mueller <dirk@dmllr.de>
Change-Id: Iba6a025e3a10185ad1d8217244b967713cace3f6
The script assumes it's being run in the directory containing the
proposed change, so we should chdir there. While we're at it, collapse
this to use the 'script' module which copies a script and executes it.
Change-Id: I43ed49d523c3131aad6c892c78fd95aba65c30fe
This is a straight copy of the original gate-{name}-requirements job,
except it copies the script over to the host rather than depending on a
baked-in copy of the script. Followups should rework it to stop using
zuul-cloner.
(jlk) updated to fix pep8 errors so that the patch can land.
Change-Id: I734db3b3e4d445e15084d1ca6e60cf2fe392385d