Commit Graph

118 Commits

Author SHA1 Message Date
Stephen Finucane 457a89ffda Add support for PEP-660
As with PEP-517 support, this is simply a shim over the setuptools
implementation added in setuptools v64.0.0 [1].

[1] https://github.com/pypa/setuptools/pull/3488

Change-Id: I32f974db37e364cf634b050b40bf0820dce0a3a3
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
2023-11-01 12:53:18 -07:00
Clark Boylan ee04b62de2 Use _ instead of - in setup.cfg directives
Setuptools deprecated -'s at some point and they result in a bunch of
warnings in failed tests. This is distracting and eventually is likely
to create real errors. Go ahead and fix them now.

Change-Id: If3594269495ae1f3cefffd4c4f38d87af5c7fdfe
2023-05-31 13:25:23 -07:00
Clark Boylan 47c5afe79a Remove sphinx doc building integration
Setuptools and sphinx [0] have removed support for building docs through
setup.py. This has broken imports which break our own local doc builds.
Lets just remove it all (including the tests) so that we are compatible
with modern setuptools and sphinx.

An alternative approach would be to do conditional imports and continue
to support this for old setuptools and sphinx. But that feels like a
dead end that will be difficult to test. Probably better to rip this
bandaid off.

[0] https://www.sphinx-doc.org/en/master/changes.html#id7

Change-Id: I65038caceb192f495288414079ca0f07ce6318bb
2023-05-31 13:25:13 -07:00
Jeremy Stanley 571e259969 Drop wheel from pyproject.toml examples
Per https://github.com/pypa/setuptools/pull/3056 the addition of
wheel in build_system.requires is redundant since SetupTools already
drags it in anyway. Simplify our recommendations accordingly.

Change-Id: I0359ed11a6f0c54dc1af6a7f5f34e49476c58fb0
2022-02-28 14:35:37 +00:00
Clark Boylan d21c2caf1d Clarify the need for setup.py with PEP517
There was a misunderstanding that PBRs PEP517 build hooks meant we no
longer needed a setup.py. But it turns out the setuptools build_meta
hooks that we wrap call out to setup.py. This means PBR will continue to
need to be used in conjunction with a setup.py.

This is better for backward compatibiltiy anyway so not a huge loss.

Document this more properly and update the test to reflect it.

Change-Id: If4320da1e89a5c765e0bfe56b724364f9cba34f3
2021-11-08 08:56:18 -08:00
Monty Taylor 09ee153410 Add a PEP517 interface
pep517 defines a new module method of specifying build backends.
To allow pbr to exist in this world, we should define the interface
that's needed. For this to be used, one will put:

  [build-system]
  requires = ["pbr>=5.7.0", "setuptools>=36.6.0", "wheel"]
  build-backend = "pbr.build"

Into pyproject.toml - and the pep517 interface will be used.

This doesn't really change anything else - it just makes us support this.
So by itself this commit isn't SUPER helpful. But maybe let's take baby
steps with something this prone to strife, yeah?

After this we can start teasing some things apart and doing our
own things directly.

Co-Authored-By: Clark Boylan <clark.boylan@gmail.com>
Change-Id: I293f59b5074a38c78adffe580de2f1533bb01ce7
2021-11-03 10:05:32 -07:00
Hervé Beraud 8e47cad901 Dropping lower constraints testing
We facing errors related to the new pip resolver, this
topic was discussed on the ML and QA team proposed to
to test lower-constraints [1].

I propose to drop this test because the complexity and recurring pain needed
to maintain that now exceeds the benefits provided by this mechanismes.

Replace assertTrue by assertIn to fix with the latest flake8 version.
Add six in the documentation requirements to fix the build.
Fix the conflict status with hacking.

[1] http://lists.openstack.org/pipermail/openstack-discuss/2020-December/019390.html

Change-Id: I580da15fefd6ad352e69749b77cc4664aef84f9c
2021-03-09 12:25:45 +01:00
Hervé Beraud f5e4c6577a Adding pre-commit
Introduced changes:
- pre-commit config and rules
- Add pre-commit to pep8 gate, Flake8 is covered in the pre-commit hooks.
- Applying fixes for pre-commit compliance in all code.

Also commit hash will be used instead of version tags in pre-commit to
prevend arbitrary code from running in developer's machines.

pre-commit will be used to:
- trailing whitespace;
- Replaces or checks mixed line ending (mixed-line-ending);
- Forbid files which have a UTF-8 byte-order marker (check-byte-order-marker);
- Checks that non-binary executables have a proper
  shebang (check-executables-have-shebangs);
- Check for files that contain merge conflict strings (check-merge-conflict);
- Check for debugger imports and py37+ breakpoint()
  calls in python source (debug-statements);
- Attempts to load all yaml files to verify syntax (check-yaml);
- Run flake8 checks (flake8) (local)

For further details about tests please refer to:
https://github.com/pre-commit/pre-commit-hooks

Change-Id: I730018e2bf788be5ac4e993af1746296206edfc1
Signed-off-by: Moisés Guimarães de Medeiros <moguimar@redhat.com>
2020-10-21 16:48:08 +00:00
Zuul bf28efb263 Merge "Add Release Notes to documentation" 2020-08-27 16:56:57 +00:00
Jeremy Stanley 175fad9af9 Add Release Notes to documentation
We're building the sdist to be able to add PBR's changelog in its
docs, so may as well publish the Release Notes document it builds
too.

Change-Id: Icd1b4ae04de8034bc15db87be457751e70e26f6d
2020-08-11 21:20:17 +00:00
Zuul c9f0f38f03 Merge "Re-add ChangeLog" 2020-08-06 22:15:07 +00:00
Zuul c829e50826 Merge "Update some url to use opendev.org" 2020-08-06 16:23:53 +00:00
Jeremy Stanley 5fdbae5952 Re-add ChangeLog
One of PBR's features is ChangeLog generation, so it only makes
sense that we would include PBR's ChangeLog in published
documentation too. (Also publishing a ChangeLog is helpful.)

Change-Id: Ie1561c0852dfc6731c29e9202f74f0e4c4b08786
2020-08-06 13:10:36 +00:00
Antoine Musso 07b6ac85e6 Update some url to use opendev.org
The git web URL is now: https://opendev.org/openstack/pbr

Also stop linking README.rst to no more existing history/changelog
documentation page (removed by 96b84a9014).

Change-Id: I56b0e2b86a7fc66c5ae25e06175033a885f500f6
2020-08-06 15:09:50 +02:00
Andreas Jaeger 2242cb652e Support newer openstackdocstheme
openstackdocstheme 2.2.0 introduces new variables, add them here so that
both older and newer openstackdocstheme versions are supported.
2.2.0 suport the old settings but in the future those might get removed,
so let's be future-proof.

Since this repo is still supporting py27, we need support for older
openstackdocstheme versions.

Change-Id: I6ee389843d1d959cffb126e0cd56ef6ef1e2f5e1
2020-08-06 08:33:50 +00:00
Ben Nemec 96b84a9014 Stop using pbr sphinx integration
Switch to sphinx-build directly and add sphinxcontrib-apidoc for
generated api docs.

Change-Id: I089a7695986892dcb47c5b5e79a6a227891a2347
2019-06-07 18:37:58 +01:00
Hervé Beraud 30926f6dbe Update Sphinx requirement
Sphinx 2.0 no longer works on python 2.7, so we need to start capping it
there.

Change-Id: Ia13b8a75f11ee997e00e817464829ce8b86d2e16
2019-05-16 15:33:37 +02:00
Ben Nemec fba29ab4f1 Typo fix: s/extract_mesages/extract_messages/
Change-Id: If4141dd8e8876fc3d9d3e7579177a44f7c7da563
2019-03-25 16:39:59 +00:00
melissaml f3811cb72b Change openstack-dev to openstack-discuss
Mailinglists have been updated. Openstack-discuss replaces openstack-dev.

Change-Id: Ifc72c767e76283df4608da8d7097ef86c367a5cf
2019-02-15 16:05:59 +00:00
Zuul bd300d07ee Merge "Add an option to skip generating RELEASENOTES.rst" 2018-10-16 16:08:13 +00:00
Zuul 32bfe7808f Merge "packaging: Remove support for pyN requirement files" 2018-10-06 21:14:59 +00:00
Zuul 36da1a13c0 Merge "docs: Add docs for reno integration" 2018-10-06 18:34:58 +00:00
Ian Wienand 77e75e25e3 Special case long_description_content_type
As described in the pypa pull request, special-case passing through
these fields into the metadata.  setuptools will maintain them.

Change-Id: I89eb8c6d627790680a61a0a4b7490191b6e8e90c
Closes-Bug: #1762494
2018-10-05 13:24:49 +00:00
Tim Burke a34629a956 Add an option to skip generating RELEASENOTES.rst
This is comparable to the existing skip_authors and skip_changelog
options.

Change-Id: Icfefb20fb3c9b2e983e56f6e5440119d4dce2d3f
Co-Authored-By: Stephen Finucane <stephenfin@redhat.com>
2018-09-24 13:05:35 +01:00
Stephen Finucane dac6f829af docs: Add docs for reno integration
Change-Id: I9a77a4f6397464c33181d8b4bd2a9ae79c058b47
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
2018-09-24 11:59:02 +01:00
Moises Guimaraes de Medeiros 7b3e47736b Fix typo in contribution instructions.
Change-Id: Ia514b4baf3f5079547d7c198eac60cab96ba3a0e
Signed-off-by: Moises Guimaraes de Medeiros <moguimar@redhat.com>
2018-09-10 16:32:52 +02:00
Stephen Finucane 8ea9d9262d packaging: Remove support for pyN requirement files
Change-Id: I7f915ecdc819bc4d3c6811949f12bdadb108a1ab
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
2018-07-23 11:04:39 +01:00
Stephen Finucane ecbda3076e Deprecate 'build_sphinx' integration
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>
2018-07-18 15:23:44 +01:00
Stephen Finucane 75bac5d50b Add Sphinx extension
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>
2018-07-18 15:22:16 +01:00
Stephen Finucane 553b73a7a7 doc: Add documentation for missing '[pbr]' options
There are more that just autodoc options in here. Some formatting issues
are also corrected.

Change-Id: I075281d97c2fc7981a38ff1ddbb4ec76717ac726
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
2018-07-18 15:13:41 +01:00
Stephen Finucane 9605bf7a74 doc: Fix formatting of packagers guide
We're going to be making some changes to this shortly.

Change-Id: I07e8421dd8b6598da75348e3d8d3baae3ae457ff
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
2018-07-18 15:13:41 +01:00
Stephen Finucane 2222dbb47e Switch to stestr
According to Openstack summit session [1], stestr is maintained project
to which all Openstack projects should migrate. Let's switch to stestr
as other projects have already moved to it.

While we're at it, we also fix the docs requirements and removed the
unused 'pypy' and 'cover' tox targets.

[1] https://etherpad.openstack.org/p/YVR-python-pti

Change-Id: I424068adc9092be2cf40d117c9dc4e92bb51e804
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
2018-07-18 10:12:17 +01:00
Gaetan Semet 46c56c972b Add leading 0 on alpha release in semver doc
Change-Id: I3c13be99237ff8840f36e21cae684d346defc03d
Signed-off-by: Gaetan Semet <gaetan@xeberon.net>
2018-05-24 14:42:36 +00:00
Ben Nemec 10fce39a7b Explicitly read setup.cfg as utf-8 on Python 3
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
2018-03-27 10:54:57 +00:00
Clark Boylan 7e2d1666f2 Make docs on env vars a little clearer
It was pointed out that the packager docs don't make it super obvious
that the env var settings that packagers can set are env vars. Add
export statements to the docs to imply it a bit more that we are talking
about env vars here.

Change-Id: I9e9eefa661994237a63b59dcefab11961ef339e1
Fixes-bug: 1724425
2018-03-20 14:44:07 -07:00
Zuul f4a1a7dec0 Merge "doc: Minor rework of usage doc" 2018-01-09 00:33:03 +00:00
Zuul 0fdb49eab7 Merge "doc: Rework features doc" 2018-01-09 00:25:01 +00:00
Zuul 8a9a6d80bf Merge "Support PEP 345 Project-URL metadata" 2018-01-08 13:54:33 +00:00
Stephen Finucane faba96da13 doc: Minor rework of usage doc
Reorder some section to highlight those that are totally unique to pbr
rather than simply modified.

Change-Id: I8cea0ae7d85409573dc6cf1a5d2b7a8ebc5fe8b8
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
2018-01-08 11:39:12 +00:00
Stephen Finucane 2493b3ad70 doc: Rework features doc
Break this document into sections and expand upon some of these.

Change-Id: Ia6a3eed984ce4257cce9df0997e6be2d8d3bc683
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
2018-01-08 11:39:11 +00:00
Gaetan Semet 4c775e7890 Support v<semver> version
Allow protect tag (in gitlab, github) using "v*" regex.

Change-Id: I3e6eb1031ae92349c5a9531b143b6470482664e7
Signed-off-by: Gaetan Semet <gaetan@xeberon.net>
2018-01-05 14:19:47 +00:00
Jeremy Stanley 538d2c21a1 Support Description-Content-Type metadata
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
2017-12-04 19:46:41 +00:00
Jeremy Stanley 839ef3428d Support PEP 345 Project-URL metadata
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
2017-11-22 23:55:17 +00:00
Stephen Finucane cc703f4926 Deprecate support for Sphinx < 1.6
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
2017-09-25 16:22:48 +01:00
Doug Hellmann bdc26f1303 switch from oslosphinx to openstackdocstheme
Depends-On: Ifc5512c0e2373cf3387e0e0498268eab092e52bb
Change-Id: I58acb2cc35d33af586201a4667d82388a51987d5
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
2017-06-26 16:51:31 -04:00
Doug Hellmann f323413992 turn on warning-as-error flag for doc build
Change-Id: I5566cfa09dac8dec7a1bc32d95b42d5b136d726f
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
2017-06-22 16:08:39 -04:00
Doug Hellmann 2fa5003a05 rearrange existing documentation using the new standard layout
Change-Id: I885f1adf4fbfc1137c6c48039096bd7bdf89cbd3
Depends-On: Ia750cb049c0f53a234ea70ce1f2bbbb7a2aa9454
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
2017-06-22 16:08:39 -04:00
Stephen Finucane a20c108e43 docs: Don't specify pbr version in 'setup.py'
This is no longer the recommended practice.

Change-Id: Id61de0873e1599f7b5b6c63536266adb89c1fc3c
2017-06-20 10:52:34 +01:00
Doug Hellmann 3c059cb701 allow user to override the output location of api docs
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>
2017-06-15 12:41:49 -04:00
Jenkins df95641103 Merge "Make oslosphinx optional" 2017-04-27 13:44:13 +00:00