In gnupg 2.1 %no-ask-passphrase is a no-op. As a result gpg attempts to
prompt for a passphrase and as the shell is not interactive it fails.
To allow gnupg 2.1 to create passphrase-less keys we enable two options
new to gnupg 2.1.
%no-protection
%transient-key
Change-Id: If687ff005cf968133fc1fa12b1259a127c464e5b
The function signature for Sphinx's config.init_values() changed since
version 1.3. That leads to:
TypeError: init_values() takes exactly 2 arguments (1 given)
But the function is already correctly called from
application.Sphinx()'s constructor. So use the configuration object
from the application instead of creating an own config object.
Change-Id: I343c26560bfe5116d5348b50b1890b3442ed845a
Closes-Bug: #1379998
testr command is registered by pbr.hooks.commands if
testrepository is installed, so there is no need to
setup the entry point in setup.cfg.
Change-Id: I95aae12d1ac810b6d1d09b71f2a0d87be5ccb6ab
Closes-Bug: #1375048
This adds support for reading extras from setup.cfg.
It also adds support for handling environment markers, both in the
extras section and in install_requires and in requirements.txt.
Change-Id: I6fd8276012e65f82934df9c374613b1ce6856b5a
We don't depend on recursive installations via pip - and pip certainly
doesn't support that. We removed part of it recently, finish removing
it all.
Change-Id: I29bc4070b355e52124ceae459ea20403d134b60a
History may have commits with non utf8 text in them. Rather than
forcing users to rebase, handle it gracefully.
Change-Id: I6f6302c815b02234e27ee31f7ce87eab101b40ea
Closes-Bug: #1451976
We were generating versions lower than the last tag when preversioning
was in use and pre-release versions had been tagged.
Also attempt to run the script without devstack.
Change-Id: If984939003ae7c513ee76b52c6808db0c1766050
Closes-Bug: #1450210
It turns out we need to just inject into install_requires so that pip's
egg_info processing will do the right thing for dependencies.
Change-Id: Ia6c4725b153b19c3d7e422b1fa62b70cded686e2
When we removed output support for git hashes we also removed parsing
support for them. This would be ok (but rough on users), except that
we also removed the test that a pure git hash is an illegal version,
which should have stayed.
Change-Id: Idd8bc470fab1711d8555a793b1294b0977ba106d
Previously we were accepting many string tags to be release
tags for versions. This change enforces tags that are
considered to start with a digit, and ignore if not.
Change-Id: Ib1ca0eda62e375cdee70d35ed7c82a544082ef0a
Closes-bug: 1403124
Signed-off-by: Dave Walker (Daviey) <email@daviey.com>
The semver doc that Monty wrote was great, but doesn't work in the
real world. Specifically because 1.dev1 < 1.a1, we're unable to
depend on alphas without our testing getting locked down to the alpha
on PyPI rather than the revision we're trying to test.
This update fixes that by allowing 1.a1.dev1, audits for consistency
with PEP-440, fixes up the contact details now that this is team
maintained and notes that its as much Python specific as Linux
specific. We also remove the never-in-a-release
SemanticVersion.to_release method, as YAGNI.
Change-Id: I005a2386842633e9fcda76adfc523196c8c2c95d
Sem-Ver: feature
I was tracking down some test failures, which turned out to be a
missing Python.h, but this was hard to figure out without the stderr
output.
Change-Id: I0d0cf2440f5cd8b6ba3c0278fe7be5006a602a34
There are times when we need to run egg-info more frequently than we
had before.
Change-Id: Ie6ec39f7db28ec7807f1a74bc724f0781380c6cc
Closes-Bug: 1433681
The build_sphinx setuptools command supports selection of a builder.
Support the behaviour of being able to explicitely select any builder
available to sphinx via "python setup.py build_sphinx -b linkcheck", not
just one of the builders specified in the configuration file.
Change-Id: I4c7ddcaf413e1bcc72550b3d920f8a777a710c97
setuptools > 12 has a new flow for writing out generated script text.
It's nicer, actually, because it means we can just subclass and extend
one method instead of monekypatching.
Change-Id: I56e7bea60df8a59d859575d426ce93c45ffee314
When installing packages on Windows, generated scripts based on entry
points have wrong Python executable paths in the header. For this
reason, generated executables fail with 'fail to create proccess'.
For example, if the Python executable path is
'C:\Program Files\Python27\python.exe', the scripts will contain
'#!C:ProgramFilesPython27python.exe'
A simple fix is to wrap the Python executable in brackets on Windows.
Change-Id: Id017073c58c162c3e0c546b1ab76a7bea9a9f04e
Closes-Bug: #1416342
* pbr/tests/test_packaging.py(GPGKeyFixture.setUp): Testing signed
tags requires an OpenPGP key, but doesn't actually require one
entropic enough for safe production use. When generating a test key
with gpg add the little-known --quick-random/--debug-quick-random
option used by GnuPG's own testsuite. You can find it by searching
the source code, or in the NEWS file entry for the rather ancient
GnuPG 0.2.3 release, or in the debug option summary for 2.x.
Change-Id: I589f5c7db04b8e715c7a53cfa2fa18d37e20c66d
Closes-Bug:#1369768
Put write_pbr_json in pbr.pbr_json so that you do not need to import
pbr.packaging to use it. This avoids python3 errors with nose where nose
is imported by pbr before it is converted to python3 by 2to3 under
python3.
Change-Id: I1c420fed609bc60bbfdf78eb219e067ccab1a61e
We cannot get the git dir if git is not installed. Check that git is
installed before querying for the git dir. Return None if the git dir
cannot be found or if git is not installed.
Change-Id: Ic8e0c74a779b23842369a8cf01fcbf37885202ef
Fixes-bug: 1326682
(cherry picked from commit e7d2825d39)
Stop including git sha in version strings
We include it in pbr.json now. Including it is contentious in the world
of python, and it's up for debate as to whether or not it provides value.
Write and read more complex git sha info
Instead of encoding the git sha into the version string, add it to
a metadata file. This will allow us to get out of the business of
arguing with pip and setuptools about version info. In order to make
this really nice, provide a command line utility called "pbr" that has
subcommands to print out the metadata that we're now including in the
egg-info dir.
Only import sphinx during hook processing
When pbr is imported to handle writing the egg_info file because of
the entry point, it's causing sphinx to get imported. This has a
cascading effect once docutils is trying to be installed on a system
with pbr installed. If some of the imports fail along the way, allow
pbr to continue usefully but without the Sphinx extensions
available. Eventually, when everything is installed, those
extensions will work again when the commands for build_sphinx, etc.
are run separately.
Also slip in a change to reorder the default list of environments
run by tox so the testr database is created using a dbm format
available to all python versions.
Integration test PBR commits
Make sure that if a PBR commit is being tested then we install and
use that source rather than the latest PBR release.
Change-Id: Ie121e795be2eef30822daaa5fe8ab1c2315577ae
(cherry picked from commit 65f4fafd90)
(cherry picked from commit cd7da23937)
Closes-Bug: #1403510
Co-Authored-By: Clark Boylan <clark.boylan@gmail.com>
Co-Authored-By: Doug Hellmann <doug@doughellmann.com>
Co-Authored-By: Jeremy Stanley <fungi@yuggoth.org>
This patch adds support for choosing a requirements file, based on the
current OS, with the format 'requirements-{osname}'. This can be combined
with the current approach of choosing a requirement file based on the
Python version. The motivation for this is to replace conditional
choosing of packages inside setup.py.
Change-Id: I30c56082bb9b9bcd80128eedcef17b6beb793cf8
Apparently git wants the user.name set as well as user.email, so add
that to the fixture class.
Closes-Bug: #1296200
Change-Id: I6ce2d7e3ca6f0e6cf2d8de962027e8f9b9dcc9b7
There was a bug in the code to ignore bad tags - we stopped outputting
actual release versions altogether.
Change-Id: I0eb3fe6a09f0e696b96eab1e14549ea0a8fe27ba
Closes-Bug: #1370608
Some projects need to not generate and publish documentation for some of
their modules. This patch adds an option to list modules that should be
excluded from documentation auto generation.
Change-Id: I944a6ad5faa113ca26eb32b78be1bfc41e1387ef
This change adds the ability for pbr to read the package version from
the METADATA file as well as the PKG-INFO file. The PKG-INFO file
is present for sdist packages but for wheel packages (PEP 427),
there is a METADATA file instead of a PKG-INFO file.
Closes-Bug: #1369179
Change-Id: I2fe52c846fd88d37a4ab78de87eec9defce1ba0a
pbr has been allowing any tag (e.g. 'fred') to be a version - but fred
is clearly not a version! Since git describe cannot validate versions
for us today, we need to perform the describe calculations ourselves.
In order for this to work on Python3, a missing method __hash__ needed
to be added to SemanticVersion.
Change-Id: I09fa54231e77ae7671aa6f84eb91fd655e49ab25
Closes-Bug: #1356784
We want to suck the changelog into the description as well, but we
don't want all of it there. Making it a generator of formatted
objects lets us apply some logic without conflating things or tying
it up too much. This patch does prep work for the long term goal.
Change-Id: Idd00c219891500210c83faeb0f2d4370add3b069
The arguments originally being passed into sphinx.apidoc specify '.'
as the path to index. Unfortunately this includes the setup.py module.
This causes Sphinx to complain or break depending on the configuration.
This patch ignores setup.py by default and allows the project to
override it in their setup.cfg.
Change-Id: I7c164d42a096ba1a0daf314a689cc3252ca81c49
Closes-Bug: #1260495
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
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
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
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
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
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>
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
Ignore H904 because it's a deprecated hacking check.
Ignore H405 because it should be fixed with a separate patch.
Change-Id: I2e3bf41474cead1a860810886791e025139cca3b
ordereddict and importlib used to break when attempted to install
on python 2.7 - but this situation seems to have improved in
modern pip/setuptools. Remove the logic and support for this.
Change-Id: I49d9c9ee3108ad7ec9537f3fcec62e84d4de1680
Back in the day, attempting to install argparse on python 2.7 would
result in failure, as the setup.py of argparse failed hard if it was
attempted. That seems to be fixed, and when we do filter it out of
the list now, we cause problems with python 2.6 and wheels (if we make
a wheel on 2.6 and it depends on argparse, the pbr code means that
argparse doesn't get added properly)
Remove the filtering so that our wheels can be universal.
Closes-bug: #1346357
Change-Id: I49d539ac6fb8ee75f8d32fdfbd20129b13d36499
pbr is monkeypatching the Distribution intstance in setuptools, which is
OK I guess, but then it never puts it back how it left it. As a
consequence, whenever pbr installs before another project in a setup.py,
it breaks setuptools for everything that comes after it. This patch
will restore the Distribution instance.
Closes-Bug: 1324784
Change-Id: I20fbf255c634685e82f7b11987d2725de8280b9d
pbr contains a testr distutil command, but since it isn't registered
as an entry-point, it won't get used. Also drive-by a fix to
coverage, where we go to the trouble of setting a variable, and then
not using it.
Change-Id: I2227adf3643ffe6bcece0c7d2127d23e20d52f7a
* pbr/packaging.py(_get_version_from_git): Wrap calls to
_run_git_command in a conditional check for _git_is_installed to
avoid an opaque error message which can occur when you have a .git
directory but no git executable.
Change-Id: I6752c93d393a941daa1e7fb949c7c3d2a75337f3
Closes-Bug: #1326682
This is needed to avoid running pip install within the directory of
the test package on Python2.6, where it helpfully (not really)
installs the test package, not pbr.
Change-Id: I956ad29f68a32cb4d33af448333f649043e0a655
Reversing the logic in a few of the booleans and returning earlier
allows us to not have to be nested quite so deep.
Change-Id: Ia0dad183563381e9eb8c790ba61d0b350d74421d
--use-mailmap is a newer git construct that applies mailmaps to
things that are not using the mailmap aware format strings. But
we're using those format strings, and this breaks on precise.
Simplest thing - don't use the arg, since it's pointless and broken
for us.
Change-Id: Ic8ca062a6936a4f112aa52d0eb209211658611c2
Fix the indentation of the lines following the "toctree" directive
in the autoindex.rst file, so that they are aligned under the
start of the "toctree" directive.
Change-Id: Iff4ec8ea05819f6126a7be3d1fb5238c969fca21
Closes-Bug: #1307769
pip supports requirements files with a line such as:
-r other-requirements.txt
for specifying nested requirements files. Adding support to pbr
should be helpful with handling optional dependencies in projects
better, by allowing us to split the requirements files and then
merge them back together using -r lines.
Change-Id: I80e081b2229cc81eed26533c50afb07dc98a1db1
Less duplication for more reuse. If the intent was clarity before, I'm
happy to skip this and just have duplicate code...
Change-Id: I09fd14ecd9751e79a3a475dedf320c36ba0ba71c
Sphinx's config object needs to have its values initialized with
init_values for the values to be loaded from _raw_config into config.
Without this pbr gets null equivalent values from Sphinx's config. These
null values prevented man pages from being built when Sphinx warnerrors
is set. Fix this.
Change-Id: I0f17ca6eff036a0bcc6686fcc3f4efe0830cc585
Forcing the log level to info causes pbr to emit status log messages
in a way that breaks commands like "python setup.py --maintainer" and
"python setup.py --name", which are useful when scripting operations
that work on packages.
Change-Id: I6607c96e171f2f8efa89bd701018f4af6ec9c15a
This change makes pbr reads a specific requirement file tight to the
major Python version that is used. So you can add a file such as
requirements-py3.txt to have a specific requirement file for Python 3,
or requirements-py2.txt to have a specific requirement file for
Python 2.
Change-Id: I4b548e9830586f11b82539d334dd5cf4b0445a36
Add an option to pbr to use wheels when installing things from pip. The
speed boost this gives is quite sexy, as it can avoid having to
re-build C things all the time.
Change-Id: Id9b9b21ef949ff44c7c962e81576266661264a13
It turns out, git log already knows how to process mailmap files.
Just defer to it and stop processing that in python.
Change-Id: Ib3d6f85683fcbe8b5002117d2ee46dc3c008cae7
Just duplicating the git log isn't particularly exciting. Make
the ChangeLog a list of change subjects grouped by tag.
New output can be seen here: http://paste.openstack.org/show/49999
Change-Id: I7bf4d89dcdba135de663d75895b30963f7a44662
Sphinx builders were hard coded to be html and man in LocalBuildDoc
before. This enables users to config a list of builders in setup.cfg
as a comma seperated list, e.g. html,man,doctest
Change-Id: I3528b208c7e719286fe8816acf65f8efdc5844c6
We skip several requirements on python >= 2.6 because they
are only needed on 2.6 but there is no good way to express that in
requirements.txt. This can be confusing to users, because they may
not be expecting such a thing and may think something broke.
Print a message to the info log to that the user can see that we
chose to not install their non-needed requirement.
Change-Id: I11de12351123bbf406f77cf402feeab0e5dff26b
We keep a list of libraries that should only be installed on python 2.6,
but the check to see if a requirement matches that list was only doing
a simple string equality, which would miss attempts to install version
specified instances of one of them.
Instead, use pkg_resources to parse the potential requirements line and
operate on the parsed project name.
Change-Id: If64e4b2ee6696a0531e3ed6099e63372d47bc851
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
It's an antipattern to have functional code in an __init__.py. Move it
into base.py to be less anti.
Change-Id: Ib4db548b78e4e760d94099596a3c495a839836dc
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
This supports https://review.openstack.org/#/c/48475/ in glance
to remove copy/pasted ordereddict code.
Change-Id: I9b0a2588c6e7da86c048698c5e6dfe37ced4dd7f
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
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
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
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
Fixes bug: #1210912
Special characters like <, > or ' need to be escaped on Windows when used
with "cmd /C <command>" as implemented in _run_shell_command
In order to avoid escaping issues, shell spawning has been replaced with
direct command execution. As a consequence, grep/egrep command pipes have
been replaced with Python regular expressions where appropriate.
Change-Id: Idd50fd24f300bce655f99d42cb96e37d29d4cb14
This commit adds a new serial option to testr_command.py that when
set will run testr serially instead of running testr with the
'--parallel' flag.
Change-Id: Id49b105dc921e9acdef1a94d933719ad3a772c81
Implement a local egg_info command that only re-generates the
SOURCES.txt file when we need to. That is:
- If there is no SOURCES.txt, make one
- If we have run the sdist command, make one
Otherwise, leave well enough alone.
Also, skip doing any git processing if SKIP_GIT_SDIST is specified.
This should mean that consumers of our tarballs should not get screwed
by the need to inject git processing into the sdist.
Change-Id: I163b1c153d030e79b120600a2890edeb49e1fa90
* remove authors/co-authors duplicates
* sort all authors/co-authors
* add a new line to the end of file
Change-Id: I48a388e8ae2defd05ad617d5de709d0e623a5c36
If _run_shell_command gets no output, return an empty
string instead of None. This ensures that callers can
always treat the results as a string, and avoids the
TypeError that was preventing the ChangeLog and AUTHORS
files from being created properly in a git repository
without any commits.
Change-Id: I880210bc3ff92ece29b216a10e1d0c918f884eaf
* Adding a new pbr boolean option 'autodoc_tree_index_modules' for
creating a package/module hierarchy oriented API documentation.
* Using the sphinx.apidoc module in order to
generate the *.rst files and the modules.rst.
The sphinx.apidoc.main function call expected to be more future proof,
than the other options.
Change-Id: I145086387edf6b042368d4c16dd64948f67606b0
* Previously console_scripts could only reference functions:
script_name = package.name:function_name
This change adds support for classmethods:
script_name = package.name:ClassName.classmethod_name
This change is necessary to support a Neutron use-case.
* Fixes bug 1206734
Change-Id: I9509d3f2cea29fee5696936dbbb1d507764f1e81
The envvar SKIP_PIP_INSTALL isn't enough in all cases. Add the ability
to configure this in the config file.
Change-Id: Ic84bd6df52d2b96bf4afcaacd9c8b6fee26e9840
The attempt to optimize away some shell calls to pip wound up having
python setup.py install not do the right thing with missing transitive
depends. Remove the optimization check.
Change-Id: I0db9cc18fda98b8f53b61422e730fd76e0c6a0c1
Currently, the environment variable isn't always respected, especially when
dealing with the egg_info command. Let's factorize the code into a function
and use it everywhere instead of the REQUIREMENTS_FILES variable.
Change-Id: I1c3224ef76ee724c8176eb00ef948d80259e3c17
The configparser backport package has un-understood issues parsing
our files. But the intent of the code is to use whichever is the
package for the version of python in use. So, instead of trying to
install the python3 version first, which can also result in loading
the backport package, first try the python2 package, so that if
configparser itself is loaded, it will be because we're running python3.
Change-Id: I7ef497127822d0110804b04a674f24c195a07278
Similar to the work in the packages argument, allow the specification
of a directory to recursively include as part of the install.
Change-Id: Ife0414af468e7fcd4fc419eafc3e19e29efcfc7b
Setting the value directly in kwargs is not doing what we want it to do.
This is largely because of how the hook system works. When the hooks
process backwards_compat, they do a config.get('backwards_compat',
dict()), which is then written back to the config dict - which means
that blank override values are being fed in.
Later we can go through and just re-engineer how that works. For now,
unbreak nova.
Change-Id: I0c6055253cbc89b6884553e6f2fbfe8a7bbd1953
During python setup.py develop, easy_install is called via a different
code path to install the scripts. We need to inject into that place as
well.
Change-Id: Iab319f3771529c6d57f6a36ec717fb3278839f78
The way _run_cmd was working meant that in a test failures, the captured
output was a giant blob of text with \n strings inside it, making it
unreadable. By looping and printing, it becomes readable again.
Change-Id: I2db3057c34e2a50f7a420f2dbcf45c6ec874b632
The console scripts generated by entry_points are too complex for
our needs and make things run slowly in service of a multi-version
install that we don't use.
Instead, install a simple script which just does a direct import.
Change-Id: I1ec46837cea07db514f2fb6338c7bced34a83c4a
Set the integer_types variable to the same kind of object
under python 3 and 2 so that when we go to manipulate it
later it works.
Change-Id: I8f9db1d76931ef834645095952f71415d98f0b5c
If you're running pbr codepaths, you want the hook. There is no need
to say "pbr=True" in setup.py and then to list the hook in setup.cfg
now that d2to1 is in the tree.
Change-Id: Ie33d3e08d5a4133f5caf2613859919ce4f02c4a0
When we merged in d2to1, we kept it separate, but I don't think there
is a great benefit to doing that.
Change-Id: I3972b3132619e8e2dd7e362ca5fe9d1e3add43b8
New projects created by OpenStack Project Creator
<openstack-infra@lists.openstack.org>, so it'll be better to remove it
from the AUTHORS file.
Change-Id: I32975bd430635a38c7e737e70f381f7b07c6ed0c
While tracking down a troveclient issue, found several issues in
the new python setup.py test command:
* check the right source files when we're trying to decide whether to
re-run egg_info
* fix bogus dependency links args when installing test requires
* fix bogus .egg_info dir name when a project name includes a hyphen
Change-Id: I0a1964902a87f72eb67f43b10f90dfee8c7d7875
swift has an AUTHORS file that puts a header at the top of the
file with some extra information, then lists the contributors.
If we put AUTHORS.in at the top of the generated file, then we
can put their boilerplate into AUTHORS.in and the resulting file
should look the same.
Change-Id: I2caa4e606dd1199f49c925dccc64d492848ac580
Distro packagers don't really need for us to attempt to pip install
things for them. They're usually managing that dependency tree
in the distro packaging. Add an env var they can set in their spec
or rules files to skip any pretense of doing anything with install
requirements.
Change-Id: Ia6387eab3267fa3c4019c4a9d90e4780319c2397
We can detect if the env we are a part of has our requirements met
already. If this is the case, don't re-run pip at all, so that we
don't waste time.
Change-Id: If49cd7bd558f98d8e6f51b0fe0192978bee9c77e
Don't fail on inability to write new ChangeLog or AUTHORS files.
Ignore comments in requirements files
Change-Id: I0c017b493ca1ef3f1c770daf25d8778bd98f02ef
Fixes: bug #1192889
As a step towards a common interface to running tests even when we're
not in the virtualenv - make python setup.py test actually be useful.
Change-Id: I8e4bc9bb78be37b4d13f8d6c2edfe2d67554ad78
If we're running the installation of dependencies for installation
ourselves anyway - just use pip and be done with it. This means
that our requirements will get installed consistently regardless of
whether we're using pip, python setup.py install or a tox environment.
Change-Id: If92557a33a76553ad36bd136fa87780857a894b1
When running tests from the released tarballs, the
AUTHORs related checks are failing due to missing .git
directory and the fallout caused by it.
Change-Id: Ic960863621f1b239ced299f892466537431d44d5
It was long and rambly. It's also in need of unittesting. So split
it into some classes so that we can test the inputs and outputs
more sensibly.
Change-Id: I3d28f5771e38b819f98a9af06aeb06529be7b302