Description
Summary
Add support for subteams that have subteams (which rust-lang/team#1046 introduces) on the governance pages.
Subteams of subteams are to be laid out flat below their parent team on the respective root team page.
Although it's lacking practical relevance, subteams of arbitrary depth should be supported.
Motivation
In rust-lang/team#1040, we'd like to create the rustdoc subteam rustdoc-contributors. However rustdoc itself is already a subteam (namely of devtools) and we currently lack support for subsubteams (and so forth) in the teams repo and on the website.
It's easy to update the teams repo to make it understand deeply nested teams (just one check has to be removed). I'm pretty sure it's relatively straightforward to update the website, too. The creation of rustdoc-contributors isn't necessarily blocked on website support (the team just wouldn't show up1 if we were to add the team right now) but it'd certainly be nice to have.
Drawbacks
Laying out subnteams (n≥2) flat below their parent team might be confusing for website visitors who expect the list of teams to only contain “direct descendants”.
Rationale and alternatives
I think this design is the most straightforward one to implement.
Alternatively, we could lay out those subteams hierarchically where clicking on the section header of a subteam leads to another subpage and so on. This however would introduce an inconsistency since section headers of subteams without further subteams would be link anchors contrary to those with child teams.
Maintenance
This would only add new logic to the website internals but not any new data that would need to be maintained because everything would be pulled from the rust_team_data
API. As this isn't a big feature, this can be maintained by the one who already maintains the team-related parts of the website.
Unresolved Questions
- Should we add a paragraph or similar to the section of subnteams noting that team is actually a subteam of another subteam (where we specify the relevant parent team) or would that be too bloated?
- Should we lay out subnteams flat or hierarchically (see Alternatives)?
- Should there be a maximum supported depth (this limit can be enforced by the CI of the teams repo)?
Footnotes
-
I've confirmed this by building the website locally with a patched teams repo & a patched
rust_team_data
static API. ↩