diff --git a/doc/source/_exts/tags.py b/doc/source/_exts/tags.py deleted file mode 100644 index cfc458098..000000000 --- a/doc/source/_exts/tags.py +++ /dev/null @@ -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) diff --git a/doc/source/_exts/teams.py b/doc/source/_exts/teams.py index b0c910960..d9516d3ac 100644 --- a/doc/source/_exts/teams.py +++ b/doc/source/_exts/teams.py @@ -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 '' diff --git a/doc/source/conf.py b/doc/source/conf.py index 3b4c5bb15..4e1a0f5a0 100644 --- a/doc/source/conf.py +++ b/doc/source/conf.py @@ -37,7 +37,6 @@ extensions = [ 'members', 'projects', 'teams', - 'tags', 'tc_liaisons', 'badges', 'page_context', diff --git a/openstack_governance/governance.py b/openstack_governance/governance.py index 9057cd881..14e434089 100644 --- a/openstack_governance/governance.py +++ b/openstack_governance/governance.py @@ -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): diff --git a/openstack_governance/projects_schema.yaml b/openstack_governance/projects_schema.yaml index 43d8ad9f7..723951d4c 100644 --- a/openstack_governance/projects_schema.yaml +++ b/openstack_governance/projects_schema.yaml @@ -104,10 +104,6 @@ additionalProperties: pattern: "^[^/]+/[^/]+$" minItems: 1 uniqueItems: true - tags: - type: "array" - items: - type: "string" release-management: type: "string" enum: diff --git a/reference/projects.yaml b/reference/projects.yaml index 5b19fc0a3..97c3fdd52 100644 --- a/reference/projects.yaml +++ b/reference/projects.yaml @@ -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: diff --git a/reference/tags/index.rst b/reference/tags/index.rst index 0fd6b4378..ff52555a2 100644 --- a/reference/tags/index.rst +++ b/reference/tags/index.rst @@ -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. diff --git a/reference/tags/stable_follows-policy.rst b/reference/tags/stable_follows-policy.rst deleted file mode 100644 index 55316da20..000000000 --- a/reference/tags/stable_follows-policy.rst +++ /dev/null @@ -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