Recent tox releases have put us on a config treadmill. Avoid these
issues entirely by using nox. Nox is a tox alternative that uses
standard tools like pip and should be simpler to use for us.
Change-Id: Ie79845bbed7ca1254aec466bd5219186fefcdac9
An addition has been proposed to leverage Gerrit's "Cc" feature, but
in order to test this we need a newer version of the server.
Newer Gerrit versions require HTTP basic auth instead of digest for
the REST API, so switch our tests to use that when uploading SSH
keys.
A newer JDK (11) is required, but this version should still be
available on our configured test platforms.
We update the test Gerrit server config to not try to send email. This
prevents annoying tracebacks from ending up in the Gerrit logs on test
failures.
We update test_cloned_repo and test_multiple_changes to look for strings
that newer Gerrit emits on successful push. Git review passes these
through to users and the tests look for them to determine if pushes were
successful.
Because of an SSH host key negotiation regression in 3.4.5, stick
with 3.4.4 for now:
https://bugs.chromium.org/p/gerrit/issues/detail?id=16215
Finally we remove skipsdist from tox.ini so that `which git-review` can
find git-review installed to the test venv. Tox v4 won't install the
project into the venv if skipsdist is set.
Change-Id: I540950b93356b1efbc34bca976bfb3134f47a599
We do this because easy_install on python3.5 is failing to find pbr. I
believe this is happening due to pypi's deprecation of non SNI tls
connections. They report that the version of 3.5 on xenial should be
able to do SNI but easy_install at least doesn't seem to do so.
Note we restrict this to python>=3 and <=3.5 as python 2.7 had
backported fixes. Also, this really only helps with unittesting via tox
as we instruct tox to explicitly install the requirements files before
creating/installing the package itself. This is the reason we stick this
in test-requirements.txt rather than requirements.txt.
Change-Id: Iac2c1f4f575de250ed0dba22d33b017322fd7562
Modernize our package metadata in the following ways:
* switch from description-file to long_description with the file
attribute, and specify an explicit content type and encoding
* replace the home-page parameter with the newer general url one
* add specific labelled project links for improved navigation from
PyPI's summary sidebar
* add commandline keyword to help folks searching
* use the specific license metadata in addition to the corresponding
trove classifier for it
* make sure wheels when built also incorporate the LICENSE and
AUTHORS files so that we're not distributing them without a copy
of the license text
* stop flagging wheels as "universal" now that git-review no longer
supports Python 2.7
* drop the old Sphinx integration config for PBR now that it's no
longer needed
https://setuptools.readthedocs.io/en/latest/userguide/declarative_config.html
Also update old openstack.org URLs throughout contributor docs and
examples/comments to newer opendev.org counterparts. Remove the old
redundant HACKING.rst file as well as a lingering MANIFEST.in from
the times before PBR was a thing. Replace the CONTRIBUTING.rst with
a shorter one cribbed from bindep. Add the test profile to the one
entry in bindep.txt to make it more apparent that's not a runtime
dependency of git-review. Adjust some old "OpenStack, LLC."
copyrights as indicated by the foundation's "Legal Issues FAQ."
Change-Id: Ie45d4d73ba7b5a860f09cc4f1d849587761d846c
Officially removes support for py27, which was already broken for
3+ months (unmaintained test tools).
Change-Id: I38c966d4e1680592f5cd94695051710695d41f71
Related: https://github.com/testing-cabal/subunit/pull/32
Fixes an issue we're seeing in the python3-based gate plus some other
random things.
Change-Id: I417c0a7669090ee3419c406024f6f3e3289b4c4b
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
The docs testenv in tox.ini was attempting to use Python 2.7.x with
Sphinx 2.x, which is not a compatible combination. This caused tox
failures like this:
2019-05-08 12:45:48.060953 | TASK [tox : Run tox without tests]
2019-05-08 12:45:48.759277 | ubuntu-bionic | docs create: /home/zuul/src/opendev.org/openstack/os-resource-classes/.tox/docs
2019-05-08 12:45:52.775007 | ubuntu-bionic | docs installdeps: -r/home/zuul/src/opendev.org/openstack/os-resource-classes/doc/requirements.txt
2019-05-08 12:45:53.838450 | ubuntu-bionic | ERROR: invocation failed (exit code 1), logfile: /home/zuul/src/opendev.org/openstack/os-resource-classes/.tox/docs/log/docs-1.log
2019-05-08 12:45:53.838669 | ubuntu-bionic | ================================== log start ===================================
2019-05-08 12:45:53.838995 | ubuntu-bionic | DEPRECATION: Python 2.7 will reach the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 won't be maintained after that date. A future version of pip will drop support for Python 2.7.
2019-05-08 12:45:53.839207 | ubuntu-bionic | Looking in indexes: http://mirror.iad.rax.openstack.org/pypi/simple, http://mirror.iad.rax.openstack.org/wheel/ubuntu-18.04-x86_64
2019-05-08 12:45:53.839421 | ubuntu-bionic | Collecting sphinx!=1.6.6,!=1.6.7,>=1.6.2 (from -r /home/zuul/src/opendev.org/openstack/os-resource-classes/doc/requirements.txt (line 1))
2019-05-08 12:45:53.839619 | ubuntu-bionic | Downloading http://mirror.iad.rax.openstack.org/wheel/ubuntu-18.04-x86_64/sphinx/Sphinx-2.0.1-py2.py3-none-any.whl (3.2MB)
2019-05-08 12:45:53.839749 | ubuntu-bionic | ERROR: Sphinx requires Python '>=3.5' but the running Python is 2.7.15
2019-05-08 12:45:53.839778 | ubuntu-bionic |
2019-05-08 12:45:53.839912 | ubuntu-bionic | =================================== log end ====================================
2019-05-08 12:45:53.840347 | ubuntu-bionic | ERROR: could not install deps [-r/home/zuul/src/opendev.org/openstack/os-resource-classes/doc/requirements.txt]; v = InvocationError(u'/home/zuul/src/opendev.org/openstack/os-resource-classes/.tox/docs/bin/pip install -r/home/zuul/src/opendev.org/openstack/os-resource-classes/doc/requirements.txt', 1)
So switch to Python 3 for building docs.
Change-Id: If04bd7cf8c316f3ae621c182a05aebc779b4d5b4
Adopts use of newer stestr for running the test suite.
Passing TERM is needed or stestr will ignore the --color option when
run under tox.
Change-Id: Id2d4ce36cdfedd5a847e0428854753d2cf4140ee
This allows user to define JAVA_HOME in order to control which version
of Java will be used by Gerrit during tox testing.
Avoid Gerrit startup failure due to use of wrong version of Java,
even if `java -version` would have reported the right version.
On systems with multiple versions of Java 8/9/10 it was impossible to
run tox because the launcher would have always picked the latest
version which is clearly not compatible with Gerrit war archive used
for testing.
In the future we will start using a gerrit container for testing and
avoid dependency on local Java version.
Change-Id: I05b6f7125393a009e1fdcf556b17df158c10eea0
Add: 'passenv = http_proxy https_proxy' whitelist to tox.ini because there's
basically never any good reason to throw away proxy configuration.
The addition of http_proxy allows downloading
http://tarballs.openstack.org/ci/gerrit/gerrit-<version>.war
behind a proxy.
https_proxy is not needed right now but added for consistency and
"future-proofing"
_JAVA_OPTIONS is added but only as a clue and commented out by default
because it could hold non-proxy configuration which would defeat tox'
environment cleaning and introduce test variability.
This is just the tox.ini source code part of the larger
I764ed51314c8e2d0572d1f01c9792bee0a40c7e6
includes documentation of workarounds and troubleshooting tips.
Change-Id: I764ed51314c8e2d0572d1f01c9792bee0a40c7e7
The sdist target is useless given that releases are automated.
Similarly, the '[testenv] install_command' uses the default value and is
therefore not required. Finally, some other things were slightly off or
otherwise annoying and can be fixed.
Change-Id: Ia029aba9ee5bc79cf39043a5fcaf9463aa1518f7
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
oslosphinx is the old hotness. openstackdocstheme is the new hotness.
Also, we can use doc/requirements.txt for docs requirements.
Change-Id: I9cbc670c8fb065d240251f061919479c87193ff5
This eliminates need for 127.* IPs mapped to loopback interface (which
is true only for Linux) and makes test site generation even more
predictable (name of site dir for a test is the same on any machine).
Hash function used is md5(test_id) % 10000 which is enough for now. This
function is checked for collisions before every run in tox.ini, so if
someone happens to add test that will cause a collision, it'll be
immediately visible. Hash function can be changed to anything else that
maps test ID string to a number in [0,10000].
Change-Id: Ib05d9b489a80e4f55c84db2f8bea20b88e959649
Split up the README into separate documentation files so we can publish
the documentation for git-review.
Change-Id: Idcdf43e73c5ca5b8cb239606236e3b2a660c46b7
This synchronizes requirements.txt, test-requirements.txt and
setup.py with the current state of the openstack/requirements
global-requirements.txt list. Also adds flake8 exclusions to tox.ini
for new hacking rules with which git-review does not yet comply.
Change-Id: I837ba57134bea16dd46c3f512bccd51cb39f76c8
Hard set testr concurrency to 2 so that fewer gerrit instances are
started in parallel compared to the default testr concurrency setting.
This will help avoid contention for memory and process resources when
running the tests.
Change-Id: Id3837500ce243af8d8ef762c6dcf50146876f406
* tox.ini: The LANG, LANGUAGE and LC_ALL environment overrides were
introduced originally during the testr migration in an attempt to be
conservative about the possibility that locale settings in the
calling environment could cause consistency problems for test runs.
In actuality, this should be unnecessary and any place where it does
cause issues ought to be considered an actual bug. Also, having
these in the configuration actively causes older pip to have
problems with non-ASCII content in some package metadata files under
Python 3, so drop it now.
Change-Id: I8747a52141321549c56214710b70c5838aacc84e
Closes-Bug: #1277495
Provide intergation testing for the git-review utility. Requires
Gerrit war file (like 2.6.1-gerrit.war) in the .gerrit directory in
the git-review project (like git-review/.gerrit/2.6.1-gerrit.war).
Tests start local Gerrit and create test user and project there to
be used.
Closes-Bug: 1048724
Change-Id: I3242479dcbcf230085178004540992680f3f8e30
For ease of future source code maintenance by OpenStack developers,
git-review is now adopting the same Python Build Reasonableness as
used by current OpenStack projects.
Closes-Bug: 1179007
Change-Id: I20427b51e84b90dcc1d870a547cdcc5240b4ff0e
* tox.ini: Newer hacking fails to recognize the Apache header in the
git-review script, so pin at <0.6 for now to match an upcoming
refactoring change. This will allow us to get some quick cosmetic
fixes in first.
Change-Id: I8e92b1d23d0b8d87e3bafe43d97c987abdf1d9f8
Fixes bug 1199400.
* tox.ini: In the pep8 environment, flake8 and hacking were both
listed as deps. This was fine while both worked with the latest
pyflakes, but then pyflakes 0.7.3 came along and was getting
installed before the more explicit pyflakes 0.7.2 requirement was
parsed for hacking. Since flake8 is in the requirements list for
hacking anyway, this just removes it from the pep8 environment deps
list.
Change-Id: I647235a4f6d109e00f13a156c57ff3a0e9a13a81
The automagic pypi publishing of releases through jenkins.openstack.org
depends on tox having a testenv called venv. Add this new testenv so
that git-review can be released automagically.
Change-Id: I89d78a22c13f94b5af3cda1115c8068424d42b34
1.17 was the last version that met the basic criteria of helping
first time developers sucessfully make their first commit. That's
the most important task of git-review. Revert all changes since
that version. Unfortunately, some of the minor bug fixes since then
will have to be re-written because 1.18, in addition to introducing
basic bugs, also introduced significant code reorganization.
Addresses bug 1038269.
Re-fixed pep8 errors since we've become more strict since 1.17.
Change-Id: Ia3495a6bb883ddf08155c6bfb69a58d19a15a804
Configure a pep8 tox environment so that git-review can make use of the
standard OpenStack pep8 test job.
Change-Id: I4d655a6fc86bbbf6b594b7b35570e75951aef7ab
We'll process requirements.txt to install depends as needed.
Also include a hacking doc explaining what we expect.
Also, including argparse automatically breaks our automagic version
numbering, so import it in main() (slightly evil, but not terrible)
Change-Id: Ib3f65459fe2cd54ce531b7ae22935e24bd8f8920