Remove the tags framework (final part)
This commit removes the last tags of stable policy and rest all tags have been already removed by - https://review.opendev.org/c/openstack/governance/+/822900 - https://review.opendev.org/c/openstack/governance/+/830478 - https://review.opendev.org/c/openstack/governance/+/834327 Below patch move the stable policy tag project list to stable policy doc in project team guide - https://review.opendev.org/c/openstack/project-team-guide/+/834796 Release scripts has also been updated to remove the tag dependency - https://review.opendev.org/c/openstack/releases/+/829014/2 - https://review.opendev.org/c/openstack/releases/+/834066/1 - https://review.opendev.org/c/openstack/releases/+/830084 Co-Authored-By: Radosław Piliszek <radoslaw.piliszek@gmail.com> Change-Id: Iae38ecb7cdc4fd2946675022cb0530e90e342fdd
This commit is contained in:
parent
2bfa1b7996
commit
3f9d2fb0ec
@ -1,93 +0,0 @@
|
|||||||
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
|
||||||
# not use this file except in compliance with the License. You may obtain
|
|
||||||
# a copy of the License at
|
|
||||||
#
|
|
||||||
# http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
#
|
|
||||||
# Unless required by applicable law or agreed to in writing, software
|
|
||||||
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
||||||
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
||||||
# License for the specific language governing permissions and limitations
|
|
||||||
# under the License.
|
|
||||||
|
|
||||||
"""Show information about tagged projects."""
|
|
||||||
|
|
||||||
from collections import defaultdict
|
|
||||||
|
|
||||||
from docutils import nodes
|
|
||||||
from docutils.parsers import rst
|
|
||||||
from docutils import statemachine
|
|
||||||
from sphinx.util import logging
|
|
||||||
from sphinx.util.nodes import nested_parse_with_titles
|
|
||||||
|
|
||||||
import projects
|
|
||||||
|
|
||||||
LOG = logging.getLogger(__name__)
|
|
||||||
|
|
||||||
_projects_by_tag = {}
|
|
||||||
|
|
||||||
|
|
||||||
class TaggedProjectsDirective(rst.Directive):
|
|
||||||
"""List the projects tagged with the given tag."""
|
|
||||||
|
|
||||||
has_content = True
|
|
||||||
|
|
||||||
def run(self):
|
|
||||||
tagname = ' '.join(self.content)
|
|
||||||
LOG.info('building list of projects tagged %r' % tagname)
|
|
||||||
if not tagname:
|
|
||||||
error = self.state_machine.reporter.error(
|
|
||||||
'No tagname in tagged-projects directive',
|
|
||||||
nodes.literal_block(self.block_text, self.block_text),
|
|
||||||
line=self.lineno)
|
|
||||||
return [error]
|
|
||||||
|
|
||||||
# Build the view of the data to be parsed for rendering.
|
|
||||||
result = statemachine.ViewList()
|
|
||||||
project_data = _projects_by_tag.get(tagname)
|
|
||||||
source_name = '<' + __name__ + '>'
|
|
||||||
if not project_data:
|
|
||||||
result.append(
|
|
||||||
'.. note:: No projects are using %s, yet.' % tagname,
|
|
||||||
source_name,
|
|
||||||
)
|
|
||||||
else:
|
|
||||||
team_deliverables = defaultdict(list)
|
|
||||||
|
|
||||||
for team_name, deliverable in project_data:
|
|
||||||
team = projects.slugify(team_name)
|
|
||||||
if deliverable is None:
|
|
||||||
team_deliverables[team] = []
|
|
||||||
else:
|
|
||||||
team_deliverables[team].append(deliverable)
|
|
||||||
|
|
||||||
for team in sorted(team_deliverables, key=lambda x: x.lower()):
|
|
||||||
line = '- :ref:`project-%s`%s %s' % (
|
|
||||||
team,
|
|
||||||
':' if team_deliverables[team] else '',
|
|
||||||
', '.join(team_deliverables[team]))
|
|
||||||
result.append(line, source_name)
|
|
||||||
|
|
||||||
# Parse what we have into a new section.
|
|
||||||
node = nodes.section()
|
|
||||||
node.document = self.state.document
|
|
||||||
nested_parse_with_titles(self.state, result, node)
|
|
||||||
|
|
||||||
return node.children
|
|
||||||
|
|
||||||
|
|
||||||
def _build_projects_by_tag():
|
|
||||||
for proj_name, info in projects.get_project_data().items():
|
|
||||||
for tag in info.get('tags', []):
|
|
||||||
li = _projects_by_tag.setdefault(tag, [])
|
|
||||||
li.append((proj_name, None))
|
|
||||||
for name, deliverable in info.get('deliverables', {}).items():
|
|
||||||
for tag in deliverable.get('tags', []):
|
|
||||||
li = _projects_by_tag.setdefault(tag, [])
|
|
||||||
li.append((proj_name, name))
|
|
||||||
|
|
||||||
|
|
||||||
def setup(app):
|
|
||||||
LOG.info('loading tags extension')
|
|
||||||
_build_projects_by_tag()
|
|
||||||
app.add_directive('tagged-projects', TaggedProjectsDirective)
|
|
@ -123,13 +123,6 @@ def _team_to_rst(name, info):
|
|||||||
for repo in deliverable.get('repos', [])
|
for repo in deliverable.get('repos', [])
|
||||||
)
|
)
|
||||||
yield ''
|
yield ''
|
||||||
tags = deliverable.get('tags', [])
|
|
||||||
if tags:
|
|
||||||
yield ':Tags:'
|
|
||||||
yield ''
|
|
||||||
for tag in tags:
|
|
||||||
yield ' - :ref:`tag-%s`' % tag
|
|
||||||
yield ''
|
|
||||||
else:
|
else:
|
||||||
yield 'None'
|
yield 'None'
|
||||||
yield ''
|
yield ''
|
||||||
|
@ -37,7 +37,6 @@ extensions = [
|
|||||||
'members',
|
'members',
|
||||||
'projects',
|
'projects',
|
||||||
'teams',
|
'teams',
|
||||||
'tags',
|
|
||||||
'tc_liaisons',
|
'tc_liaisons',
|
||||||
'badges',
|
'badges',
|
||||||
'page_context',
|
'page_context',
|
||||||
|
@ -62,10 +62,6 @@ class Deliverable(object):
|
|||||||
for rn in self.data.get('repos', [])
|
for rn in self.data.get('repos', [])
|
||||||
}
|
}
|
||||||
|
|
||||||
@property
|
|
||||||
def tags(self):
|
|
||||||
return set(self.data.get('tags', []))
|
|
||||||
|
|
||||||
|
|
||||||
class Repository(object):
|
class Repository(object):
|
||||||
def __init__(self, name, deliverable):
|
def __init__(self, name, deliverable):
|
||||||
|
@ -104,10 +104,6 @@ additionalProperties:
|
|||||||
pattern: "^[^/]+/[^/]+$"
|
pattern: "^[^/]+/[^/]+$"
|
||||||
minItems: 1
|
minItems: 1
|
||||||
uniqueItems: true
|
uniqueItems: true
|
||||||
tags:
|
|
||||||
type: "array"
|
|
||||||
items:
|
|
||||||
type: "string"
|
|
||||||
release-management:
|
release-management:
|
||||||
type: "string"
|
type: "string"
|
||||||
enum:
|
enum:
|
||||||
|
@ -46,8 +46,6 @@ barbican:
|
|||||||
barbican:
|
barbican:
|
||||||
repos:
|
repos:
|
||||||
- openstack/barbican
|
- openstack/barbican
|
||||||
tags:
|
|
||||||
- stable:follows-policy
|
|
||||||
ansible-role-atos-hsm:
|
ansible-role-atos-hsm:
|
||||||
repos:
|
repos:
|
||||||
- openstack/ansible-role-atos-hsm
|
- openstack/ansible-role-atos-hsm
|
||||||
@ -123,8 +121,6 @@ cinder:
|
|||||||
cinder:
|
cinder:
|
||||||
repos:
|
repos:
|
||||||
- openstack/cinder
|
- openstack/cinder
|
||||||
tags:
|
|
||||||
- stable:follows-policy
|
|
||||||
cinder-specs:
|
cinder-specs:
|
||||||
release-management: none
|
release-management: none
|
||||||
repos:
|
repos:
|
||||||
@ -135,23 +131,15 @@ cinder:
|
|||||||
cinderlib:
|
cinderlib:
|
||||||
repos:
|
repos:
|
||||||
- openstack/cinderlib
|
- openstack/cinderlib
|
||||||
tags:
|
|
||||||
- stable:follows-policy
|
|
||||||
os-brick:
|
os-brick:
|
||||||
repos:
|
repos:
|
||||||
- openstack/os-brick
|
- openstack/os-brick
|
||||||
tags:
|
|
||||||
- stable:follows-policy
|
|
||||||
python-brick-cinderclient-ext:
|
python-brick-cinderclient-ext:
|
||||||
repos:
|
repos:
|
||||||
- openstack/python-brick-cinderclient-ext
|
- openstack/python-brick-cinderclient-ext
|
||||||
tags:
|
|
||||||
- stable:follows-policy
|
|
||||||
python-cinderclient:
|
python-cinderclient:
|
||||||
repos:
|
repos:
|
||||||
- openstack/python-cinderclient
|
- openstack/python-cinderclient
|
||||||
tags:
|
|
||||||
- stable:follows-policy
|
|
||||||
rbd-iscsi-client:
|
rbd-iscsi-client:
|
||||||
repos:
|
repos:
|
||||||
- openstack/rbd-iscsi-client
|
- openstack/rbd-iscsi-client
|
||||||
@ -239,13 +227,9 @@ designate:
|
|||||||
designate:
|
designate:
|
||||||
repos:
|
repos:
|
||||||
- openstack/designate
|
- openstack/designate
|
||||||
tags:
|
|
||||||
- stable:follows-policy
|
|
||||||
designate-dashboard:
|
designate-dashboard:
|
||||||
repos:
|
repos:
|
||||||
- openstack/designate-dashboard
|
- openstack/designate-dashboard
|
||||||
tags:
|
|
||||||
- stable:follows-policy
|
|
||||||
designate-specs:
|
designate-specs:
|
||||||
release-management: none
|
release-management: none
|
||||||
repos:
|
repos:
|
||||||
@ -256,8 +240,6 @@ designate:
|
|||||||
python-designateclient:
|
python-designateclient:
|
||||||
repos:
|
repos:
|
||||||
- openstack/python-designateclient
|
- openstack/python-designateclient
|
||||||
tags:
|
|
||||||
- stable:follows-policy
|
|
||||||
liaisons:
|
liaisons:
|
||||||
tc_members: [jungleboyj, diablo_rojo]
|
tc_members: [jungleboyj, diablo_rojo]
|
||||||
ec2-api:
|
ec2-api:
|
||||||
@ -333,8 +315,6 @@ glance:
|
|||||||
glance:
|
glance:
|
||||||
repos:
|
repos:
|
||||||
- openstack/glance
|
- openstack/glance
|
||||||
tags:
|
|
||||||
- stable:follows-policy
|
|
||||||
glance-specs:
|
glance-specs:
|
||||||
release-management: none
|
release-management: none
|
||||||
repos:
|
repos:
|
||||||
@ -345,13 +325,9 @@ glance:
|
|||||||
glance-store:
|
glance-store:
|
||||||
repos:
|
repos:
|
||||||
- openstack/glance_store
|
- openstack/glance_store
|
||||||
tags:
|
|
||||||
- stable:follows-policy
|
|
||||||
python-glanceclient:
|
python-glanceclient:
|
||||||
repos:
|
repos:
|
||||||
- openstack/python-glanceclient
|
- openstack/python-glanceclient
|
||||||
tags:
|
|
||||||
- stable:follows-policy
|
|
||||||
liaisons:
|
liaisons:
|
||||||
tc_members: [dansmith, jungleboyj]
|
tc_members: [dansmith, jungleboyj]
|
||||||
heat:
|
heat:
|
||||||
@ -372,8 +348,6 @@ heat:
|
|||||||
heat:
|
heat:
|
||||||
repos:
|
repos:
|
||||||
- openstack/heat
|
- openstack/heat
|
||||||
tags:
|
|
||||||
- stable:follows-policy
|
|
||||||
heat-agents:
|
heat-agents:
|
||||||
repos:
|
repos:
|
||||||
- openstack/heat-agents
|
- openstack/heat-agents
|
||||||
@ -404,8 +378,6 @@ heat:
|
|||||||
python-heatclient:
|
python-heatclient:
|
||||||
repos:
|
repos:
|
||||||
- openstack/python-heatclient
|
- openstack/python-heatclient
|
||||||
tags:
|
|
||||||
- stable:follows-policy
|
|
||||||
tosca-parser:
|
tosca-parser:
|
||||||
repos:
|
repos:
|
||||||
- openstack/tosca-parser
|
- openstack/tosca-parser
|
||||||
@ -426,8 +398,6 @@ horizon:
|
|||||||
horizon:
|
horizon:
|
||||||
repos:
|
repos:
|
||||||
- openstack/horizon
|
- openstack/horizon
|
||||||
tags:
|
|
||||||
- stable:follows-policy
|
|
||||||
ui-cookiecutter:
|
ui-cookiecutter:
|
||||||
release-management: none
|
release-management: none
|
||||||
repos:
|
repos:
|
||||||
@ -537,13 +507,9 @@ ironic:
|
|||||||
ironic:
|
ironic:
|
||||||
repos:
|
repos:
|
||||||
- openstack/ironic
|
- openstack/ironic
|
||||||
tags:
|
|
||||||
- stable:follows-policy
|
|
||||||
ironic-inspector:
|
ironic-inspector:
|
||||||
repos:
|
repos:
|
||||||
- openstack/ironic-inspector
|
- openstack/ironic-inspector
|
||||||
tags:
|
|
||||||
- stable:follows-policy
|
|
||||||
ironic-inspector-specs:
|
ironic-inspector-specs:
|
||||||
release-management: none
|
release-management: none
|
||||||
repos:
|
repos:
|
||||||
@ -551,16 +517,12 @@ ironic:
|
|||||||
ironic-lib:
|
ironic-lib:
|
||||||
repos:
|
repos:
|
||||||
- openstack/ironic-lib
|
- openstack/ironic-lib
|
||||||
tags:
|
|
||||||
- stable:follows-policy
|
|
||||||
ironic-prometheus-exporter:
|
ironic-prometheus-exporter:
|
||||||
repos:
|
repos:
|
||||||
- openstack/ironic-prometheus-exporter
|
- openstack/ironic-prometheus-exporter
|
||||||
ironic-python-agent:
|
ironic-python-agent:
|
||||||
repos:
|
repos:
|
||||||
- openstack/ironic-python-agent
|
- openstack/ironic-python-agent
|
||||||
tags:
|
|
||||||
- stable:follows-policy
|
|
||||||
ironic-python-agent-builder:
|
ironic-python-agent-builder:
|
||||||
repos:
|
repos:
|
||||||
- openstack/ironic-python-agent-builder
|
- openstack/ironic-python-agent-builder
|
||||||
@ -590,13 +552,9 @@ ironic:
|
|||||||
python-ironic-inspector-client:
|
python-ironic-inspector-client:
|
||||||
repos:
|
repos:
|
||||||
- openstack/python-ironic-inspector-client
|
- openstack/python-ironic-inspector-client
|
||||||
tags:
|
|
||||||
- stable:follows-policy
|
|
||||||
python-ironicclient:
|
python-ironicclient:
|
||||||
repos:
|
repos:
|
||||||
- openstack/python-ironicclient
|
- openstack/python-ironicclient
|
||||||
tags:
|
|
||||||
- stable:follows-policy
|
|
||||||
sushy:
|
sushy:
|
||||||
repos:
|
repos:
|
||||||
- openstack/sushy
|
- openstack/sushy
|
||||||
@ -627,8 +585,6 @@ keystone:
|
|||||||
keystone:
|
keystone:
|
||||||
repos:
|
repos:
|
||||||
- openstack/keystone
|
- openstack/keystone
|
||||||
tags:
|
|
||||||
- stable:follows-policy
|
|
||||||
keystone-specs:
|
keystone-specs:
|
||||||
release-management: none
|
release-management: none
|
||||||
repos:
|
repos:
|
||||||
@ -639,23 +595,15 @@ keystone:
|
|||||||
keystoneauth:
|
keystoneauth:
|
||||||
repos:
|
repos:
|
||||||
- openstack/keystoneauth
|
- openstack/keystoneauth
|
||||||
tags:
|
|
||||||
- stable:follows-policy
|
|
||||||
keystonemiddleware:
|
keystonemiddleware:
|
||||||
repos:
|
repos:
|
||||||
- openstack/keystonemiddleware
|
- openstack/keystonemiddleware
|
||||||
tags:
|
|
||||||
- stable:follows-policy
|
|
||||||
pycadf:
|
pycadf:
|
||||||
repos:
|
repos:
|
||||||
- openstack/pycadf
|
- openstack/pycadf
|
||||||
tags:
|
|
||||||
- stable:follows-policy
|
|
||||||
python-keystoneclient:
|
python-keystoneclient:
|
||||||
repos:
|
repos:
|
||||||
- openstack/python-keystoneclient
|
- openstack/python-keystoneclient
|
||||||
tags:
|
|
||||||
- stable:follows-policy
|
|
||||||
ldappool:
|
ldappool:
|
||||||
repos:
|
repos:
|
||||||
- openstack/ldappool
|
- openstack/ldappool
|
||||||
@ -783,8 +731,6 @@ manila:
|
|||||||
manila:
|
manila:
|
||||||
repos:
|
repos:
|
||||||
- openstack/manila
|
- openstack/manila
|
||||||
tags:
|
|
||||||
- stable:follows-policy
|
|
||||||
manila-image-elements:
|
manila-image-elements:
|
||||||
repos:
|
repos:
|
||||||
- openstack/manila-image-elements
|
- openstack/manila-image-elements
|
||||||
@ -992,13 +938,9 @@ murano:
|
|||||||
murano:
|
murano:
|
||||||
repos:
|
repos:
|
||||||
- openstack/murano
|
- openstack/murano
|
||||||
tags:
|
|
||||||
- stable:follows-policy
|
|
||||||
murano-agent:
|
murano-agent:
|
||||||
repos:
|
repos:
|
||||||
- openstack/murano-agent
|
- openstack/murano-agent
|
||||||
tags:
|
|
||||||
- stable:follows-policy
|
|
||||||
murano-apps:
|
murano-apps:
|
||||||
release-management: none
|
release-management: none
|
||||||
repos:
|
repos:
|
||||||
@ -1006,8 +948,6 @@ murano:
|
|||||||
murano-dashboard:
|
murano-dashboard:
|
||||||
repos:
|
repos:
|
||||||
- openstack/murano-dashboard
|
- openstack/murano-dashboard
|
||||||
tags:
|
|
||||||
- stable:follows-policy
|
|
||||||
murano-pkg-check:
|
murano-pkg-check:
|
||||||
repos:
|
repos:
|
||||||
- openstack/murano-pkg-check
|
- openstack/murano-pkg-check
|
||||||
@ -1018,8 +958,6 @@ murano:
|
|||||||
python-muranoclient:
|
python-muranoclient:
|
||||||
repos:
|
repos:
|
||||||
- openstack/python-muranoclient
|
- openstack/python-muranoclient
|
||||||
tags:
|
|
||||||
- stable:follows-policy
|
|
||||||
yaql:
|
yaql:
|
||||||
repos:
|
repos:
|
||||||
- openstack/yaql
|
- openstack/yaql
|
||||||
@ -1067,23 +1005,15 @@ neutron:
|
|||||||
neutron-fwaas:
|
neutron-fwaas:
|
||||||
repos:
|
repos:
|
||||||
- openstack/neutron-fwaas
|
- openstack/neutron-fwaas
|
||||||
tags:
|
|
||||||
- stable:follows-policy
|
|
||||||
neutron:
|
neutron:
|
||||||
repos:
|
repos:
|
||||||
- openstack/neutron
|
- openstack/neutron
|
||||||
tags:
|
|
||||||
- stable:follows-policy
|
|
||||||
neutron-dynamic-routing:
|
neutron-dynamic-routing:
|
||||||
repos:
|
repos:
|
||||||
- openstack/neutron-dynamic-routing
|
- openstack/neutron-dynamic-routing
|
||||||
tags:
|
|
||||||
- stable:follows-policy
|
|
||||||
neutron-lib:
|
neutron-lib:
|
||||||
repos:
|
repos:
|
||||||
- openstack/neutron-lib
|
- openstack/neutron-lib
|
||||||
tags:
|
|
||||||
- stable:follows-policy
|
|
||||||
neutron-specs:
|
neutron-specs:
|
||||||
release-management: none
|
release-management: none
|
||||||
repos:
|
repos:
|
||||||
@ -1106,8 +1036,6 @@ neutron:
|
|||||||
neutron-vpnaas:
|
neutron-vpnaas:
|
||||||
repos:
|
repos:
|
||||||
- openstack/neutron-vpnaas
|
- openstack/neutron-vpnaas
|
||||||
tags:
|
|
||||||
- stable:follows-policy
|
|
||||||
neutron-vpnaas-dashboard:
|
neutron-vpnaas-dashboard:
|
||||||
repos:
|
repos:
|
||||||
- openstack/neutron-vpnaas-dashboard
|
- openstack/neutron-vpnaas-dashboard
|
||||||
@ -1135,8 +1063,6 @@ nova:
|
|||||||
nova:
|
nova:
|
||||||
repos:
|
repos:
|
||||||
- openstack/nova
|
- openstack/nova
|
||||||
tags:
|
|
||||||
- stable:follows-policy
|
|
||||||
nova-specs:
|
nova-specs:
|
||||||
release-management: none
|
release-management: none
|
||||||
repos:
|
repos:
|
||||||
@ -1144,8 +1070,6 @@ nova:
|
|||||||
python-novaclient:
|
python-novaclient:
|
||||||
repos:
|
repos:
|
||||||
- openstack/python-novaclient
|
- openstack/python-novaclient
|
||||||
tags:
|
|
||||||
- stable:follows-policy
|
|
||||||
os-vif:
|
os-vif:
|
||||||
repos:
|
repos:
|
||||||
- openstack/os-vif
|
- openstack/os-vif
|
||||||
@ -1180,26 +1104,18 @@ octavia:
|
|||||||
octavia:
|
octavia:
|
||||||
repos:
|
repos:
|
||||||
- openstack/octavia
|
- openstack/octavia
|
||||||
tags:
|
|
||||||
- stable:follows-policy
|
|
||||||
octavia-dashboard:
|
octavia-dashboard:
|
||||||
repos:
|
repos:
|
||||||
- openstack/octavia-dashboard
|
- openstack/octavia-dashboard
|
||||||
tags:
|
|
||||||
- stable:follows-policy
|
|
||||||
octavia-tempest-plugin:
|
octavia-tempest-plugin:
|
||||||
repos:
|
repos:
|
||||||
- openstack/octavia-tempest-plugin
|
- openstack/octavia-tempest-plugin
|
||||||
python-octaviaclient:
|
python-octaviaclient:
|
||||||
repos:
|
repos:
|
||||||
- openstack/python-octaviaclient
|
- openstack/python-octaviaclient
|
||||||
tags:
|
|
||||||
- stable:follows-policy
|
|
||||||
octavia-lib:
|
octavia-lib:
|
||||||
repos:
|
repos:
|
||||||
- openstack/octavia-lib
|
- openstack/octavia-lib
|
||||||
tags:
|
|
||||||
- stable:follows-policy
|
|
||||||
liaisons:
|
liaisons:
|
||||||
tc_members:
|
tc_members:
|
||||||
- gmann
|
- gmann
|
||||||
@ -2110,13 +2026,9 @@ oslo:
|
|||||||
automaton:
|
automaton:
|
||||||
repos:
|
repos:
|
||||||
- openstack/automaton
|
- openstack/automaton
|
||||||
tags:
|
|
||||||
- stable:follows-policy
|
|
||||||
castellan:
|
castellan:
|
||||||
repos:
|
repos:
|
||||||
- openstack/castellan
|
- openstack/castellan
|
||||||
tags:
|
|
||||||
- stable:follows-policy
|
|
||||||
cookiecutter:
|
cookiecutter:
|
||||||
release-management: none
|
release-management: none
|
||||||
repos:
|
repos:
|
||||||
@ -2161,26 +2073,18 @@ oslo:
|
|||||||
oslo.cache:
|
oslo.cache:
|
||||||
repos:
|
repos:
|
||||||
- openstack/oslo.cache
|
- openstack/oslo.cache
|
||||||
tags:
|
|
||||||
- stable:follows-policy
|
|
||||||
oslo.concurrency:
|
oslo.concurrency:
|
||||||
repos:
|
repos:
|
||||||
- openstack/oslo.concurrency
|
- openstack/oslo.concurrency
|
||||||
oslo.config:
|
oslo.config:
|
||||||
repos:
|
repos:
|
||||||
- openstack/oslo.config
|
- openstack/oslo.config
|
||||||
tags:
|
|
||||||
- stable:follows-policy
|
|
||||||
oslo.context:
|
oslo.context:
|
||||||
repos:
|
repos:
|
||||||
- openstack/oslo.context
|
- openstack/oslo.context
|
||||||
tags:
|
|
||||||
- stable:follows-policy
|
|
||||||
oslo.db:
|
oslo.db:
|
||||||
repos:
|
repos:
|
||||||
- openstack/oslo.db
|
- openstack/oslo.db
|
||||||
tags:
|
|
||||||
- stable:follows-policy
|
|
||||||
oslo.i18n:
|
oslo.i18n:
|
||||||
repos:
|
repos:
|
||||||
- openstack/oslo.i18n
|
- openstack/oslo.i18n
|
||||||
@ -2193,26 +2097,18 @@ oslo:
|
|||||||
oslo.messaging:
|
oslo.messaging:
|
||||||
repos:
|
repos:
|
||||||
- openstack/oslo.messaging
|
- openstack/oslo.messaging
|
||||||
tags:
|
|
||||||
- stable:follows-policy
|
|
||||||
oslo.metrics:
|
oslo.metrics:
|
||||||
repos:
|
repos:
|
||||||
- openstack/oslo.metrics
|
- openstack/oslo.metrics
|
||||||
oslo.middleware:
|
oslo.middleware:
|
||||||
repos:
|
repos:
|
||||||
- openstack/oslo.middleware
|
- openstack/oslo.middleware
|
||||||
tags:
|
|
||||||
- stable:follows-policy
|
|
||||||
oslo.policy:
|
oslo.policy:
|
||||||
repos:
|
repos:
|
||||||
- openstack/oslo.policy
|
- openstack/oslo.policy
|
||||||
tags:
|
|
||||||
- stable:follows-policy
|
|
||||||
oslo.privsep:
|
oslo.privsep:
|
||||||
repos:
|
repos:
|
||||||
- openstack/oslo.privsep
|
- openstack/oslo.privsep
|
||||||
tags:
|
|
||||||
- stable:follows-policy
|
|
||||||
oslo.reports:
|
oslo.reports:
|
||||||
repos:
|
repos:
|
||||||
- openstack/oslo.reports
|
- openstack/oslo.reports
|
||||||
@ -2222,13 +2118,9 @@ oslo:
|
|||||||
oslo.serialization:
|
oslo.serialization:
|
||||||
repos:
|
repos:
|
||||||
- openstack/oslo.serialization
|
- openstack/oslo.serialization
|
||||||
tags:
|
|
||||||
- stable:follows-policy
|
|
||||||
oslo.service:
|
oslo.service:
|
||||||
repos:
|
repos:
|
||||||
- openstack/oslo.service
|
- openstack/oslo.service
|
||||||
tags:
|
|
||||||
- stable:follows-policy
|
|
||||||
oslo.tools:
|
oslo.tools:
|
||||||
release-management: none
|
release-management: none
|
||||||
repos:
|
repos:
|
||||||
@ -2236,23 +2128,15 @@ oslo:
|
|||||||
oslo.upgradecheck:
|
oslo.upgradecheck:
|
||||||
repos:
|
repos:
|
||||||
- openstack/oslo.upgradecheck
|
- openstack/oslo.upgradecheck
|
||||||
tags:
|
|
||||||
- stable:follows-policy
|
|
||||||
oslo.utils:
|
oslo.utils:
|
||||||
repos:
|
repos:
|
||||||
- openstack/oslo.utils
|
- openstack/oslo.utils
|
||||||
tags:
|
|
||||||
- stable:follows-policy
|
|
||||||
oslo.versionedobjects:
|
oslo.versionedobjects:
|
||||||
repos:
|
repos:
|
||||||
- openstack/oslo.versionedobjects
|
- openstack/oslo.versionedobjects
|
||||||
tags:
|
|
||||||
- stable:follows-policy
|
|
||||||
oslo.vmware:
|
oslo.vmware:
|
||||||
repos:
|
repos:
|
||||||
- openstack/oslo.vmware
|
- openstack/oslo.vmware
|
||||||
tags:
|
|
||||||
- stable:follows-policy
|
|
||||||
oslotest:
|
oslotest:
|
||||||
repos:
|
repos:
|
||||||
- openstack/oslotest
|
- openstack/oslotest
|
||||||
@ -2268,8 +2152,6 @@ oslo:
|
|||||||
stevedore:
|
stevedore:
|
||||||
repos:
|
repos:
|
||||||
- openstack/stevedore
|
- openstack/stevedore
|
||||||
tags:
|
|
||||||
- stable:follows-policy
|
|
||||||
taskflow:
|
taskflow:
|
||||||
repos:
|
repos:
|
||||||
- openstack/taskflow
|
- openstack/taskflow
|
||||||
@ -2649,58 +2531,36 @@ sahara:
|
|||||||
python-saharaclient:
|
python-saharaclient:
|
||||||
repos:
|
repos:
|
||||||
- openstack/python-saharaclient
|
- openstack/python-saharaclient
|
||||||
tags:
|
|
||||||
- stable:follows-policy
|
|
||||||
sahara:
|
sahara:
|
||||||
repos:
|
repos:
|
||||||
- openstack/sahara
|
- openstack/sahara
|
||||||
tags:
|
|
||||||
- stable:follows-policy
|
|
||||||
sahara-dashboard:
|
sahara-dashboard:
|
||||||
repos:
|
repos:
|
||||||
- openstack/sahara-dashboard
|
- openstack/sahara-dashboard
|
||||||
tags:
|
|
||||||
- stable:follows-policy
|
|
||||||
sahara-extra:
|
sahara-extra:
|
||||||
repos:
|
repos:
|
||||||
- openstack/sahara-extra
|
- openstack/sahara-extra
|
||||||
tags:
|
|
||||||
- stable:follows-policy
|
|
||||||
sahara-image-elements:
|
sahara-image-elements:
|
||||||
repos:
|
repos:
|
||||||
- openstack/sahara-image-elements
|
- openstack/sahara-image-elements
|
||||||
tags:
|
|
||||||
- stable:follows-policy
|
|
||||||
sahara-plugin-ambari:
|
sahara-plugin-ambari:
|
||||||
repos:
|
repos:
|
||||||
- openstack/sahara-plugin-ambari
|
- openstack/sahara-plugin-ambari
|
||||||
tags:
|
|
||||||
- stable:follows-policy
|
|
||||||
sahara-plugin-cdh:
|
sahara-plugin-cdh:
|
||||||
repos:
|
repos:
|
||||||
- openstack/sahara-plugin-cdh
|
- openstack/sahara-plugin-cdh
|
||||||
tags:
|
|
||||||
- stable:follows-policy
|
|
||||||
sahara-plugin-mapr:
|
sahara-plugin-mapr:
|
||||||
repos:
|
repos:
|
||||||
- openstack/sahara-plugin-mapr
|
- openstack/sahara-plugin-mapr
|
||||||
tags:
|
|
||||||
- stable:follows-policy
|
|
||||||
sahara-plugin-spark:
|
sahara-plugin-spark:
|
||||||
repos:
|
repos:
|
||||||
- openstack/sahara-plugin-spark
|
- openstack/sahara-plugin-spark
|
||||||
tags:
|
|
||||||
- stable:follows-policy
|
|
||||||
sahara-plugin-storm:
|
sahara-plugin-storm:
|
||||||
repos:
|
repos:
|
||||||
- openstack/sahara-plugin-storm
|
- openstack/sahara-plugin-storm
|
||||||
tags:
|
|
||||||
- stable:follows-policy
|
|
||||||
sahara-plugin-vanilla:
|
sahara-plugin-vanilla:
|
||||||
repos:
|
repos:
|
||||||
- openstack/sahara-plugin-vanilla
|
- openstack/sahara-plugin-vanilla
|
||||||
tags:
|
|
||||||
- stable:follows-policy
|
|
||||||
sahara-tests:
|
sahara-tests:
|
||||||
repos:
|
repos:
|
||||||
- openstack/sahara-tests
|
- openstack/sahara-tests
|
||||||
@ -2856,13 +2716,9 @@ swift:
|
|||||||
python-swiftclient:
|
python-swiftclient:
|
||||||
repos:
|
repos:
|
||||||
- openstack/python-swiftclient
|
- openstack/python-swiftclient
|
||||||
tags:
|
|
||||||
- stable:follows-policy
|
|
||||||
swift:
|
swift:
|
||||||
repos:
|
repos:
|
||||||
- openstack/swift
|
- openstack/swift
|
||||||
tags:
|
|
||||||
- stable:follows-policy
|
|
||||||
swift-bench:
|
swift-bench:
|
||||||
repos:
|
repos:
|
||||||
- openstack/swift-bench
|
- openstack/swift-bench
|
||||||
@ -3294,8 +3150,6 @@ zaqar:
|
|||||||
zaqar:
|
zaqar:
|
||||||
repos:
|
repos:
|
||||||
- openstack/zaqar
|
- openstack/zaqar
|
||||||
tags:
|
|
||||||
- stable:follows-policy
|
|
||||||
zaqar-specs:
|
zaqar-specs:
|
||||||
release-management: none
|
release-management: none
|
||||||
repos:
|
repos:
|
||||||
|
@ -2,14 +2,9 @@
|
|||||||
Tags
|
Tags
|
||||||
======
|
======
|
||||||
|
|
||||||
The tags framework is currently being removed. This index page is left
|
.. warning::
|
||||||
to serve as a source of still-useful information which will be later
|
|
||||||
refactored.
|
|
||||||
|
|
||||||
Current tags
|
The tags framework has been removed and we no longer maintain it. Instead,
|
||||||
============
|
we encourage projects to continue following the policies they were adhering
|
||||||
|
to with the tag framework, for example, deprecation, upgrade, stable branch,
|
||||||
.. toctree::
|
VMT, etc.
|
||||||
:maxdepth: 1
|
|
||||||
|
|
||||||
stable_follows-policy
|
|
||||||
|
@ -1,110 +0,0 @@
|
|||||||
..
|
|
||||||
This work is licensed under a Creative Commons Attribution 3.0
|
|
||||||
Unported License.
|
|
||||||
http://creativecommons.org/licenses/by/3.0/legalcode
|
|
||||||
|
|
||||||
.. _`tag-stable:follows-policy`:
|
|
||||||
|
|
||||||
=======================
|
|
||||||
stable:follows-policy
|
|
||||||
=======================
|
|
||||||
|
|
||||||
Downstream users of OpenStack (users, but also packagers and lifecycle
|
|
||||||
management tools) need to know whether they can count on a source
|
|
||||||
of reliable bugfixes for a given component.
|
|
||||||
|
|
||||||
This tag indicates that a project team maintains stable branches for a given
|
|
||||||
deliverable, and that those stable branches are maintained following the common
|
|
||||||
`Stable branch policy`_, as defined by the Stable branch maintenance team.
|
|
||||||
|
|
||||||
|
|
||||||
Application to current deliverables
|
|
||||||
===================================
|
|
||||||
|
|
||||||
.. tagged-projects:: stable:follows-policy
|
|
||||||
|
|
||||||
|
|
||||||
Rationale
|
|
||||||
=========
|
|
||||||
|
|
||||||
All OpenStack project teams can create stable branches, with the
|
|
||||||
name of their choice. However, some of those branches do not follow the
|
|
||||||
`Stable branch policy`_: some approve backports that modify the behavior
|
|
||||||
of the software, some backport new features, some do not actively backport
|
|
||||||
significant bugfixes, some don't monitor proposed backports, or monitor
|
|
||||||
the CI system on their stable branches...
|
|
||||||
|
|
||||||
That creates confusion for packagers and deployers of our software, which
|
|
||||||
no longer know what to expect from a stable branch. Having stable branches
|
|
||||||
is no longer a guarantee of an up-to-date source of safe fixes.
|
|
||||||
|
|
||||||
To replace it, this tag is granted by the stable branch maintenance team only
|
|
||||||
to deliverables which have stable branches maintained following the common
|
|
||||||
`Stable branch policy`_. This lets downstream users easily determine which
|
|
||||||
projects adhere to the common rules, and expose what the common rules are to
|
|
||||||
a wider audience. As a side-effect, it encourages more project teams to
|
|
||||||
follow the policy.
|
|
||||||
|
|
||||||
|
|
||||||
Requirements
|
|
||||||
============
|
|
||||||
|
|
||||||
The tag can only be applied to software components of an OpenStack cloud
|
|
||||||
(openstack, openstack-operations on the map) and associated libraries
|
|
||||||
(openstack-libs). It is not meant be applied to SDKs (openstack-user)
|
|
||||||
or deployment tools (openstack-lifecyclemanagement).
|
|
||||||
|
|
||||||
Deliverables must follow the `Stable branch policy`_ in all currently active
|
|
||||||
stable branches.
|
|
||||||
|
|
||||||
|
|
||||||
.. _application-process:
|
|
||||||
|
|
||||||
Tag application process
|
|
||||||
=======================
|
|
||||||
|
|
||||||
Proposals to add or remove this tag must be reviewed by the
|
|
||||||
`Stable Branch Maintenance team`_ prior to final approval by
|
|
||||||
the Technical Committee.
|
|
||||||
|
|
||||||
|
|
||||||
Deprecation
|
|
||||||
===========
|
|
||||||
|
|
||||||
The ``stable:follows-policy`` tag may be removed from deliverables at any
|
|
||||||
time, when the Stable Branch Maintenance team considers that the deliverable
|
|
||||||
repeatedly violated the `Stable branch policy`_.
|
|
||||||
|
|
||||||
The ``stable:follows-policy`` tag is applicable to all currently active stable
|
|
||||||
branches. The removing the tag will also be applicable for all currently active
|
|
||||||
stable branches, meaning that projects that have removed the tag no longer
|
|
||||||
needs to follow `Stable branch policy`_ for any of the active stable branches.
|
|
||||||
|
|
||||||
Once the tag is removed, it can be re-obtained as per the
|
|
||||||
:ref:`reobtaining-tag` process.
|
|
||||||
|
|
||||||
|
|
||||||
.. _reobtaining-tag:
|
|
||||||
|
|
||||||
Re-obtaining the Tag
|
|
||||||
====================
|
|
||||||
|
|
||||||
Re-obtaining the ``stable:follows-policy`` tag back is always possible and can
|
|
||||||
be proposed with the agreement of `Stable Branch Maintenance team`_. Because
|
|
||||||
this tag is applicable per repository not per branch, any project not having
|
|
||||||
this tag can backports the unstable changes to any of the currently active
|
|
||||||
stable branches.
|
|
||||||
Re-obtaining the tag will follow the same process as obtaining tag from fresh,
|
|
||||||
meaning that all active stable branches follow `Stable branch policy`_. If the
|
|
||||||
branch that the tag was removed is still in active stable branches it means
|
|
||||||
project is not following the `Stable branch policy`_ in all active stable
|
|
||||||
branches.
|
|
||||||
|
|
||||||
As summary, the project can be applicable to re-obtain the tag once the branch
|
|
||||||
that the tag was removed from is EOL.
|
|
||||||
|
|
||||||
The tag re-obtain application process is the same as described in
|
|
||||||
:ref:`application-process`.
|
|
||||||
|
|
||||||
.. _Stable branch policy: https://docs.openstack.org/project-team-guide/stable-branches.html
|
|
||||||
.. _Stable Branch Maintenance team: https://review.opendev.org/#/admin/groups/530,members
|
|
Loading…
Reference in New Issue
Block a user