829 Commits

Author SHA1 Message Date
Sean McGinnis
05f5aed7fa
Make sure -em tag is on last release
We don't want to allow tagging EM if there were no releases. We also
want to make sure the -em tag is on the last official release that was
done.

Change-Id: I7afb3a52cf2ec47d8e0154b51825b500806aa590
Signed-off-by: Sean McGinnis <sean.mcginnis@gmail.com>
2020-03-06 17:08:09 -06:00
Sean McGinnis
6bfb61fc81
Don't fail version validation on install failure
There could be an issue in previous tagged releases due to external
factors. In that case, there is no way to fix that version.

Validation currently checks out the previous tag and creates an sdist in
order to compare requirements changes on bugfix version bumps only. In
the case where the previous release has an issue, just handle the
failure and move along.

Change-Id: I60db41a475c3a13359556198c0611489dffa4b3f
Signed-off-by: Sean McGinnis <sean.mcginnis@gmail.com>
2020-02-29 05:33:22 -06:00
Thierry Carrez
80a0616359 Skip sig links if the skipped-sig flag is set
In releases.o.o we display signature links for all deliverables,
if the series is > Ocata or independent. Since some "independent"
deliverables predate the signature generation tooling, that results
in a number of "independent" deliverables displaying broken signature
links, which makes us look bad.

This adds a flag (skipped-sig) that can be set for independent
deliverables that did not have any signature generated (pre-Ocata), and
skips the signature link display if the flag is set.

As a practical example, this fixes broken links for PBR<2. Tony signed
up to automatically generate the others.

Change-Id: I44a49e3f08010a85c64673d2292528139eabcc99
2020-02-05 18:31:44 +01:00
Tony Breeds
4b30a708eb Use __str__ for printing the contact information
Now that all the Contacts are an object we can just use __str__ to
format them and pass that to print rather than use a print_contact()
function

Change-Id: I6cce8c08eaa19c06695a044da59ba75e671f3005
2020-01-23 12:30:09 +00:00
Tony Breeds
60e786d724 Add tools/bulk_review.sh and get-contacts
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
2020-01-23 11:52:59 +00:00
Zuul
d5419aa608 Merge "Display abandoned deliverables in separate section" 2020-01-09 20:22:50 +00:00
Zuul
47ebe622b1 Merge "Add simple liaisons wrapper module" 2020-01-09 18:41:53 +00:00
Thierry Carrez
2860ee81c9 Display abandoned deliverables in separate section
This updates our sphinx extension to show abandoned deliverables
as EOL, in a separate section at the bottom of the independent
deliverables page. It adds an 'EOL' mention to such deliverables
on team pages.

Change-Id: I56b9fbad9314c523e2f18765371746d21a71ed88
2019-12-19 15:28:04 +01:00
Thierry Carrez
655b62e84c Introduce 'abandoned' release model
Introduce an 'abandoned' release model for cycle-independent
deliverables. It should only be applied to deliverables in the
_independent directory. No new release should be accepted for
deliverables with this release-model.

Change-Id: I65c163888c37f7a7f77273abf3ca0633923a0fe2
2019-12-18 17:57:06 +01:00
Zuul
85d31a4389 Merge "Remove unused imports in tools and commands" 2019-11-29 10:15:09 +00:00
Hervé Beraud
2064f3e29f Remove unused imports in tools and commands
For some non obvious reasons pep8 check doesn't detect these unused imports.

Change-Id: Ie98af5a0fcf4fb8bcd05051de75a84755fbc0b88
2019-11-27 17:45:34 +01:00
Tony Breeds
390883c17d Add simple liaisons wrapper module
I'm going to want to use this in a later change so lets make the
abstraction now

Change-Id: I0d15b5137d857bffb2bed39e995e50fed24f5598
2019-11-18 12:30:59 +11:00
Tony Breeds
4cf2670c1f Add --interactive to new-releases
Shamelessly steal^Wcopy some of the code from interactive-release so
that after validating the release we list the changes that will be
released.  This gives us the ability to decide that the release
contains no functional changes and elect to not create that release.

NOTE: I chose not to use interactive-release as it seems not to
correctly handle first releases in a series (because it doesn't load all
release history.  It also doesn't use some of the new features (like
series_status).  Adding --interactive to new-release gets us a long way
to deprecating interactive-release but we aren't quire there yet.

Change-Id: I25bbb4d7df9ae618500dd37f4b0cbc32c0bbd153
2019-11-18 12:17:19 +11:00
Zuul
6bc43e4eac Merge "Be explicit about python3 executable" 2019-10-24 09:34:46 +00:00
Sean McGinnis
44d6736a5e
Be explicit about python3 executable
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>
2019-10-16 09:45:29 -05:00
Sean McGinnis
807813eda8 Mark Train as released
The train has entered the station.

Change-Id: I93747459c5e4555ea3e97a02bb49a2f3e400d6d1
Signed-off-by: Sean McGinnis <sean.mcginnis@gmail.com>
2019-10-15 08:42:02 -05:00
Thierry Carrez
f32b877ece Send RC announces to release-announce
All releases are announced to the release-announce ML, except
Release candidates, which were still sent to openstack-discuss.

The rationale was that RCs should be announced to a developers
list rather than a downstream consumers list, so that they trigger
testing. But that is less true now that there is a single -discuss
list, where they generate a lot of noise around RC1, without
triggering any additional testing. They also confuse some downstream
consumers which expect those to go to the usual release announce list.

This patch removes the exception and makes sure we send all RC
announces to the release-announce list.

Change-Id: Id33dba37b4d53962a2170ec401499fe3dd2e24bf
2019-10-08 13:47:13 +02:00
Zuul
7596788e7d Merge "Update common info for make-tracking-pad" 2019-10-04 13:14:43 +00:00
Tim Burke
e392f0bd48 Redirects to master should always be temporary
We *know* that requirements will have a stable/train branch soon; make
sure clients don't go caching the redirect to master.

Change-Id: I8507d86e4f553b698163be61665267d42e033d91
Related-Change: Ia2e8c46c27ac97217576afdd1677efba4b99fc37
2019-10-03 15:10:33 -07:00
Sean McGinnis
b2fb4c281d
Add list-deliverables switch for cycle-based-no-trailing
This allows us to get the list of cycle based projects that have not
branched yet, limited to the ones that are not trailing the actual
release.

list-deliverables --series train --no-stable-branch --cycle-based-no-trailing

Change-Id: Ice9eec1ca086bcf6a642146da74793b0699dbc94
Signed-off-by: Sean McGinnis <sean.mcginnis@gmail.com>
2019-09-30 14:52:20 -05:00
Jean-Philippe Evrard
43b7eab4dd Fixing RC template
The template still points to old cgit formed urls.
This is a problem, as those are 404 nowadays.

This should fix it.

Change-Id: Ic04cf3b8a46b70e3a5fe0260d022838869f037de
2019-09-23 17:08:26 +02:00
Sean McGinnis
c72f5eb5ea Update common info for make-tracking-pad
Change-Id: Iaab152e156d6e290024f15b3521b08e59df0b0c9
Signed-off-by: Sean McGinnis <sean.mcginnis@gmail.com>
2019-09-16 13:33:47 -05:00
Sean McGinnis
68f7c558b9
new-release: Drop tarball-base from individual releases
We now track explicit tarball base names at a top level under
repository-settings instead of per release. The only time it should be
needed per release is if a project changes their package name part way
through the cycle.

Since most teams are now publishing to pypi and have worked through
needing to rename their packages, it should be safe to update
new-release to not include the tarball-base override per individual
project in a release.

Change-Id: If1c77e358b48113a7fb4d7a48ed8d31841ab9419
Signed-off-by: Sean McGinnis <sean.mcginnis@gmail.com>
2019-09-11 10:45:26 -05:00
Sean McGinnis
e5362d5d2c
Skip minor version increment validation for branchless
Tempest plugins do not branch, therefore we do not need to enforce that
the minor version is incremented to leave room for stable releases.

Change-Id: I22ba5cb42070b5a450617872de2da337b327de1c
Signed-off-by: Sean McGinnis <sean.mcginnis@gmail.com>
2019-08-08 12:19:33 -05:00
Zuul
8f0fc62593 Merge "Raise YAML compliance to 1.2" 2019-08-01 20:49:25 +00:00
Zuul
9183719ceb Merge "Add stable-branch-mode:none option" 2019-08-01 20:02:59 +00:00
Sean McGinnis
1704aa624a
Raise YAML compliance to 1.2
The YAML 1.2 spec was released in 2009. It's probably been enough time
that it's safe to move to it.

The only issue for out YAML usage was 1.2 dropped the use of Yes, No, On,
and Off as valid boolean values.

Change-Id: I608e09d219379e00cca15c5ff165bb63aecfe9f2
Signed-off-by: Sean McGinnis <sean.mcginnis@gmail.com>
2019-07-31 09:34:38 -05:00
Jean-Philippe Evrard
2cb8f99ad9 Force certain indenting style
Maybe not the best approach, but makes the new-release cli
output similar to what we used to do.

Change-Id: I1a5aa4293ed674d029affbd123d7f75001b827f0
2019-07-24 17:00:30 +02:00
Zuul
6cd9eb80d2 Merge "Fix schema validation when providing target" 2019-07-19 06:35:07 +00:00
Zuul
6591a80236 Merge "List deliverables not released since given date" 2019-07-19 05:21:47 +00:00
Zuul
e2126dfcde Merge "Make display of tags optional" 2019-07-19 05:03:40 +00:00
Zuul
936eb064fe Merge "Drop references to oslosphinx" 2019-07-19 04:51:43 +00:00
Thierry Carrez
3f7c9e782f Add stable-branch-mode:none option
Some "other" deliverables like tempest and patrole never
create stable branches. This allows to clearly mark such
deliverables and add a corner case in validation tests.

Change-Id: I2f6414d0f71baad58335702743f2180f8da3273f
2019-07-15 12:27:33 +02:00
Thierry Carrez
845e10c092 List deliverables not released since given date
Allow list_deliverables to filter output to list only deliverables
that have not been released since a given date (--unreleased-since).

This will be useful to compile list of libraries to autorelease at
milestones, or check for cycle-with-intermediary services that may
need a refresh release.

Additionally, if --show-dates is provided, the dates for last releases
(or all releases if -a option is provided) will be retrieved (and
displayed if in verbose mode).

Retrieving release dates is done through querying opendev's API for
tag references and looking at committer dates, so it requires Internet
access and increases command run time. It is only enabled if
--show_dates or --unreleased-since are enabled.

Task: 35684
Change-Id: I00aff6703e85a00572edb363973c92b883a79456
2019-07-11 10:45:08 +02:00
Sean McGinnis
be5376bad7
Fix schema validation when providing target
Checks have been added for additional files besides the deliverables. A
specific deliverable file can be specified with the command, but even
when doing so, the updates would still check these other data files.
This updates the handling to only check those files if one was not
provided.

Also small pep257 update.

Change-Id: I80e96319d8f7377db67a336d5c1a5569d75007a1
Signed-off-by: Sean McGinnis <sean.mcginnis@gmail.com>
2019-07-10 10:51:50 -05:00
Sean McGinnis
aa3ab893c2
Skip branch checking on EOL deliverables
If we make modifications to a deliverable file for whatever reason and
that series is EOL, the validation code would still check that branches
existed and therefore fail. The stable/$series branch most likely is
deleted after going EOL, so the validation code would think there was a
need for a new branch to be created, then fail if the last release done
was not the same point as the branch.

This updates the validation logic to check up front if the deliverable
is EOL and skip these checks.

Change-Id: Ib5be3c0ba7283021301d278fcb362432f9a7d5cb
Signed-off-by: Sean McGinnis <sean.mcginnis@gmail.com>
2019-07-08 14:28:58 -05: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 <sean.mcginnis@gmail.com>
2019-07-08 11:40:11 -05:00
Thierry Carrez
14d709176b Make display of tags optional
The list of tags associated with a deliverable is rarely useful, and yet
takes up massive horizontal space in verbose mode. In preparation for
adding more columns, make display of tags optional.

Change-Id: Id0946a6bbf86e79a4ba2a613c6950e3dd352cf80
2019-07-04 14:48:41 +02:00
Sean McGinnis
6dae687b0d
Drop references to oslosphinx
Change-Id: Ibb8b14ac8c7f3c56958415c3022de31efef12d52
Signed-off-by: Sean McGinnis <sean.mcginnis@gmail.com>
2019-07-01 07:37:03 -05:00
Zuul
809659135c Merge "Introduce cycle-automatic release model" 2019-07-01 02:26:13 +00:00
Zuul
04e694ba8b Merge "Do not allow final without RC in cycle-with-rc" 2019-06-28 13:43:09 +00:00
Thierry Carrez
b0f8d79dc0 Introduce cycle-automatic release model
For things like tempest-plugins, the cycle-with-intermediary model
is a bit overkill, especially now that we encourage multiple
intermediary releases to qualify.

Introduce a new 'cycle-automatic' model for deliverables that only
need to be released once, automatically at the end of the cycle.
This is limited to "other" or "tempest-plugin" deliverables.

Task: 31025
Change-Id: I83ff63cef18ae297013c3761a373078e580cf58b
2019-06-20 15:54:57 +00:00
Thierry Carrez
08cf70cbc6 Fix regression in list-changes
Recent merging of the liaison-loading code in list-changes makes
most list-changes job fail due to error in YAML loading code.

Beyond that YAML loading issue, the code assumes getting a dictionary
with team names as keys and an array of liaisons dictionary as values.
Fix the release_liaisons.yaml and schema to match.

Change-Id: I94fa41862d37aaf0535d64afd00b2bd55bb4649a
2019-06-20 17:52:13 +02:00
Thierry Carrez
1bcdeaaa9f Do not allow final without RC in cycle-with-rc
Currently validation considers it valid to propose final versions
on a cycle-with-rc model without RC first:

https://review.opendev.org/#/c/613444/2

Relying on human review to catch that sounds risky. Let's fix it.

Change-Id: Id06794f165f0c852fb62dcacd53058bdc756899e
Task: 27762
2019-06-20 14:54:50 +02:00
Kendall Nelson
59c38e6708 Update Liaison Scripts
Now that the release liaison info lives in data/release_liaisons.yaml,
we don't need to pull from the wiki. This patch also adds a schema
to verify the release_liaions.yaml is formatted correctly.

Story: 2005702
Task: 33639
Task: 33733

Change-Id: Ic4de16c26bb1a4fb878b86d2bd9c59bf5f54d11d
2019-06-19 16:22:29 -07:00
Kendall Nelson
1079f4ba23 Add Liaisons to Deliverables File
Adding liaisons to deliverables where there is a liasion listed here:
https://wiki.openstack.org/wiki/CrossProjectLiaisons#Release_management

Also creates a data dir to put the non deliverable files that were in the
deliverables dir elsewhere and updates filepaths to reflect the change.

Story: 2005702
Task: 31024

Change-Id: Idc5f4b29dd375465b21d678fa8503cbd8d6d3eb6
2019-06-11 15:08:10 -07:00
Tony Breeds
5801fbdc77 Switch constraints files over to the new opendev infrastructure
Currently constraint redirectiones that point to EOL releases don't work
as expected due to gitea needed to differentiate between tags and
branches.  Rather than fix, and rely on multiple redirects lets just
craft 301's that point to the correct gitea url.

This means we now need to know when a target is a branch or tag but
that's pretty simple to intuit given our deliverable structure.

Change-Id: Ife030f8ee7b5d204b054f99e920a675f7d92da69
2019-05-22 14:33:37 +10:00
Zuul
2391e184c7 Merge "Rename review.openstack.org to review.opendev.org" 2019-05-16 06:27:20 +00:00
Doug Hellmann
e450f06b45 skip branch validation for independent EM and EOL tags
If a project is independent, the tag names will not match the series
name.

Change-Id: Ib85bc9bc9747a7dbe9fc1d59ca893de4ce0d11bf
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
2019-05-12 17:50:55 -04:00
melissaml
e700061762 Rename review.openstack.org to review.opendev.org
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
2019-05-12 04:33:25 +08:00