add "upstream" stable-branch-type

Add a stable-branch-type called "upstream" for projects that follow
the naming conventions of another upstream project (see puppet-ceph
for an example).

Change-Id: I354bf975311c2b02c020dc83590c041c7733b041
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
This commit is contained in:
Doug Hellmann 2017-08-21 15:51:41 -04:00
parent d0690f5166
commit 573194a623
3 changed files with 17 additions and 2 deletions

View File

@ -432,6 +432,10 @@ The top level of a deliverable file is a mapping with keys:
hash. This mode should only be used for projects that do not tag hash. This mode should only be used for projects that do not tag
releases, such as devstack and grenade. releases, such as devstack and grenade.
``upstream``
Stable branch names track upstream release names, rather than
OpenStack series names.
``branches`` ``branches``
A list of the branches for the deliverable. A list of the branches for the deliverable.

View File

@ -681,11 +681,22 @@ def validate_stable_branches(deliverable_info, workdir,
'does not exist' % ( 'does not exist' % (
(loc, repo, branch['name']))) (loc, repo, branch['name'])))
) )
elif branch_mode == 'upstream':
if not isinstance(location, six.string_types):
mk_error(
('branch location for %s is '
'expected to be a string but got a %s' % (
branch['name'], type(location)))
)
else: else:
mk_error( mk_error(
('unrecognized stable-branch-type %r' % (branch_mode,)) ('unrecognized stable-branch-type %r' % (branch_mode,))
) )
if series_name == '_independent': if branch_mode == 'upstream':
mk_warning(
'skipping branch name check for upstream mode'
)
elif series_name == '_independent':
if series not in known_series: if series not in known_series:
mk_error( mk_error(
('stable branches must be named for known series ' ('stable branches must be named for known series '

View File

@ -38,7 +38,7 @@ properties:
enum: [ "std", "xstatic", "fuel" ] enum: [ "std", "xstatic", "fuel" ]
stable-branch-type: stable-branch-type:
type: "string" type: "string"
enum: [ "std", "tagless" ] enum: [ "std", "tagless", "upstream" ]
releases: releases:
type: "array" type: "array"
items: items: