The release team has a few cases now where we need to propose release
patches for a large set of deliverables. Due to differences in semver
choice based on actually merged commits, along with other decisions that
need to be made while doing these, this process can't be completely
automated. But this adds a script that will automate the majority of the
process to simplify it as much as possible.
Change-Id: I6ec9fa77baab58df93bdadc0ac3c3fa5d3e18804
Signed-off-by: Sean McGinnis <sean.mcginnis@gmail.com>
This updates the version of hacking we are using for our linting and
addresses various issues that the latest version flags.
Change-Id: I95ed73411e96451bc447e1b5858b0466fb8f10a9
Signed-off-by: Sean McGinnis <sean.mcginnis@gmail.com>
The load() call from PyYaml is considered a higher security risk in that
it uses the FullLoader. safe_loade() is considered more safe by using
the SafeLoader instead.
Since the 5.1 release of PyYaml added warning output when using load(),
this switches over to safe_load() to avoid the unnecessary noise.
Change-Id: I1949deed094822d2c2c56659eadb1fc5ea6a59e5
Signed-off-by: Sean McGinnis <sean.mcginnis@gmail.com>
Rewrite list_unreleased_changes as python format and add new features.
By default it will behave as the previous version of this command (the
shell script).
Few new feature have been added in these changes to allow us to more
easily handle outputs in scripts.
Features added:
- allow user to retrieve results in json format
- allow user to retrieve results in yaml format
- allow user to ignore project not yet released
The shell script entry-point (tools) is still there but it will call
the python command in a venv instead of directly implement features.
Also the python version allow us to more surround this tools with unit tests.
Change-Id: Iaf86ecb1589c40102acb621b23ea12d71ed453bb
This updates the script to not require a specific topic to make it
easier to automate a job that periodically makes sure all open reviews
have had the PTL and liaison added.
Also refactored the adding of teams because bash array handling can be a
bit wonky sometimes and not always append values. This makes sure no
teams are skipped.
This is slightly less optimized for large reviews like the final series
release since it loops through teams based on the deliverable files. As
a slight optimization, it will skip a team if it was the same team as
the last deliverable file. It just might be possible that the same team
will be processed multiple times if their deliverable files are not in
alphabetical order, but there is no harm in that other than taking
slightly longer to complete.
Change-Id: I9a9194ea276aa0120aef21a321f48a93419fb848
Signed-off-by: Sean McGinnis <sean.mcginnis@gmail.com>
If we miss something with this command we need to get the
python script's help to get how to use this tools, these changes
add the command to execute through the wrapper to get this help.
Change-Id: I1e9fceece6fee40722e21e49ca5689faacefdf93
If we run in CI, rather than prioritizing using 'python setup.py --name'
as the project name to be used in release announcements, use the
repository name as provided by Zuul.
This should fix the issue reported in:
http://lists.openstack.org/pipermail/openstack-discuss/2020-April/014359.html
Change-Id: Ia0026356676561a6b3a55ab05db5ed7a58b646b6
This adds a script that will go through all release reviews under a
given review topic, find the PTL and release liaisons for the owning
teams of those releases, and add them as reviewers to the patch.
Change-Id: I6294c1d9da7d6a977df6d8460aa085d2cc7e72a5
Signed-off-by: Sean McGinnis <sean.mcginnis@gmail.com>
We are taking down coreos-image-builder since it
was never really used, and left abandoned.
More information on this can be found at:
https://review.opendev.org/#/c/707181/
Change-Id: Idb42353f86f192cc8ff2defbbae71e7df76702c6
get-contacts:
To extract the PTL/Liaison contact information from the governance data
/ release team data
tools/bulk_review.sh:
To manipulate a dirty working-tree and post as a single gerrit topic,
one change per team. Changes are unordered so any change can be merged
when it's ready/ approved by the appropriate team
Also enhance get-deliverable-owner: to detect file paths
Story: 2005704
Task: 31028
Change-Id: Ia319e8a7b4da195cb4bc861c51025a41adc43bb3
Introduce a new tool to list inconsistencies between projects.yaml
in governance repository and deliverables in the releases repository.
Sometimes projects.yaml defines release-managed deliverables, but the
release team is not handling them. Sometimes, the release management
team handles deliverables which are not officially produced by an
OpenStack project team, and should probably not be listed on releases.o.o.
This tool lists both types of inconsistencies, and can be integrated
to release management process so that they are handled before becoming
an issue.
NB: Once ready, this tool could be used to replace the "membership
freeze check" tool which only looked at some of those inconsistencies.
Change-Id: Id263f0c91f872111fe997e2b8a1088b61033d114
Fixes some comments from the initial review and minor cleanup.
Change-Id: I17f18f63cb7e9da4bc7504405472e3ac39151c3e
Signed-off-by: Sean McGinnis <sean.mcginnis@gmail.com>
Git repo origins are now removed in CI jobs, so our detection of project
short name from looking at the git remote now fails. This resulted in
release announcements linking to "null" instead of the actual project
location [0].
This updates the script logic to detect if that is the case and fall
back to getting the repo name from the directory, which should be safe
in a CI job since there is no manipulation of the clones repo directory
name.
Also cleans up an unused variable that was left from a previous
refactoring.
[0] http://lists.openstack.org/pipermail/release-announce/2019-December/008306.html
Change-Id: I84e2cf258e9bc4541b7edde55a22a4be24bdb232
Signed-off-by: Sean McGinnis <sean.mcginnis@gmail.com>
Since the job will have to run on the Zuul executor, it needs to
only rely on stdlib, yaml and requests (which are already installed
on the executor).
Change-Id: Id4e5a88d352e95402d0899deceade6fed8146619
This is the first step into automating PTL/liaison approval.
This tool will check that PTL/liaisons either authored the change or
approved it.
Change-Id: I1bbb371997e9e92f39eff47adb4d3d176af35de7
At various stages we want to update lots of deliverables. This acts as
a tool to consolidate what we mean to supplement the docs and etherpad
Story: 2005707
Task: 31033
Change-Id: Ied1f6d06a33baf3d3ef3d789bbe5c7f70d967d62
Per best practices, explicitly use the python3 executable rather than
assuming the platform with have a "python" executable that maps to
python3.
https://www.python.org/dev/peps/pep-0394/
Change-Id: I39b8a1013a891f4570f374d8faa3cfa2ecaf3347
Signed-off-by: Sean McGinnis <sean.mcginnis@gmail.com>
This updates the instructions for client and non-client lib freeze to
make sure all changes are captured in a final release. Also adds a
helper tool to separate out the two types of libs since they have
different deadlines.
Change-Id: I29ea73bcc5a9649d7d9c502ebc0a05c840e41484
Signed-off-by: Sean McGinnis <sean.mcginnis@gmail.com>
Running our default tox environments locally, the bashate tests fail
with several errors due to line length and indentation levels.
Change-Id: I15ec6a9cb1dbdb2200294c5aa2d2eb6074f00a25
Signed-off-by: Sean McGinnis <sean.mcginnis@gmail.com>
There are many references to review.openstack.org, and while the
redirect should work, we can also go ahead and fix them.
Change-Id: I0d46b1a4e00c1775ea5e38d39e87bed99f6bbb2e
Probably mostly useful for extended maintenance, but this adds a script
that can add a $series-em tag to all deliverables of a series as we
claimed we would do in the extended maintenance policy changes [0].
[0] https://docs.openstack.org/project-team-guide/stable-branches.html#extended-maintenance
Change-Id: Ibeec88bf4e81b97c523f416669e07a10aa86a53b
Signed-off-by: Sean McGinnis <sean.mcginnis@gmail.com>
Simplify the instructions by providing a special script and then
update the instructions to refer to it.
Change-Id: Ibbcd422c06dc4aeb3df503f3c0f084b39d3bf0f7
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
Our announce email included a few errors in the paths provided. If the
git remote.origin.url ended with ".git" the tarball path was wrong. We
were also using the package name for git and doc paths incorrectly. This
fixes the name used so the resulting links are correct.
Story: #2005279
Task: #30131
Change-Id: I7a64761778b7391c0f3188b1177f03a7e712bd2a
Signed-off-by: Sean McGinnis <sean.mcginnis@gmail.com>
This is a mechanically generated change to replace openstack.org
git:// URLs with https:// equivalents.
This is in aid of a planned future move of the git hosting
infrastructure to a self-hosted instance of gitea (https://gitea.io),
which does not support the git wire protocol at this stage.
This update should result in no functional change.
For more information see the thread at
http://lists.openstack.org/pipermail/openstack-discuss/2019-March/003825.html
Change-Id: I648dbeadf4ff11e3d9f23521be530b36186927d9
Teams come and go, so we want to iterate over the set of teams in the
branch that we are scanning for unreleased changes instead of assuming
the group from ocata is correct.
Change-Id: Iacf3933cbfc14f9a3e7b404171247108c27083f3
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
With this script now the txt files with the lists are stored under
<releas>-<date>-<time> directory.
Also small modification to show the links and commit messages of the
open changes in one line.
Change-Id: I3563445e7693448b3308ef4df8739532d1fc3f99
If running with tox venv, the python version (where all the
requirements are installed) might be different than /usr/bin/python.
We should use the one in the env.
Change-Id: Ic69282b289fefeafa5a63b6da284f44c4b3c4b15
Introduce the flag `--url` who allow user to generate urls
for the given result.
Introduce the option `--distgit` to allow user to specify
the base url to use to generate urls.
Change-Id: I10d4f92f64a68f283c70c2c880c27a069f123762
Leverage the newly-introduced 'release-management' key from
projects.yaml to skip repositories in deliverables that are
not handled by the release-management team.
No longer maintain a local list of repository exceptions.
Change-Id: I0e5eab7a2aeb3bd09acf7bf01356a9f664530b0f
Allow users to format output results to the yaml format
by using the flag --yaml.
Passing this flag prefixing each results with dash in the stdout.
Change-Id: I460c17704c5311d6fb422d5e56be8080344ab986
This script will compute a list of deliverables present in
governance but unknown to release management, for manual
processing.
Change-Id: Ibebf777911416d978ecea5ba8d7b25b211e7ae52
This updates commands and tools to work with the cycle-with-rc model.
Change-Id: I8df85df1c84ae6d8fb37a5206e155f84f8fac947
Signed-off-by: Sean McGinnis <sean.mcginnis@gmail.com>
This script helps to check unreleased and open changes of every teams
(and every repositories that has stable:follow-policy tag) for doing a
'final release' before moving the projects to Extended Maintenance
state.
Change-Id: Ifc0099a2392f85f16e76aaa416c6fd8abe9a26af