Use `reno semver-next` to check the proposed version against the types
of changes described in the release notes.
Change-Id: I9ac52ff524440670366ebeceb11dc04a446e876c
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
Bump openstack-governance requirements to 0.7.0 to pick up latest
governance parsing code, as the current state of governance files
will break anything <0.7.0.
Change-Id: I6306fc7a99419b4f1e7b56855f38e5ccb84eca13
During validation we need to build a bdist_wheel which is only available
as an extension when wheel is present in the environment. This adds
wheel and makes sure all requirements are installed for the validation
job.
Change-Id: Ied3b1ff4accf66e358cec4b209f4d3a65ae88d26
Signed-off-by: Sean McGinnis <sean.mcginnis@gmail.com>
We have occasional release announcement job failures due to network
issues or other SMTP errors sending the announcement. Most of these
appear to be temporary failures that would be resolved with another
attempt.
This patch adds exponential backoff retries to the sending process to
try to get around these failures.
Change-Id: I70bb470639385caecee7ccfc0e449449bfc9b871
Signed-off-by: Sean McGinnis <sean.mcginnis@gmail.com>
As reported by Tim Burke, just-released twine 3.0.0 requires
keyring>=15.1, but we have a 3-year-old keyring==7.3 pin in
releases requirements.
The pin was put to avoid installing a full desktop (through a
DBUS dependency introduced in >7.3) but this seem to have been
fixed between now and then.
Change-Id: I904ea3735daaa8892edc54be4a9611beb66fdfe2
The Ruamel library has better support for modifying YAML while keeping
things like comments. This updates our yamlutil module to use
ruamel.yaml instead of PyYAML.
Story: 2002908
Task: 22880
Change-Id: I4ac66c9e3e40780b588377c1dfe42511eed231a3
Signed-off-by: Sean McGinnis <sean.mcginnis@gmail.com>
The use of ``python setup.py check -r -s`` is actually deprecated and
the recommended method for validating a README for PyPi upload is to
build the sdist and wheel and run ``twine check $DIST_PATH``. This
switches our validation check to use the supported method.
Change-Id: I321b8cf6f1e2116d2fe23059d5f13aa6f2ae8b4c
Signed-off-by: Sean McGinnis <sean.mcginnis@gmail.com>
Since May 2018 [1], the WordCompleter and PathCompleter moved
from prompt_toolkit 's contrib module to prompt_toolkit.completion
Without this patch, it is impossible to use the interactive-release
CLI with the latest versions of prompt_toolkit, which is not freezed
in the requirements.
This fixes the issue by using the latest way to import WordCompleter
and ensuring users will have the latest prompt_toolkit versions
compatible with this change.
[1]: 8d12c16081 (diff-c25fe0509d70181361304341982e6d0f)
Change-Id: Ia9180a10f0aa8f6f8ed25d7fd5e4e3ec39f86714
Remove the governance code in this repository and use the new
openstack_governance library instead.
Depends-On: https://review.openstack.org/614605
Change-Id: Ia7ffff3945462f4b568b55287dfdf45fe73a35d9
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
Rather than applying the rules ourselves, use the packaging project
utility function to prepare the canonical name.
Change-Id: I6310585ff14c376e954b0edc9def67cd65a5d550
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
This is based on mnaser's work in https://review.openstack.org/533780/
Change-Id: Ie6f94db0dce2f5331c3d21a1192533ffc648329b
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
Under zuulv3 the behavior has changed significantly to now require
specifying which repositories need to be cloned for each job, and
zuul-cloner only copies the repositories that are already
available. As soon as zuulv3 is released, our jobs relying on the old
fallback behavior of checking out from a cache when present but using
the upstream server in other situations will fail.
The new script tools/clone_repo.sh handles the cases we have in the
tools and jobs within this repository, and should also be usable from
the tag-releases job.
zuul is removed from the list of requirements so it is no longer
installed when jobs run under tox.
list_unreleased_changes.sh is updated to drop the use of the
virtualenv, which was only present for zuul-cloner.
The other updates in the patch are to change the tools to use the new
script.
Change-Id: Ic559d27881a9a89fb0dcb5295a4d7ed7c578112f
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
Import the release-notes command from the release-tools repository and
integrate it with the list-changes command so that we see the release
notes for an upcoming release. This lets us review the release notes
output for warnings (like not having a documentation page linked) and
errors (such as reno failing to work).
Change-Id: I710606fe44601fe5414bfc82f25894319f16e558
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
Use jsonschema to define the valid structure of a deliverables file.
Retain the custom logic for some of the more complex rules we have
relating values and checking types.
Change-Id: I5dc87445c505ebd978b4c1d59171217a2fe047c7
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
The only reason we have a dependency on launchpadlib and
lazr.restfulclient is for the old tool that imported project history
from launchpad. We no longer need the tool, so we can remove it and the
dependency as part of our python 3 port.
Change-Id: Ie87e6172c953df10cb70d34c9bc23ad30e97ce4d
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
This code is basically copied from the release-tools repository version
in ptl.py, with some enhancements to support the tests being added here.
Change-Id: Iabccb6fa6b20eb3c226fd0a16a736d993b78d330
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
The xstatic packages have a 4 digit verion number 3-digit semver as
supplied by upstream and a local build number. PBR only supports 3
digit semver.
To work with that create the concpet of a release type that can have
slightly different validation rules. In this case use the 'packaging'
library.
This will allow the horizon team to use the standard release process.
For refernce see:
https://blueprints.launchpad.net/horizon/+spec/xstatic-release-process
Change-Id: Ie0f33097c31ee4006ec58147b35731913f7b6f4b
Add a useful new command that augments some of the
existing commands and can be used in a interactive
manner to create a release for a given project or
view what a release could be composed of.
Change-Id: Ic0ee4ecc7c5abf0cd65d7cf19c132712a2acf4ae
Do note this will lose comments, if pyyaml ever supports
not losing those then this can avoid losing those.
Change-Id: I4b26362f7cab42eb40804751c86d9145490c78d9
argparse was external in python 2.6 but not anymore, remove it from
requirements.
This should help with pip 8.0 that gets confused in this situation.
Installation of the external argparse is not needed.
Change-Id: Ib7e74912b36c1b5ccb514e31fac35efeff57378d