No one in OpenStack should be using this command any more and it's
unlikely that anyone outside it is even using these. We don't want to
have to continue supporting this going forward so let's start the
deprecation process.
Change-Id: I51e8ebb0268ff7ec1e71d66ff59422fcc7377c4c
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
We now have a path away from this feature, so let's deprecate it while
we can.
Change-Id: Idfc34b9085c6da9b8cac24986be5f3bad142d927
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
This duplicates what already exists in openstackdocstheme but provides a
migration path for users outside of the OpenStack ecosystem.
Change-Id: I73750b3fe984f9d2f339aac0f435a83ee68c89da
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
A not-so-recent change to setuptools [1] has resulted in the inclusion
of a docstring from distutils that uses broken rST.
docstring of pbr.packaging.LocalManifestMaker.add_defaults:11:Definition
list ends without a blank line; unexpected unindent.
Resolve the issue by simply redefining the docstring.
[1] 252ee6f...f1cf491f
[2] https://github.com/python/cpython/blob/3.4/Lib/distutils/command/sdist.py#L217-L229
Change-Id: I84b5097bc31af601061a77dfea9d6a6f38b018cc
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
Expose the python_require setuptools option via the python-requires
metadata item in setup.cfg.
Closes-Bug: 1735668
Change-Id: Idf2bb90882121e118f5b7531e027d350c0e4a441
Co-authored-by: Dennis Verspuij <dennisverspuij@users.noreply.github.com>
This reverts commit 07de844615.
The output console_scripts generated after this commit landed are no
longer directly callable from windows machines. Prior to the this
reverts we wrapped console_script entrypoints in a .exe on windows so
you could directly execute them, just like on *nix systems. However,
after the commit we are no longer generating callables on windows.
Instead PBR generates a txt file, without a suffix, that is not a valid
executable on windows. It is exactly the same output as on a *nix
system, but this neglects that scripts with shebangs don't work on
windows. (For example generated output on windows see [1]) The exe files
were needed so that we could directly execute the console scripts on
windows. This commit restores this functionality so that PBR will
properly generate executable console_scripts on windows machines again.
Closes-Bug: #1761134
[1] http://paste.openstack.org/show/722389/
Change-Id: Ifc13879b7f64650d444e3a14df1a53b2172828e4
I went to build infra-specs which specifies sphinx==1.5.6 and hit
Traceback (most recent call last):
File "setup.py", line 29, in <module>
pbr=True)
...
File ".../pbr/builddoc.py", line 235, in run
self._sphinx_run()
File ".../pbr/builddoc.py", line 162, in _sphinx_run
freshenv=self.fresh_env, warningiserror=self.warning_is_error)
File ".../sphinx/application.py", line 244, in __init__
self._init_builder(self.buildername)
File "...//sphinx/application.py", line 311, in _init_builder
raise SphinxError('Builder name %s not registered' % buildername)
sphinx.errors.SphinxError: Builder name h not registered
It appears to be a typo introduced with
I18bbf693bca2f6e49d822ae2940d2170a2b90ce9; make sure we're walking the
self.builders list; not the string self.builder.
Change-Id: Ic038029c361b3ede48f2b495c74430d3ad1eab82
Per the referenced bug, relying on the terminal encoding to read
setup.cfg is not safe. Unfortunately, Python 2 doesn't accept an
encoding when reading config files so we need a fallback path for
that version.
Change-Id: If49344db2f9139c0557f6acd17671163e02468a5
Closes-Bug: 1745396
We were treating this a single line, comma- or space-delimited option.
This was incorrect and was causing issues for projects like neutron-lib
when Sphinx 1.7, which switches from optparse to the stricter argparse
was used. In addition, this project was including comments in the
multi-line opt. These were being passed through but Sphinx < 1.7 was
simply ignoring them. These are now filtered out.
Change-Id: I177edf0f44714175da220cf3a960b8f23aa4ab09
Closes-Bug: #1753082
Different versions of setuptools seem to produce
different representations of the version specifiers,
so use pkg_resources to parse the values again
and then compare the resulting objects so we
aren't tripped up by rendering differences.
Change-Id: Ic67cc936208dbd96b6d811c6aa284fd87df5b118
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
Closes-Bug: #1758877
This makes Sem-Ver header handling more reliable by ignoring any
potential user configured git log output format. Instead PBR supplies
its own format string that will output the commit message bodies in
their entirety without wrapping and other whitespace formatting done for
humans.
Change-Id: I957a8c182585119534b4e02c34e7140a3e07d1d6
Related-Bug: 1738685
Fixes-Bug: 1704625
Newer versions of Sphinx have moved the apidoc module into sphinx.ext
and the API is slightly different (the function expects sys.argv[1:]
instead of sys.argv[:]. So, figure out where we can import it from and
set a flag so we can invoke it properly. See this change in sphinx for
details:
87630c8ae8
Change-Id: I8235968f8a474c9e6088d935d0868570b2917c07
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
distutils.log has a warn() function but not a warning() function.
Change-Id: Iebfdb9e4d062d188ef9c73b66007a70f9c289ed2
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
This has been marked as deprecated for a long time in the docs but
we've done nothing to indicate this from a code perspective. Fix this.
Change-Id: I916bf16773a2a2cffa3c352d5dba52e3fbc298c2
Fixes-Bug: #431529
Allow protect tag (in gitlab, github) using "v*" regex.
Change-Id: I3e6eb1031ae92349c5a9531b143b6470482664e7
Signed-off-by: Gaetan Semet <gaetan@xeberon.net>
These are not recommended for use in OpenStack anymore and both nose and
testr offer native setuptools commands that can be manually aliased to
'test' on a per-project basis if necessary. Deprecate with an eye to
removal in the future.
Change-Id: I753f2ffe8b223b180b8ed813d879b3a28b47a1ab
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
This is mostly an exercise in refactoring, moving tests into a single
test case. An additional test is added, however, verifying that default
requirement files are indeed used if nothing else is provided.
Change-Id: I8dc6cc8c50f1280f24731480501fab61fc401809
There's a little bit of duplication going on here. Resolve this by
moving tests that predominantly focus on FILE to tests/test_FILE.
Change-Id: I29355155853e543d017db00c936bcdc88c1c97ad
In bindep files we use a 'test' environment to indicate dependencies
that are needed for testing. Make the same thing available for our
python dependencies, allowing things like "pip install .[test]" or "pip
install shade[test]" to work.
Change-Id: If3ad8b6a79a8cab2f7434b73207f35384e8516ba
As of setuptools 36.4.0, support for Description-Content-Type
metadata was added via the long_description_content_type variable.
Add a metadata.description-content-type option for setup.cfg so it
can be provided through PBR. This makes it possible to instruct PyPI
and potentially other frontends to know an explicit RFC 1341 content
type, along with character set and variant, for the accompanying
long description.
Change-Id: I852f603d9ca4e4cd469eab4cae9933ef2581e3af
By including one or more Project-URL entries in PKG-INFO metadata,
PyPI can display helpful hyperlinks in a generic manner. Add support
here to be able to pass it through setup.cfg with a project_urls
dict. See the corresponding section of the Core Metadata
Specifications from the Python Packaging User Guide for details:
https://packaging.python.org/specifications/core-metadata/#project-url-multiple-use
Setuptools implementation is underway here:
https://github.com/pypa/setuptools/pull/1210
Change-Id: I14e580c654b619cab7eb24e31f736056d6cf9bd4
reno recently gained a 'build_reno' command that could be used to build
a reno cache file via setuptools. Integrate this and start including
that file as part of the final distribution.
Change-Id: I54cb7a894770040165cc918469cb0ed486518789
This was done in change I7418cc3ab36823d029a93f86df9c8b25aa7b0c5f to
keep the diff clean [1]. If can be removed now.
[1] https://bugs.launchpad.net/pbr/+bug/1620153/comments/1
Change-Id: Id66ca0522cc4c5601714e1e9ba9379492edc5905
Discovering the underlying Distribution class through the class
hierarchy saves unpatching and repatching.
Based on commits ed579a5dbb2a1843874969a58bb2b6f1eca2e50d and
10b87cc1eb92f50906ff645d0221c74f03de94b9 from [1].
[1] https://github.com/jaraco/pbr/commits/issue-1620153-signoff
Closes-Bug: #1620153.
Change-Id: I7418cc3ab36823d029a93f86df9c8b25aa7b0c5f
Signed-off-by: Jason R. Coombs <jaraco@jaraco.com>
Signed-off-by: Monty Taylor <mordred@inaugust.com>
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
distutils2 is long dead and many of its best ideas have been
incorporated into setuptools. One of the ideas that *has not* been
incorporated is the idea of command hooks, of either the pre or post
kind. pbr is still carrying the code for this, and there are several
issues with this:
- No one is using this functionality in OpenStack and, given the
complete lack of documentation on the matter, it's very doubtful that
it's being used anywhere else [1]
- It's causing issues for projects attempting to hook into the
'distutils.commands' entry point on Python 2.7, which it seems no else
must have attempted yet [2].
- distutils2 is dead and advanced features like this that we don't
explicitly need should not be retained
We could attempt to fix this but why bother? Good riddance, I say.
[1] http://codesearch.openstack.org/?q=pre_hook%5C.&i=nope&files=&repos=
[2] http://codesearch.openstack.org/?q=distutils.commands&i=nope&files=&repos=
Change-Id: I01f657034cffbf55ce830b7e8dbb6b3d94c1fd18
The 'monkeypatch_method' function no longer has any callers and can be
removed.
Change-Id: I402eb482d2c1db7331bd872c5169db8e59c9a34f
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
We don't want to support older versions of Sphinx forever. While
OpenStack's global requirements have been bumped to Sphinx 1.6, there
are non-OpenStack users in the wild. Give them a chance to upgrade to
the newer version before we completely remove support.
This also gives us a chance to deprecate the '[sphinx_build] builders'
setuptools option, which is no longer necessary with Sphinx 1.6+. Do
this. The documentation is updated to reflect this (and some references
to a "custom" 'source_dir' option removed, as it's not at all specific
to pbr).
Change-Id: I18bbf693bca2f6e49d822ae2940d2170a2b90ce9
Related-Bug: #1702872
In 'c024066', we resolved an issue with pbr and Sphinx 1.6+ and
implicitly started using Sphinx 1.6's support for declaring multiple
builders as part of the setuptools plugin. However, in doing so, we
neglected to provide a migration path for folks who were using the older
option. This meant folks using the '[sphinx_build] builders' option
would see a breaking change in behavior when upgrading to a pbr release
including the above change. Resolve this issue now.
Note that we want to deprecate support for this option in the future,
but doing so is not a backportable change and will be done separately.
Change-Id: Ic2fe67f932ba26b665110ae66431a5359fc50016
Closes-Bug: #1702872
Related-Bug: #1691129
It now appears safe to remove the Windows conditions that skip
executing override_get_script_args() and install_wrapper_scripts().
Having demonstrated that bdist_wheel works, it should now work for
sdist too, and experiments do indeed appear to bear that out.
Change-Id: Ic243a3ccd3aee0dcb17d6419bc44271f5ebe5551
Closes-Bug: 1521407
This commit 6fdf4e1086 have changed
the default binded ip, it binds one random interface on the system
instead of all. Break breaks all gate that expect the default to at
least listen on localhost.
This change restore the previous default.
Change-Id: I6323e66ea98d15c52b07c8e737fdd6f30aef0238
Allow the user to specify 'api_doc_dir' in the build_sphinx section of
their setup.cfg to control where the auto-generated API documentation is
written.
Change-Id: I2bd5652bb59cbd9c939931ba2e7db1b37d2b30bb
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
Upstream Sphinx now has some new expectations that are no longer being
met by some of our tests because we mock the constructor for the
application class. Fix the test to ensure the application instance has
the needed attributes.
Change-Id: Iad009ce74301c9ffd49ff2b2bab4afd9b7dd1388
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
The packaged WSGI server currently only accepts a custom port.
This patch adds a new option to accept a custom interface. This is
useful in some cloud environments where there are restrictions on
which IP addresses are available to mount a server.
Change-Id: Iddf10bc422ae607b2d6bf2304dd032d7471ec458
Currently if an index is specified by either -i, --index-url or
--extra-index-url, the following error may be encountered when
setup is run.
Invalid requirement, parse error at "u'-i https'"
This patch ignores those lines in a requirements.txt file durning
parsing.
Closes-Bug: #1394999
Change-Id: Ie03f54ca7a7edad7a26fa1721f7b26532b65e760
As noted by stephenfin, Sphinx 1.6 provides its own code to build doc with
multiple builders. The one provided by pbr so far for Sphinx < 1.6 is not even
compatible with 1.6. This patch fixes that by running the native Sphinx code
for Sphinx > 1.6 and falling back to the old code for older Sphinx versions.
Closes-Bug: #1691129
Change-Id: I5224235b1056a248b246c54e2d99eea94d53c4eb