Rework run_shell_command

A previous patch for windows support made the simple case of passing a
string to run_shell_command complicated with quoting. Clean that up by
reverting to list, which avoids the crazy quoting we had to do.

Change-Id: Ia3b8ac6a57e7400d0aab0d5265c851e536fb4e87
Fix test_changelog when git isn't globally setup.

This test was assuming that it was possible to make a new git repo and
commit to it, but some versions of git will error if no user email is
set, and some users choose not to have that set globally.

Change-Id: I94401c4fe716021c2cb2f1585690463746c740c9
Switch away from tearDown for BaseTests.

tearDown is never the right hammer.

Change-Id: If17ae653e25d4fba2b768cb569a573467448ccef
Add a test for command registration.

This would be better as a direct unit test, but I can't see where
thats done; and setuptools doesn't seem super friendly to that.

There are more commands that can be tested, but this seemed like a
good place to start.

Change-Id: I433880d9b08d07de0194450bbc90a423554e347c
Get rid of PyPI URL override in integration test

* tools/integration.sh: Overriding the PyPI URL is logic best left
to devstack-gate since it does those things already. Remove the
similar dance found here.

Change-Id: Ie2fcabb11b30dc3ab6564bdedd55b2b173c1bf2a
Merge "Fix test_changelog when git isn't globally setup."
Merge "Switch away from tearDown for BaseTests."
Add the semver documentation

This is a fork of the upstream semver documentation with an aim towards
being a PEP440 compliant implementation of the ideas.

Change-Id: I66a543fc08e0c1148a6db02dce207deabafed664
Merge "Add a test for command registration."
Merge "Rework run_shell_command"
Do not pass unicode where byte strings are wanted

Some versions of the tarfile module break when unicode data is
passed as metadata (like the version). See
http://bugs.python.org/issue11638 for details.

This change ensures that version number is always a byte strings
under python 2, where the problem exists.

Change-Id: Ic266cd7cce0394d28794ee61afe269f1296be2a2
Prevent ordereddict installation on 2.7

This supports https://review.openstack.org/#/c/48475/ in glance
to remove copy/pasted ordereddict code.

Change-Id: I9b0a2588c6e7da86c048698c5e6dfe37ced4dd7f
Comply with pep440

pep440 indicates that development releases should mark themselves with
the devN specifier.

  http://www.python.org/dev/peps/pep-0440/#developmental-releases

Instead of using aN as we are currently doing for automatically
generated versions, we should use the pep440 compliant devN form.

Change-Id: Ieeb5149f8b013e76621112593e0a5c0a64817e1f
Move base test case logic out of __init__.py

It's an antipattern to have functional code in an __init__.py. Move it
into base.py to be less anti.

Change-Id: Ib4db548b78e4e760d94099596a3c495a839836dc
Merge "Prevent ordereddict installation on 2.7"
Merge "Move base test case logic out of __init__.py"
Fixed pbr install to not error out and fail if git is not installed

Fixed the issue where pbr was erroring out (file not found) when
running 'python setup.py egg_info' since it was trying to get the
.git directory even if git was not installed.

Closes bug 1245676

Change-Id: I31e1f86f10f18897774b49eb293aede31641db31
Use pypi-mirror instead of jeepyb

Change-Id: I56dffb73526bd56ac544d320d9d6f2baa6175a2a
Remove pip as an argument from mkvenv

We no longer care about or support old pip, because it turns out that
evil happens. Remove it from the mkvenv function.

Change-Id: I27dbef7816eaac856e97ec5a036f6d5ca9b183af
Add wheel mirror structure awareness

We are going to start having wheels in the gate. Having them there
should not break folks who are not using wheels.  Don't start actually
consuming wheels yet, but add awareness about the wheel structure to the
pypi config.

Change-Id: Id29bb1bb31fc1647f8e1ea00bab487e447ba2838