498 Commits

Author SHA1 Message Date
Sean McGinnis
fc79ebcc8f
Allow first release in cycle to be RC
This cycle we changed cycle-with-milestones to cycle-with-rc and no
longer require that projects do any beta releases prior to the RC. This
updates our release version validation check to allow for the first
release of the cycle to be an RC release.

Change-Id: Idf12bb22d35ebecf0c64a29b14d239e4a2d4b996
Signed-off-by: Sean McGinnis <sean.mcginnis@gmail.com>
2019-03-18 13:41:11 -05:00
Kendall Nelson
cb1e9ddb2f Handle other rc cases
The new-release script couldnt handle cases where we wanted to
increment the version for an rc where there hadn't previously been
a release since milestones aren't as much of a thing anymore.

This patch will add the ability to detect and handle these cases
falling back to how things are done with milestones.

Change-Id: I7c7d6ad76c0b3f9aae41a45f2cd646e298966c6f
2019-03-15 02:15:51 +00:00
Doug Hellmann
f95cd67b76 only fail pypi permission validation if the project exists
If the project does not exist, it will be created correctly by the
release job. If it does exist, we cannot add a user to it so that has
to be done correctly.

Change-Id: I78173d855c11c8f9e8d75548b0882a4e7d27765f
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
2019-03-07 18:03:58 -06:00
Zuul
90b1eeb883 Merge "Files doesn't need to be byte encoded" 2019-01-10 18:32:08 +00:00
Zuul
419691d85e Merge "Fix WordCompleter import" 2019-01-10 18:32:07 +00:00
Jean-Philippe Evrard
37f15933f8 Files doesn't need to be byte encoded
Writing files as unicode strings should work just as fine.

Change-Id: I6094e755261735639765e0d5df9a162bab9f1466
2019-01-10 10:27:19 +01: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
f8b4412fae improve list-changes handling for first releases
Before this change we always had a start revision value because
get_latest_tag() returned a SHA if it didn't have a real tag. The way
that SHA is determined leads to not including all changes in the
report about the release, so we don't want to use the value. This
change allows get_latest_tag() to return None and in that case use an
empty starting point for the diff range when computing the release
notes contents.

Change-Id: I7403b0ab2264ef7828c012a943cf093da2951d68
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
2019-01-07 10:26:36 -05:00
Doug Hellmann
94a24d03dc switch mailing lists to openstack-discuss
The openstack-dev mailing list is closed, so we should set reply-to
headers and other settings related to mailing lists to use the new
discuss list instead.

Change-Id: I5be0db7dff2e9acce455a197e01972ae2bef2f44
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
2018-12-04 10:41:28 -05:00
Doug Hellmann
cdcfbf8be1 fix default liaison information
Fix the handling for cases where no liaison is specified so that the
dict used as a default value contains the keys expected in the
formatting in the following print statement.

Change-Id: I80e2266101ef1a66e0781d3eb8b7d9cf854d6124
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
2018-11-21 15:21:28 -05: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.

Depends-On: https://review.openstack.org/614605
Change-Id: Ia7ffff3945462f4b568b55287dfdf45fe73a35d9
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
2018-11-21 15:10:34 -05:00
Zuul
09e2a39b46 Merge "Update tooling to support cycle-with-rc model" 2018-10-24 15:29:31 +00:00
Zuul
f11917515b Merge "Switch stein deliverables to cycle-with-rc" 2018-10-24 15:28:30 +00:00
Sean McGinnis
32afc4160d Update tooling to support cycle-with-rc model
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>
2018-10-24 08:41:13 -05:00
Sean McGinnis
160bf4bee8 Switch stein deliverables to cycle-with-rc
This adds the new release model to the schema and updates any existing
cycle-with-milestones stein deliverables to be cycle-with-rc.

Change-Id: Ic774ce2f50dd2bb1d0e5b9976f3c7d60a98d6752
Signed-off-by: Sean McGinnis <sean.mcginnis@gmail.com>
2018-10-24 08:41:13 -05:00
Ben Nemec
7947dd3279 Fix issue with first release logic
We need to use .get('releases') in order to get a None value back
instead of a KeyError, as is expected by the logic here.

Change-Id: Iaabf8dd309130ab609c26b01475cf5e0ae0a44dc
2018-10-22 20:16:18 +00:00
Zuul
3f4e794967 Merge "teach new-release to handle new deliverables" 2018-10-11 22:22:37 +00:00
Doug Hellmann
4e9f0aadbf add a note to readme about official teams
Direct folks not under governance to the infra guide for tagging
instructions.

Change-Id: I373ffb1cce71946a034b32be95884fc0f3f899fa
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
2018-10-11 10:36:01 -04:00
Doug Hellmann
f46c677316 teach new-release to handle new deliverables
Change-Id: Ief7b259b4ed10ad982cc3255554f10a532064b1e
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
2018-10-10 09:29:32 -04:00
Doug Hellmann
2c2e61b76f drop support for driverfixes branches
This change removes support for driver fixes branches. It will prevent
any releases from projects with those branches listed in the deliverable
file in any series, which should prevent us from re-creating branches
that we are trying to remove when we do releases.

Change-Id: Ied35b936af1345e893da1384762f30547601ae8f
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
2018-10-08 19:09:14 -04:00
Zuul
e28f950b71 Merge "do not require stable branches from latest release for independent projects" 2018-09-29 19:47:37 +00:00
Zuul
95e0c0dc45 Merge "add a 'releasefix' mode for re-tagging existing releases" 2018-09-26 14:42:15 +00:00
Doug Hellmann
41c0c1deea add a 'releasefix' mode for re-tagging existing releases
When we have a lot of release jobs fail, it is easier to just
re-release things than to try to fix the problems one at a time. This
change makes it easier to prepare the relevant changes.

Change-Id: I0e3dca1e42278374b03ad6e83c48aa98a8f2e2c4
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
2018-09-24 14:46:47 -04:00
Sean McGinnis
bb81a80fd0 Simplify ref checkout in validate cmd
When the current code needs the repo checked out to a specific commit it
calls clone_repo. The clone_repo call makes sure the repo has been
cloned locally, performs a fetch to get all tags and prunes any
references no longer on the remote, then finally checks out the
requested ref.

The validation logic starts with cloning all necessary repos and
performing these actions, so after that point, we should be able to just
checkout the ref that we need for the given check. This will greatly
improve the execution time of the validate job for repos that have had a
large number of releases.

Change-Id: Ie444c8ef8e91832c38ee69307382ddb5fb8e1b08
Signed-off-by: Sean McGinnis <sean.mcginnis@gmail.com>
2018-09-22 22:11:55 -05:00
Zuul
a6ef6ba006 Merge "add verbose mode to new-release" 2018-09-21 14:28:53 +00:00
Zuul
cb57efb29c Merge "Don't reverse series list in new_release" 2018-09-21 09:56:30 +00:00
Doug Hellmann
724e80dc27 do not require stable branches from latest release for independent projects
Independent projects may mix releases from different series in the
file, so we should not require that they follow the rule of branching
from the most recently tagged release.

Change-Id: Ic97592d31ef8be791074155373864ba1e0d3bd6d
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
2018-09-19 13:24:49 -04:00
Doug Hellmann
79c96636d0 add verbose mode to new-release
Use the logging module to add a verbose mode to new-release.

Change-Id: Id4328c33d6c9db20756761742d4e52a64f0090de
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
2018-09-19 13:17:22 -04:00
Ben Nemec
f816ee2168 Don't reverse series list in new_release
The list is already sorted such that the order is stein, rocky,
queens, etc. If we reverse it and then look at only everything after
and including stein, we get no results unless there has been a stein
release.

The reversing was originally necessary because we were using
os.listdir to get the list of series, but now that we're reading them
from a yaml file that is already reverse sorted we don't need that.
See d3f7e4e1f5c860072a5da070f06498c0ad0aa160.

Change-Id: Id65de92f89dc02ba076a6b2dfb949a091cf4ce38
2018-09-19 17:04:29 +00:00
Doug Hellmann
3013ead10c convert warning for missing repo to error
If a release does not include all of the repositories in the
deliverable report an error instead of a warning.

Change-Id: I7980b204995647fc77657123fa8d7bb565b55247
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
2018-09-19 09:24:54 -04:00
Jeremy Stanley
b84749b4e2 Support StoryBoard project names in place of IDs
Now that storyboard-webclient no longer displays the project id
number in project URLs by default, it is harder for people to look
them up without referring to the API. Conversely, we could just use
the newer name-based project query support in the API instead. As a
transitional step, support both. Also switch openstack-infra/shade
from id to name to prove that the validate tool change is effective.

Change-Id: I9da97a1af40bb3527c1c7e8a66a267c76b9db564
2018-09-08 20:58:58 +00:00
Zuul
4c02012aba Merge "have list-deliverables --no-stable-branch skip tempest repos" 2018-09-03 01:34:18 +00:00
Zuul
106d18b098 Merge "Skip release-test for missing-releases" 2018-08-31 15:48:39 +00:00
Doug Hellmann
e2c8bab35e have list-deliverables --no-stable-branch skip tempest repos
Tempest and its plugins do not branch, so we should not list them when
asking which repos have not yet branched.

Change-Id: I1ebc933b613d8e267392aa8931252f762ad338fa
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
2018-08-31 10:30:10 -04:00
Sean McGinnis
2e9ebf7f39
Skip release-test for missing-releases
Change-Id: I7833615b22e6632a7108580dcfd5c1d34a42c0fd
Signed-off-by: Sean McGinnis <sean.mcginnis@gmail.com>
2018-08-31 08:24:51 -05:00
Doug Hellmann
e5e9c33a16 fix validation of stable branches for independent deliverables
The wrong variable was being used to check for the existing
branch. Add some debug messages to show what we do find and fix that
variable so the right branch name is checked.

Change-Id: I758f6aa3fd0b983af1b83a922b40c3181ae48014
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
2018-08-29 16:51:52 -04:00
Doug Hellmann
b2bf0e0c4d fix latest release handling in branch validation
Not all repos that create stable branches will have tagged releases,
so only check the latest release when we need to.

Change-Id: Ieb51f8f280a6127ff0adc9432acfe65c809ac764
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
2018-08-28 09:40:07 -04:00
Zuul
e022c54daa Merge "have list-changes show information about other deliverables in the series" 2018-08-27 00:24:07 +00:00
Doug Hellmann
131bd356cc have list-changes show information about other deliverables in the series
We had a few teams "forget" about one or more of their deliverables
during rocky. Let's update the list-changes output to show the other
deliverables owned by a team in a series, along with their latest
version, as a way to prompt the release team to remind the project
team to release those other things.

Change-Id: I79c8c0ee591d557c07c46282da1f7ab14ec6290c
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
2018-08-17 11:37:45 -04:00
Doug Hellmann
11bb8e04f4 require stable branches be made from latest release
At the end of rocky we had a couple of cases where a forced branch was
created from a release that was not the most current. This validation
change should prevent that from happening again in the future.

Change-Id: Ie8635b74ccbce988b5f4e53c0848daf50625b239
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
2018-08-16 16:20:01 -04:00
Zuul
1bba892b3d Merge "add validation for sdist building" 2018-08-10 09:31:34 +00:00
Doug Hellmann
81047e0096 add validation for sdist building
Try to build the sdist and wheel for python packages.

Change-Id: I6cf0ff8e7771367bce17061c9b21b7740516d31d
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
2018-08-09 15:15:31 -04:00
Doug Hellmann
3b993850c1 add validation for pre-release version progression
Change-Id: I162baf43c1f782de314af95c525476f80f32a9bd
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
2018-08-09 12:19:36 -04:00
Doug Hellmann
d92df30fcf add --include-trailing option to propose-library-branches
Add an option to let us include cycle-trailing libraries so it is
easier to do a final sweep and ensure that all libraries are branched.

Change-Id: Ibb9d4bc2173b106f6129a4e557807c13c0df559f
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
2018-08-08 11:58:27 -04:00
Doug Hellmann
5fc52e3580 only branch cycle-with-intermediary libraries automatically
At the end of Rocky we branched python-tripleoclient before the team
was ready because the script to prepare the list of branches did not
take the release model into account. Fix that.

Change-Id: I34c99f0d5c4a39f17b4de68558fc18fc10a7a706
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
2018-08-08 11:39:52 -04:00
Doug Hellmann
c7ec88dc90 skip readme validation for EOL and EM tags
No artifacts will be published for these sorts of tags, so there is no
need to validate the README content.

Change-Id: I5ece4e38d0f0822751d8005c6ef176d84cd0009c
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
2018-07-23 09:06:42 -05:00
Doug Hellmann
6647d6a6b4 fix the calculation used for finding release history
reversed() must be passed a sequence data structure, not a generator.

We cannot slide the result of reversed() so turn it back into a list
so we can slice it.

Include all of the series starting with and including the one given so
that when it is the final series we can still include it in
calculations.

Change-Id: Idbaab36014271c7a60bec6d8a04fc69d51eb13d1
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
2018-07-19 11:52:07 -04:00
Doug Hellmann
d3f7e4e1f5 fix series name handling in new-release
The independent series has to be treated as a special case because it
does not appear in the sequence of normal series.

Not everything in the deliverables directory is actually a series
name, so we need to use the series status data to get the list of
valid names.

Change-Id: Iea9ce55bf3c99afc7bcdd74cc0b7eb523c0a922d
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
2018-07-10 17:44:23 -04:00
Doug Hellmann
f8aa29c8a8 add a --debug option to new-release
Let new-release throw an exception to help debug a failure.

Change-Id: I72afff885e06b967f40b6572a576559df45a5291
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
2018-07-10 16:53:52 -04:00
Thierry Carrez
eb4c7ac4ef new_release: go back in history and compute depth
make get_last_release() go further back in release history,
compute the depth at which it finds a release.

Properly increment feature version based on the depth at
which the last release was found.

Change-Id: I5880611a7d9005cee8fe4c2d7920f84d880eeeb8
Task: 22351
2018-07-04 18:40:25 +02:00