add docs env to tox

Change-Id: I2d987e15ce7c61ed32a5f5178130f3654d71a938
cleanup tox.ini

remove unnecessary dependency declarations

Change-Id: If2f3c7fcabe474902cdb18cd6890a49144266690
Introduce a SemanticVersion object

This object represents a single semver version and provides serialisation
into different forms (dpkg/rpm/pep-440).

implements: blueprint pbr-semver
sem-ver: feature
Change-Id: I482e07cce9b65df452d5b9af4c73960df68a141e
Merge "add docs env to tox"
Merge "cleanup tox.ini"
Handle more local dev version cases

Due to an oversight in testing (the tests for local dev versions were
all running with PBR_VERSION in the environment) we did not handle
enough variety of local development versions.

Specific new cases we now handle:
 - untagged trees - where git describe returns just the sha
 - tags with versions with less than two components (e.g. 1)

Change-Id: Ieaeca592b6ba26c5da50dcad3fb6e7551431d50e
Co-Authored-By: Robert Collins <rbtcollins@hp.com>
Teach pbr about post versioned dev versions.

Untagged versions should not be presented as final versions, which is
what was happening. The rules for dev versions are that they lead up
to the next release, so to emit a dev version we have to increment
the current version, then we can emit a dev version number.

implements: blueprint pbr-semver
sem-ver: feature
Change-Id: Icf2f1999613e0d26424798697de34811b9cfc4ab
Raise an error if preversion versions are too low

Right now the only automatic version number we have is 'last release',
but thats enough for preversioning to be invalid. When we get API and
ABI break support, this will do more useful things like telling us the
next version is not sufficiently higher.

implements: blueprint pbr-semver
sem-ver: feature
Change-Id: I2583c7409d51364ef9d84b39356d5608a95cb6f8
Look for and process sem-ver pseudo headers in git

At the moment careful changelog review is needed by humans to
determine the next version number. Semantic versioning means that all
we need to know to get a reasonable default next version (and a lower
bound on the next version) is a record of bugfix/deprecation/feature
work and api-breaking commits. In this patch we start scanning for
such headers from the git history to remove this burden from
developers/project release managers. Higher versions can of course
be used either via pre-versioning or by tagging the desired version.

implements: blueprint pbr-semver
sem-ver: feature
Change-Id: Id5e8cd723d5186d1bd8c01599eae8933e6f7ea6d
Handle more legacy version numbers

We were not handling 1.2.1a1 or 2.1.0.rc1.

Change-Id: I087ff6f0449d528ee86b8e16721d12fd9b231846
Closes-Bug: #1361251
use get_boolean_option for warnerrors

This way even warnerrors = 0 is handled properly.

Change-Id: I83d2eb105d07fd65ebc720c63038fc3c542b7f90
Merge "Raise an error if preversion versions are too low"
Merge "Look for and process sem-ver pseudo headers in git"
Accept capitalized Sem-Ver headers

In Git, HTTP, and SMTP, header names generally have the first letter of
each word (including each part of a hyphenated word) capitalized.  In
all of the same cases, the actual headers are generally not considered
case-sensitive.  Accomodate this convention and the robustness principle
by performing lower-case comparisons of header names, and using
upper-case names in all of the documentation.

Change-Id: Iffa68107c8ff2aeaac92434da85155213e45a3cd
Work toward Python 3.4 support and testing

Change-Id: Ie49b56c0fd67f36d251aa4690d915c05225d49d1
Merge "use get_boolean_option for warnerrors"
Merge "Accept capitalized Sem-Ver headers"
Allow for inclusion of authors and changelog when building docs

When git is available and changelog and author building has not
been turned off try to build these two files so that they can be
included in any subsequent documentation.

Change-Id: I2fc7ade645e3ff1a67e30bd4d35676b5e10916af
Retry the integration setup on connection error

Sometimes there are network errors communicating with pypi
during a long running (1h+) integration gate job. This
causes the job to fail, and wastes a lot of time re-running
the job to get it to pass. This change makes it less likely
to fail, as if there is a timeout or socket error, the
integration setup will retry.

Change-Id: Ic4c888626699eb710e85e3bdc48dd6ee74bdf024
Stop using intersphinx

Remove intersphinx from the docs build as it triggers network calls that
occasionally fail, and we don't really use intersphinx (links other
sphinx documents out on the internet)

This also removes the requirement for internet access during docs build.

This can cause docs jobs to fail if the project errors out on
warnings.

Change-Id: I71e941e2a639641a662a163c682eb86d51de42fb
Related-Bug: #1368910