39 Commits

Author SHA1 Message Date
Hervé Beraud
003eb35717 Adding a tool to track project who need to drop eol branches
Since transition from the EOL model to the EM model eol branches
are no longer removed and this step is no longer in the release team
process.

Keep stale branches can be an issue in some situation especially with
zuul and our gates. To avoid this situation the release team propose
to reintroduce regular checks to ensure that we remove stale branches
that have been tagged eol previously.

As discussed during our previous meetings soon it will be possible to design
a new job and to trigger it to remove eol branches automatically.
This will possible when the infra would have been updated and when all
the needed pieces will be in place.

Change-Id: I53aeb3211bb3251a3278472a514a39afe825cdd2
2020-11-12 10:57:39 +00:00
Thierry Carrez
8a9f755cb9 Trailing is a deliverable type, not a release model
Cycle-trailing deliverables are regular cycle-following deliverables,
using RCs or not not using RCs -- they just have a different deadline.

Rather than using a release model, those deadline variants are better
described using deliverable types, in much the same way 'library'
deliverables have a specific deadline too.

This simplifies the list of models significantly, and allows to have
proposer validation of trailing deliverables that use RCs or not use
RCs.

For compatibility in old branches, setting 'cycle-trailing' is still
supported, it will just overload the type to 'trailing' if specified.

Change-Id: Ifce88ef3e5dd406f45f25214699f16e736ad5377
2020-06-16 16:18:30 +02:00
Hervé Beraud
6f599fe5be [fix] list-deliverables when branch type is undefined
These changes fix the `list-deliverables --no-stable-branch` command when
`stable-branch-type` is `none`.

Previously projects with `stable-branch-type: none` was returned in
results.

Project with this type of stable branch should be ignored when we
looking for projects with no stable branche (`no-stable-branch`).

Change-Id: I05c0e7e153e9ddbe5bc3632de9bfdde411ab580d
2020-05-18 13:24:53 +02: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
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
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
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
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
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
Zuul
52db21f643 Merge "add --forced filter argument to list-deliverables" 2018-06-13 17:21:48 +00:00
Doug Hellmann
1d19c7bf8c have list-deliverables support past milestones
Don't assume the missing milestone or RC is supposed to be the most
recent tag.

Change-Id: Ib446426e263ccf2dbd0cb92b2819162319acb8f7
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
2018-06-12 11:03:51 -04:00
Doug Hellmann
d44680bcf8 add --forced filter argument to list-deliverables
The flag only applies when --all-releases is selected.

Change-Id: I788336180adb32c83b7602b64aeb2ea878c41cb1
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
2018-06-08 17:35:28 -04:00
Doug Hellmann
e3b8d6b40f fix list-deliverables --all-releases mode
This mode was never tested when we switched to using data objects
instead of dictionaries.

Change-Id: Ibada83af91b2bb01fa244fcbf63d8cae709a217d
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
2018-06-08 17:31:51 -04:00
Doug Hellmann
c585aa2444 fix list-deliverables for the independent series
An earlier commit tried to make the canonical form of the independent
series name just 'independent', but it did not update the
list-deliverables command. This patch completes the work.

Change-Id: Ie161325f58f762d417031b2b70b57c49d72a2f9f
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
2018-05-01 13:57:51 -04:00
Doug Hellmann
22c0797636 fix list-deliverables for changes in get_deliverables()
Now that get_deliverables() returns Deliverable objects instead of
tuples we don't have to turn the tuples into objects.

Change-Id: I83c6da75f6186cf7001baa8e162ad6d5714cc3e7
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
2018-03-07 10:49:50 -05:00
Doug Hellmann
87810864f2 have list-deliverables look for valid values by querying the schema
An earlier change in the series removed the static data being used for
configuring the command line interface of list-deliverables. Replace
that with something that reads the schema file instead so we only need
to have the settings in one place.

Change-Id: Ib40e3bdff2f127cf5041dfffb03d53c0d1a6f3a0
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
2018-03-07 10:49:50 -05:00
Doug Hellmann
6dd966a1a6 add sorting to object models and fix list-deliverables
Some of the previous changes in the series broke assumptions made by
list-deliverables, so fix things.

Change-Id: I703154199de38667801bcfe789cb7a46adf4e53e
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
2018-03-06 10:23:12 -05:00
Doug Hellmann
5166e80222 set default for --type to an empty list
The action is set to append but the default is still None so if --type
is not provided on the command line the option's value isn't iterable
and trying to use it causes an exception.

Change-Id: I17e027088db305fac51a557e7005293d904cf890
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
2018-02-05 09:07:46 -05:00
Doug Hellmann
5d1a19ebc2 show type in list-deliverables output when more than one option
If the user does not filter on type, or filters on multiple types, show
the type in the verbose output of list-deliverables.

Change-Id: Id4c1f7dcb540f4a15634d6bcd9c1da78792e7d68
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
2018-01-31 09:33:46 -05:00
Doug Hellmann
e0c6924037 constrain the valid values for the --type option to list-deliverables
Change-Id: I1204d1193e0a67486664e9175b923e18218fc73a
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
2018-01-29 19:31:18 -05:00
Doug Hellmann
68e91e3369 allow list-deliverables to support multiple types
Change-Id: Ic62a882dfda9b4f6252402bb68e6d508ff54d4bd
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
2018-01-29 19:31:18 -05:00
Doug Hellmann
29e1d06b20 add --all-releases mode to list-deliverables
Add a verbose output mode that shows information about all of the
releases for a deliverable, not just the latest.

Change-Id: Ic7bcf135581371f286b2dd2c0d85145fa801e52c
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
2017-11-11 12:07:52 -05:00
Doug Hellmann
23a856cb05 fix tag filtering logic
The check for missing tags was continuing the inner loop instead of
the loop over deliverables.

Change-Id: I8219fa0262a00c402ae1e479260491900d22218e
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
2017-11-11 12:07:22 -05:00
Doug Hellmann
4824e2098c show tags in list-deliverables verbose output
Change-Id: I8b69f567cbcae517ff82de2cc41329ea6472978e
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
2017-11-11 12:07:08 -05:00
Doug Hellmann
8b3abc8b1d handle unreleased deliverables in verbose mode
If we pass None to .format() it throws an error, so if there is no
release pass '' instead.

Change-Id: I7baff165935833902a49e1ea470cbb7068daeb2c
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
2017-07-20 14:04:34 -04:00
Doug Hellmann
3134dfff97 add --group-by option to list-deliverables
Add an option for organizing the output based on a characteristic of the
deliverable.

Change-Id: I8275b501cab1be14e7bd3645111ac56314865bfe
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
2017-06-21 10:53:35 -04:00
Doug Hellmann
57639f8b8f add untagged release model for devstack and grenade
Change-Id: I9fad5ca61c07ec6f985fa479bb1c5f1427b9217b
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
2017-06-12 11:18:57 -04:00
Dmitry Teselkin
bd0e940015 Add --csvfile for list_deliverables
list_deliverables produces multicolumn output only in verbose mode,
and even in that mode it doesn't contain data about projects and
latest commits.

To simplify automated processing of that data this commit adds --csvfile
parameter to specify that results should be stored in CSV file.

Change-Id: I99af12a2a34d4f913ad4db6c3926e1b1a52a5a45
2017-04-04 18:40:24 +03:00
Doug Hellmann
cf64aa11dd add --missing-final argument to list-deliverables
Provide a way to identify the projects that have pre-releases but no
final releases.

Change-Id: I85d53b27adb21aefa3be13028755e8df6fd4e0b8
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
2017-03-06 13:38:08 -05:00
Doug Hellmann
1d16e90184 teach list-deliverables to filter on governance tags
Change-Id: Ib542b021033a3935c22aa089268c6effb018bf3e
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
2017-02-08 15:48:36 -05:00
Doug Hellmann
df0975e12a honor the --deliverable argument
If --deliverable is specified, only show details about that deliverable.

Change-Id: Ic10a01cd9708ae709016eecdcd4e17f594bfca32
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
2017-01-23 14:49:40 -05:00
Doug Hellmann
8ac8eaef04 add details to the list-deliverables verbose output
Add columns with extra details about project, if those values are not
being used to filter the rows printed.

Change-Id: If0a2e771ec6420d180ac3e8a4706c295562d0487
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
2017-01-23 14:49:40 -05:00
Doug Hellmann
e48c2a51c4 add mode to list-deliverables to show repo names
Sometimes we want the repository names, not the deliverable names. Add a
switch to list-deliverables to give that output.

Change-Id: Iaf0cd77237c0b1892aaa0864eb356012c57f036c
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
2017-01-17 14:02:50 -05:00
Doug Hellmann
47a020e424 add --missing-rc flag to list-deliverables
Make an easy way to find projects that have not tagged a release
candidate for a series.

Change-Id: I467e14a69901ec5292576a88365804b676903a79
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
2017-01-02 12:19:57 -05:00
Doug Hellmann
2478e9826d add --missing-milestone flag to list-deliverables
This argument can be used to query for cycle-with-milestones
deliverables that have not yet tagged a specific milestone.

Also fix a bug in the logic for determining the latest release.

Change-Id: Ibe71cdd60e5ccdd03cec3bc7148c2bafc2bf2c5a
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
2016-12-16 09:21:12 -05:00
Doug Hellmann
0af240bb6b add a verbose flag to list-deliverables
Change-Id: I2366cc3d846c985d0951c7dc11b78b6a4665ab40
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
2016-12-16 09:17:19 -05:00
Doug Hellmann
132d5abc28 add --unreleased option to list-deliverables
Add a flag to list official deliverables that have not been released in
a series.

Change-Id: I384a0bb13410f26aa38e266ebd805bd64b0c0918
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
2016-12-05 11:05:51 -05:00
Doug Hellmann
3a774a8afd add option to list-deliverables to show items without a stable branch
list-deliverables is already able to focus on a series. Add a new option
to let it show only items that do not have a stable branch for that
series. This can take the place of some of the tracking we were doing on
the old dashboard.

Change-Id: I57a51b5de9cd289369330a42dbf15003bedac091
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
2016-12-02 08:21:50 -05:00
Doug Hellmann
415e86c465 add list-deliverables command
Add a command to print a list of the names of deliverables that match
specified criteria, like having a certain release.

Change-Id: I52844446e288513b0a575c922a83d72f803f9f17
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
2016-11-22 10:29:06 -05:00