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', [])
|
||||
)
|
||||
yield ''
|
||||
tags = deliverable.get('tags', [])
|
||||
if tags:
|
||||
yield ':Tags:'
|
||||
yield ''
|
||||
for tag in tags:
|
||||
yield ' - :ref:`tag-%s`' % tag
|
||||
yield ''
|
||||
else:
|
||||
yield 'None'
|
||||
yield ''
|
||||
|
@ -37,7 +37,6 @@ extensions = [
|
||||
'members',
|
||||
'projects',
|
||||
'teams',
|
||||
'tags',
|
||||
'tc_liaisons',
|
||||
'badges',
|
||||
'page_context',
|
||||
|
@ -62,10 +62,6 @@ class Deliverable(object):
|
||||
for rn in self.data.get('repos', [])
|
||||
}
|
||||
|
||||
@property
|
||||
def tags(self):
|
||||
return set(self.data.get('tags', []))
|
||||
|
||||
|
||||
class Repository(object):
|
||||
def __init__(self, name, deliverable):
|
||||
|
@ -104,10 +104,6 @@ additionalProperties:
|
||||
pattern: "^[^/]+/[^/]+$"
|
||||
minItems: 1
|
||||
uniqueItems: true
|
||||
tags:
|
||||
type: "array"
|
||||
items:
|
||||
type: "string"
|
||||
release-management:
|
||||
type: "string"
|
||||
enum:
|
||||
|
@ -46,8 +46,6 @@ barbican:
|
||||
barbican:
|
||||
repos:
|
||||
- openstack/barbican
|
||||
tags:
|
||||
- stable:follows-policy
|
||||
ansible-role-atos-hsm:
|
||||
repos:
|
||||
- openstack/ansible-role-atos-hsm
|
||||
@ -123,8 +121,6 @@ cinder:
|
||||
cinder:
|
||||
repos:
|
||||
- openstack/cinder
|
||||
tags:
|
||||
- stable:follows-policy
|
||||
cinder-specs:
|
||||
release-management: none
|
||||
repos:
|
||||
@ -135,23 +131,15 @@ cinder:
|
||||
cinderlib:
|
||||
repos:
|
||||
- openstack/cinderlib
|
||||
tags:
|
||||
- stable:follows-policy
|
||||
os-brick:
|
||||
repos:
|
||||
- openstack/os-brick
|
||||
tags:
|
||||
- stable:follows-policy
|
||||
python-brick-cinderclient-ext:
|
||||
repos:
|
||||
- openstack/python-brick-cinderclient-ext
|
||||
tags:
|
||||
- stable:follows-policy
|
||||
python-cinderclient:
|
||||
repos:
|
||||
- openstack/python-cinderclient
|
||||
tags:
|
||||
- stable:follows-policy
|
||||
rbd-iscsi-client:
|
||||
repos:
|
||||
- openstack/rbd-iscsi-client
|
||||
@ -239,13 +227,9 @@ designate:
|
||||
designate:
|
||||
repos:
|
||||
- openstack/designate
|
||||
tags:
|
||||
- stable:follows-policy
|
||||
designate-dashboard:
|
||||
repos:
|
||||
- openstack/designate-dashboard
|
||||
tags:
|
||||
- stable:follows-policy
|
||||
designate-specs:
|
||||
release-management: none
|
||||
repos:
|
||||
@ -256,8 +240,6 @@ designate:
|
||||
python-designateclient:
|
||||
repos:
|
||||
- openstack/python-designateclient
|
||||
tags:
|
||||
- stable:follows-policy
|
||||
liaisons:
|
||||
tc_members: [jungleboyj, diablo_rojo]
|
||||
ec2-api:
|
||||
@ -333,8 +315,6 @@ glance:
|
||||
glance:
|
||||
repos:
|
||||
- openstack/glance
|
||||
tags:
|
||||
- stable:follows-policy
|
||||
glance-specs:
|
||||
release-management: none
|
||||
repos:
|
||||
@ -345,13 +325,9 @@ glance:
|
||||
glance-store:
|
||||
repos:
|
||||
- openstack/glance_store
|
||||
tags:
|
||||
- stable:follows-policy
|
||||
python-glanceclient:
|
||||
repos:
|
||||
- openstack/python-glanceclient
|
||||
tags:
|
||||
- stable:follows-policy
|
||||
liaisons:
|
||||
tc_members: [dansmith, jungleboyj]
|
||||
heat:
|
||||
@ -372,8 +348,6 @@ heat:
|
||||
heat:
|
||||
repos:
|
||||
- openstack/heat
|
||||
tags:
|
||||
- stable:follows-policy
|
||||
heat-agents:
|
||||
repos:
|
||||
- openstack/heat-agents
|
||||
@ -404,8 +378,6 @@ heat:
|
||||
python-heatclient:
|
||||
repos:
|
||||
- openstack/python-heatclient
|
||||
tags:
|
||||
- stable:follows-policy
|
||||
tosca-parser:
|
||||
repos:
|
||||
- openstack/tosca-parser
|
||||
@ -426,8 +398,6 @@ horizon:
|
||||
horizon:
|
||||
repos:
|
||||
- openstack/horizon
|
||||
tags:
|
||||
- stable:follows-policy
|
||||
ui-cookiecutter:
|
||||
release-management: none
|
||||
repos:
|
||||
@ -537,13 +507,9 @@ ironic:
|
||||
ironic:
|
||||
repos:
|
||||
- openstack/ironic
|
||||
tags:
|
||||
- stable:follows-policy
|
||||
ironic-inspector:
|
||||
repos:
|
||||
- openstack/ironic-inspector
|
||||
tags:
|
||||
- stable:follows-policy
|
||||
ironic-inspector-specs:
|
||||
release-management: none
|
||||
repos:
|
||||
@ -551,16 +517,12 @@ ironic:
|
||||
ironic-lib:
|
||||
repos:
|
||||
- openstack/ironic-lib
|
||||
tags:
|
||||
- stable:follows-policy
|
||||
ironic-prometheus-exporter:
|
||||
repos:
|
||||
- openstack/ironic-prometheus-exporter
|
||||
ironic-python-agent:
|
||||
repos:
|
||||
- openstack/ironic-python-agent
|
||||
tags:
|
||||
- stable:follows-policy
|
||||
ironic-python-agent-builder:
|
||||
repos:
|
||||
- openstack/ironic-python-agent-builder
|
||||
@ -590,13 +552,9 @@ ironic:
|
||||
python-ironic-inspector-client:
|
||||
repos:
|
||||
- openstack/python-ironic-inspector-client
|
||||
tags:
|
||||
- stable:follows-policy
|
||||
python-ironicclient:
|
||||
repos:
|
||||
- openstack/python-ironicclient
|
||||
tags:
|
||||
- stable:follows-policy
|
||||
sushy:
|
||||
repos:
|
||||
- openstack/sushy
|
||||
@ -627,8 +585,6 @@ keystone:
|
||||
keystone:
|
||||
repos:
|
||||
- openstack/keystone
|
||||
tags:
|
||||
- stable:follows-policy
|
||||
keystone-specs:
|
||||
release-management: none
|
||||
repos:
|
||||
@ -639,23 +595,15 @@ keystone:
|
||||
keystoneauth:
|
||||
repos:
|
||||
- openstack/keystoneauth
|
||||
tags:
|
||||
- stable:follows-policy
|
||||
keystonemiddleware:
|
||||
repos:
|
||||
- openstack/keystonemiddleware
|
||||
tags:
|
||||
- stable:follows-policy
|
||||
pycadf:
|
||||
repos:
|
||||
- openstack/pycadf
|
||||
tags:
|
||||
- stable:follows-policy
|
||||
python-keystoneclient:
|
||||
repos:
|
||||
- openstack/python-keystoneclient
|
||||
tags:
|
||||
- stable:follows-policy
|
||||
ldappool:
|
||||
repos:
|
||||
- openstack/ldappool
|
||||
@ -783,8 +731,6 @@ manila:
|
||||
manila:
|
||||
repos:
|
||||
- openstack/manila
|
||||
tags:
|
||||
- stable:follows-policy
|
||||
manila-image-elements:
|
||||
repos:
|
||||
- openstack/manila-image-elements
|
||||
@ -992,13 +938,9 @@ murano:
|
||||
murano:
|
||||
repos:
|
||||
- openstack/murano
|
||||
tags:
|
||||
- stable:follows-policy
|
||||
murano-agent:
|
||||
repos:
|
||||
- openstack/murano-agent
|
||||
tags:
|
||||
- stable:follows-policy
|
||||
murano-apps:
|
||||
release-management: none
|
||||
repos:
|
||||
@ -1006,8 +948,6 @@ murano:
|
||||
murano-dashboard:
|
||||
repos:
|
||||
- openstack/murano-dashboard
|
||||
tags:
|
||||
- stable:follows-policy
|
||||
murano-pkg-check:
|
||||
repos:
|
||||
- openstack/murano-pkg-check
|
||||
@ -1018,8 +958,6 @@ murano:
|
||||
python-muranoclient:
|
||||
repos:
|
||||
- openstack/python-muranoclient
|
||||
tags:
|
||||
- stable:follows-policy
|
||||
yaql:
|
||||
repos:
|
||||
- openstack/yaql
|
||||
@ -1067,23 +1005,15 @@ neutron:
|
||||
neutron-fwaas:
|
||||
repos:
|
||||
- openstack/neutron-fwaas
|
||||
tags:
|
||||
- stable:follows-policy
|
||||
neutron:
|
||||
repos:
|
||||
- openstack/neutron
|
||||
tags:
|
||||
- stable:follows-policy
|
||||
neutron-dynamic-routing:
|
||||
repos:
|
||||
- openstack/neutron-dynamic-routing
|
||||
tags:
|
||||
- stable:follows-policy
|
||||
neutron-lib:
|
||||
repos:
|
||||
- openstack/neutron-lib
|
||||
tags:
|
||||
- stable:follows-policy
|
||||
neutron-specs:
|
||||
release-management: none
|
||||
repos:
|
||||
@ -1106,8 +1036,6 @@ neutron:
|
||||
neutron-vpnaas:
|
||||
repos:
|
||||
- openstack/neutron-vpnaas
|
||||
tags:
|
||||
- stable:follows-policy
|
||||
neutron-vpnaas-dashboard:
|
||||
repos:
|
||||
- openstack/neutron-vpnaas-dashboard
|
||||
@ -1135,8 +1063,6 @@ nova:
|
||||
nova:
|
||||
repos:
|
||||
- openstack/nova
|
||||
tags:
|
||||
- stable:follows-policy
|
||||
nova-specs:
|
||||
release-management: none
|
||||
repos:
|
||||
@ -1144,8 +1070,6 @@ nova:
|
||||
python-novaclient:
|
||||
repos:
|
||||
- openstack/python-novaclient
|
||||
tags:
|
||||
- stable:follows-policy
|
||||
os-vif:
|
||||
repos:
|
||||
- openstack/os-vif
|
||||
@ -1180,26 +1104,18 @@ octavia:
|
||||
octavia:
|
||||
repos:
|
||||
- openstack/octavia
|
||||
tags:
|
||||
- stable:follows-policy
|
||||
octavia-dashboard:
|
||||
repos:
|
||||
- openstack/octavia-dashboard
|
||||
tags:
|
||||
- stable:follows-policy
|
||||
octavia-tempest-plugin:
|
||||
repos:
|
||||
- openstack/octavia-tempest-plugin
|
||||
python-octaviaclient:
|
||||
repos:
|
||||
- openstack/python-octaviaclient
|
||||
tags:
|
||||
- stable:follows-policy
|
||||
octavia-lib:
|
||||
repos:
|
||||
- openstack/octavia-lib
|
||||
tags:
|
||||
- stable:follows-policy
|
||||
liaisons:
|
||||
tc_members:
|
||||
- gmann
|
||||
@ -2110,13 +2026,9 @@ oslo:
|
||||
automaton:
|
||||
repos:
|
||||
- openstack/automaton
|
||||
tags:
|
||||
- stable:follows-policy
|
||||
castellan:
|
||||
repos:
|
||||
- openstack/castellan
|
||||
tags:
|
||||
- stable:follows-policy
|
||||
cookiecutter:
|
||||
release-management: none
|
||||
repos:
|
||||
@ -2161,26 +2073,18 @@ oslo:
|
||||
oslo.cache:
|
||||
repos:
|
||||
- openstack/oslo.cache
|
||||
tags:
|
||||
- stable:follows-policy
|
||||
oslo.concurrency:
|
||||
repos:
|
||||
- openstack/oslo.concurrency
|
||||
oslo.config:
|
||||
repos:
|
||||
- openstack/oslo.config
|
||||
tags:
|
||||
- stable:follows-policy
|
||||
oslo.context:
|
||||
repos:
|
||||
- openstack/oslo.context
|
||||
tags:
|
||||
- stable:follows-policy
|
||||
oslo.db:
|
||||
repos:
|
||||
- openstack/oslo.db
|
||||
tags:
|
||||
- stable:follows-policy
|
||||
oslo.i18n:
|
||||
repos:
|
||||
- openstack/oslo.i18n
|
||||
@ -2193,26 +2097,18 @@ oslo:
|
||||
oslo.messaging:
|
||||
repos:
|
||||
- openstack/oslo.messaging
|
||||
tags:
|
||||
- stable:follows-policy
|
||||
oslo.metrics:
|
||||
repos:
|
||||
- openstack/oslo.metrics
|
||||
oslo.middleware:
|
||||
repos:
|
||||
- openstack/oslo.middleware
|
||||
tags:
|
||||
- stable:follows-policy
|
||||
oslo.policy:
|
||||
repos:
|
||||
- openstack/oslo.policy
|
||||
tags:
|
||||
- stable:follows-policy
|
||||
oslo.privsep:
|
||||
repos:
|
||||
- openstack/oslo.privsep
|
||||
tags:
|
||||
- stable:follows-policy
|
||||
oslo.reports:
|
||||
repos:
|
||||
- openstack/oslo.reports
|
||||
@ -2222,13 +2118,9 @@ oslo:
|
||||
oslo.serialization:
|
||||
repos:
|
||||
- openstack/oslo.serialization
|
||||
tags:
|
||||
- stable:follows-policy
|
||||
oslo.service:
|
||||
repos:
|
||||
- openstack/oslo.service
|
||||
tags:
|
||||
- stable:follows-policy
|
||||
oslo.tools:
|
||||
release-management: none
|
||||
repos:
|
||||
@ -2236,23 +2128,15 @@ oslo:
|
||||
oslo.upgradecheck:
|
||||
repos:
|
||||
- openstack/oslo.upgradecheck
|
||||
tags:
|
||||
- stable:follows-policy
|
||||
oslo.utils:
|
||||
repos:
|
||||
- openstack/oslo.utils
|
||||
tags:
|
||||
- stable:follows-policy
|
||||
oslo.versionedobjects:
|
||||
repos:
|
||||
- openstack/oslo.versionedobjects
|
||||
tags:
|
||||
- stable:follows-policy
|
||||
oslo.vmware:
|
||||
repos:
|
||||
- openstack/oslo.vmware
|
||||
tags:
|
||||
- stable:follows-policy
|
||||
oslotest:
|
||||
repos:
|
||||
- openstack/oslotest
|
||||
@ -2268,8 +2152,6 @@ oslo:
|
||||
stevedore:
|
||||
repos:
|
||||
- openstack/stevedore
|
||||
tags:
|
||||
- stable:follows-policy
|
||||
taskflow:
|
||||
repos:
|
||||
- openstack/taskflow
|
||||
@ -2649,58 +2531,36 @@ sahara:
|
||||
python-saharaclient:
|
||||
repos:
|
||||
- openstack/python-saharaclient
|
||||
tags:
|
||||
- stable:follows-policy
|
||||
sahara:
|
||||
repos:
|
||||
- openstack/sahara
|
||||
tags:
|
||||
- stable:follows-policy
|
||||
sahara-dashboard:
|
||||
repos:
|
||||
- openstack/sahara-dashboard
|
||||
tags:
|
||||
- stable:follows-policy
|
||||
sahara-extra:
|
||||
repos:
|
||||
- openstack/sahara-extra
|
||||
tags:
|
||||
- stable:follows-policy
|
||||
sahara-image-elements:
|
||||
repos:
|
||||
- openstack/sahara-image-elements
|
||||
tags:
|
||||
- stable:follows-policy
|
||||
sahara-plugin-ambari:
|
||||
repos:
|
||||
- openstack/sahara-plugin-ambari
|
||||
tags:
|
||||
- stable:follows-policy
|
||||
sahara-plugin-cdh:
|
||||
repos:
|
||||
- openstack/sahara-plugin-cdh
|
||||
tags:
|
||||
- stable:follows-policy
|
||||
sahara-plugin-mapr:
|
||||
repos:
|
||||
- openstack/sahara-plugin-mapr
|
||||
tags:
|
||||
- stable:follows-policy
|
||||
sahara-plugin-spark:
|
||||
repos:
|
||||
- openstack/sahara-plugin-spark
|
||||
tags:
|
||||
- stable:follows-policy
|
||||
sahara-plugin-storm:
|
||||
repos:
|
||||
- openstack/sahara-plugin-storm
|
||||
tags:
|
||||
- stable:follows-policy
|
||||
sahara-plugin-vanilla:
|
||||
repos:
|
||||
- openstack/sahara-plugin-vanilla
|
||||
tags:
|
||||
- stable:follows-policy
|
||||
sahara-tests:
|
||||
repos:
|
||||
- openstack/sahara-tests
|
||||
@ -2856,13 +2716,9 @@ swift:
|
||||
python-swiftclient:
|
||||
repos:
|
||||
- openstack/python-swiftclient
|
||||
tags:
|
||||
- stable:follows-policy
|
||||
swift:
|
||||
repos:
|
||||
- openstack/swift
|
||||
tags:
|
||||
- stable:follows-policy
|
||||
swift-bench:
|
||||
repos:
|
||||
- openstack/swift-bench
|
||||
@ -3294,8 +3150,6 @@ zaqar:
|
||||
zaqar:
|
||||
repos:
|
||||
- openstack/zaqar
|
||||
tags:
|
||||
- stable:follows-policy
|
||||
zaqar-specs:
|
||||
release-management: none
|
||||
repos:
|
||||
|
@ -2,14 +2,9 @@
|
||||
Tags
|
||||
======
|
||||
|
||||
The tags framework is currently being removed. This index page is left
|
||||
to serve as a source of still-useful information which will be later
|
||||
refactored.
|
||||
.. warning::
|
||||
|
||||
Current tags
|
||||
============
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
||||
|
||||
stable_follows-policy
|
||||
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,
|
||||
VMT, etc.
|
||||
|
@ -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