Commit Graph

37 Commits (master)

Author SHA1 Message Date
Előd Illés e83bb1f69a Uncap jsonschema
With the latest upper constraints updating generated patch [1] the
openstack-tox-docs job started to fail, due to conflict:

ERROR: Cannot install jsonschema<4.0.0 and >=3.2.0 because these
package versions have conflicting dependencies.

The conflict is caused by:
    The user requested jsonschema<4.0.0 and >=3.2.0
    The user requested (constraint) jsonschema===4.7.2

This is because we have jsonschema<4.0.0 in our requirements.txt.
By uncapping the constraint the docs job is passing.

Date validation needed to be updated as well, because a deprecated
usage of validator extending method was used in the code, which was
removed [2] from jsonschema with the 4.0.0 release. This patch replaces
that with adding a TYPE_CHECKER instead.

With the new jsonschema constraint openstack-tox-py36 job does not pass
anymore, but py36 is dropped from zed anyway. That job is pulled in by
an old job template, which needs to be replaced to the new zed job
templates, too.

[1] I89576353371aa87d181610eb6242cbe961487af6
[2] d9f6384060

Closes-Bug: #1982757
Change-Id: Ida6310dd822e587ce9c424a228fdff5192ba0476
2022-07-26 12:24:11 +02:00
Előd Illés 97baab754f Replace old sdist and wheel build command in validate
The new way of packaging a python project is via build package. This
patch replaces the old style sdist and wheel build.

Change-Id: Ia351d099aa3b2491e3a4d255d87bb7c6bd691cac
2022-05-02 20:26:47 +02:00
Előd Illés 909d616cf4 Remove stable:follows-policy tag banner
TC tags framework is discontinued [1], so the banner is not needed
anymore in our list-changes command as it won't be triggered.


Change-Id: Iff26be4cc1701bf31a1030c10fce0b2486da3e85
2022-03-16 20:30:07 +01:00
Thierry Carrez f98b318277 Stop depending on git version of governance
This was a temporary workaround while we released a fix in governance
to make it installable again.

Change-Id: I4210f517b0b63c895620e09b6538952828b629d0
2021-11-25 15:08:00 +01:00
Hervé Beraud 40b40d6604 Constraints jsonschema to version lower than 4.0.0
This patch aim to unlock our validation before spending
more time to fix the following traceback:

+ yamllint -f parsable -c ./yamllint.yml deliverables/victoria deliverables/wallaby deliverables/xena deliverables/_independent
validate run-test: commands[1] | /home/zuul/src/ check-schema
setting PATH=/home/zuul/src/
[1954] /home/zuul/src/$ /home/zuul/src/ check-schema
Logging check-schema output to /home/zuul/src/
   INFO: Checking data/series_status.yaml
Traceback (most recent call last):
  File "/home/zuul/src/", line 10, in <module>
  File "/home/zuul/src/", line 103, in main
  File "/home/zuul/src/", line 66, in validate_one_file
    validator = make_validator_with_date(schema_data)
  File "/home/zuul/src/", line 58, in make_validator_with_date
    return jsonschema.validators.extend(
TypeError: __init__() got an unexpected keyword argument 'types'
ERROR: InvocationError for command /home/zuul/src/ check-schema (exited with code 1)

Change-Id: Ia9cde2755dd0d9c80a42475fdb9f849a6549539b
2021-09-30 11:38:14 +02:00
Radosław Piliszek 2d587a5423 Fix gate
By using fixed openstack-governance from Git repo.
The upstream was fixed already [1] but the release cannot be made
as this is where it would be done from.

This patch also amends tox.ini to always install deps from
requirements.txt, otherwise the git repository reference
is simply ignored.


Change-Id: Id711996f90687235624f82fa64e79fb0b5204073
2021-09-17 11:19:46 +00:00
Doug Hellmann 6fe3672660
add `reno semver-next` to the list-changes output
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 <>
2020-09-03 08:34:49 -04:00
Thierry Carrez 4e944ea7b4 Require latest governance parsing code
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
2020-08-03 14:33:20 +02:00
Hervé Beraud eea9bcaa71 Cap jsonschema 3.2.0 as the minimal version
Previous versions of jsonschema (<3.2.0) doesn't support python 3.8 [1].
Python 3.8 is part of the victoria supported runtimes [2] so we now force
to use jsonschema version 3.2.0 to avoid issues, remove ambiguity and ensure
that everything works with python 3 in general.


Change-Id: I7f477866430990f5fdcc1365ac4156a9cf0b5e58
2020-05-26 22:12:10 +02:00
Zuul 4b9898b2bd Merge "Add retries to sending emails" 2020-05-25 17:23:34 +00:00
Sean McGinnis b19a92adbe
Install wheel in validate venv
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

Change-Id: Ied3b1ff4accf66e358cec4b209f4d3a65ae88d26
Signed-off-by: Sean McGinnis <>
2020-05-10 17:42:14 -05:00
Sean McGinnis c5545ee077
Add retries to sending emails
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

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 <>
2020-04-27 11:23:28 -05:00
Thierry Carrez e378cddcd0 Unpin keyring to unbork twine validate check
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
2019-11-19 10:11:52 +01:00
Sean McGinnis b6ca269386
Switch to ruamel for yaml handling
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 <>
2019-07-08 11:40:11 -05:00
Sean McGinnis 5359acf788
Use recommended twine check for README validation
The use of ``python 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 <>
2019-04-05 10:56:16 -05:00
Zuul 419691d85e Merge "Fix WordCompleter import" 2019-01-10 18:32:07 +00:00
Jean-Philippe Evrard cbe188a36e Fix WordCompleter import
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
2019-01-10 09:48:13 +01:00
Doug Hellmann 63d7394a36 update to use openstack_governance library
Remove the governance code in this repository and use the new
openstack_governance library instead.

Change-Id: Ia7ffff3945462f4b568b55287dfdf45fe73a35d9
Signed-off-by: Doug Hellmann <>
2018-11-21 15:10:34 -05:00
Tony Breeds 77277a3e0f Remove duplicate packaging
In I6310585ff14c376e954b0edc9def67cd65a5d550 we added a second
requirement on packaging[1] so remove the older (lower) one


Change-Id: Iea001d5cefb2b150aa7250187c421e9128b07e39
2018-03-08 14:29:25 +11:00
Doug Hellmann 9b8f290117 use packaging to determine the canonical name for projects on PyPI
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 <>
2018-03-07 10:49:50 -05:00
Doug Hellmann a12d59edd1 add a script to examine the gerrit acls for issues
This is based on mnaser's work in

Change-Id: Ie6f94db0dce2f5331c3d21a1192533ffc648329b
Signed-off-by: Doug Hellmann <>
2018-02-23 11:52:07 -05:00
Doug Hellmann 285532e323 show need for stable policy review more clearly
Change-Id: I79e2c75351fed75c6a2ab3a1af75c77eb5e18c82
Signed-off-by: Doug Hellmann <>
2017-11-28 11:04:26 -05:00
Doug Hellmann 34756ddbdf replace the use of zuul-cloner with a shell script
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/ 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. 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

Change-Id: Ic559d27881a9a89fb0dcb5295a4d7ed7c578112f
Signed-off-by: Doug Hellmann <>
2017-10-17 15:24:30 -04:00
Doug Hellmann f6a2c6c65d add warning to requirements list about updating bindep
Change-Id: I038ad88502bafb38aea984ec53d6cae2b8d1a125
Signed-off-by: Doug Hellmann <>
2017-10-17 09:43:36 -04:00
Doug Hellmann 70be592ba5 add release notes output to the list-changes job
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 <>
2017-10-11 13:44:46 -04:00
Doug Hellmann 305843fae3 add jsonschema
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 <>
2017-06-06 10:16:36 -04:00
Doug Hellmann 42e8a6fd7f remove unused tool with launchpadlib dependency
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 <>
2017-03-03 14:59:59 -05:00
Doug Hellmann 893343361c add a command to produce a list of liaisons
This code is basically copied from the release-tools repository version
in, with some enhancements to support the tests being added here.

Change-Id: Iabccb6fa6b20eb3c226fd0a16a736d993b78d330
Signed-off-by: Doug Hellmann <>
2017-01-20 09:01:28 -05:00
Doug Hellmann aa9f19ba50 pin lazr.restfulclient because of bad pypi management
Change-Id: I8bdcbd8c84cf1f7418d97dc59131db6d8fa528df
Signed-off-by: Doug Hellmann <>
2016-07-27 10:11:00 -04:00
Doug Hellmann a325868ea7 pin keyring dependency to avoid dbus dependency
Change-Id: I12e87f0f4736410712a188759282b10ad224aef3
Signed-off-by: Doug Hellmann <>
2016-06-27 08:09:52 -04:00
Tony Breeds 6ee15b0c7f Add Support for validating 4 digit verion strings
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'

This will allow the horizon team to use the standard release process.

For refernce see:

Change-Id: Ie0f33097c31ee4006ec58147b35731913f7b6f4b
2016-06-21 14:17:32 +10:00
Joshua Harlow f8a9d606b2 Add a interactive-cmd to propose library releases
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
2016-05-16 21:46:10 -07:00
Joshua Harlow 9c1ac3dace Add a yamlutils file and a reformatting command
Do note this will lose comments, if pyyaml ever supports
not losing those then this can avoid losing those.

Change-Id: I4b26362f7cab42eb40804751c86d9145490c78d9
2016-05-16 21:45:40 -07:00
Andreas Jaeger f4e6e97c9f Remove argparse from requirements
argparse was external in python 2.6 but not anymore, remove it from

This should help with pip 8.0 that gets confused in this situation.
Installation of the external argparse is not needed.

Change-Id: Ib7e74912b36c1b5ccb514e31fac35efeff57378d
2016-01-20 19:23:59 +01:00
Robert Collins a6b99232b3 Update requirements
Change-Id: Ie9d283e8a7b27c2f75dbd782640b2315e0c92985
2015-10-08 10:54:33 +13:00
Doug Hellmann 2ab2ca2f9f Add list-changes command and tox environment
Add a tox environment to show the pending changes, if any.

Change-Id: If8a77cf24e8a0ac03dd065c5813960696730b864
2015-07-23 18:17:57 +00:00
Doug Hellmann 37303f87de tox setup
Change-Id: I8275843775b83511a8373997fa2eb054e236316e
2015-07-02 16:11:19 +00:00