mirror of
https://opendev.org/openstack/governance.git
synced 2026-01-11 19:56:28 +00:00
Show SIG repositories on the SIGs page
Drop the old SIG Repos html file and redirect to the SIG landing page. It's more user-friendly to display all relevant SIG info from one place; We continue to use sig-repos.yaml file to populate the SIG table with the repository information; this data file is also used by the election tools to acknowledge contributions to SIG repos. Change-Id: I2df3a70a4426687549cd21296d2866a27ca55edf Assisted-By: Claude Code Signed-off-by: Goutham Pacha Ravi <gouthampravi@gmail.com>
This commit is contained in:
parent
1555895eac
commit
f9eb858016
9 changed files with 44 additions and 38 deletions
|
|
@ -8,3 +8,4 @@ redirect 301 /tc/goals/queens/ /tc/goals/selected/queens/
|
|||
redirect 301 /tc/goals/rocky/ /tc/goals/selected/rocky/
|
||||
redirect 301 /tc/goals/stein/ /tc/goals/selected/stein/
|
||||
redirect 301 /tc/goals/train/ /tc/goals/selected/train/
|
||||
redirect 301 /tc/reference/sig-repos.html /tc/reference/sigs/index.html
|
||||
|
|
|
|||
|
|
@ -33,6 +33,7 @@ class SIGTable(Table):
|
|||
option_spec = {'class': directives.class_option,
|
||||
'name': directives.unchanged,
|
||||
'datafile': directives.unchanged,
|
||||
'reposfile': directives.unchanged,
|
||||
}
|
||||
|
||||
def run(self):
|
||||
|
|
@ -49,21 +50,37 @@ class SIGTable(Table):
|
|||
return [error]
|
||||
|
||||
# Now find the real path to the file, relative to where we are.
|
||||
rel_filename, filename = env.relfn2path(datafile)
|
||||
_, filename = env.relfn2path(datafile)
|
||||
|
||||
LOG.info('loading sigtable')
|
||||
LOG.info('reading %s' % filename)
|
||||
with open(filename, 'r') as f:
|
||||
with open(filename, 'r', encoding='utf-8') as f:
|
||||
_teams_yaml = yaml.safe_load(f.read())
|
||||
|
||||
# Load repos data if reposfile is provided
|
||||
_repos_yaml = {}
|
||||
reposfile = self.options.get('reposfile')
|
||||
if reposfile:
|
||||
_, repos_filename = env.relfn2path(reposfile)
|
||||
LOG.info('reading repos from %s' % repos_filename)
|
||||
with open(repos_filename, 'r', encoding='utf-8') as f:
|
||||
_repos_yaml = yaml.safe_load(f.read())
|
||||
|
||||
# Adjust headers and widths if repos are included
|
||||
headers = list(self.HEADERS)
|
||||
widths = list(self.WIDTHS)
|
||||
if _repos_yaml:
|
||||
headers.append('Repositories')
|
||||
widths.append(60)
|
||||
|
||||
table = nodes.table()
|
||||
|
||||
# Set up the column specifications
|
||||
# based on the widths.
|
||||
tgroup = nodes.tgroup(cols=len(self.HEADERS))
|
||||
tgroup = nodes.tgroup(cols=len(headers))
|
||||
table += tgroup
|
||||
tgroup.extend(nodes.colspec(colwidth=col_width)
|
||||
for col_width in self.WIDTHS)
|
||||
for col_width in widths)
|
||||
|
||||
# Set the headers
|
||||
thead = nodes.thead()
|
||||
|
|
@ -72,7 +89,7 @@ class SIGTable(Table):
|
|||
thead += row_node
|
||||
row_node.extend(
|
||||
nodes.entry(h, nodes.paragraph(text=h))
|
||||
for h in self.HEADERS
|
||||
for h in headers
|
||||
)
|
||||
|
||||
# The body of the table is made up of rows.
|
||||
|
|
@ -88,7 +105,7 @@ class SIGTable(Table):
|
|||
for team in sorted(all_teams.keys()):
|
||||
trow = nodes.row()
|
||||
# Iterate over the headers in the same order every time.
|
||||
for h in self.HEADERS:
|
||||
for h in headers:
|
||||
if h.lower() == "name":
|
||||
cell = "<a href=\"%s\">%s</a>" % (all_teams[team]['url'],
|
||||
team)
|
||||
|
|
@ -108,6 +125,16 @@ class SIGTable(Table):
|
|||
cell = "".join(chairs)
|
||||
entry = nodes.entry()
|
||||
para = nodes.raw('', cell, format='html')
|
||||
elif h.lower() == "repositories":
|
||||
# Add repositories column if available
|
||||
repos = []
|
||||
if team in _repos_yaml:
|
||||
for repo_item in _repos_yaml[team]:
|
||||
repo = repo_item['repo']
|
||||
repos.append('<a href="https://opendev.org/%s">%s</a>' % (repo, repo))
|
||||
cell = '<br />'.join(repos) if repos else ''
|
||||
entry = nodes.entry()
|
||||
para = nodes.raw('', cell, format='html')
|
||||
else:
|
||||
# Get the cell value from the row data, replacing None
|
||||
# in re match group with empty string.
|
||||
|
|
|
|||
|
|
@ -1,16 +0,0 @@
|
|||
.. -*- mode: rst -*-
|
||||
|
||||
.. This template renders a table showing repositories under the maintainership of OpenStack SIGs
|
||||
|
||||
.. list-table::
|
||||
:header-rows: 1
|
||||
:align: left
|
||||
|
||||
- * SIG
|
||||
* Repositories
|
||||
{%- for sig in data %}
|
||||
- * {{ sig }}
|
||||
* {%- for item in data[sig] %}
|
||||
| `{{ item['repo'] }} <https://opendev.org/{{ item['repo'] }}>`_
|
||||
{%- endfor %}
|
||||
{%- endfor %}
|
||||
|
|
@ -8,3 +8,4 @@
|
|||
/tc/goals/rocky/ 301 /tc/goals/selected/rocky/
|
||||
/tc/goals/stein/ 301 /tc/goals/selected/stein/
|
||||
/tc/goals/train/ 301 /tc/goals/selected/train/
|
||||
/tc/reference/sig-repos.html 301 /tc/reference/sigs/index.html
|
||||
|
|
|
|||
|
|
@ -234,7 +234,7 @@ The TC seats are elected by the Active Contributors ("AC"), who are
|
|||
a subset of the Foundation Individual Members. Individual Members who
|
||||
committed a change to a repository under the governance of the
|
||||
OpenStack Technical Committee (see: :ref:`projects`,
|
||||
:ref:`tc-repos` and :ref:`sig-repos`) over the
|
||||
:ref:`tc-repos` and :doc:`SIG repositories </reference/sigs/index>`) over the
|
||||
last two 6-month release cycles are automatically considered AC by their
|
||||
technical contributions which are easy to mine and count. Specific
|
||||
contributors who did not have a change recently accepted in one of the
|
||||
|
|
|
|||
|
|
@ -65,7 +65,7 @@ co-leads. Since they are not directly in charge of producing OpenStack, only
|
|||
limited accountability is required, and SIGs do not have any required named
|
||||
liaisons.
|
||||
|
||||
SIGs :doc:`can own git repositories </reference/sig-repos>` and produce
|
||||
SIGs :doc:`can own git repositories </reference/sigs/index>` and produce
|
||||
software, but that software will be considered add-on software to the main
|
||||
"OpenStack" software releases. Therefore
|
||||
SIGs deliverables are not part of the coordinated release, and will not leverage
|
||||
|
|
|
|||
|
|
@ -33,7 +33,6 @@ Reference documents which need to be revised over time.
|
|||
house-rules
|
||||
comparison-of-official-group-structures
|
||||
working-groups
|
||||
sig-repos
|
||||
tc-guide
|
||||
OpenStack-name-in-external-services
|
||||
election-exceptions
|
||||
|
|
|
|||
|
|
@ -1,9 +0,0 @@
|
|||
.. _sig-repos:
|
||||
|
||||
===============================
|
||||
Repositories maintained by SIGs
|
||||
===============================
|
||||
|
||||
.. datatemplate:yaml::
|
||||
:source: sigs-repos.yaml
|
||||
:template: ../../templates/sigs_repos_table.tmpl
|
||||
|
|
@ -17,18 +17,21 @@ of the OpenStack software release itself). Contributions to a SIG
|
|||
grant voting rights for the Technical Committee elections, in the
|
||||
same way contributing to an OpenStack project team does.
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 3
|
||||
|
||||
sig-guideline
|
||||
|
||||
|
||||
.. sigtable::
|
||||
:datafile: sigs.yaml
|
||||
:reposfile: ../sigs-repos.yaml
|
||||
|
||||
.. toctree::
|
||||
:hidden:
|
||||
|
||||
tact-sig
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 4
|
||||
|
||||
sig-guideline
|
||||
|
||||
Retired SIGs
|
||||
============
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue