816 Commits

Author SHA1 Message Date
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
Zuul
6ae844e745 Merge "[list_changes] Handle non-numeric tags" 2019-05-07 19:10:55 +00:00
Zuul
f27b4f805c Merge "Add a 'generic' release-type." 2019-04-19 11:46:22 +00:00
Zuul
821a7313a0 Merge "Before we checkout a ref try resetting the workdir to HEAD" 2019-04-19 00:14:14 +00:00
Sean McGinnis
46c68ab92c
Fix announce email project names
Argument naming ambiguity led to grabbing the wrong value. This updates
repo name handling to grab from the right input.

Change-Id: I4987fc012a07344cbc4290e33eae5b772270eb07
Signed-off-by: Sean McGinnis <sean.mcginnis@gmail.com>
2019-04-18 11:44:17 -05:00
Zuul
43ace562ce Merge "Fix release-note parsing of deliverable files" 2019-04-18 09:21:37 +00:00
Tony Breeds
55fa425cdc [list_changes] Handle non-numeric tags
After we tagged a realease EM git describe on a branch will include that
tag and as it contains a '-' it breaks the partition() we're using to
get the tag[1].

Switch to using a re rather than the simple partition.

(venv) [tony@thor releases]$ ipython
Python 3.7.3 (default, Mar 27 2019, 13:41:07)
Type 'copyright', 'credits' or 'license' for more information
IPython 7.4.0 -- An enhanced Interactive Python. Type '?' for help.

In [1]: import openstack_releases.cmds.list_changes
In [2]: workdir = '/home/tony/projects/openstack'
In [3]: repo = 'openstack/python-manilaclient'
In [4]: openstack_releases.cmds.list_changes.git_list_existing_branches(workdir, repo)

All Branches with Version Numbers
---------------------------------
feature/add-constraints-support 1.11.0-36-g7134e3c   1.11.0       2 years, 8 months ago
master                         1.27.0-10-g05a3f4d   1.27.0       6 months ago
review/openstack_release_bot/create-stein 1.27.0-2-g31608cf    1.27.0       6 months ago
remotes/gerrit/master          1.27.0-10-g05a3f4d   1.27.0       6 months ago
fatal: ambiguous argument 'ocata': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'
remotes/gerrit/stable/ocata    ocata-em-5-g22e9c42  ocata
remotes/gerrit/stable/pike     1.17.4               1.17.4       7 months ago
remotes/gerrit/stable/queens   1.21.1-6-g02d6234    1.21.1       1 year, 1 month ago
remotes/gerrit/stable/rocky    1.24.1-9-g816bfc8    1.24.1       9 months ago
remotes/gerrit/stable/stein    1.27.0-3-g7430f4c    1.27.0       6 months ago
remotes/origin/master          1.27.0-10-g05a3f4d   1.27.0       6 months ago
fatal: ambiguous argument 'ocata': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'
remotes/origin/stable/ocata    ocata-em-5-g22e9c42  ocata
remotes/origin/stable/pike     1.17.4               1.17.4       7 months ago
remotes/origin/stable/queens   1.21.1-6-g02d6234    1.21.1       1 year, 1 month ago
remotes/origin/stable/rocky    1.24.1-9-g816bfc8    1.24.1       9 months ago
remotes/origin/stable/stein    1.27.0-3-g7430f4c    1.27.0       6 months ago

In [5]: from imp import reload
In [6]: reload(openstack_releases.cmds.list_changes)
Out[6]: <module 'openstack_releases.cmds.list_changes' from '/home/tony/projects/openstack/openstack/releases/openstack_releases/cmds/list_changes.py'>
In [7]: openstack_releases.cmds.list_changes.git_list_existing_branches(workdir, repo)

All Branches with Version Numbers
---------------------------------
feature/add-constraints-support 1.11.0-36-g7134e3c   1.11.0       2 years, 8 months ago
master                         1.27.0-10-g05a3f4d   1.27.0       6 months ago
review/openstack_release_bot/create-stein 1.27.0-2-g31608cf    1.27.0       6 months ago
remotes/gerrit/master          1.27.0-10-g05a3f4d   1.27.0       6 months ago
remotes/gerrit/stable/ocata    ocata-em-5-g22e9c42  ocata-em     2 years, 3 months ago
remotes/gerrit/stable/pike     1.17.4
remotes/gerrit/stable/queens   1.21.1-6-g02d6234    1.21.1       1 year, 1 month ago
remotes/gerrit/stable/rocky    1.24.1-9-g816bfc8    1.24.1       9 months ago
remotes/gerrit/stable/stein    1.27.0-3-g7430f4c    1.27.0       6 months ago
remotes/origin/master          1.27.0-10-g05a3f4d   1.27.0       6 months ago
remotes/origin/stable/ocata    ocata-em-5-g22e9c42  ocata-em     2 years, 3 months ago
remotes/origin/stable/pike     1.17.4
remotes/origin/stable/queens   1.21.1-6-g02d6234    1.21.1       1 year, 1 month ago
remotes/origin/stable/rocky    1.24.1-9-g816bfc8    1.24.1       9 months ago
remotes/origin/stable/stein    1.27.0-3-g7430f4c    1.27.0       6 months ago

[1] http://logs.openstack.org/75/652775/2/check/releases-tox-list-changes/92b219a/job-output.txt.gz#_2019-04-16_14_25_50_377843

Change-Id: I6a6cf9110a737204e332c60004f72a68b770d1e7
2019-04-18 08:55:33 +00:00
Tony Breeds
828e285701 Add a 'generic' release-type.
We use release-types as a way to verify that versions are compatible and
if needed reflected accurately in the code (puppet, xstatic).  If one
isn't set explicitly then we assume python-service.

In certain circumstances (anything other than the first release in a
series) we also perform python specific requirements checking on all
'python' types.

Add a new 'generic' type that uses the same rules to validate version
numbers but wont run any python specific checks.

We need this a projects (like monasca-thresh) will fail the requirements
check for 2nd or greater releases[1].

An alternate would be to have the requirements code check if setup.py
exists before calling it but that seems like the wrong layer to me.

[1] http://logs.openstack.org/54/652854/1/check/openstack-tox-validate/80df01c/job-output.txt.gz#_2019-04-16_06_08_00_636538
Change-Id: I3fcde5eb266f954fddb6871ce8690b93b8fd7a8d
2019-04-18 15:27:27 +10:00
Tony Breeds
8f474f5837 Before we checkout a ref try resetting the workdir to HEAD
Some repos have the AUTHORS file checked in and when to generate the
sdist we may update that file[1].  This causes later checkouts to
fail[2].

Lets just reset the workdir to HEAD before we try to check anything out.

[1] http://logs.openstack.org/54/652854/2/check/openstack-tox-validate/5bab7e7/job-output.txt.gz#_2019-04-17_05_24_27_485692
[2] http://logs.openstack.org/54/652854/2/check/openstack-tox-validate/5bab7e7/job-output.txt.gz#_2019-04-17_05_24_28_115433

Change-Id: I2a28105c25589f588ca62eb61b8f185c5312dbb3
2019-04-18 15:27:27 +10:00
Sean McGinnis
a68f6bede5
Fix release-note parsing of deliverable files
The list-changes job would fail to parse deliverable files with the
error "WARNING: Unable to parse $repo $series deliverable file" due to
the repo name being passed in with the leading openstack/ namespace.

This is common code used by list-changes and release-notes. In
list-changes we have the actual name of the deliverable file, so just
use that if it is available.

Also makes sure that cases were we expect just the repo name without
namespace only get what is expected.

Change-Id: Ib7526fc66d05530c2c2c722284c1d64a5242e419
Signed-off-by: Sean McGinnis <sean.mcginnis@gmail.com>
2019-04-16 11:05:51 -05:00
Sean McGinnis
7450ab3a71 Drop references to git.openstack.org
Updates to use opendev.org or published documentation.

Change-Id: I0bd488b25d1259bce3f723a6c58283fdf670e721
Signed-off-by: Sean McGinnis <sean.mcginnis@gmail.com>
2019-04-15 14:25:18 -05:00
Zuul
dc09e8fecb Merge "new-release: Handle em for untagged repos" 2019-04-12 23:24:32 +00:00
Zuul
778f670cd8 Merge "No longer create longlines with edit-deliverables" 2019-04-12 05:04:21 +00:00
Sean McGinnis
313e348713 new-release: Handle em for untagged repos
This updates the new-release command to use the last release for normal
repos when transitioning to -em, but grabbing the current HEAD when
tagging "release-model: untagged" deliverables.

Change-Id: I42acb74d033429a72946fda136f87b4ccaefb220
Signed-off-by: Sean McGinnis <sean.mcginnis@gmail.com>
2019-04-11 14:10:38 -05:00