From 70158a129658a3c4198928274fea9789e49b8588 Mon Sep 17 00:00:00 2001 From: jaimergp Date: Thu, 20 Nov 2025 16:27:04 +0100 Subject: [PATCH 01/38] Open PRs from branch --- .github/workflows/check-teams.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/check-teams.yml b/.github/workflows/check-teams.yml index de8ffa2b..d63af362 100644 --- a/.github/workflows/check-teams.yml +++ b/.github/workflows/check-teams.yml @@ -2,7 +2,7 @@ name: Teams on: workflow_dispatch: - pull_request_target: + pull_request: paths: - teams/*.yml - teams/*.yaml From 82e69eacb0880a0a1e949be78b0669c1f546dd6f Mon Sep 17 00:00:00 2001 From: jaimergp Date: Thu, 20 Nov 2025 16:28:25 +0100 Subject: [PATCH 02/38] enable PR triggers for workflow file --- .github/workflows/check-teams.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/check-teams.yml b/.github/workflows/check-teams.yml index d63af362..e5a0edda 100644 --- a/.github/workflows/check-teams.yml +++ b/.github/workflows/check-teams.yml @@ -8,6 +8,7 @@ on: - teams/*.yaml - teams/*.schema.json - scripts/schemas.py + - .github/workflows/check-teams.yml jobs: check: From 2300742f61e763ae4a73572cfe26af8b5598327b Mon Sep 17 00:00:00 2001 From: jaimergp Date: Thu, 20 Nov 2025 16:52:56 +0100 Subject: [PATCH 03/38] Check access to repos --- scripts/check_teams.py | 44 ++++++++++++++++++++++++++++++++++++++--- scripts/schemas.py | 2 +- teams/teams.schema.json | 2 +- 3 files changed, 43 insertions(+), 5 deletions(-) diff --git a/scripts/check_teams.py b/scripts/check_teams.py index 875e90e2..1b34f9e6 100644 --- a/scripts/check_teams.py +++ b/scripts/check_teams.py @@ -18,15 +18,15 @@ def token(org): + return os.environ.get("GITHUB_TOKEN") if org == "conda": return os.environ.get("CONDA_ORG_WIDE_TOKEN", "") if org == "conda-incubator": return os.environ.get("CONDA_INCUBATOR_ORG_WIDE_TOKEN", "") - return os.environ.get("GITHUB_TOKEN") -def team_members(org: str, name: str) -> list[str]: - api_url = f"https://api.github.com/orgs/{org}/teams/{name}/members" +def team_members(org: str, team: str) -> list[str]: + api_url = f"https://api.github.com/orgs/{org}/teams/{team}/members" # Headers for authentication and proper API versioning headers = { @@ -55,6 +55,25 @@ def teams_in_org(org): return [f"{org}/{team['slug']}" for team in r.json()] +def access_to_repos(org, team): + api_url = f"https://api.github.com/orgs/{org}/teams/{team}/repos" + + # Headers for authentication and proper API versioning + headers = { + "Authorization": f"Bearer {token(org)}", + "Accept": "application/vnd.github.v3+json", + "X-GitHub-Api-Version": "2022-11-28", + } + + r = requests.get(api_url, headers=headers, params={"per_page": 100}) + r.raise_for_status() + return [ + repo["full_name"] + for repo in r.json() + if repo["permissions"]["admin"] or repo["permissions"]["push"] + ] + + exit_code = 0 teams_in_github = [*teams_in_org("conda"), *teams_in_org("conda-incubator")] seen_teams = [] @@ -99,6 +118,25 @@ def teams_in_org(org): ) print("----", file=sys.stderr) exit_code = 1 + repos_in_file = sorted(team["scopes"]["codeowners"] or [], key=str.lower) + repos_in_gh = sorted(access_to_repos(org, name), key=str.lower) + if set(repos_in_file) != set(repos_in_gh): + print( + f"Repos in '{path.name}' are not in sync with Github permissions for team '@{org}/{name}':", + file=sys.stderr, + ) + print("File:", repos_in_file, file=sys.stderr) + print("Github:", repos_in_gh, file=sys.stderr) + print( + "Diff:", + *unified_diff( + repos_in_file, repos_in_gh, fromfile=path.name, tofile="Github" + ), + sep="\n", + ) + print("----", file=sys.stderr) + exit_code = 1 + if set(seen_teams) != set(teams_in_github): teams_in_repo = sorted(seen_teams, key=str.lower) diff --git a/scripts/schemas.py b/scripts/schemas.py index a13946c5..36d5867e 100644 --- a/scripts/schemas.py +++ b/scripts/schemas.py @@ -11,7 +11,7 @@ class Scopes(BaseModel): model_config = ConfigDict(extra="forbid") codeowners: list[str] | None = ... - """The GitHub projects this team owns""" + """The GitHub projects this team owns or has write access to.""" other: list[HttpUrl] | None = ... """Other responsibilities of this team""" diff --git a/teams/teams.schema.json b/teams/teams.schema.json index dc779319..4247918c 100644 --- a/teams/teams.schema.json +++ b/teams/teams.schema.json @@ -144,4 +144,4 @@ ], "title": "Conda Sub-Teams", "type": "object" -} +} \ No newline at end of file From 2b46a7e30753125246920f3c51907fd5b5db838b Mon Sep 17 00:00:00 2001 From: jaimergp Date: Thu, 20 Nov 2025 16:57:03 +0100 Subject: [PATCH 04/38] pre-commit --- teams/teams.schema.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/teams/teams.schema.json b/teams/teams.schema.json index 4247918c..dc779319 100644 --- a/teams/teams.schema.json +++ b/teams/teams.schema.json @@ -144,4 +144,4 @@ ], "title": "Conda Sub-Teams", "type": "object" -} \ No newline at end of file +} From 98e22338297c1edbaa4c045cea8f531db6356795 Mon Sep 17 00:00:00 2001 From: jaimergp Date: Thu, 20 Nov 2025 16:57:26 +0100 Subject: [PATCH 05/38] Fix deprecation warnings --- pixi.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pixi.toml b/pixi.toml index 46b273d0..b59f0a7e 100644 --- a/pixi.toml +++ b/pixi.toml @@ -4,7 +4,7 @@ python = ">=3.12.4,<3.13" requests = ">=2.32.3,<2.33" "ruamel.yaml" = ">=0.18,<0.19" -[project] +[workspace] authors = ["conda steering council "] channels = ["conda-forge"] name = "governance" From f8c73f542179e672f7784ce386a1bfd9d49b5a49 Mon Sep 17 00:00:00 2001 From: jaimergp Date: Thu, 20 Nov 2025 16:59:20 +0100 Subject: [PATCH 06/38] pre-commit again --- pixi.toml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/pixi.toml b/pixi.toml index b59f0a7e..39925676 100644 --- a/pixi.toml +++ b/pixi.toml @@ -4,16 +4,16 @@ python = ">=3.12.4,<3.13" requests = ">=2.32.3,<2.33" "ruamel.yaml" = ">=0.18,<0.19" -[workspace] -authors = ["conda steering council "] -channels = ["conda-forge"] -name = "governance" -platforms = ["osx-64", "osx-arm64", "win-64", "linux-64"] -version = "0.1.0" - [tasks] check_teams = "python scripts/check_teams.py" collect_emails = "python scripts/collect_emails.py" count_votes = "python scripts/count_votes.py" schemas = "python scripts/schemas.py" vote_markdown = "python scripts/to_vote.py" + +[workspace] +authors = ["conda steering council "] +channels = ["conda-forge"] +name = "governance" +platforms = ["osx-64", "osx-arm64", "win-64", "linux-64"] +version = "0.1.0" From 63f4240c7dd92e260d2a6afa4038d67bedf167fb Mon Sep 17 00:00:00 2001 From: jaimergp Date: Thu, 20 Nov 2025 17:12:01 +0100 Subject: [PATCH 07/38] refactor the diff reporting --- scripts/check_teams.py | 74 ++++++++++++++++++------------------------ 1 file changed, 31 insertions(+), 43 deletions(-) diff --git a/scripts/check_teams.py b/scripts/check_teams.py index 1b34f9e6..f3b3be02 100644 --- a/scripts/check_teams.py +++ b/scripts/check_teams.py @@ -17,6 +17,32 @@ yaml = YAML(typ="safe") +def report_diff(**entries: list[str]): + if len(entries) != 2: + raise ValueError("Must only pass two keyword arguments") + names = list(entries.keys()) + values = list(entries.values()) + print( + f"Contents in {names[0]} do not match {names[1]}:", + file=sys.stderr, + ) + values0 = sorted(values[0], key=str.lower) + values1 = sorted(values[1], key=str.lower) + print(f"{names[0]}:", values0, file=sys.stderr) + print(f"{names[1]}:", values1, file=sys.stderr) + print( + "Diff:", + *unified_diff( + values0, + values1, + fromfile=names[0], + tofile=names[1], + ), + sep="\n", + ) + print("----", file=sys.stderr) + + def token(org): return os.environ.get("GITHUB_TOKEN") if org == "conda": @@ -79,6 +105,7 @@ def access_to_repos(org, team): seen_teams = [] for path in chain(ROOT.glob("teams/*.yml"), ROOT.glob("teams/*.yaml")): + print("Checking", path.name, file=sys.stderr) with open(path) as f: team = yaml.load(path) name_components = team["name"].split("/") @@ -92,6 +119,7 @@ def access_to_repos(org, team): f"Name {team['name']} must be '' or '/'", file=sys.stderr, ) + exit_code = 1 try: members = team_members(org, name) except Exception as exc: @@ -103,59 +131,19 @@ def access_to_repos(org, team): if set(members) != set(team["members"]): members_in_file = sorted(team["members"], key=str.lower) members_in_gh = sorted(members, key=str.lower) - print( - f"Members in '{path.name}' are not in sync with team '@{org}/{name}':", - file=sys.stderr, - ) - print("File:", members_in_file, file=sys.stderr) - print("Github:", members_in_gh, file=sys.stderr) - print( - "Diff:", - *unified_diff( - members_in_file, members_in_gh, fromfile=path.name, tofile="Github" - ), - sep="\n", - ) - print("----", file=sys.stderr) + report_diff(file=members_in_file, github=members_in_gh) exit_code = 1 repos_in_file = sorted(team["scopes"]["codeowners"] or [], key=str.lower) repos_in_gh = sorted(access_to_repos(org, name), key=str.lower) if set(repos_in_file) != set(repos_in_gh): - print( - f"Repos in '{path.name}' are not in sync with Github permissions for team '@{org}/{name}':", - file=sys.stderr, - ) - print("File:", repos_in_file, file=sys.stderr) - print("Github:", repos_in_gh, file=sys.stderr) - print( - "Diff:", - *unified_diff( - repos_in_file, repos_in_gh, fromfile=path.name, tofile="Github" - ), - sep="\n", - ) - print("----", file=sys.stderr) + report_diff(file=repos_in_file, github=repos_in_gh) exit_code = 1 if set(seen_teams) != set(teams_in_github): teams_in_repo = sorted(seen_teams, key=str.lower) teams_in_gh = sorted(teams_in_github, key=str.lower) - print("Teams in repo do not match Github teams:", file=sys.stderr) - print("Repo:", teams_in_repo, file=sys.stderr) - print("Github:", teams_in_gh, file=sys.stderr) - print( - "Diff:", - *unified_diff( - teams_in_repo, - teams_in_gh, - fromfile="Repo", - tofile="Github", - ), - sep="\n", - ) - - print("----", file=sys.stderr) + report_diff(repo=teams_in_repo, github=teams_in_gh) exit_code = 1 sys.exit(exit_code) From 20fff069cbe2eacc5c0a739a210d3c4e990d62d0 Mon Sep 17 00:00:00 2001 From: jaimergp Date: Thu, 20 Nov 2025 17:12:22 +0100 Subject: [PATCH 08/38] de-prio github token --- scripts/check_teams.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/check_teams.py b/scripts/check_teams.py index f3b3be02..d72c03d1 100644 --- a/scripts/check_teams.py +++ b/scripts/check_teams.py @@ -44,11 +44,11 @@ def report_diff(**entries: list[str]): def token(org): - return os.environ.get("GITHUB_TOKEN") if org == "conda": return os.environ.get("CONDA_ORG_WIDE_TOKEN", "") if org == "conda-incubator": return os.environ.get("CONDA_INCUBATOR_ORG_WIDE_TOKEN", "") + return os.environ.get("GITHUB_TOKEN") def team_members(org: str, team: str) -> list[str]: From 4c126fb65045368b96af2f7ddbe40fee9b41e2ac Mon Sep 17 00:00:00 2001 From: jaimergp Date: Thu, 20 Nov 2025 17:18:38 +0100 Subject: [PATCH 09/38] sort teams --- scripts/check_teams.py | 10 +++++----- teams/builds-tools.yml | 2 +- teams/cla-reviewers.yml | 2 +- teams/coc-committee.yml | 2 +- teams/communications.yml | 2 +- teams/constructor.yml | 2 +- teams/docs.yml | 2 +- teams/infrastructure.yml | 2 +- 8 files changed, 12 insertions(+), 12 deletions(-) diff --git a/scripts/check_teams.py b/scripts/check_teams.py index d72c03d1..269fa929 100644 --- a/scripts/check_teams.py +++ b/scripts/check_teams.py @@ -43,12 +43,12 @@ def report_diff(**entries: list[str]): print("----", file=sys.stderr) -def token(org): +def token(org: str) -> str: if org == "conda": - return os.environ.get("CONDA_ORG_WIDE_TOKEN", "") + return os.environ.get("CONDA_ORG_WIDE_TOKEN") or os.environ.get("GITHUB_TOKEN", "") if org == "conda-incubator": - return os.environ.get("CONDA_INCUBATOR_ORG_WIDE_TOKEN", "") - return os.environ.get("GITHUB_TOKEN") + return os.environ.get("CONDA_INCUBATOR_ORG_WIDE_TOKEN") or os.environ.get("GITHUB_TOKEN", "") + return os.environ.get("GITHUB_TOKEN", "") def team_members(org: str, team: str) -> list[str]: @@ -104,7 +104,7 @@ def access_to_repos(org, team): teams_in_github = [*teams_in_org("conda"), *teams_in_org("conda-incubator")] seen_teams = [] -for path in chain(ROOT.glob("teams/*.yml"), ROOT.glob("teams/*.yaml")): +for path in sorted(chain(ROOT.glob("teams/**/*.yml"), ROOT.glob("teams/**/*.yaml"))): print("Checking", path.name, file=sys.stderr) with open(path) as f: team = yaml.load(path) diff --git a/teams/builds-tools.yml b/teams/builds-tools.yml index 47c34f9b..0c577e97 100644 --- a/teams/builds-tools.yml +++ b/teams/builds-tools.yml @@ -1,5 +1,5 @@ # yaml-language-server: $schema=teams.schema.json -name: builds-tools +name: conda/builds-tools description: Team to work on conda-build and other build tools in the conda ecosystem charter: project requirements: diff --git a/teams/cla-reviewers.yml b/teams/cla-reviewers.yml index aadc2719..7be8a61e 100644 --- a/teams/cla-reviewers.yml +++ b/teams/cla-reviewers.yml @@ -1,5 +1,5 @@ # yaml-language-server: $schema=teams.schema.json -name: cla-reviewers +name: conda/cla-reviewers description: The team reviewing incoming CLA documents charter: static requirements: All team members must only consists of steering council members for compliance reasons. diff --git a/teams/coc-committee.yml b/teams/coc-committee.yml index e009e154..13f9b2ad 100644 --- a/teams/coc-committee.yml +++ b/teams/coc-committee.yml @@ -1,5 +1,5 @@ # yaml-language-server: $schema=teams.schema.json -name: coc-committee +name: conda/coc-committee description: The Code of Conduct Committee charter: dynamic requirements: diff --git a/teams/communications.yml b/teams/communications.yml index f0646291..51929017 100644 --- a/teams/communications.yml +++ b/teams/communications.yml @@ -1,5 +1,5 @@ # yaml-language-server: $schema=teams.schema.json -name: communications +name: conda/communications description: Handles communications across the organization charter: dynamic requirements: diff --git a/teams/constructor.yml b/teams/constructor.yml index 5e2f11cd..bb1e65f0 100644 --- a/teams/constructor.yml +++ b/teams/constructor.yml @@ -1,5 +1,5 @@ # yaml-language-server: $schema=teams.schema.json -name: constructor +name: conda/constructor description: The team maintaining constructor and related projects charter: project requirements: diff --git a/teams/docs.yml b/teams/docs.yml index c400fe08..1c801786 100644 --- a/teams/docs.yml +++ b/teams/docs.yml @@ -1,5 +1,5 @@ # yaml-language-server: $schema=teams.schema.json -name: docs +name: conda/docs description: The team working on all-things docs charter: project requirements: diff --git a/teams/infrastructure.yml b/teams/infrastructure.yml index 489c7104..947dcda7 100644 --- a/teams/infrastructure.yml +++ b/teams/infrastructure.yml @@ -1,5 +1,5 @@ # yaml-language-server: $schema=teams.schema.json -name: infrastructure +name: conda/infrastructure description: The team working on conda community infrastructure charter: static requirements: Any steering council member may join without approval From b542c556ecb76c951ad2d5e310c9730403f3c0b6 Mon Sep 17 00:00:00 2001 From: jaimergp Date: Thu, 20 Nov 2025 17:20:35 +0100 Subject: [PATCH 10/38] pre-commit --- scripts/check_teams.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/scripts/check_teams.py b/scripts/check_teams.py index 269fa929..5859bbfc 100644 --- a/scripts/check_teams.py +++ b/scripts/check_teams.py @@ -45,9 +45,13 @@ def report_diff(**entries: list[str]): def token(org: str) -> str: if org == "conda": - return os.environ.get("CONDA_ORG_WIDE_TOKEN") or os.environ.get("GITHUB_TOKEN", "") + return os.environ.get("CONDA_ORG_WIDE_TOKEN") or os.environ.get( + "GITHUB_TOKEN", "" + ) if org == "conda-incubator": - return os.environ.get("CONDA_INCUBATOR_ORG_WIDE_TOKEN") or os.environ.get("GITHUB_TOKEN", "") + return os.environ.get("CONDA_INCUBATOR_ORG_WIDE_TOKEN") or os.environ.get( + "GITHUB_TOKEN", "" + ) return os.environ.get("GITHUB_TOKEN", "") From b9545fff701a650480cc39e3d9dec0dcaa326ecf Mon Sep 17 00:00:00 2001 From: jaimergp Date: Thu, 20 Nov 2025 17:35:54 +0100 Subject: [PATCH 11/38] move under conda/ --- teams/{ => conda}/builds-tools.yml | 2 +- teams/{ => conda}/cla-reviewers.yml | 2 +- teams/{ => conda}/coc-committee.yml | 2 +- teams/{ => conda}/communications.yml | 2 +- teams/{ => conda}/constructor.yml | 2 +- teams/{ => conda}/docs.yml | 2 +- teams/{ => conda}/infrastructure.yml | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) rename teams/{ => conda}/builds-tools.yml (96%) rename teams/{ => conda}/cla-reviewers.yml (91%) rename teams/{ => conda}/coc-committee.yml (95%) rename teams/{ => conda}/communications.yml (93%) rename teams/{ => conda}/constructor.yml (95%) rename teams/{ => conda}/docs.yml (90%) rename teams/{ => conda}/infrastructure.yml (93%) diff --git a/teams/builds-tools.yml b/teams/conda/builds-tools.yml similarity index 96% rename from teams/builds-tools.yml rename to teams/conda/builds-tools.yml index 0c577e97..e6bcfadd 100644 --- a/teams/builds-tools.yml +++ b/teams/conda/builds-tools.yml @@ -1,4 +1,4 @@ -# yaml-language-server: $schema=teams.schema.json +# yaml-language-server: $schema=../teams.schema.json name: conda/builds-tools description: Team to work on conda-build and other build tools in the conda ecosystem charter: project diff --git a/teams/cla-reviewers.yml b/teams/conda/cla-reviewers.yml similarity index 91% rename from teams/cla-reviewers.yml rename to teams/conda/cla-reviewers.yml index 7be8a61e..4c48a609 100644 --- a/teams/cla-reviewers.yml +++ b/teams/conda/cla-reviewers.yml @@ -1,4 +1,4 @@ -# yaml-language-server: $schema=teams.schema.json +# yaml-language-server: $schema=../teams.schema.json name: conda/cla-reviewers description: The team reviewing incoming CLA documents charter: static diff --git a/teams/coc-committee.yml b/teams/conda/coc-committee.yml similarity index 95% rename from teams/coc-committee.yml rename to teams/conda/coc-committee.yml index 13f9b2ad..1db2df89 100644 --- a/teams/coc-committee.yml +++ b/teams/conda/coc-committee.yml @@ -1,4 +1,4 @@ -# yaml-language-server: $schema=teams.schema.json +# yaml-language-server: $schema=../teams.schema.json name: conda/coc-committee description: The Code of Conduct Committee charter: dynamic diff --git a/teams/communications.yml b/teams/conda/communications.yml similarity index 93% rename from teams/communications.yml rename to teams/conda/communications.yml index 51929017..3194efb3 100644 --- a/teams/communications.yml +++ b/teams/conda/communications.yml @@ -1,4 +1,4 @@ -# yaml-language-server: $schema=teams.schema.json +# yaml-language-server: $schema=../teams.schema.json name: conda/communications description: Handles communications across the organization charter: dynamic diff --git a/teams/constructor.yml b/teams/conda/constructor.yml similarity index 95% rename from teams/constructor.yml rename to teams/conda/constructor.yml index bb1e65f0..043887fc 100644 --- a/teams/constructor.yml +++ b/teams/conda/constructor.yml @@ -1,4 +1,4 @@ -# yaml-language-server: $schema=teams.schema.json +# yaml-language-server: $schema=../teams.schema.json name: conda/constructor description: The team maintaining constructor and related projects charter: project diff --git a/teams/docs.yml b/teams/conda/docs.yml similarity index 90% rename from teams/docs.yml rename to teams/conda/docs.yml index 1c801786..7bd0ba65 100644 --- a/teams/docs.yml +++ b/teams/conda/docs.yml @@ -1,4 +1,4 @@ -# yaml-language-server: $schema=teams.schema.json +# yaml-language-server: $schema=../teams.schema.json name: conda/docs description: The team working on all-things docs charter: project diff --git a/teams/infrastructure.yml b/teams/conda/infrastructure.yml similarity index 93% rename from teams/infrastructure.yml rename to teams/conda/infrastructure.yml index 947dcda7..6f9c2c1e 100644 --- a/teams/infrastructure.yml +++ b/teams/conda/infrastructure.yml @@ -1,4 +1,4 @@ -# yaml-language-server: $schema=teams.schema.json +# yaml-language-server: $schema=../teams.schema.json name: conda/infrastructure description: The team working on conda community infrastructure charter: static From 4e49f184d7abe57be1f67a9dcd7727aa4620d777 Mon Sep 17 00:00:00 2001 From: jaimergp Date: Thu, 20 Nov 2025 17:58:26 +0100 Subject: [PATCH 12/38] Auto generate all files for missing teams --- scripts/check_teams.py | 132 +++++++++++------- teams/conda-incubator/bots.yml | 13 ++ teams/conda-incubator/builds-tools.yml | 28 ++++ teams/conda-incubator/ceps.yml | 15 ++ teams/conda-incubator/code-of-conduct.yml | 18 +++ teams/conda-incubator/conda-checkpoints.yml | 13 ++ teams/conda-incubator/conda-colab.yml | 14 ++ teams/conda-incubator/conda-completions.yml | 14 ++ teams/conda-incubator/conda-dot-org.yml | 27 ++++ teams/conda-incubator/conda-env-builder.yml | 14 ++ .../conda-incubator/conda-libmamba-solver.yml | 16 +++ teams/conda-incubator/conda-lockfiles.yml | 18 +++ teams/conda-incubator/conda-meta-mcp.yml | 14 ++ teams/conda-incubator/conda-mirror.yml | 19 +++ teams/conda-incubator/conda-oci.yml | 14 ++ teams/conda-incubator/conda-plugins.yml | 16 +++ teams/conda-incubator/conda-project.yml | 18 +++ teams/conda-incubator/conda-protect.yml | 14 ++ teams/conda-incubator/conda-pypi.yml | 20 +++ .../conda-incubator/conda-rattler-solver.yml | 14 ++ teams/conda-incubator/conda-rich.yml | 14 ++ teams/conda-incubator/conda-self.yml | 17 +++ teams/conda-incubator/conda-sh.yml | 15 ++ teams/conda-incubator/conda-spawn.yml | 13 ++ teams/conda-incubator/conda-store.yml | 23 +++ teams/conda-incubator/conda-subchannel.yml | 14 ++ teams/conda-incubator/conda-tree.yml | 13 ++ teams/conda-incubator/conda-tui.yml | 14 ++ teams/conda-incubator/conda-tutorial.yml | 16 +++ teams/conda-incubator/condastats.yml | 14 ++ teams/conda-incubator/constructor.yml | 22 +++ teams/conda-incubator/content.yml | 18 +++ teams/conda-incubator/design.yml | 19 +++ teams/conda-incubator/docs.yml | 15 ++ teams/conda-incubator/fetch.yml | 16 +++ teams/conda-incubator/hatch-conda-build.yml | 15 ++ teams/conda-incubator/implementation.yml | 20 +++ teams/conda-incubator/infrastructure.yml | 16 +++ teams/conda-incubator/installer.yml | 22 +++ .../nvidia-virtual-packages.yml | 14 ++ teams/conda-incubator/pre-commit.yml | 45 ++++++ teams/conda-incubator/rattler.yml | 16 +++ teams/conda-incubator/relock-conda.yml | 13 ++ teams/conda-incubator/setup-miniconda.yml | 19 +++ teams/conda-incubator/shells.yml | 15 ++ teams/conda-incubator/steering-council.yml | 42 ++++++ teams/conda/anaconda.yml | 23 +++ teams/conda/ceps.yml | 14 ++ teams/conda/community-contributors.yml | 16 +++ teams/conda/conda-core.yml | 37 +++++ teams/conda/conda-dot-org.yml | 17 +++ teams/conda/conda-index.yml | 16 +++ teams/conda/conda-lock.yml | 18 +++ .../conda-maintainers-project-management.yml | 16 +++ teams/conda/conda-maintainers.yml | 29 ++++ teams/conda/distribution-contractors.yml | 14 ++ teams/conda/grayskull.yml | 16 +++ teams/conda/packaging-tools.yml | 20 +++ teams/conda/prefix-dev.yml | 17 +++ teams/conda/quansight.yml | 18 +++ teams/conda/rattler.yml | 17 +++ teams/conda/steering-council.yml | 44 ++++++ teams/conda/steering-emeritus.yml | 29 ++++ 63 files changed, 1245 insertions(+), 47 deletions(-) create mode 100644 teams/conda-incubator/bots.yml create mode 100644 teams/conda-incubator/builds-tools.yml create mode 100644 teams/conda-incubator/ceps.yml create mode 100644 teams/conda-incubator/code-of-conduct.yml create mode 100644 teams/conda-incubator/conda-checkpoints.yml create mode 100644 teams/conda-incubator/conda-colab.yml create mode 100644 teams/conda-incubator/conda-completions.yml create mode 100644 teams/conda-incubator/conda-dot-org.yml create mode 100644 teams/conda-incubator/conda-env-builder.yml create mode 100644 teams/conda-incubator/conda-libmamba-solver.yml create mode 100644 teams/conda-incubator/conda-lockfiles.yml create mode 100644 teams/conda-incubator/conda-meta-mcp.yml create mode 100644 teams/conda-incubator/conda-mirror.yml create mode 100644 teams/conda-incubator/conda-oci.yml create mode 100644 teams/conda-incubator/conda-plugins.yml create mode 100644 teams/conda-incubator/conda-project.yml create mode 100644 teams/conda-incubator/conda-protect.yml create mode 100644 teams/conda-incubator/conda-pypi.yml create mode 100644 teams/conda-incubator/conda-rattler-solver.yml create mode 100644 teams/conda-incubator/conda-rich.yml create mode 100644 teams/conda-incubator/conda-self.yml create mode 100644 teams/conda-incubator/conda-sh.yml create mode 100644 teams/conda-incubator/conda-spawn.yml create mode 100644 teams/conda-incubator/conda-store.yml create mode 100644 teams/conda-incubator/conda-subchannel.yml create mode 100644 teams/conda-incubator/conda-tree.yml create mode 100644 teams/conda-incubator/conda-tui.yml create mode 100644 teams/conda-incubator/conda-tutorial.yml create mode 100644 teams/conda-incubator/condastats.yml create mode 100644 teams/conda-incubator/constructor.yml create mode 100644 teams/conda-incubator/content.yml create mode 100644 teams/conda-incubator/design.yml create mode 100644 teams/conda-incubator/docs.yml create mode 100644 teams/conda-incubator/fetch.yml create mode 100644 teams/conda-incubator/hatch-conda-build.yml create mode 100644 teams/conda-incubator/implementation.yml create mode 100644 teams/conda-incubator/infrastructure.yml create mode 100644 teams/conda-incubator/installer.yml create mode 100644 teams/conda-incubator/nvidia-virtual-packages.yml create mode 100644 teams/conda-incubator/pre-commit.yml create mode 100644 teams/conda-incubator/rattler.yml create mode 100644 teams/conda-incubator/relock-conda.yml create mode 100644 teams/conda-incubator/setup-miniconda.yml create mode 100644 teams/conda-incubator/shells.yml create mode 100644 teams/conda-incubator/steering-council.yml create mode 100644 teams/conda/anaconda.yml create mode 100644 teams/conda/ceps.yml create mode 100644 teams/conda/community-contributors.yml create mode 100644 teams/conda/conda-core.yml create mode 100644 teams/conda/conda-dot-org.yml create mode 100644 teams/conda/conda-index.yml create mode 100644 teams/conda/conda-lock.yml create mode 100644 teams/conda/conda-maintainers-project-management.yml create mode 100644 teams/conda/conda-maintainers.yml create mode 100644 teams/conda/distribution-contractors.yml create mode 100644 teams/conda/grayskull.yml create mode 100644 teams/conda/packaging-tools.yml create mode 100644 teams/conda/prefix-dev.yml create mode 100644 teams/conda/quansight.yml create mode 100644 teams/conda/rattler.yml create mode 100644 teams/conda/steering-council.yml create mode 100644 teams/conda/steering-emeritus.yml diff --git a/scripts/check_teams.py b/scripts/check_teams.py index 5859bbfc..2d78876a 100644 --- a/scripts/check_teams.py +++ b/scripts/check_teams.py @@ -14,7 +14,8 @@ HERE = Path(__file__).parent ROOT = HERE.parent -yaml = YAML(typ="safe") +yaml = YAML() +yaml.indent(mapping=2, sequence=4, offset=2) def report_diff(**entries: list[str]): @@ -104,50 +105,87 @@ def access_to_repos(org, team): ] -exit_code = 0 -teams_in_github = [*teams_in_org("conda"), *teams_in_org("conda-incubator")] -seen_teams = [] - -for path in sorted(chain(ROOT.glob("teams/**/*.yml"), ROOT.glob("teams/**/*.yaml"))): - print("Checking", path.name, file=sys.stderr) - with open(path) as f: - team = yaml.load(path) - name_components = team["name"].split("/") - if len(name_components) == 2: - org, name = name_components - elif len(name_components) == 1: - org = "conda" - name = name_components[0] - else: - print( - f"Name {team['name']} must be '' or '/'", - file=sys.stderr, - ) - exit_code = 1 - try: - members = team_members(org, name) - except Exception as exc: - print(type(exc).__name__, "-", exc, file=sys.stderr) - print("----", file=sys.stderr) - exit_code = 1 - continue - seen_teams.append(f"{org}/{name}") - if set(members) != set(team["members"]): - members_in_file = sorted(team["members"], key=str.lower) - members_in_gh = sorted(members, key=str.lower) - report_diff(file=members_in_file, github=members_in_gh) - exit_code = 1 - repos_in_file = sorted(team["scopes"]["codeowners"] or [], key=str.lower) - repos_in_gh = sorted(access_to_repos(org, name), key=str.lower) - if set(repos_in_file) != set(repos_in_gh): - report_diff(file=repos_in_file, github=repos_in_gh) +def all_yamls() -> list[Path]: + return sorted(chain(ROOT.glob("teams/**/*.yml"), ROOT.glob("teams/**/*.yaml"))) + + +def check_teams() -> int: + exit_code = 0 + teams_in_github = [*teams_in_org("conda"), *teams_in_org("conda-incubator")] + seen_teams = [] + + for path in all_yamls(): + print("Checking", path.relative_to(ROOT), file=sys.stderr) + with open(path) as f: + team = yaml.load(f) + name_components = team["name"].split("/") + if len(name_components) == 2: + org, name = name_components + elif len(name_components) == 1: + org = "conda" + name = name_components[0] + else: + print( + f"Name {team['name']} must be '' or '/'", + file=sys.stderr, + ) + exit_code = 1 + try: + members = team_members(org, name) + except Exception as exc: + print(type(exc).__name__, "-", exc, file=sys.stderr) + print("----", file=sys.stderr) + exit_code = 1 + continue + seen_teams.append(f"{org}/{name}") + if set(members) != set(team["members"]): + members_in_file = sorted(team["members"], key=str.lower) + members_in_gh = sorted(members, key=str.lower) + report_diff(file=members_in_file, github=members_in_gh) + exit_code = 1 + repos_in_file = sorted(team["scopes"]["codeowners"] or [], key=str.lower) + repos_in_gh = sorted(access_to_repos(org, name), key=str.lower) + if set(repos_in_file) != set(repos_in_gh): + report_diff(file=repos_in_file, github=repos_in_gh) + exit_code = 1 + + if set(seen_teams) != set(teams_in_github): + teams_in_repo = sorted(seen_teams, key=str.lower) + teams_in_gh = sorted(teams_in_github, key=str.lower) + report_diff(repo=teams_in_repo, github=teams_in_gh) exit_code = 1 - - -if set(seen_teams) != set(teams_in_github): - teams_in_repo = sorted(seen_teams, key=str.lower) - teams_in_gh = sorted(teams_in_github, key=str.lower) - report_diff(repo=teams_in_repo, github=teams_in_gh) - exit_code = 1 - -sys.exit(exit_code) + return exit_code + + +def generate(): + team_to_fn = {} + for path in all_yamls(): + with open(path) as f: + team = yaml.load(f) + team_to_fn[team["name"]] = path + + for team in chain(teams_in_org("conda"), teams_in_org("conda-incubator")): + if team in team_to_fn: + continue + org, team_name = team.split("/") + data = { + "name": team, + "description": None, + "charter": None, + "requirements": None, + "scopes": {"codeowners": access_to_repos(*team.split("/")), "other": None}, + "links": None, + "members": {member: None for member in team_members(*team.split("/"))}, + "emeritus": None, + } + Path("teams", org).mkdir(parents=True, exist_ok=True) + output_path = Path("teams", org, f"{team_name.replace('.', '-')}.yml") + output_path.write_text("# yaml-language-server: $schema=../teams.schema.json\n") + with open(output_path, "a") as f: + yaml.dump(data, f) + + +if __name__ == "__main__": + if sys.argv[1:] and sys.argv[1] == "generate": + sys.exit(generate()) + sys.exit(check_teams()) diff --git a/teams/conda-incubator/bots.yml b/teams/conda-incubator/bots.yml new file mode 100644 index 00000000..098c0837 --- /dev/null +++ b/teams/conda-incubator/bots.yml @@ -0,0 +1,13 @@ +# yaml-language-server: $schema=../teams.schema.json +name: conda-incubator/bots +description: +charter: +requirements: +scopes: + codeowners: + - conda-incubator/conda-lockfiles + other: +links: +members: + conda-bot: +emeritus: diff --git a/teams/conda-incubator/builds-tools.yml b/teams/conda-incubator/builds-tools.yml new file mode 100644 index 00000000..e742ba9b --- /dev/null +++ b/teams/conda-incubator/builds-tools.yml @@ -0,0 +1,28 @@ +# yaml-language-server: $schema=../teams.schema.json +name: conda-incubator/builds-tools +description: +charter: +requirements: +scopes: + codeowners: [] + other: +links: +members: + jezdez: + msarahan: + dholth: + ryanskeith: + travishathaway: + wolfv: + schuylermartin45: + jaimergp: + dbast: + jakirkham: + chenghlee: + kenodegard: + isuruf: + beckermr: + marcelotrevisani: + mbargull: + beeankha: +emeritus: diff --git a/teams/conda-incubator/ceps.yml b/teams/conda-incubator/ceps.yml new file mode 100644 index 00000000..fbbcc90c --- /dev/null +++ b/teams/conda-incubator/ceps.yml @@ -0,0 +1,15 @@ +# yaml-language-server: $schema=../teams.schema.json +name: conda-incubator/ceps +description: +charter: +requirements: +scopes: + codeowners: [] + other: +links: +members: + jezdez: + kenodegard: + awwad: + beeankha: +emeritus: diff --git a/teams/conda-incubator/code-of-conduct.yml b/teams/conda-incubator/code-of-conduct.yml new file mode 100644 index 00000000..c0caf48d --- /dev/null +++ b/teams/conda-incubator/code-of-conduct.yml @@ -0,0 +1,18 @@ +# yaml-language-server: $schema=../teams.schema.json +name: conda-incubator/code-of-conduct +description: +charter: +requirements: +scopes: + codeowners: [] + other: +links: +members: + ocefpaf: + tnabtaf: + csoja: + kenodegard: + ericdill: + beeankha: + kathatherine: +emeritus: diff --git a/teams/conda-incubator/conda-checkpoints.yml b/teams/conda-incubator/conda-checkpoints.yml new file mode 100644 index 00000000..184ade54 --- /dev/null +++ b/teams/conda-incubator/conda-checkpoints.yml @@ -0,0 +1,13 @@ +# yaml-language-server: $schema=../teams.schema.json +name: conda-incubator/conda-checkpoints +description: +charter: +requirements: +scopes: + codeowners: + - conda-incubator/conda-checkpoints + other: +links: +members: + jaimergp: +emeritus: diff --git a/teams/conda-incubator/conda-colab.yml b/teams/conda-incubator/conda-colab.yml new file mode 100644 index 00000000..b360f62f --- /dev/null +++ b/teams/conda-incubator/conda-colab.yml @@ -0,0 +1,14 @@ +# yaml-language-server: $schema=../teams.schema.json +name: conda-incubator/conda-colab +description: +charter: +requirements: +scopes: + codeowners: + - conda-incubator/condacolab + other: +links: +members: + jaimergp: + ssurbhi560: +emeritus: diff --git a/teams/conda-incubator/conda-completions.yml b/teams/conda-incubator/conda-completions.yml new file mode 100644 index 00000000..cc66afd7 --- /dev/null +++ b/teams/conda-incubator/conda-completions.yml @@ -0,0 +1,14 @@ +# yaml-language-server: $schema=../teams.schema.json +name: conda-incubator/conda-completions +description: +charter: +requirements: +scopes: + codeowners: + - conda-incubator/conda-zsh-completion + other: +links: +members: + jezdez: + esc: +emeritus: diff --git a/teams/conda-incubator/conda-dot-org.yml b/teams/conda-incubator/conda-dot-org.yml new file mode 100644 index 00000000..6f9e2164 --- /dev/null +++ b/teams/conda-incubator/conda-dot-org.yml @@ -0,0 +1,27 @@ +# yaml-language-server: $schema=../teams.schema.json +name: conda-incubator/conda-dot-org +description: +charter: +requirements: +scopes: + codeowners: [] + other: +links: +members: + jezdez: + travishathaway: + tnabtaf: + jaimergp: + jakirkham: + chenghlee: + goanpeca: + barabo: + kenodegard: + beeankha: + eakbulut: + JeremiahSifuentes: + asmitbm: + Pinak-Datta: + kathatherine: + ang852: +emeritus: diff --git a/teams/conda-incubator/conda-env-builder.yml b/teams/conda-incubator/conda-env-builder.yml new file mode 100644 index 00000000..706bf418 --- /dev/null +++ b/teams/conda-incubator/conda-env-builder.yml @@ -0,0 +1,14 @@ +# yaml-language-server: $schema=../teams.schema.json +name: conda-incubator/conda-env-builder +description: +charter: +requirements: +scopes: + codeowners: + - conda-incubator/conda-env-builder + other: +links: +members: + jezdez: + nh13: +emeritus: diff --git a/teams/conda-incubator/conda-libmamba-solver.yml b/teams/conda-incubator/conda-libmamba-solver.yml new file mode 100644 index 00000000..e04da34a --- /dev/null +++ b/teams/conda-incubator/conda-libmamba-solver.yml @@ -0,0 +1,16 @@ +# yaml-language-server: $schema=../teams.schema.json +name: conda-incubator/conda-libmamba-solver +description: +charter: +requirements: +scopes: + codeowners: [] + other: +links: +members: + jezdez: + wolfv: + jjhelmus: + jaimergp: + conda-bot: +emeritus: diff --git a/teams/conda-incubator/conda-lockfiles.yml b/teams/conda-incubator/conda-lockfiles.yml new file mode 100644 index 00000000..57d757ce --- /dev/null +++ b/teams/conda-incubator/conda-lockfiles.yml @@ -0,0 +1,18 @@ +# yaml-language-server: $schema=../teams.schema.json +name: conda-incubator/conda-lockfiles +description: +charter: +requirements: +scopes: + codeowners: + - conda-incubator/conda-lockfiles + other: +links: +members: + jezdez: + travishathaway: + soapy1: + jjhelmus: + jaimergp: + kenodegard: +emeritus: diff --git a/teams/conda-incubator/conda-meta-mcp.yml b/teams/conda-incubator/conda-meta-mcp.yml new file mode 100644 index 00000000..a461dc44 --- /dev/null +++ b/teams/conda-incubator/conda-meta-mcp.yml @@ -0,0 +1,14 @@ +# yaml-language-server: $schema=../teams.schema.json +name: conda-incubator/conda-meta-mcp +description: +charter: +requirements: +scopes: + codeowners: + - conda-incubator/conda-meta-mcp + other: +links: +members: + jezdez: + dbast: +emeritus: diff --git a/teams/conda-incubator/conda-mirror.yml b/teams/conda-incubator/conda-mirror.yml new file mode 100644 index 00000000..5a7109c5 --- /dev/null +++ b/teams/conda-incubator/conda-mirror.yml @@ -0,0 +1,19 @@ +# yaml-language-server: $schema=../teams.schema.json +name: conda-incubator/conda-mirror +description: +charter: +requirements: +scopes: + codeowners: + - conda-incubator/conda-mirror + other: +links: +members: + xhochy: + mariusvniekerk: + scopatz: + goanpeca: + delsner: + ericdill: + pavelzw: +emeritus: diff --git a/teams/conda-incubator/conda-oci.yml b/teams/conda-incubator/conda-oci.yml new file mode 100644 index 00000000..3b9a4927 --- /dev/null +++ b/teams/conda-incubator/conda-oci.yml @@ -0,0 +1,14 @@ +# yaml-language-server: $schema=../teams.schema.json +name: conda-incubator/conda-oci +description: +charter: +requirements: +scopes: + codeowners: + - conda-incubator/conda-oci + other: +links: +members: + jezdez: + beckermr: +emeritus: diff --git a/teams/conda-incubator/conda-plugins.yml b/teams/conda-incubator/conda-plugins.yml new file mode 100644 index 00000000..a20e8ed5 --- /dev/null +++ b/teams/conda-incubator/conda-plugins.yml @@ -0,0 +1,16 @@ +# yaml-language-server: $schema=../teams.schema.json +name: conda-incubator/conda-plugins +description: +charter: +requirements: +scopes: + codeowners: + - conda-incubator/conda-plugins + other: +links: +members: + jezdez: + travishathaway: + kenodegard: + beeankha: +emeritus: diff --git a/teams/conda-incubator/conda-project.yml b/teams/conda-incubator/conda-project.yml new file mode 100644 index 00000000..951fe247 --- /dev/null +++ b/teams/conda-incubator/conda-project.yml @@ -0,0 +1,18 @@ +# yaml-language-server: $schema=../teams.schema.json +name: conda-incubator/conda-project +description: +charter: +requirements: +scopes: + codeowners: + - conda-incubator/conda-project + other: +links: +members: + jezdez: + AlbertDeFusco: + jlstevens: + jbednar: + mattkram: + jkong-anaconda: +emeritus: diff --git a/teams/conda-incubator/conda-protect.yml b/teams/conda-incubator/conda-protect.yml new file mode 100644 index 00000000..ed6c45d8 --- /dev/null +++ b/teams/conda-incubator/conda-protect.yml @@ -0,0 +1,14 @@ +# yaml-language-server: $schema=../teams.schema.json +name: conda-incubator/conda-protect +description: +charter: +requirements: +scopes: + codeowners: + - conda-incubator/conda-protect + other: +links: +members: + jezdez: + travishathaway: +emeritus: diff --git a/teams/conda-incubator/conda-pypi.yml b/teams/conda-incubator/conda-pypi.yml new file mode 100644 index 00000000..6daf1b93 --- /dev/null +++ b/teams/conda-incubator/conda-pypi.yml @@ -0,0 +1,20 @@ +# yaml-language-server: $schema=../teams.schema.json +name: conda-incubator/conda-pypi +description: +charter: +requirements: +scopes: + codeowners: + - conda-incubator/conda-pypi + other: +links: +members: + jezdez: + ryanskeith: + travishathaway: + jjhelmus: + jaimergp: + kenodegard: + danyeaw: + ForgottenProgramme: +emeritus: diff --git a/teams/conda-incubator/conda-rattler-solver.yml b/teams/conda-incubator/conda-rattler-solver.yml new file mode 100644 index 00000000..e9649c5a --- /dev/null +++ b/teams/conda-incubator/conda-rattler-solver.yml @@ -0,0 +1,14 @@ +# yaml-language-server: $schema=../teams.schema.json +name: conda-incubator/conda-rattler-solver +description: +charter: +requirements: +scopes: + codeowners: + - conda-incubator/conda-rattler-solver + other: +links: +members: + jezdez: + jaimergp: +emeritus: diff --git a/teams/conda-incubator/conda-rich.yml b/teams/conda-incubator/conda-rich.yml new file mode 100644 index 00000000..10c8706b --- /dev/null +++ b/teams/conda-incubator/conda-rich.yml @@ -0,0 +1,14 @@ +# yaml-language-server: $schema=../teams.schema.json +name: conda-incubator/conda-rich +description: +charter: +requirements: +scopes: + codeowners: + - conda-incubator/conda-rich + other: +links: +members: + jezdez: + travishathaway: +emeritus: diff --git a/teams/conda-incubator/conda-self.yml b/teams/conda-incubator/conda-self.yml new file mode 100644 index 00000000..222906e4 --- /dev/null +++ b/teams/conda-incubator/conda-self.yml @@ -0,0 +1,17 @@ +# yaml-language-server: $schema=../teams.schema.json +name: conda-incubator/conda-self +description: +charter: +requirements: +scopes: + codeowners: + - conda-incubator/conda-self + other: +links: +members: + jezdez: + soapy1: + jaimergp: + danyeaw: + ForgottenProgramme: +emeritus: diff --git a/teams/conda-incubator/conda-sh.yml b/teams/conda-incubator/conda-sh.yml new file mode 100644 index 00000000..bf6bd7f4 --- /dev/null +++ b/teams/conda-incubator/conda-sh.yml @@ -0,0 +1,15 @@ +# yaml-language-server: $schema=../teams.schema.json +name: conda-incubator/conda-sh +description: +charter: +requirements: +scopes: + codeowners: + - conda-incubator/conda.sh + other: +links: +members: + jezdez: + Carreau: + jaimergp: +emeritus: diff --git a/teams/conda-incubator/conda-spawn.yml b/teams/conda-incubator/conda-spawn.yml new file mode 100644 index 00000000..a07684a7 --- /dev/null +++ b/teams/conda-incubator/conda-spawn.yml @@ -0,0 +1,13 @@ +# yaml-language-server: $schema=../teams.schema.json +name: conda-incubator/conda-spawn +description: +charter: +requirements: +scopes: + codeowners: + - conda-incubator/conda-spawn + other: +links: +members: + jaimergp: +emeritus: diff --git a/teams/conda-incubator/conda-store.yml b/teams/conda-incubator/conda-store.yml new file mode 100644 index 00000000..8ccdebf3 --- /dev/null +++ b/teams/conda-incubator/conda-store.yml @@ -0,0 +1,23 @@ +# yaml-language-server: $schema=../teams.schema.json +name: conda-incubator/conda-store +description: +charter: +requirements: +scopes: + codeowners: + - conda-incubator/conda-store + - conda-incubator/conda-store-ui + - conda-incubator/jupyterlab-conda-store + other: +links: +members: + gabalafou: + dharhas: + soapy1: + jaimergp: + peytondmurray: + kcpevey: + trallard: + pavithraes: + smeragoel: +emeritus: diff --git a/teams/conda-incubator/conda-subchannel.yml b/teams/conda-incubator/conda-subchannel.yml new file mode 100644 index 00000000..0b2e740d --- /dev/null +++ b/teams/conda-incubator/conda-subchannel.yml @@ -0,0 +1,14 @@ +# yaml-language-server: $schema=../teams.schema.json +name: conda-incubator/conda-subchannel +description: +charter: +requirements: +scopes: + codeowners: + - conda-incubator/conda-subchannel + other: +links: +members: + jezdez: + jaimergp: +emeritus: diff --git a/teams/conda-incubator/conda-tree.yml b/teams/conda-incubator/conda-tree.yml new file mode 100644 index 00000000..61b58f7b --- /dev/null +++ b/teams/conda-incubator/conda-tree.yml @@ -0,0 +1,13 @@ +# yaml-language-server: $schema=../teams.schema.json +name: conda-incubator/conda-tree +description: +charter: +requirements: +scopes: + codeowners: + - conda-incubator/conda-tree + other: +links: +members: + rvalieris: +emeritus: diff --git a/teams/conda-incubator/conda-tui.yml b/teams/conda-incubator/conda-tui.yml new file mode 100644 index 00000000..b3f27495 --- /dev/null +++ b/teams/conda-incubator/conda-tui.yml @@ -0,0 +1,14 @@ +# yaml-language-server: $schema=../teams.schema.json +name: conda-incubator/conda-tui +description: +charter: +requirements: +scopes: + codeowners: + - conda-incubator/conda-tui + other: +links: +members: + chenghlee: + mattkram: +emeritus: diff --git a/teams/conda-incubator/conda-tutorial.yml b/teams/conda-incubator/conda-tutorial.yml new file mode 100644 index 00000000..9d81d4b0 --- /dev/null +++ b/teams/conda-incubator/conda-tutorial.yml @@ -0,0 +1,16 @@ +# yaml-language-server: $schema=../teams.schema.json +name: conda-incubator/conda-tutorial +description: +charter: +requirements: +scopes: + codeowners: + - conda-incubator/conda-tutorial + other: +links: +members: + jezdez: + tnabtaf: + leriomaggio: + beeankha: +emeritus: diff --git a/teams/conda-incubator/condastats.yml b/teams/conda-incubator/condastats.yml new file mode 100644 index 00000000..bdda1aea --- /dev/null +++ b/teams/conda-incubator/condastats.yml @@ -0,0 +1,14 @@ +# yaml-language-server: $schema=../teams.schema.json +name: conda-incubator/condastats +description: +charter: +requirements: +scopes: + codeowners: + - conda-incubator/condastats + other: +links: +members: + jezdez: + sophiamyang: +emeritus: diff --git a/teams/conda-incubator/constructor.yml b/teams/conda-incubator/constructor.yml new file mode 100644 index 00000000..3c988513 --- /dev/null +++ b/teams/conda-incubator/constructor.yml @@ -0,0 +1,22 @@ +# yaml-language-server: $schema=../teams.schema.json +name: conda-incubator/constructor +description: +charter: +requirements: +scopes: + codeowners: [] + other: +links: +members: + jezdez: + hmaarrfk: + bkreider: + hoechenberger: + larsoner: + jaimergp: + mcg1969: + chenghlee: + goanpeca: + isuruf: + pseudoyim: +emeritus: diff --git a/teams/conda-incubator/content.yml b/teams/conda-incubator/content.yml new file mode 100644 index 00000000..8db78cdf --- /dev/null +++ b/teams/conda-incubator/content.yml @@ -0,0 +1,18 @@ +# yaml-language-server: $schema=../teams.schema.json +name: conda-incubator/content +description: +charter: +requirements: +scopes: + codeowners: [] + other: +links: +members: + travishathaway: + tnabtaf: + jaimergp: + goanpeca: + beeankha: + kathatherine: + ang852: +emeritus: diff --git a/teams/conda-incubator/design.yml b/teams/conda-incubator/design.yml new file mode 100644 index 00000000..4e4821d1 --- /dev/null +++ b/teams/conda-incubator/design.yml @@ -0,0 +1,19 @@ +# yaml-language-server: $schema=../teams.schema.json +name: conda-incubator/design +description: +charter: +requirements: +scopes: + codeowners: [] + other: +links: +members: + jezdez: + travishathaway: + tnabtaf: + jaimergp: + kenodegard: + eakbulut: + kathatherine: + ang852: +emeritus: diff --git a/teams/conda-incubator/docs.yml b/teams/conda-incubator/docs.yml new file mode 100644 index 00000000..2d892ca5 --- /dev/null +++ b/teams/conda-incubator/docs.yml @@ -0,0 +1,15 @@ +# yaml-language-server: $schema=../teams.schema.json +name: conda-incubator/docs +description: +charter: +requirements: +scopes: + codeowners: + - conda-incubator/conda-sphinx-theme + other: +links: +members: + jezdez: + travishathaway: + kathatherine: +emeritus: diff --git a/teams/conda-incubator/fetch.yml b/teams/conda-incubator/fetch.yml new file mode 100644 index 00000000..e88b6ad6 --- /dev/null +++ b/teams/conda-incubator/fetch.yml @@ -0,0 +1,16 @@ +# yaml-language-server: $schema=../teams.schema.json +name: conda-incubator/fetch +description: +charter: +requirements: +scopes: + codeowners: + - conda-incubator/conda-auth + other: +links: +members: + jezdez: + dholth: + travishathaway: + kenodegard: +emeritus: diff --git a/teams/conda-incubator/hatch-conda-build.yml b/teams/conda-incubator/hatch-conda-build.yml new file mode 100644 index 00000000..894d99e6 --- /dev/null +++ b/teams/conda-incubator/hatch-conda-build.yml @@ -0,0 +1,15 @@ +# yaml-language-server: $schema=../teams.schema.json +name: conda-incubator/hatch-conda-build +description: +charter: +requirements: +scopes: + codeowners: + - conda-incubator/hatch-conda-build + other: +links: +members: + jezdez: + AlbertDeFusco: + costrouc: +emeritus: diff --git a/teams/conda-incubator/implementation.yml b/teams/conda-incubator/implementation.yml new file mode 100644 index 00000000..0e7d28f8 --- /dev/null +++ b/teams/conda-incubator/implementation.yml @@ -0,0 +1,20 @@ +# yaml-language-server: $schema=../teams.schema.json +name: conda-incubator/implementation +description: +charter: +requirements: +scopes: + codeowners: [] + other: +links: +members: + jezdez: + travishathaway: + tnabtaf: + jaimergp: + goanpeca: + barabo: + kenodegard: + beeankha: + JeremiahSifuentes: +emeritus: diff --git a/teams/conda-incubator/infrastructure.yml b/teams/conda-incubator/infrastructure.yml new file mode 100644 index 00000000..445f64b6 --- /dev/null +++ b/teams/conda-incubator/infrastructure.yml @@ -0,0 +1,16 @@ +# yaml-language-server: $schema=../teams.schema.json +name: conda-incubator/infrastructure +description: +charter: +requirements: +scopes: + codeowners: [] + other: +links: +members: + jezdez: + dbast: + chenghlee: + kenodegard: + beckermr: +emeritus: diff --git a/teams/conda-incubator/installer.yml b/teams/conda-incubator/installer.yml new file mode 100644 index 00000000..08521817 --- /dev/null +++ b/teams/conda-incubator/installer.yml @@ -0,0 +1,22 @@ +# yaml-language-server: $schema=../teams.schema.json +name: conda-incubator/installer +description: +charter: +requirements: +scopes: + codeowners: + - conda-incubator/installer + other: +links: +members: + jezdez: + xhochy: + jlstevens: + jaimergp: + dbast: + chenghlee: + isuruf: + pseudoyim: + marcoesters: + psteyer: +emeritus: diff --git a/teams/conda-incubator/nvidia-virtual-packages.yml b/teams/conda-incubator/nvidia-virtual-packages.yml new file mode 100644 index 00000000..73174e97 --- /dev/null +++ b/teams/conda-incubator/nvidia-virtual-packages.yml @@ -0,0 +1,14 @@ +# yaml-language-server: $schema=../teams.schema.json +name: conda-incubator/nvidia-virtual-packages +description: +charter: +requirements: +scopes: + codeowners: + - conda-incubator/nvidia-virtual-packages + other: +links: +members: + chenghlee: + carterbox: +emeritus: diff --git a/teams/conda-incubator/pre-commit.yml b/teams/conda-incubator/pre-commit.yml new file mode 100644 index 00000000..1b93dc14 --- /dev/null +++ b/teams/conda-incubator/pre-commit.yml @@ -0,0 +1,45 @@ +# yaml-language-server: $schema=../teams.schema.json +name: conda-incubator/pre-commit +description: +charter: +requirements: +scopes: + codeowners: + - conda-incubator/pre-commit-mirrors-black + - conda-incubator/pre-commit-mirrors-flake8 + - conda-incubator/pre-commit-mirrors-mypy + - conda-incubator/pre-commit-mirrors-isort + - conda-incubator/pre-commit-mirrors-pyupgrade + - conda-incubator/pre-commit-mirrors-jupytext + - conda-incubator/pre-commit-mirrors-nbstripout + - conda-incubator/pre-commit-mirrors-shellcheck + - conda-incubator/pre-commit-mirrors-prettier + - conda-incubator/pre-commit-mirrors-eslint + - conda-incubator/pre-commit-mirrors-bandit + - conda-incubator/pre-commit-mirrors-sqlfluff + - conda-incubator/pre-commit-mirrors-docformatter + - conda-incubator/pre-commit-mirrors-pre-commit-hooks + - conda-incubator/pre-commit-mirrors-ruff + - conda-incubator/pre-commit-mirrors-pyright + - conda-incubator/pre-commit-mirrors-typos + - conda-incubator/pre-commit-mirrors-cython-lint + - conda-incubator/pre-commit-mirrors-ansible-lint + - conda-incubator/pre-commit-mirrors-hclfmt + - conda-incubator/pre-commit-mirrors-rust + - conda-incubator/pre-commit-mirrors-tflint + - conda-incubator/pre-commit-mirrors-clang-format + - conda-incubator/pre-commit-mirrors-clang-tidy + - conda-incubator/pre-commit-mirrors-checkov + - conda-incubator/pre-commit-mirrors-insert-license + - conda-incubator/pre-commit-mirrors-polars-upgrade + - conda-incubator/copier-template-pre-commit-mirrors + - conda-incubator/pre-commit-mirrors-yamllint + - conda-incubator/pre-commit-mirrors-typstfmt + - conda-incubator/pre-commit-mirrors-taplo + other: +links: +members: + xhochy: + ytausch: + pavelzw: +emeritus: diff --git a/teams/conda-incubator/rattler.yml b/teams/conda-incubator/rattler.yml new file mode 100644 index 00000000..956274f0 --- /dev/null +++ b/teams/conda-incubator/rattler.yml @@ -0,0 +1,16 @@ +# yaml-language-server: $schema=../teams.schema.json +name: conda-incubator/rattler +description: +charter: +requirements: +scopes: + codeowners: [] + other: +links: +members: + wolfv: + baszalmstra: + ruben-arts: + nichmor: + Hofer-Julian: +emeritus: diff --git a/teams/conda-incubator/relock-conda.yml b/teams/conda-incubator/relock-conda.yml new file mode 100644 index 00000000..0356fbb1 --- /dev/null +++ b/teams/conda-incubator/relock-conda.yml @@ -0,0 +1,13 @@ +# yaml-language-server: $schema=../teams.schema.json +name: conda-incubator/relock-conda +description: +charter: +requirements: +scopes: + codeowners: + - conda-incubator/relock-conda + other: +links: +members: + beckermr: +emeritus: diff --git a/teams/conda-incubator/setup-miniconda.yml b/teams/conda-incubator/setup-miniconda.yml new file mode 100644 index 00000000..0c969a6a --- /dev/null +++ b/teams/conda-incubator/setup-miniconda.yml @@ -0,0 +1,19 @@ +# yaml-language-server: $schema=../teams.schema.json +name: conda-incubator/setup-miniconda +description: +charter: +requirements: +scopes: + codeowners: + - conda-incubator/setup-miniconda + - conda-incubator/setup-miniforge + other: +links: +members: + jezdez: + bollwyvl: + jaimergp: + dbast: + goanpeca: + conda-bot: +emeritus: diff --git a/teams/conda-incubator/shells.yml b/teams/conda-incubator/shells.yml new file mode 100644 index 00000000..fb0375e1 --- /dev/null +++ b/teams/conda-incubator/shells.yml @@ -0,0 +1,15 @@ +# yaml-language-server: $schema=../teams.schema.json +name: conda-incubator/shells +description: +charter: +requirements: +scopes: + codeowners: + - conda-incubator/conda-shell + other: +links: +members: + jezdez: + kenodegard: + kalawac: +emeritus: diff --git a/teams/conda-incubator/steering-council.yml b/teams/conda-incubator/steering-council.yml new file mode 100644 index 00000000..b03b7376 --- /dev/null +++ b/teams/conda-incubator/steering-council.yml @@ -0,0 +1,42 @@ +# yaml-language-server: $schema=../teams.schema.json +name: conda-incubator/steering-council +description: +charter: +requirements: +scopes: + codeowners: [] + other: +links: +members: + jezdez: + msarahan: + xhochy: + mariusvniekerk: + minrk: + teoliphant: + scopatz: + dharhas: + wolfv: + ocefpaf: + sodre: + csoja: + jaimergp: + mcg1969: + jakirkham: + raydouglass: + chenghlee: + goanpeca: + kkraus14: + prusse-martin: + beckermr: + ericdill: + CJ-Wright: + angloyna: + marcelotrevisani: + mbargull: + awwad: + conda-bot: + trallard: + cjmartian: + Hind-M: +emeritus: diff --git a/teams/conda/anaconda.yml b/teams/conda/anaconda.yml new file mode 100644 index 00000000..e248d0b8 --- /dev/null +++ b/teams/conda/anaconda.yml @@ -0,0 +1,23 @@ +# yaml-language-server: $schema=../teams.schema.json +name: conda/anaconda +description: +charter: +requirements: +scopes: + codeowners: + - conda/conda-planning + other: +links: +members: + jezdez: + dholth: + ryanskeith: + travishathaway: + schuylermartin45: + chenghlee: + kenodegard: + george-lorch: + danyeaw: + marcoesters: + ForgottenProgramme: +emeritus: diff --git a/teams/conda/ceps.yml b/teams/conda/ceps.yml new file mode 100644 index 00000000..5c9343ab --- /dev/null +++ b/teams/conda/ceps.yml @@ -0,0 +1,14 @@ +# yaml-language-server: $schema=../teams.schema.json +name: conda/ceps +description: +charter: +requirements: +scopes: + codeowners: [] + other: +links: +members: + jezdez: + kenodegard: + beeankha: +emeritus: diff --git a/teams/conda/community-contributors.yml b/teams/conda/community-contributors.yml new file mode 100644 index 00000000..67d052a9 --- /dev/null +++ b/teams/conda/community-contributors.yml @@ -0,0 +1,16 @@ +# yaml-language-server: $schema=../teams.schema.json +name: conda/community-contributors +description: +charter: +requirements: +scopes: + codeowners: + - conda/conda-build + - conda/conda-docs + - conda/conda-pack + other: +links: +members: + marcelotrevisani: + mbargull: +emeritus: diff --git a/teams/conda/conda-core.yml b/teams/conda/conda-core.yml new file mode 100644 index 00000000..c769b27d --- /dev/null +++ b/teams/conda/conda-core.yml @@ -0,0 +1,37 @@ +# yaml-language-server: $schema=../teams.schema.json +name: conda/conda-core +description: +charter: +requirements: +scopes: + codeowners: + - conda/menuinst + - conda/pycosat + - conda/conda-build + - conda/conda-docs + - conda/constructor + - conda/conda_build_test_recipe + - conda/conda-verify + - conda/cookiecutter-conda-python + - conda/conda-pack + - conda/conda-benchmarks + - conda/conda-prefix-replacement + - conda/conda-content-trust + - conda/schemas + - conda/infrastructure + - conda/actions + - conda/conda-plugin-template + - conda/.github + other: +links: +members: + jezdez: + dholth: + travishathaway: + chenghlee: + kenodegard: + pseudoyim: + marcoesters: + beeankha: + ForgottenProgramme: +emeritus: diff --git a/teams/conda/conda-dot-org.yml b/teams/conda/conda-dot-org.yml new file mode 100644 index 00000000..c277a5bd --- /dev/null +++ b/teams/conda/conda-dot-org.yml @@ -0,0 +1,17 @@ +# yaml-language-server: $schema=../teams.schema.json +name: conda/conda-dot-org +description: +charter: +requirements: +scopes: + codeowners: + - conda/conda-dot-org + other: +links: +members: + jezdez: + travishathaway: + jaimergp: + beeankha: + kathatherine: +emeritus: diff --git a/teams/conda/conda-index.yml b/teams/conda/conda-index.yml new file mode 100644 index 00000000..25127c87 --- /dev/null +++ b/teams/conda/conda-index.yml @@ -0,0 +1,16 @@ +# yaml-language-server: $schema=../teams.schema.json +name: conda/conda-index +description: +charter: +requirements: +scopes: + codeowners: + - conda/conda-index + other: +links: +members: + jezdez: + dholth: + jjhelmus: + chenghlee: +emeritus: diff --git a/teams/conda/conda-lock.yml b/teams/conda/conda-lock.yml new file mode 100644 index 00000000..433c1780 --- /dev/null +++ b/teams/conda/conda-lock.yml @@ -0,0 +1,18 @@ +# yaml-language-server: $schema=../teams.schema.json +name: conda/conda-lock +description: +charter: +requirements: +scopes: + codeowners: + - conda/conda-lock + other: +links: +members: + jezdez: + mariusvniekerk: + ocefpaf: + ericdill: + marcelotrevisani: + maresb: +emeritus: diff --git a/teams/conda/conda-maintainers-project-management.yml b/teams/conda/conda-maintainers-project-management.yml new file mode 100644 index 00000000..b9ef0a2b --- /dev/null +++ b/teams/conda/conda-maintainers-project-management.yml @@ -0,0 +1,16 @@ +# yaml-language-server: $schema=../teams.schema.json +name: conda/conda-maintainers-project-management +description: +charter: +requirements: +scopes: + codeowners: [] + other: +links: +members: + jezdez: + jaimergp: + george-lorch: + lwinfree: + trallard: +emeritus: diff --git a/teams/conda/conda-maintainers.yml b/teams/conda/conda-maintainers.yml new file mode 100644 index 00000000..294054d3 --- /dev/null +++ b/teams/conda/conda-maintainers.yml @@ -0,0 +1,29 @@ +# yaml-language-server: $schema=../teams.schema.json +name: conda/conda-maintainers +description: +charter: +requirements: +scopes: + codeowners: + - conda/conda + - conda/conda-libmamba-solver + - conda/conda-classic-solver + - conda/conda-ghsa-3f43-h8hv-p2jv + other: +links: +members: + jezdez: + dholth: + ryanskeith: + travishathaway: + soapy1: + jjhelmus: + jaimergp: + chenghlee: + kenodegard: + george-lorch: + danyeaw: + mbargull: + beeankha: + ForgottenProgramme: +emeritus: diff --git a/teams/conda/distribution-contractors.yml b/teams/conda/distribution-contractors.yml new file mode 100644 index 00000000..5e461e6d --- /dev/null +++ b/teams/conda/distribution-contractors.yml @@ -0,0 +1,14 @@ +# yaml-language-server: $schema=../teams.schema.json +name: conda/distribution-contractors +description: +charter: +requirements: +scopes: + codeowners: [] + other: +links: +members: + skupr-anaconda: + yshmatov-anaconda: + M-Waszkiewicz-Anaconda: +emeritus: diff --git a/teams/conda/grayskull.yml b/teams/conda/grayskull.yml new file mode 100644 index 00000000..4e9bac42 --- /dev/null +++ b/teams/conda/grayskull.yml @@ -0,0 +1,16 @@ +# yaml-language-server: $schema=../teams.schema.json +name: conda/grayskull +description: +charter: +requirements: +scopes: + codeowners: + - conda/grayskull + other: +links: +members: + jezdez: + ocefpaf: + marcelotrevisani: + ForgottenProgramme: +emeritus: diff --git a/teams/conda/packaging-tools.yml b/teams/conda/packaging-tools.yml new file mode 100644 index 00000000..ec92c5ec --- /dev/null +++ b/teams/conda/packaging-tools.yml @@ -0,0 +1,20 @@ +# yaml-language-server: $schema=../teams.schema.json +name: conda/packaging-tools +description: +charter: +requirements: +scopes: + codeowners: + - conda/conda-package-handling + - conda/conda-package-streaming + other: +links: +members: + jezdez: + dholth: + travishathaway: + chenghlee: + kenodegard: + marcelotrevisani: + marcoesters: +emeritus: diff --git a/teams/conda/prefix-dev.yml b/teams/conda/prefix-dev.yml new file mode 100644 index 00000000..624af215 --- /dev/null +++ b/teams/conda/prefix-dev.yml @@ -0,0 +1,17 @@ +# yaml-language-server: $schema=../teams.schema.json +name: conda/prefix-dev +description: +charter: +requirements: +scopes: + codeowners: [] + other: +links: +members: + tdejager: + wolfv: + baszalmstra: + ruben-arts: + nichmor: + Hofer-Julian: +emeritus: diff --git a/teams/conda/quansight.yml b/teams/conda/quansight.yml new file mode 100644 index 00000000..4aedb9dc --- /dev/null +++ b/teams/conda/quansight.yml @@ -0,0 +1,18 @@ +# yaml-language-server: $schema=../teams.schema.json +name: conda/quansight +description: +charter: +requirements: +scopes: + codeowners: + - conda/menuinst + - conda/constructor + - conda/conda-planning + other: +links: +members: + soapy1: + jaimergp: + peytondmurray: + trallard: +emeritus: diff --git a/teams/conda/rattler.yml b/teams/conda/rattler.yml new file mode 100644 index 00000000..b795ef1a --- /dev/null +++ b/teams/conda/rattler.yml @@ -0,0 +1,17 @@ +# yaml-language-server: $schema=../teams.schema.json +name: conda/rattler +description: +charter: +requirements: +scopes: + codeowners: + - conda/rattler + other: +links: +members: + wolfv: + baszalmstra: + ruben-arts: + nichmor: + Hofer-Julian: +emeritus: diff --git a/teams/conda/steering-council.yml b/teams/conda/steering-council.yml new file mode 100644 index 00000000..b6cd7a80 --- /dev/null +++ b/teams/conda/steering-council.yml @@ -0,0 +1,44 @@ +# yaml-language-server: $schema=../teams.schema.json +name: conda/steering-council +description: +charter: +requirements: +scopes: + codeowners: + - conda/governance + - conda/assets + - conda/ceps + - conda/cla + other: +links: +members: + jezdez: + msarahan: + xhochy: + mariusvniekerk: + minrk: + dharhas: + wolfv: + ocefpaf: + sodre: + jjhelmus: + csoja: + jaimergp: + mcg1969: + jakirkham: + raydouglass: + chenghlee: + goanpeca: + prusse-martin: + baszalmstra: + beckermr: + ericdill: + angloyna: + marcelotrevisani: + mbargull: + awwad: + trallard: + pavelzw: + cjmartian: + Hind-M: +emeritus: diff --git a/teams/conda/steering-emeritus.yml b/teams/conda/steering-emeritus.yml new file mode 100644 index 00000000..edfcf169 --- /dev/null +++ b/teams/conda/steering-emeritus.yml @@ -0,0 +1,29 @@ +# yaml-language-server: $schema=../teams.schema.json +name: conda/steering-emeritus +description: +charter: +requirements: +scopes: + codeowners: + - conda/governance + - conda/assets + - conda/ceps + - conda/cla + other: +links: +members: + minrk: + dharhas: + sodre: + jjhelmus: + csoja: + mcg1969: + raydouglass: + goanpeca: + prusse-martin: + beckermr: + ericdill: + angloyna: + awwad: + cjmartian: +emeritus: From 0eb7a54915aa490ad8c8c9582eb5ca3e22c3fbcc Mon Sep 17 00:00:00 2001 From: jaimergp Date: Thu, 20 Nov 2025 18:01:09 +0100 Subject: [PATCH 13/38] ignore advisories --- scripts/check_teams.py | 3 ++- teams/conda/conda-maintainers.yml | 1 - 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/check_teams.py b/scripts/check_teams.py index 2d78876a..caf1d9c1 100644 --- a/scripts/check_teams.py +++ b/scripts/check_teams.py @@ -101,7 +101,8 @@ def access_to_repos(org, team): return [ repo["full_name"] for repo in r.json() - if repo["permissions"]["admin"] or repo["permissions"]["push"] + if (repo["permissions"]["admin"] or repo["permissions"]["push"]) + and "-ghsa-" not in repo["name"] ] diff --git a/teams/conda/conda-maintainers.yml b/teams/conda/conda-maintainers.yml index 294054d3..f7f9f912 100644 --- a/teams/conda/conda-maintainers.yml +++ b/teams/conda/conda-maintainers.yml @@ -8,7 +8,6 @@ scopes: - conda/conda - conda/conda-libmamba-solver - conda/conda-classic-solver - - conda/conda-ghsa-3f43-h8hv-p2jv other: links: members: From 81d0b91f32fb4e9e0cbfcf5b7e0adf921287ade9 Mon Sep 17 00:00:00 2001 From: jaimergp Date: Thu, 20 Nov 2025 18:05:33 +0100 Subject: [PATCH 14/38] add Sophia to conda-pypi --- teams/conda-incubator/conda-pypi.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/teams/conda-incubator/conda-pypi.yml b/teams/conda-incubator/conda-pypi.yml index 6daf1b93..4b1396bb 100644 --- a/teams/conda-incubator/conda-pypi.yml +++ b/teams/conda-incubator/conda-pypi.yml @@ -17,4 +17,5 @@ members: kenodegard: danyeaw: ForgottenProgramme: + soapy1: https://github.com/conda-incubator/conda-pypi/issues/167 emeritus: From da9223c8c6cc5d2fc6826ccc8cf813963ae88b0b Mon Sep 17 00:00:00 2001 From: jaimergp Date: Fri, 21 Nov 2025 17:29:51 +0100 Subject: [PATCH 15/38] Add some descriptions --- teams/conda-incubator/bots.yml | 2 +- teams/conda-incubator/builds-tools.yml | 2 +- teams/conda-incubator/ceps.yml | 2 +- teams/conda-incubator/code-of-conduct.yml | 2 +- teams/conda-incubator/conda-checkpoints.yml | 2 +- teams/conda-incubator/conda-colab.yml | 2 +- teams/conda-incubator/conda-completions.yml | 2 +- teams/conda-incubator/conda-dot-org.yml | 2 +- teams/conda-incubator/conda-env-builder.yml | 2 +- teams/conda-incubator/conda-libmamba-solver.yml | 2 +- teams/conda-incubator/conda-lockfiles.yml | 2 +- teams/conda-incubator/conda-meta-mcp.yml | 2 +- teams/conda-incubator/conda-mirror.yml | 2 +- teams/conda-incubator/conda-oci.yml | 2 +- teams/conda-incubator/conda-plugins.yml | 2 +- teams/conda-incubator/conda-project.yml | 2 +- teams/conda-incubator/conda-protect.yml | 2 +- teams/conda-incubator/conda-rattler-solver.yml | 2 +- teams/conda-incubator/conda-rich.yml | 2 +- teams/conda-incubator/conda-self.yml | 2 +- teams/conda-incubator/conda-sh.yml | 2 +- teams/conda-incubator/conda-spawn.yml | 2 +- teams/conda-incubator/conda-store.yml | 2 +- teams/conda-incubator/conda-subchannel.yml | 2 +- teams/conda-incubator/conda-tree.yml | 2 +- teams/conda-incubator/conda-tui.yml | 2 +- teams/conda-incubator/conda-tutorial.yml | 2 +- teams/conda-incubator/condastats.yml | 2 +- teams/conda-incubator/docs.yml | 2 +- teams/conda-incubator/hatch-conda-build.yml | 2 +- teams/conda-incubator/installer.yml | 2 +- teams/conda-incubator/nvidia-virtual-packages.yml | 2 +- teams/conda-incubator/pre-commit.yml | 2 +- teams/conda-incubator/relock-conda.yml | 2 +- teams/conda-incubator/setup-miniconda.yml | 2 +- teams/conda-incubator/shells.yml | 2 +- teams/conda/anaconda.yml | 2 +- teams/conda/ceps.yml | 5 +++-- teams/conda/conda-dot-org.yml | 2 +- teams/conda/conda-index.yml | 2 +- teams/conda/conda-lock.yml | 2 +- teams/conda/conda-maintainers-project-management.yml | 2 +- teams/conda/conda-maintainers.yml | 2 +- teams/conda/grayskull.yml | 2 +- teams/conda/packaging-tools.yml | 2 +- teams/conda/prefix-dev.yml | 2 +- teams/conda/quansight.yml | 2 +- teams/conda/rattler.yml | 2 +- teams/teams.schema.json | 4 +++- 49 files changed, 53 insertions(+), 50 deletions(-) diff --git a/teams/conda-incubator/bots.yml b/teams/conda-incubator/bots.yml index 098c0837..f10c7663 100644 --- a/teams/conda-incubator/bots.yml +++ b/teams/conda-incubator/bots.yml @@ -1,6 +1,6 @@ # yaml-language-server: $schema=../teams.schema.json name: conda-incubator/bots -description: +description: Special team to permission bots and automations across repositories. charter: requirements: scopes: diff --git a/teams/conda-incubator/builds-tools.yml b/teams/conda-incubator/builds-tools.yml index e742ba9b..c784f140 100644 --- a/teams/conda-incubator/builds-tools.yml +++ b/teams/conda-incubator/builds-tools.yml @@ -1,6 +1,6 @@ # yaml-language-server: $schema=../teams.schema.json name: conda-incubator/builds-tools -description: +description: Deprecated. charter: requirements: scopes: diff --git a/teams/conda-incubator/ceps.yml b/teams/conda-incubator/ceps.yml index fbbcc90c..1f2cc597 100644 --- a/teams/conda-incubator/ceps.yml +++ b/teams/conda-incubator/ceps.yml @@ -1,6 +1,6 @@ # yaml-language-server: $schema=../teams.schema.json name: conda-incubator/ceps -description: +description: Deprecated. charter: requirements: scopes: diff --git a/teams/conda-incubator/code-of-conduct.yml b/teams/conda-incubator/code-of-conduct.yml index c0caf48d..1f3a75c3 100644 --- a/teams/conda-incubator/code-of-conduct.yml +++ b/teams/conda-incubator/code-of-conduct.yml @@ -1,6 +1,6 @@ # yaml-language-server: $schema=../teams.schema.json name: conda-incubator/code-of-conduct -description: +description: Code of conduct commitee charter: requirements: scopes: diff --git a/teams/conda-incubator/conda-checkpoints.yml b/teams/conda-incubator/conda-checkpoints.yml index 184ade54..ae6f5f61 100644 --- a/teams/conda-incubator/conda-checkpoints.yml +++ b/teams/conda-incubator/conda-checkpoints.yml @@ -1,6 +1,6 @@ # yaml-language-server: $schema=../teams.schema.json name: conda-incubator/conda-checkpoints -description: +description: Maintainers of `conda-checkpoints` charter: requirements: scopes: diff --git a/teams/conda-incubator/conda-colab.yml b/teams/conda-incubator/conda-colab.yml index b360f62f..b0d53037 100644 --- a/teams/conda-incubator/conda-colab.yml +++ b/teams/conda-incubator/conda-colab.yml @@ -1,6 +1,6 @@ # yaml-language-server: $schema=../teams.schema.json name: conda-incubator/conda-colab -description: +description: Maintainers of `condacolab` charter: requirements: scopes: diff --git a/teams/conda-incubator/conda-completions.yml b/teams/conda-incubator/conda-completions.yml index cc66afd7..ca726388 100644 --- a/teams/conda-incubator/conda-completions.yml +++ b/teams/conda-incubator/conda-completions.yml @@ -1,6 +1,6 @@ # yaml-language-server: $schema=../teams.schema.json name: conda-incubator/conda-completions -description: +description: Maintainers of conda shell completions charter: requirements: scopes: diff --git a/teams/conda-incubator/conda-dot-org.yml b/teams/conda-incubator/conda-dot-org.yml index 6f9e2164..957e518c 100644 --- a/teams/conda-incubator/conda-dot-org.yml +++ b/teams/conda-incubator/conda-dot-org.yml @@ -1,6 +1,6 @@ # yaml-language-server: $schema=../teams.schema.json name: conda-incubator/conda-dot-org -description: +description: Maintainers of the conda.org website charter: requirements: scopes: diff --git a/teams/conda-incubator/conda-env-builder.yml b/teams/conda-incubator/conda-env-builder.yml index 706bf418..34ec54ec 100644 --- a/teams/conda-incubator/conda-env-builder.yml +++ b/teams/conda-incubator/conda-env-builder.yml @@ -1,6 +1,6 @@ # yaml-language-server: $schema=../teams.schema.json name: conda-incubator/conda-env-builder -description: +description: Maintainers of `conda-env-builder` charter: requirements: scopes: diff --git a/teams/conda-incubator/conda-libmamba-solver.yml b/teams/conda-incubator/conda-libmamba-solver.yml index e04da34a..4f93b36a 100644 --- a/teams/conda-incubator/conda-libmamba-solver.yml +++ b/teams/conda-incubator/conda-libmamba-solver.yml @@ -1,6 +1,6 @@ # yaml-language-server: $schema=../teams.schema.json name: conda-incubator/conda-libmamba-solver -description: +description: Maintainers of `conda-libmamba-solver` charter: requirements: scopes: diff --git a/teams/conda-incubator/conda-lockfiles.yml b/teams/conda-incubator/conda-lockfiles.yml index 57d757ce..4cdb5fb9 100644 --- a/teams/conda-incubator/conda-lockfiles.yml +++ b/teams/conda-incubator/conda-lockfiles.yml @@ -1,6 +1,6 @@ # yaml-language-server: $schema=../teams.schema.json name: conda-incubator/conda-lockfiles -description: +description: Maintainers of `conda-lockfiles` charter: requirements: scopes: diff --git a/teams/conda-incubator/conda-meta-mcp.yml b/teams/conda-incubator/conda-meta-mcp.yml index a461dc44..07fd7ec7 100644 --- a/teams/conda-incubator/conda-meta-mcp.yml +++ b/teams/conda-incubator/conda-meta-mcp.yml @@ -1,6 +1,6 @@ # yaml-language-server: $schema=../teams.schema.json name: conda-incubator/conda-meta-mcp -description: +description: Maintainers of `conda-meta-mcp` charter: requirements: scopes: diff --git a/teams/conda-incubator/conda-mirror.yml b/teams/conda-incubator/conda-mirror.yml index 5a7109c5..dfcc74f6 100644 --- a/teams/conda-incubator/conda-mirror.yml +++ b/teams/conda-incubator/conda-mirror.yml @@ -1,6 +1,6 @@ # yaml-language-server: $schema=../teams.schema.json name: conda-incubator/conda-mirror -description: +description: Maintainers of `conda-mirror` charter: requirements: scopes: diff --git a/teams/conda-incubator/conda-oci.yml b/teams/conda-incubator/conda-oci.yml index 3b9a4927..6c122af6 100644 --- a/teams/conda-incubator/conda-oci.yml +++ b/teams/conda-incubator/conda-oci.yml @@ -1,6 +1,6 @@ # yaml-language-server: $schema=../teams.schema.json name: conda-incubator/conda-oci -description: +description: Maintainers of `conda-oci` charter: requirements: scopes: diff --git a/teams/conda-incubator/conda-plugins.yml b/teams/conda-incubator/conda-plugins.yml index a20e8ed5..c90dac80 100644 --- a/teams/conda-incubator/conda-plugins.yml +++ b/teams/conda-incubator/conda-plugins.yml @@ -1,6 +1,6 @@ # yaml-language-server: $schema=../teams.schema.json name: conda-incubator/conda-plugins -description: +description: Maintainers of `conda-plugins` charter: requirements: scopes: diff --git a/teams/conda-incubator/conda-project.yml b/teams/conda-incubator/conda-project.yml index 951fe247..a6b36ac5 100644 --- a/teams/conda-incubator/conda-project.yml +++ b/teams/conda-incubator/conda-project.yml @@ -1,6 +1,6 @@ # yaml-language-server: $schema=../teams.schema.json name: conda-incubator/conda-project -description: +description: Maintainers of `conda-project` charter: requirements: scopes: diff --git a/teams/conda-incubator/conda-protect.yml b/teams/conda-incubator/conda-protect.yml index ed6c45d8..4cdfcd32 100644 --- a/teams/conda-incubator/conda-protect.yml +++ b/teams/conda-incubator/conda-protect.yml @@ -1,6 +1,6 @@ # yaml-language-server: $schema=../teams.schema.json name: conda-incubator/conda-protect -description: +description: Maintainers of `conda-protect` charter: requirements: scopes: diff --git a/teams/conda-incubator/conda-rattler-solver.yml b/teams/conda-incubator/conda-rattler-solver.yml index e9649c5a..d682311c 100644 --- a/teams/conda-incubator/conda-rattler-solver.yml +++ b/teams/conda-incubator/conda-rattler-solver.yml @@ -1,6 +1,6 @@ # yaml-language-server: $schema=../teams.schema.json name: conda-incubator/conda-rattler-solver -description: +description: Maintainers of `conda-rattler-solver` charter: requirements: scopes: diff --git a/teams/conda-incubator/conda-rich.yml b/teams/conda-incubator/conda-rich.yml index 10c8706b..adb99139 100644 --- a/teams/conda-incubator/conda-rich.yml +++ b/teams/conda-incubator/conda-rich.yml @@ -1,6 +1,6 @@ # yaml-language-server: $schema=../teams.schema.json name: conda-incubator/conda-rich -description: +description: Maintainers of `conda-rich` charter: requirements: scopes: diff --git a/teams/conda-incubator/conda-self.yml b/teams/conda-incubator/conda-self.yml index 222906e4..48d774b3 100644 --- a/teams/conda-incubator/conda-self.yml +++ b/teams/conda-incubator/conda-self.yml @@ -1,6 +1,6 @@ # yaml-language-server: $schema=../teams.schema.json name: conda-incubator/conda-self -description: +description: Maintainers of `conda-self` charter: requirements: scopes: diff --git a/teams/conda-incubator/conda-sh.yml b/teams/conda-incubator/conda-sh.yml index bf6bd7f4..5ed99710 100644 --- a/teams/conda-incubator/conda-sh.yml +++ b/teams/conda-incubator/conda-sh.yml @@ -1,6 +1,6 @@ # yaml-language-server: $schema=../teams.schema.json name: conda-incubator/conda-sh -description: +description: Maintainers of the conda.sh website charter: requirements: scopes: diff --git a/teams/conda-incubator/conda-spawn.yml b/teams/conda-incubator/conda-spawn.yml index a07684a7..196f0571 100644 --- a/teams/conda-incubator/conda-spawn.yml +++ b/teams/conda-incubator/conda-spawn.yml @@ -1,6 +1,6 @@ # yaml-language-server: $schema=../teams.schema.json name: conda-incubator/conda-spawn -description: +description: Maintainers of `conda-spawn` charter: requirements: scopes: diff --git a/teams/conda-incubator/conda-store.yml b/teams/conda-incubator/conda-store.yml index 8ccdebf3..a908d850 100644 --- a/teams/conda-incubator/conda-store.yml +++ b/teams/conda-incubator/conda-store.yml @@ -1,6 +1,6 @@ # yaml-language-server: $schema=../teams.schema.json name: conda-incubator/conda-store -description: +description: Maintainers of `conda-store` and related projects charter: requirements: scopes: diff --git a/teams/conda-incubator/conda-subchannel.yml b/teams/conda-incubator/conda-subchannel.yml index 0b2e740d..bfc1fbf1 100644 --- a/teams/conda-incubator/conda-subchannel.yml +++ b/teams/conda-incubator/conda-subchannel.yml @@ -1,6 +1,6 @@ # yaml-language-server: $schema=../teams.schema.json name: conda-incubator/conda-subchannel -description: +description: Maintainers of `conda-subchannel` charter: requirements: scopes: diff --git a/teams/conda-incubator/conda-tree.yml b/teams/conda-incubator/conda-tree.yml index 61b58f7b..217daaaf 100644 --- a/teams/conda-incubator/conda-tree.yml +++ b/teams/conda-incubator/conda-tree.yml @@ -1,6 +1,6 @@ # yaml-language-server: $schema=../teams.schema.json name: conda-incubator/conda-tree -description: +description: Maintainers of `conda-tree` charter: requirements: scopes: diff --git a/teams/conda-incubator/conda-tui.yml b/teams/conda-incubator/conda-tui.yml index b3f27495..942bda96 100644 --- a/teams/conda-incubator/conda-tui.yml +++ b/teams/conda-incubator/conda-tui.yml @@ -1,6 +1,6 @@ # yaml-language-server: $schema=../teams.schema.json name: conda-incubator/conda-tui -description: +description: Maintainers of `conda-tui` charter: requirements: scopes: diff --git a/teams/conda-incubator/conda-tutorial.yml b/teams/conda-incubator/conda-tutorial.yml index 9d81d4b0..e1cf9deb 100644 --- a/teams/conda-incubator/conda-tutorial.yml +++ b/teams/conda-incubator/conda-tutorial.yml @@ -1,6 +1,6 @@ # yaml-language-server: $schema=../teams.schema.json name: conda-incubator/conda-tutorial -description: +description: Maintainers of the `conda-tutorial` repository charter: requirements: scopes: diff --git a/teams/conda-incubator/condastats.yml b/teams/conda-incubator/condastats.yml index bdda1aea..66cd3839 100644 --- a/teams/conda-incubator/condastats.yml +++ b/teams/conda-incubator/condastats.yml @@ -1,6 +1,6 @@ # yaml-language-server: $schema=../teams.schema.json name: conda-incubator/condastats -description: +description: Maintainers of `condastats` charter: requirements: scopes: diff --git a/teams/conda-incubator/docs.yml b/teams/conda-incubator/docs.yml index 2d892ca5..d78e4773 100644 --- a/teams/conda-incubator/docs.yml +++ b/teams/conda-incubator/docs.yml @@ -1,6 +1,6 @@ # yaml-language-server: $schema=../teams.schema.json name: conda-incubator/docs -description: +description: Maintainers of common documentation infrastructure charter: requirements: scopes: diff --git a/teams/conda-incubator/hatch-conda-build.yml b/teams/conda-incubator/hatch-conda-build.yml index 894d99e6..9fb0363d 100644 --- a/teams/conda-incubator/hatch-conda-build.yml +++ b/teams/conda-incubator/hatch-conda-build.yml @@ -1,6 +1,6 @@ # yaml-language-server: $schema=../teams.schema.json name: conda-incubator/hatch-conda-build -description: +description: Maintainers of the `hatch-conda-build` plugin charter: requirements: scopes: diff --git a/teams/conda-incubator/installer.yml b/teams/conda-incubator/installer.yml index 08521817..76bc15e5 100644 --- a/teams/conda-incubator/installer.yml +++ b/teams/conda-incubator/installer.yml @@ -1,6 +1,6 @@ # yaml-language-server: $schema=../teams.schema.json name: conda-incubator/installer -description: +description: Maintainers of the `installer` Github Action charter: requirements: scopes: diff --git a/teams/conda-incubator/nvidia-virtual-packages.yml b/teams/conda-incubator/nvidia-virtual-packages.yml index 73174e97..d4d5ac42 100644 --- a/teams/conda-incubator/nvidia-virtual-packages.yml +++ b/teams/conda-incubator/nvidia-virtual-packages.yml @@ -1,6 +1,6 @@ # yaml-language-server: $schema=../teams.schema.json name: conda-incubator/nvidia-virtual-packages -description: +description: Maintainers of virtual packages related to Nvidia charter: requirements: scopes: diff --git a/teams/conda-incubator/pre-commit.yml b/teams/conda-incubator/pre-commit.yml index 1b93dc14..25df2b83 100644 --- a/teams/conda-incubator/pre-commit.yml +++ b/teams/conda-incubator/pre-commit.yml @@ -1,6 +1,6 @@ # yaml-language-server: $schema=../teams.schema.json name: conda-incubator/pre-commit -description: +description: Maintainers of pre-commit repositories charter: requirements: scopes: diff --git a/teams/conda-incubator/relock-conda.yml b/teams/conda-incubator/relock-conda.yml index 0356fbb1..48f7cf45 100644 --- a/teams/conda-incubator/relock-conda.yml +++ b/teams/conda-incubator/relock-conda.yml @@ -1,6 +1,6 @@ # yaml-language-server: $schema=../teams.schema.json name: conda-incubator/relock-conda -description: +description: Maintainers of `relock-conda` charter: requirements: scopes: diff --git a/teams/conda-incubator/setup-miniconda.yml b/teams/conda-incubator/setup-miniconda.yml index 0c969a6a..17783fec 100644 --- a/teams/conda-incubator/setup-miniconda.yml +++ b/teams/conda-incubator/setup-miniconda.yml @@ -1,6 +1,6 @@ # yaml-language-server: $schema=../teams.schema.json name: conda-incubator/setup-miniconda -description: +description: Maintainers of the setup-miniconda action charter: requirements: scopes: diff --git a/teams/conda-incubator/shells.yml b/teams/conda-incubator/shells.yml index fb0375e1..24408288 100644 --- a/teams/conda-incubator/shells.yml +++ b/teams/conda-incubator/shells.yml @@ -1,6 +1,6 @@ # yaml-language-server: $schema=../teams.schema.json name: conda-incubator/shells -description: +description: Maintainers of conda-shell and other shell-related projects charter: requirements: scopes: diff --git a/teams/conda/anaconda.yml b/teams/conda/anaconda.yml index e248d0b8..4095672c 100644 --- a/teams/conda/anaconda.yml +++ b/teams/conda/anaconda.yml @@ -1,6 +1,6 @@ # yaml-language-server: $schema=../teams.schema.json name: conda/anaconda -description: +description: People working at Anaconda. charter: requirements: scopes: diff --git a/teams/conda/ceps.yml b/teams/conda/ceps.yml index 5c9343ab..f9be8ac8 100644 --- a/teams/conda/ceps.yml +++ b/teams/conda/ceps.yml @@ -1,10 +1,11 @@ # yaml-language-server: $schema=../teams.schema.json name: conda/ceps -description: +description: Editorial team for CEPs charter: requirements: scopes: - codeowners: [] + codeowners: + - conda/ceps other: links: members: diff --git a/teams/conda/conda-dot-org.yml b/teams/conda/conda-dot-org.yml index c277a5bd..ce2d051d 100644 --- a/teams/conda/conda-dot-org.yml +++ b/teams/conda/conda-dot-org.yml @@ -1,6 +1,6 @@ # yaml-language-server: $schema=../teams.schema.json name: conda/conda-dot-org -description: +description: Team responsible for the conda.org website maintenance charter: requirements: scopes: diff --git a/teams/conda/conda-index.yml b/teams/conda/conda-index.yml index 25127c87..7f6d1361 100644 --- a/teams/conda/conda-index.yml +++ b/teams/conda/conda-index.yml @@ -1,6 +1,6 @@ # yaml-language-server: $schema=../teams.schema.json name: conda/conda-index -description: +description: Maintainers of conda-index charter: requirements: scopes: diff --git a/teams/conda/conda-lock.yml b/teams/conda/conda-lock.yml index 433c1780..cc931650 100644 --- a/teams/conda/conda-lock.yml +++ b/teams/conda/conda-lock.yml @@ -1,6 +1,6 @@ # yaml-language-server: $schema=../teams.schema.json name: conda/conda-lock -description: +description: Maintainers of conda-lock charter: requirements: scopes: diff --git a/teams/conda/conda-maintainers-project-management.yml b/teams/conda/conda-maintainers-project-management.yml index b9ef0a2b..6c4f4c23 100644 --- a/teams/conda/conda-maintainers-project-management.yml +++ b/teams/conda/conda-maintainers-project-management.yml @@ -1,6 +1,6 @@ # yaml-language-server: $schema=../teams.schema.json name: conda/conda-maintainers-project-management -description: +description: Support team for @conda/conda-maintainers, with triage permissions only charter: requirements: scopes: diff --git a/teams/conda/conda-maintainers.yml b/teams/conda/conda-maintainers.yml index f7f9f912..163eb154 100644 --- a/teams/conda/conda-maintainers.yml +++ b/teams/conda/conda-maintainers.yml @@ -1,6 +1,6 @@ # yaml-language-server: $schema=../teams.schema.json name: conda/conda-maintainers -description: +description: Maintainers of `conda` and related core plugins charter: requirements: scopes: diff --git a/teams/conda/grayskull.yml b/teams/conda/grayskull.yml index 4e9bac42..45486f54 100644 --- a/teams/conda/grayskull.yml +++ b/teams/conda/grayskull.yml @@ -1,6 +1,6 @@ # yaml-language-server: $schema=../teams.schema.json name: conda/grayskull -description: +description: Maintainers of `grayskull` charter: requirements: scopes: diff --git a/teams/conda/packaging-tools.yml b/teams/conda/packaging-tools.yml index ec92c5ec..976d1472 100644 --- a/teams/conda/packaging-tools.yml +++ b/teams/conda/packaging-tools.yml @@ -1,6 +1,6 @@ # yaml-language-server: $schema=../teams.schema.json name: conda/packaging-tools -description: +description: Maintainers of conda-package-handling and related projects charter: requirements: scopes: diff --git a/teams/conda/prefix-dev.yml b/teams/conda/prefix-dev.yml index 624af215..1887dc36 100644 --- a/teams/conda/prefix-dev.yml +++ b/teams/conda/prefix-dev.yml @@ -1,6 +1,6 @@ # yaml-language-server: $schema=../teams.schema.json name: conda/prefix-dev -description: +description: Contributors working for Prefix.dev charter: requirements: scopes: diff --git a/teams/conda/quansight.yml b/teams/conda/quansight.yml index 4aedb9dc..7a87f845 100644 --- a/teams/conda/quansight.yml +++ b/teams/conda/quansight.yml @@ -1,6 +1,6 @@ # yaml-language-server: $schema=../teams.schema.json name: conda/quansight -description: +description: Contributors working for Quansight charter: requirements: scopes: diff --git a/teams/conda/rattler.yml b/teams/conda/rattler.yml index b795ef1a..abce3c25 100644 --- a/teams/conda/rattler.yml +++ b/teams/conda/rattler.yml @@ -1,6 +1,6 @@ # yaml-language-server: $schema=../teams.schema.json name: conda/rattler -description: +description: Maintainers of `rattler` charter: requirements: scopes: diff --git a/teams/teams.schema.json b/teams/teams.schema.json index dc779319..ed954f99 100644 --- a/teams/teams.schema.json +++ b/teams/teams.schema.json @@ -52,6 +52,8 @@ "type": "string" }, "description": { + "maxLength": 128, + "minLength": 1, "title": "Description", "type": "string" }, @@ -144,4 +146,4 @@ ], "title": "Conda Sub-Teams", "type": "object" -} +} \ No newline at end of file From c54f9c6ac98a6a679efb7e517311b4233d061a17 Mon Sep 17 00:00:00 2001 From: jaimergp Date: Fri, 21 Nov 2025 17:30:09 +0100 Subject: [PATCH 16/38] Small refactor for the script --- scripts/check_teams.py | 132 ++++++++++++++++++++++++----------------- scripts/schemas.py | 4 +- 2 files changed, 78 insertions(+), 58 deletions(-) diff --git a/scripts/check_teams.py b/scripts/check_teams.py index caf1d9c1..183565dd 100644 --- a/scripts/check_teams.py +++ b/scripts/check_teams.py @@ -18,20 +18,22 @@ yaml.indent(mapping=2, sequence=4, offset=2) -def report_diff(**entries: list[str]): +def eprint(*args, **kwargs): + kwargs.setdefault("file", sys.stderr) + print(*args, **kwargs) + + +def report_diff(field: str, **entries: list[str]): if len(entries) != 2: - raise ValueError("Must only pass two keyword arguments") + raise ValueError("Must pass exactly two keyword arguments") names = list(entries.keys()) values = list(entries.values()) - print( - f"Contents in {names[0]} do not match {names[1]}:", - file=sys.stderr, - ) + eprint(f"Contents for {field} in {names[0]} do not match {names[1]}:") values0 = sorted(values[0], key=str.lower) values1 = sorted(values[1], key=str.lower) - print(f"{names[0]}:", values0, file=sys.stderr) - print(f"{names[1]}:", values1, file=sys.stderr) - print( + eprint(f"{names[0]}:", values0) + eprint(f"{names[1]}:", values1) + eprint( "Diff:", *unified_diff( values0, @@ -41,66 +43,54 @@ def report_diff(**entries: list[str]): ), sep="\n", ) - print("----", file=sys.stderr) + eprint("----") -def token(org: str) -> str: +def gh(org, apipath): + api_url = f"https://api.github.com/{apipath}" + if org == "conda": - return os.environ.get("CONDA_ORG_WIDE_TOKEN") or os.environ.get( - "GITHUB_TOKEN", "" - ) + token = os.environ.get("CONDA_ORG_WIDE_TOKEN") if org == "conda-incubator": - return os.environ.get("CONDA_INCUBATOR_ORG_WIDE_TOKEN") or os.environ.get( - "GITHUB_TOKEN", "" - ) - return os.environ.get("GITHUB_TOKEN", "") - - -def team_members(org: str, team: str) -> list[str]: - api_url = f"https://api.github.com/orgs/{org}/teams/{team}/members" + token = os.environ.get("CONDA_INCUBATOR_ORG_WIDE_TOKEN") + token = token or os.environ.get("GITHUB_TOKEN") or "" # Headers for authentication and proper API versioning headers = { - "Authorization": f"Bearer {token(org)}", + "Authorization": f"Bearer {token}", "Accept": "application/vnd.github.v3+json", "X-GitHub-Api-Version": "2022-11-28", } r = requests.get(api_url, headers=headers, params={"per_page": 100}) r.raise_for_status() - return [member["login"] for member in r.json()] + return r.json() -def teams_in_org(org): - api_url = f"https://api.github.com/orgs/{org}/teams" +def team_details(org: str, team: str) -> list[str]: + return gh(org, f"orgs/{org}/teams/{team}") - # Headers for authentication and proper API versioning - headers = { - "Authorization": f"Bearer {token(org)}", - "Accept": "application/vnd.github.v3+json", - "X-GitHub-Api-Version": "2022-11-28", - } - r = requests.get(api_url, headers=headers, params={"per_page": 100}) - r.raise_for_status() - return [f"{org}/{team['slug']}" for team in r.json()] +def team_members(org: str, team: str) -> list[str]: + result = gh(org, f"orgs/{org}/teams/{team}/members") + return [member["login"] for member in result] -def access_to_repos(org, team): - api_url = f"https://api.github.com/orgs/{org}/teams/{team}/repos" +def teams_in_org(org): + result = gh(org, f"orgs/{org}/teams") + return [f"{org}/{team['slug']}" for team in result] - # Headers for authentication and proper API versioning - headers = { - "Authorization": f"Bearer {token(org)}", - "Accept": "application/vnd.github.v3+json", - "X-GitHub-Api-Version": "2022-11-28", - } - r = requests.get(api_url, headers=headers, params={"per_page": 100}) - r.raise_for_status() +def repos_in_org(org): + result = gh(org, f"orgs/{org}/repos") + return [repo["full_name"] for repo in result] + + +def access_to_repos(org, team): + result = gh(org, f"orgs/{org}/teams/{team}/repos") return [ repo["full_name"] - for repo in r.json() + for repo in result if (repo["permissions"]["admin"] or repo["permissions"]["push"]) and "-ghsa-" not in repo["name"] ] @@ -116,9 +106,11 @@ def check_teams() -> int: seen_teams = [] for path in all_yamls(): - print("Checking", path.relative_to(ROOT), file=sys.stderr) + eprint("Checking", path.relative_to(ROOT)) with open(path) as f: team = yaml.load(f) + + # 0. Validate team name name_components = team["name"].split("/") if len(name_components) == 2: org, name = name_components @@ -126,35 +118,62 @@ def check_teams() -> int: org = "conda" name = name_components[0] else: - print( - f"Name {team['name']} must be '' or '/'", - file=sys.stderr, + eprint(f"Name {team['name']} must be '' or '/'") + exit_code = 1 + continue + if org not in ("conda", "conda-incubator"): + eprint("Team must belong to the `conda` or `conda-incubator` orgs.") + exit_code = 1 + continue + + details = team_details(org, name) + + # 1. Validate descriptions + if team["description"] != details["description"]: + report_diff( + "descriptions", + file=[team["description"]], + github=[details["description"]], ) exit_code = 1 + + # 2. Validate team members try: members = team_members(org, name) except Exception as exc: - print(type(exc).__name__, "-", exc, file=sys.stderr) - print("----", file=sys.stderr) + eprint(type(exc).__name__, "-", exc) + eprint("----") exit_code = 1 continue seen_teams.append(f"{org}/{name}") if set(members) != set(team["members"]): members_in_file = sorted(team["members"], key=str.lower) members_in_gh = sorted(members, key=str.lower) - report_diff(file=members_in_file, github=members_in_gh) + report_diff("members", file=members_in_file, github=members_in_gh) exit_code = 1 + + # 3. Validate access to repositories repos_in_file = sorted(team["scopes"]["codeowners"] or [], key=str.lower) repos_in_gh = sorted(access_to_repos(org, name), key=str.lower) if set(repos_in_file) != set(repos_in_gh): - report_diff(file=repos_in_file, github=repos_in_gh) + report_diff("repositories", file=repos_in_file, github=repos_in_gh) exit_code = 1 + # 4. Check all teams are described if set(seen_teams) != set(teams_in_github): teams_in_repo = sorted(seen_teams, key=str.lower) teams_in_gh = sorted(teams_in_github, key=str.lower) - report_diff(repo=teams_in_repo, github=teams_in_gh) + report_diff("teams", repo=teams_in_repo, github=teams_in_gh) exit_code = 1 + + # 5. Check no individuals are granted access directly (everything must be a team) + for repo in chain(repos_in_org("conda"), repos_in_org("conda-incubator")): + access = repo_access(*repo.split("/")) + if access["usernames"]: + eprint(f"Some users have direct access to `{repo}`:", access["usernames"]) + eprint("Repository access must be granted through teams only!") + exit_code = 1 + return exit_code @@ -169,9 +188,10 @@ def generate(): if team in team_to_fn: continue org, team_name = team.split("/") + details = team_details(org, team_name) data = { "name": team, - "description": None, + "description": details["description"], "charter": None, "requirements": None, "scopes": {"codeowners": access_to_repos(*team.split("/")), "other": None}, diff --git a/scripts/schemas.py b/scripts/schemas.py index 36d5867e..af1f14cc 100644 --- a/scripts/schemas.py +++ b/scripts/schemas.py @@ -27,7 +27,7 @@ class CondaSubTeam(BaseModel): name: str = ... """The team name in GitHub""" - description: str = ... + description: str = Field(..., min_length=1, max_length=128) """The team description in GitHub""" charter: Literal["dynamic", "static", "project"] = ... @@ -41,7 +41,7 @@ class CondaSubTeam(BaseModel): """Special requirements for team membership""" scopes: Scopes = ... - """Team responsibilities""" + """Team responsibilities and owned resources""" links: list[HttpUrl] = ... """Important links, e.g. the issue/PR proposing the team creation""" From 6e7035c055eb730272b33135cb6fb203d0f3d89f Mon Sep 17 00:00:00 2001 From: jaimergp Date: Fri, 21 Nov 2025 17:30:19 +0100 Subject: [PATCH 17/38] Start script to render MDs --- scripts/render_team_md.py | 59 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 scripts/render_team_md.py diff --git a/scripts/render_team_md.py b/scripts/render_team_md.py new file mode 100644 index 00000000..aaa2e1a9 --- /dev/null +++ b/scripts/render_team_md.py @@ -0,0 +1,59 @@ +""" +Generate markdown documents for each team +""" +import sys + +from jinja2 import Environment +from ruamel.yaml import YAML + +yaml = YAML() + +TEMPLATE = """ +# {{ name }} + +{{ description }} + +## Requirements + +This team is defined as a {{ charter }} team. + +{{ requirements or "No requirements specified." }} + +## Members +{% for member in members %} +* [@{{ member }}](https://github.com/{{ member }}) +{%- endfor %} +{%- if emeritus %} +* Emeritus: +{%- for member in emeritus %} + * [@{{ member }}](https://github.com/{{ member }}) +{%- endfor %} +{%- endif %} + +## Resources + +This team has write access to these repositories: +{% for repo in scopes["codeowners"] %} +* [`{{ repo }}`](https://github.com/{{ repo }}) +{%- endfor %} +{% if scopes["other"] %} +Additionally, it controls these other resources: +{% for other in scopes["other"] %} +* {{ other }} +{%- endfor %} +{%- endif %} +{%- if links %} + +## Links +{% for link in links %} +* {{ link }} +{%- endfor %} +{%- endif %} +""" + +yml_path = sys.argv[1] +with open(yml_path) as f: + data = yaml.load(f) +env = Environment() +tpl = env.from_string(TEMPLATE) +print(tpl.render(data)) From dc028ea18031fbc2f70b8e44a8d25df726d0a0c9 Mon Sep 17 00:00:00 2001 From: jaimergp Date: Mon, 24 Nov 2025 09:50:14 +0100 Subject: [PATCH 18/38] Fill in some more teams --- teams/conda-incubator/builds-tools.yml | 1 + teams/conda-incubator/code-of-conduct.yml | 2 +- teams/conda-incubator/conda-checkpoints.yml | 3 +- .../conda-incubator/conda-libmamba-solver.yml | 1 + teams/conda-incubator/conda-meta-mcp.yml | 7 +++-- teams/conda-incubator/conda-protect.yml | 7 +++-- teams/conda-incubator/conda-pypi.yml | 19 ++++++------ .../conda-incubator/conda-rattler-solver.yml | 7 +++-- teams/conda-incubator/conda-rich.yml | 7 +++-- teams/conda-incubator/conda-self.yml | 7 +++-- teams/conda-incubator/conda-spawn.yml | 5 ++-- teams/conda-incubator/conda-store.yml | 24 ++++++++++----- teams/conda-incubator/conda-subchannel.yml | 7 +++-- teams/conda-incubator/conda-tree.yml | 5 ++-- teams/conda-incubator/conda-tui.yml | 7 +++-- teams/conda-incubator/constructor.yml | 1 + .../nvidia-virtual-packages.yml | 7 +++-- teams/conda-incubator/pre-commit.yml | 5 ++-- teams/conda/anaconda.yml | 27 ++++++++--------- teams/conda/builds-tools.yml | 2 +- teams/conda/cla-reviewers.yml | 2 +- teams/conda/coc-committee.yml | 3 +- teams/conda/communications.yml | 4 +-- teams/conda/conda-dot-org.yml | 14 +++++---- teams/conda/conda-index.yml | 10 ++++--- teams/conda/conda-lock.yml | 3 +- .../conda-maintainers-project-management.yml | 2 +- teams/conda/conda-maintainers.yml | 29 ++++++++++--------- teams/conda/constructor.yml | 2 +- teams/conda/grayskull.yml | 3 +- teams/conda/infrastructure.yml | 3 +- teams/conda/packaging-tools.yml | 17 ++++++----- teams/conda/prefix-dev.yml | 17 ++++++----- teams/conda/quansight.yml | 11 +++---- teams/conda/rattler.yml | 12 ++++---- teams/conda/steering-council.yml | 2 +- teams/conda/steering-emeritus.yml | 4 +-- teams/teams.schema.json | 2 +- 38 files changed, 165 insertions(+), 126 deletions(-) diff --git a/teams/conda-incubator/builds-tools.yml b/teams/conda-incubator/builds-tools.yml index c784f140..edb9043e 100644 --- a/teams/conda-incubator/builds-tools.yml +++ b/teams/conda-incubator/builds-tools.yml @@ -7,6 +7,7 @@ scopes: codeowners: [] other: links: + - https://github.com/conda/governance/issues/128 members: jezdez: msarahan: diff --git a/teams/conda-incubator/code-of-conduct.yml b/teams/conda-incubator/code-of-conduct.yml index 1f3a75c3..638be6fe 100644 --- a/teams/conda-incubator/code-of-conduct.yml +++ b/teams/conda-incubator/code-of-conduct.yml @@ -1,6 +1,6 @@ # yaml-language-server: $schema=../teams.schema.json name: conda-incubator/code-of-conduct -description: Code of conduct commitee +description: Code of conduct committee charter: requirements: scopes: diff --git a/teams/conda-incubator/conda-checkpoints.yml b/teams/conda-incubator/conda-checkpoints.yml index ae6f5f61..ea6c2f78 100644 --- a/teams/conda-incubator/conda-checkpoints.yml +++ b/teams/conda-incubator/conda-checkpoints.yml @@ -1,13 +1,14 @@ # yaml-language-server: $schema=../teams.schema.json name: conda-incubator/conda-checkpoints description: Maintainers of `conda-checkpoints` -charter: +charter: dynamic requirements: scopes: codeowners: - conda-incubator/conda-checkpoints other: links: + - https://github.com/conda/governance/issues/144 members: jaimergp: emeritus: diff --git a/teams/conda-incubator/conda-libmamba-solver.yml b/teams/conda-incubator/conda-libmamba-solver.yml index 4f93b36a..180d703d 100644 --- a/teams/conda-incubator/conda-libmamba-solver.yml +++ b/teams/conda-incubator/conda-libmamba-solver.yml @@ -7,6 +7,7 @@ scopes: codeowners: [] other: links: + - https://github.com/conda/conda/issues/15166 members: jezdez: wolfv: diff --git a/teams/conda-incubator/conda-meta-mcp.yml b/teams/conda-incubator/conda-meta-mcp.yml index 07fd7ec7..845be29e 100644 --- a/teams/conda-incubator/conda-meta-mcp.yml +++ b/teams/conda-incubator/conda-meta-mcp.yml @@ -1,14 +1,15 @@ # yaml-language-server: $schema=../teams.schema.json name: conda-incubator/conda-meta-mcp description: Maintainers of `conda-meta-mcp` -charter: +charter: dynamic requirements: scopes: codeowners: - conda-incubator/conda-meta-mcp other: links: + - https://github.com/conda/governance/issues/277 members: - jezdez: - dbast: + jezdez: https://github.com/conda/governance/issues/277 + dbast: https://github.com/conda/governance/issues/277 emeritus: diff --git a/teams/conda-incubator/conda-protect.yml b/teams/conda-incubator/conda-protect.yml index 4cdfcd32..677df72c 100644 --- a/teams/conda-incubator/conda-protect.yml +++ b/teams/conda-incubator/conda-protect.yml @@ -1,14 +1,15 @@ # yaml-language-server: $schema=../teams.schema.json name: conda-incubator/conda-protect description: Maintainers of `conda-protect` -charter: +charter: dynamic requirements: scopes: codeowners: - conda-incubator/conda-protect other: links: + - https://github.com/conda/governance/issues/138 members: - jezdez: - travishathaway: + jezdez: https://github.com/conda/governance/issues/138 + travishathaway: https://github.com/conda/governance/issues/138 emeritus: diff --git a/teams/conda-incubator/conda-pypi.yml b/teams/conda-incubator/conda-pypi.yml index 4b1396bb..17ff6bc7 100644 --- a/teams/conda-incubator/conda-pypi.yml +++ b/teams/conda-incubator/conda-pypi.yml @@ -1,21 +1,22 @@ # yaml-language-server: $schema=../teams.schema.json name: conda-incubator/conda-pypi -description: -charter: +description: Maintainers of `conda-pypi` +charter: dynamic requirements: scopes: codeowners: - conda-incubator/conda-pypi other: links: + - https://github.com/conda/governance/issues/142 members: - jezdez: - ryanskeith: - travishathaway: - jjhelmus: - jaimergp: + jezdez: https://github.com/conda/governance/issues/142 + ryanskeith: https://github.com/conda-incubator/conda-pypi/issues/75 + travishathaway: https://github.com/conda-incubator/conda-pypi/issues/51 + jjhelmus: https://github.com/conda-incubator/conda-pypi/issues/46 + jaimergp: https://github.com/conda/governance/issues/142 kenodegard: - danyeaw: - ForgottenProgramme: + danyeaw: https://github.com/conda-incubator/conda-pypi/issues/52 + ForgottenProgramme: https://github.com/conda-incubator/conda-pypi/issues/161 soapy1: https://github.com/conda-incubator/conda-pypi/issues/167 emeritus: diff --git a/teams/conda-incubator/conda-rattler-solver.yml b/teams/conda-incubator/conda-rattler-solver.yml index d682311c..65a88343 100644 --- a/teams/conda-incubator/conda-rattler-solver.yml +++ b/teams/conda-incubator/conda-rattler-solver.yml @@ -1,14 +1,15 @@ # yaml-language-server: $schema=../teams.schema.json name: conda-incubator/conda-rattler-solver description: Maintainers of `conda-rattler-solver` -charter: +charter: dynamic requirements: scopes: codeowners: - conda-incubator/conda-rattler-solver other: links: + - https://github.com/conda/governance/issues/246 members: - jezdez: - jaimergp: + jezdez: https://github.com/conda-incubator/conda-rattler-solver/issues/18 + jaimergp: https://github.com/conda/governance/issues/246 emeritus: diff --git a/teams/conda-incubator/conda-rich.yml b/teams/conda-incubator/conda-rich.yml index adb99139..fd30d79e 100644 --- a/teams/conda-incubator/conda-rich.yml +++ b/teams/conda-incubator/conda-rich.yml @@ -1,14 +1,15 @@ # yaml-language-server: $schema=../teams.schema.json name: conda-incubator/conda-rich description: Maintainers of `conda-rich` -charter: +charter: dynamic requirements: scopes: codeowners: - conda-incubator/conda-rich other: links: + - https://github.com/conda/governance/issues/191 members: - jezdez: - travishathaway: + jezdez: https://github.com/conda/governance/issues/191 + travishathaway: https://github.com/conda/governance/issues/191 emeritus: diff --git a/teams/conda-incubator/conda-self.yml b/teams/conda-incubator/conda-self.yml index 48d774b3..56de7655 100644 --- a/teams/conda-incubator/conda-self.yml +++ b/teams/conda-incubator/conda-self.yml @@ -1,17 +1,18 @@ # yaml-language-server: $schema=../teams.schema.json name: conda-incubator/conda-self description: Maintainers of `conda-self` -charter: +charter: dynamic requirements: scopes: codeowners: - conda-incubator/conda-self other: links: + - https://github.com/conda/governance/issues/264 members: jezdez: soapy1: - jaimergp: - danyeaw: + jaimergp: https://github.com/conda/governance/issues/264 + danyeaw: https://github.com/conda-incubator/conda-self/issues/39 ForgottenProgramme: emeritus: diff --git a/teams/conda-incubator/conda-spawn.yml b/teams/conda-incubator/conda-spawn.yml index 196f0571..fcc3a3ef 100644 --- a/teams/conda-incubator/conda-spawn.yml +++ b/teams/conda-incubator/conda-spawn.yml @@ -1,13 +1,14 @@ # yaml-language-server: $schema=../teams.schema.json name: conda-incubator/conda-spawn description: Maintainers of `conda-spawn` -charter: +charter: dynamic requirements: scopes: codeowners: - conda-incubator/conda-spawn other: links: + - https://github.com/conda/governance/issues/202 members: - jaimergp: + jaimergp: https://github.com/conda/governance/issues/202 emeritus: diff --git a/teams/conda-incubator/conda-store.yml b/teams/conda-incubator/conda-store.yml index a908d850..779b04dd 100644 --- a/teams/conda-incubator/conda-store.yml +++ b/teams/conda-incubator/conda-store.yml @@ -1,7 +1,7 @@ # yaml-language-server: $schema=../teams.schema.json name: conda-incubator/conda-store description: Maintainers of `conda-store` and related projects -charter: +charter: dynamic requirements: scopes: codeowners: @@ -10,14 +10,22 @@ scopes: - conda-incubator/jupyterlab-conda-store other: links: + - https://github.com/conda/governance/issues/106 members: - gabalafou: - dharhas: + gabalafou: https://github.com/conda/governance/issues/106 + dharhas: https://github.com/conda/governance/issues/106 soapy1: - jaimergp: + jaimergp: https://github.com/conda/governance/issues/106 peytondmurray: - kcpevey: - trallard: - pavithraes: - smeragoel: + kcpevey: https://github.com/conda/governance/issues/106 + trallard: https://github.com/conda/governance/issues/106 + pavithraes: https://github.com/conda/governance/issues/106 + smeragoel: https://github.com/conda/governance/issues/106 emeritus: + pierrotsmnrd: + costrouc: + aktech: + anirrudh: + iameskild: + steff456: + asmeurer: diff --git a/teams/conda-incubator/conda-subchannel.yml b/teams/conda-incubator/conda-subchannel.yml index bfc1fbf1..d0187e6e 100644 --- a/teams/conda-incubator/conda-subchannel.yml +++ b/teams/conda-incubator/conda-subchannel.yml @@ -1,14 +1,15 @@ # yaml-language-server: $schema=../teams.schema.json name: conda-incubator/conda-subchannel description: Maintainers of `conda-subchannel` -charter: +charter: dynamic requirements: scopes: codeowners: - conda-incubator/conda-subchannel other: links: + - https://github.com/conda/governance/issues/143 members: - jezdez: - jaimergp: + jezdez: https://github.com/conda/governance/issues/143 + jaimergp: https://github.com/conda/governance/issues/143 emeritus: diff --git a/teams/conda-incubator/conda-tree.yml b/teams/conda-incubator/conda-tree.yml index 217daaaf..ca175bb1 100644 --- a/teams/conda-incubator/conda-tree.yml +++ b/teams/conda-incubator/conda-tree.yml @@ -1,13 +1,14 @@ # yaml-language-server: $schema=../teams.schema.json name: conda-incubator/conda-tree description: Maintainers of `conda-tree` -charter: +charter: project requirements: scopes: codeowners: - conda-incubator/conda-tree other: links: + - https://github.com/conda-incubator/conda-tree/issues/20 members: - rvalieris: + rvalieris: https://github.com/conda-incubator/conda-tree/issues/20 emeritus: diff --git a/teams/conda-incubator/conda-tui.yml b/teams/conda-incubator/conda-tui.yml index 942bda96..769a8d2c 100644 --- a/teams/conda-incubator/conda-tui.yml +++ b/teams/conda-incubator/conda-tui.yml @@ -1,14 +1,15 @@ # yaml-language-server: $schema=../teams.schema.json name: conda-incubator/conda-tui description: Maintainers of `conda-tui` -charter: +charter: dynamic requirements: scopes: codeowners: - conda-incubator/conda-tui other: links: + - https://github.com/conda/governance/issues/108 members: - chenghlee: - mattkram: + chenghlee: https://github.com/conda/governance/issues/108 + mattkram: https://github.com/conda/governance/issues/108 emeritus: diff --git a/teams/conda-incubator/constructor.yml b/teams/conda-incubator/constructor.yml index 3c988513..a2e80156 100644 --- a/teams/conda-incubator/constructor.yml +++ b/teams/conda-incubator/constructor.yml @@ -7,6 +7,7 @@ scopes: codeowners: [] other: links: + - https://github.com/conda/governance/issues/53 members: jezdez: hmaarrfk: diff --git a/teams/conda-incubator/nvidia-virtual-packages.yml b/teams/conda-incubator/nvidia-virtual-packages.yml index d4d5ac42..c6c78e69 100644 --- a/teams/conda-incubator/nvidia-virtual-packages.yml +++ b/teams/conda-incubator/nvidia-virtual-packages.yml @@ -1,14 +1,15 @@ # yaml-language-server: $schema=../teams.schema.json name: conda-incubator/nvidia-virtual-packages description: Maintainers of virtual packages related to Nvidia -charter: +charter: dynamic requirements: scopes: codeowners: - conda-incubator/nvidia-virtual-packages other: links: + - https://github.com/conda/governance/issues/308 members: - chenghlee: - carterbox: + chenghlee: https://github.com/conda/governance/issues/308 + carterbox: https://github.com/conda/governance/issues/308 emeritus: diff --git a/teams/conda-incubator/pre-commit.yml b/teams/conda-incubator/pre-commit.yml index 25df2b83..d6badb35 100644 --- a/teams/conda-incubator/pre-commit.yml +++ b/teams/conda-incubator/pre-commit.yml @@ -1,7 +1,7 @@ # yaml-language-server: $schema=../teams.schema.json name: conda-incubator/pre-commit -description: Maintainers of pre-commit repositories -charter: +description: Maintainers of conda-based pre-commit hooks +charter: dynamic requirements: scopes: codeowners: @@ -38,6 +38,7 @@ scopes: - conda-incubator/pre-commit-mirrors-taplo other: links: + - https://github.com/conda/governance/issues/255 members: xhochy: ytausch: diff --git a/teams/conda/anaconda.yml b/teams/conda/anaconda.yml index 4095672c..fe8f758e 100644 --- a/teams/conda/anaconda.yml +++ b/teams/conda/anaconda.yml @@ -1,23 +1,24 @@ # yaml-language-server: $schema=../teams.schema.json name: conda/anaconda description: People working at Anaconda. -charter: -requirements: +charter: dynamic +requirements: Members must be employed by Anaconda. scopes: codeowners: - conda/conda-planning other: links: + - https://github.com/conda/governance/issues/222 members: - jezdez: - dholth: - ryanskeith: - travishathaway: - schuylermartin45: - chenghlee: - kenodegard: - george-lorch: - danyeaw: - marcoesters: - ForgottenProgramme: + jezdez: https://github.com/conda/governance/issues/222 + dholth: https://github.com/conda/governance/issues/222 + ryanskeith: https://github.com/conda/governance/issues/222 + travishathaway: https://github.com/conda/governance/issues/222 + schuylermartin45: https://github.com/conda/governance/issues/222 + chenghlee: https://github.com/conda/governance/issues/222 + kenodegard: https://github.com/conda/governance/issues/222 + george-lorch: https://github.com/conda/governance/issues/222 + danyeaw: https://github.com/conda/governance/issues/222 + marcoesters: https://github.com/conda/governance/issues/222 + ForgottenProgramme: https://github.com/conda/governance/issues/222 emeritus: diff --git a/teams/conda/builds-tools.yml b/teams/conda/builds-tools.yml index e6bcfadd..6c278335 100644 --- a/teams/conda/builds-tools.yml +++ b/teams/conda/builds-tools.yml @@ -8,7 +8,7 @@ scopes: - conda-incubator/conda-recipe-manager - conda/conda-build other: - - https://matrix.to/#/#conda-build-tools:matrix.org # public + - https://conda.zulipchat.com/#narrow/channel/471111-builds-tools links: - https://github.com/conda/conda-build/issues/4698 - https://github.com/conda/governance/issues/128 diff --git a/teams/conda/cla-reviewers.yml b/teams/conda/cla-reviewers.yml index 4c48a609..f58c5ded 100644 --- a/teams/conda/cla-reviewers.yml +++ b/teams/conda/cla-reviewers.yml @@ -2,7 +2,7 @@ name: conda/cla-reviewers description: The team reviewing incoming CLA documents charter: static -requirements: All team members must only consists of steering council members for compliance reasons. +requirements: All team members must only consist of steering council members for compliance reasons. scopes: codeowners: - conda/cla diff --git a/teams/conda/coc-committee.yml b/teams/conda/coc-committee.yml index 1db2df89..8dad7366 100644 --- a/teams/conda/coc-committee.yml +++ b/teams/conda/coc-committee.yml @@ -7,12 +7,13 @@ scopes: codeowners: other: - https://github.com/conda-conduct - - https://matrix.to/#/!jLRCFFbpabFtdYvfeO:matrix.org # private + - https://conda.zulipchat.com/#narrow/channel/469892-code-of-conduct # private links: - https://github.com/conda/governance/issues/46 - https://github.com/conda/governance/pull/49 - https://github.com/conda/governance/pull/121 - https://github.com/conda/governance/pull/158 + - https://github.com/conda/infrastructure/issues/974 members: beeankha: https://github.com/conda/governance/pull/49 csoja: https://github.com/conda/governance/issues/46 diff --git a/teams/conda/communications.yml b/teams/conda/communications.yml index 3194efb3..e0f520af 100644 --- a/teams/conda/communications.yml +++ b/teams/conda/communications.yml @@ -10,9 +10,9 @@ scopes: - https://conda.discourse.group/ - https://www.linkedin.com/company/condacommunity - https://fosstodon.org/@conda - - https://matrix.to/#/#conda-communications:matrix.org # public + - https://conda.zulipchat.com/#narrow/channel/471276-communications - https://x.com/condaproject - - https://bsky.app/profile/condaproject.bsky.social + - https://bsky.app/profile/conda.org links: - https://github.com/conda/governance/issues/53 members: diff --git a/teams/conda/conda-dot-org.yml b/teams/conda/conda-dot-org.yml index ce2d051d..abef5cde 100644 --- a/teams/conda/conda-dot-org.yml +++ b/teams/conda/conda-dot-org.yml @@ -1,17 +1,19 @@ # yaml-language-server: $schema=../teams.schema.json name: conda/conda-dot-org description: Team responsible for the conda.org website maintenance -charter: +charter: dynamic requirements: scopes: codeowners: - conda/conda-dot-org other: links: + - https://github.com/conda/governance/issues/76 + - https://github.com/conda/conda-dot-org/issues/110 members: - jezdez: - travishathaway: - jaimergp: - beeankha: - kathatherine: + jezdez: https://github.com/conda/conda-dot-org/issues/110 + travishathaway: https://github.com/conda/conda-dot-org/issues/110 + jaimergp: https://github.com/conda/conda-dot-org/issues/110 + beeankha: https://github.com/conda/conda-dot-org/issues/110 + kathatherine: https://github.com/conda/conda-dot-org/issues/110 emeritus: diff --git a/teams/conda/conda-index.yml b/teams/conda/conda-index.yml index 7f6d1361..791f4400 100644 --- a/teams/conda/conda-index.yml +++ b/teams/conda/conda-index.yml @@ -1,16 +1,18 @@ # yaml-language-server: $schema=../teams.schema.json name: conda/conda-index description: Maintainers of conda-index -charter: +charter: project requirements: scopes: codeowners: - conda/conda-index other: links: + - https://github.com/conda/conda-build/issues/4472 + - https://github.com/conda/conda-index/issues/59 members: - jezdez: - dholth: + jezdez: https://github.com/conda/conda-build/issues/4472 + dholth: https://github.com/conda/conda-build/issues/4472 jjhelmus: - chenghlee: + chenghlee: https://github.com/conda/conda-build/issues/4472 emeritus: diff --git a/teams/conda/conda-lock.yml b/teams/conda/conda-lock.yml index cc931650..3c756bf6 100644 --- a/teams/conda/conda-lock.yml +++ b/teams/conda/conda-lock.yml @@ -1,13 +1,14 @@ # yaml-language-server: $schema=../teams.schema.json name: conda/conda-lock description: Maintainers of conda-lock -charter: +charter: project requirements: scopes: codeowners: - conda/conda-lock other: links: + - https://github.com/conda/conda-lock/issues/319 members: jezdez: mariusvniekerk: diff --git a/teams/conda/conda-maintainers-project-management.yml b/teams/conda/conda-maintainers-project-management.yml index 6c4f4c23..e7703e62 100644 --- a/teams/conda/conda-maintainers-project-management.yml +++ b/teams/conda/conda-maintainers-project-management.yml @@ -1,7 +1,7 @@ # yaml-language-server: $schema=../teams.schema.json name: conda/conda-maintainers-project-management description: Support team for @conda/conda-maintainers, with triage permissions only -charter: +charter: dynamic requirements: scopes: codeowners: [] diff --git a/teams/conda/conda-maintainers.yml b/teams/conda/conda-maintainers.yml index 163eb154..b2ca0739 100644 --- a/teams/conda/conda-maintainers.yml +++ b/teams/conda/conda-maintainers.yml @@ -1,7 +1,7 @@ # yaml-language-server: $schema=../teams.schema.json name: conda/conda-maintainers description: Maintainers of `conda` and related core plugins -charter: +charter: project requirements: scopes: codeowners: @@ -10,19 +10,20 @@ scopes: - conda/conda-classic-solver other: links: + - https://github.com/conda/conda/issues/13526 members: - jezdez: - dholth: + jezdez: https://github.com/conda/conda/issues/13526 + dholth: https://github.com/conda/conda/issues/13526 ryanskeith: - travishathaway: - soapy1: - jjhelmus: - jaimergp: - chenghlee: - kenodegard: - george-lorch: - danyeaw: - mbargull: - beeankha: - ForgottenProgramme: + travishathaway: https://github.com/conda/conda/issues/13526 + soapy1: https://github.com/conda/governance/issues/258 + jjhelmus: https://github.com/conda/governance/issues/219 + jaimergp: https://github.com/conda/conda/issues/13526 + chenghlee: https://github.com/conda/conda/issues/13526 + kenodegard: https://github.com/conda/conda/issues/13526 + george-lorch: https://github.com/conda/governance/issues/216 + danyeaw: https://github.com/conda/governance/issues/265 + mbargull: https://github.com/conda/conda/issues/13526 + beeankha: https://github.com/conda/conda/issues/13526 + ForgottenProgramme: https://github.com/conda/conda/issues/13526 emeritus: diff --git a/teams/conda/constructor.yml b/teams/conda/constructor.yml index 043887fc..55d91604 100644 --- a/teams/conda/constructor.yml +++ b/teams/conda/constructor.yml @@ -23,7 +23,7 @@ members: jaimergp: https://github.com/conda/governance/issues/53 jezdez: https://github.com/conda/governance/issues/53 larsoner: https://github.com/conda/governance/issues/53 - marcoesters: # missing record of decision? + marcoesters: https://github.com/conda/constructor/issues/790 mcg1969: https://github.com/conda/governance/issues/53 # missing from team? pseudoyim: https://github.com/conda/governance/issues/53 travishathaway: # missing record of decision? diff --git a/teams/conda/grayskull.yml b/teams/conda/grayskull.yml index 45486f54..3acf6764 100644 --- a/teams/conda/grayskull.yml +++ b/teams/conda/grayskull.yml @@ -1,13 +1,14 @@ # yaml-language-server: $schema=../teams.schema.json name: conda/grayskull description: Maintainers of `grayskull` -charter: +charter: project requirements: scopes: codeowners: - conda/grayskull other: links: + - https://github.com/conda/grayskull/issues/436 members: jezdez: ocefpaf: diff --git a/teams/conda/infrastructure.yml b/teams/conda/infrastructure.yml index 6f9c2c1e..5ab8a95e 100644 --- a/teams/conda/infrastructure.yml +++ b/teams/conda/infrastructure.yml @@ -11,7 +11,8 @@ scopes: - conda/issue-tracker other: - https://github.com/conda-bot - - https://matrix.to/#/!tpEQSUGYWHNdgpDFNc:matrix.org # private + - https://conda.zulipchat.com/#narrow/channel/487124-infrastructure + - https://conda.zulipchat.com/#narrow/channel/471360-infrastructure-private # private links: - https://github.com/conda/governance/issues/84 members: diff --git a/teams/conda/packaging-tools.yml b/teams/conda/packaging-tools.yml index 976d1472..b286f8e8 100644 --- a/teams/conda/packaging-tools.yml +++ b/teams/conda/packaging-tools.yml @@ -1,7 +1,7 @@ # yaml-language-server: $schema=../teams.schema.json name: conda/packaging-tools description: Maintainers of conda-package-handling and related projects -charter: +charter: project requirements: scopes: codeowners: @@ -9,12 +9,13 @@ scopes: - conda/conda-package-streaming other: links: + - https://github.com/conda/infrastructure/issues/1007 members: - jezdez: - dholth: - travishathaway: - chenghlee: - kenodegard: - marcelotrevisani: - marcoesters: + jezdez: https://github.com/conda/infrastructure/issues/1007 + dholth: https://github.com/conda/infrastructure/issues/1007 + travishathaway: https://github.com/conda/infrastructure/issues/1007 + chenghlee: https://github.com/conda/infrastructure/issues/1007 + kenodegard: https://github.com/conda/infrastructure/issues/1007 + marcelotrevisani: https://github.com/conda/infrastructure/issues/1007 + marcoesters: https://github.com/conda/infrastructure/issues/1007 emeritus: diff --git a/teams/conda/prefix-dev.yml b/teams/conda/prefix-dev.yml index 1887dc36..8234caa5 100644 --- a/teams/conda/prefix-dev.yml +++ b/teams/conda/prefix-dev.yml @@ -1,17 +1,18 @@ # yaml-language-server: $schema=../teams.schema.json name: conda/prefix-dev description: Contributors working for Prefix.dev -charter: -requirements: +charter: dynamic +requirements: Being employed by Prefix.dev scopes: codeowners: [] other: links: + - https://github.com/conda/governance/issues/226 members: - tdejager: - wolfv: - baszalmstra: - ruben-arts: - nichmor: - Hofer-Julian: + tdejager: https://github.com/conda/governance/issues/225 + wolfv: https://github.com/conda/governance/issues/225 + baszalmstra: https://github.com/conda/governance/issues/225 + ruben-arts: https://github.com/conda/governance/issues/225 + nichmor: https://github.com/conda/governance/issues/225 + Hofer-Julian: https://github.com/conda/governance/issues/225 emeritus: diff --git a/teams/conda/quansight.yml b/teams/conda/quansight.yml index 7a87f845..63599362 100644 --- a/teams/conda/quansight.yml +++ b/teams/conda/quansight.yml @@ -1,7 +1,7 @@ # yaml-language-server: $schema=../teams.schema.json name: conda/quansight description: Contributors working for Quansight -charter: +charter: dynamic requirements: scopes: codeowners: @@ -10,9 +10,10 @@ scopes: - conda/conda-planning other: links: + - https://github.com/conda/governance/issues/225 members: - soapy1: - jaimergp: - peytondmurray: - trallard: + soapy1: https://github.com/conda/governance/issues/225 + jaimergp: https://github.com/conda/governance/issues/225 + peytondmurray: https://github.com/conda/governance/issues/225 + trallard: https://github.com/conda/governance/issues/225 emeritus: diff --git a/teams/conda/rattler.yml b/teams/conda/rattler.yml index abce3c25..b949e7da 100644 --- a/teams/conda/rattler.yml +++ b/teams/conda/rattler.yml @@ -1,17 +1,19 @@ # yaml-language-server: $schema=../teams.schema.json name: conda/rattler description: Maintainers of `rattler` -charter: +charter: dynamic requirements: scopes: codeowners: - conda/rattler other: links: + - https://github.com/conda/governance/issues/145 + - https://github.com/conda/rattler/issues/799 members: - wolfv: - baszalmstra: - ruben-arts: - nichmor: + wolfv: https://github.com/conda/governance/issues/145 + baszalmstra: https://github.com/conda/governance/issues/145 + ruben-arts: https://github.com/conda/governance/issues/145 + nichmor: https://github.com/conda/governance/issues/145 Hofer-Julian: emeritus: diff --git a/teams/conda/steering-council.yml b/teams/conda/steering-council.yml index b6cd7a80..f3d60099 100644 --- a/teams/conda/steering-council.yml +++ b/teams/conda/steering-council.yml @@ -1,7 +1,7 @@ # yaml-language-server: $schema=../teams.schema.json name: conda/steering-council description: -charter: +charter: static requirements: scopes: codeowners: diff --git a/teams/conda/steering-emeritus.yml b/teams/conda/steering-emeritus.yml index edfcf169..bd12c061 100644 --- a/teams/conda/steering-emeritus.yml +++ b/teams/conda/steering-emeritus.yml @@ -1,7 +1,7 @@ # yaml-language-server: $schema=../teams.schema.json name: conda/steering-emeritus -description: -charter: +description: Emeritus members of the conda steering council. +charter: static requirements: scopes: codeowners: diff --git a/teams/teams.schema.json b/teams/teams.schema.json index ed954f99..a06beb0b 100644 --- a/teams/teams.schema.json +++ b/teams/teams.schema.json @@ -146,4 +146,4 @@ ], "title": "Conda Sub-Teams", "type": "object" -} \ No newline at end of file +} From 0dd5bd836472fcdeff67986d6b30938bbb7d70d0 Mon Sep 17 00:00:00 2001 From: jaimergp Date: Mon, 24 Nov 2025 09:50:21 +0100 Subject: [PATCH 19/38] WIP --- scripts/check_teams.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/scripts/check_teams.py b/scripts/check_teams.py index 183565dd..8643a746 100644 --- a/scripts/check_teams.py +++ b/scripts/check_teams.py @@ -166,13 +166,13 @@ def check_teams() -> int: report_diff("teams", repo=teams_in_repo, github=teams_in_gh) exit_code = 1 - # 5. Check no individuals are granted access directly (everything must be a team) - for repo in chain(repos_in_org("conda"), repos_in_org("conda-incubator")): - access = repo_access(*repo.split("/")) - if access["usernames"]: - eprint(f"Some users have direct access to `{repo}`:", access["usernames"]) - eprint("Repository access must be granted through teams only!") - exit_code = 1 + # # 5. Check no individuals are granted access directly (everything must be a team) + # for repo in chain(repos_in_org("conda"), repos_in_org("conda-incubator")): + # access = repo_access(*repo.split("/")) + # if access["usernames"]: + # eprint(f"Some users have direct access to `{repo}`:", access["usernames"]) + # eprint("Repository access must be granted through teams only!") + # exit_code = 1 return exit_code From 55c589082b6adb1ae2c342ad69cb5fe0a126f361 Mon Sep 17 00:00:00 2001 From: jaimergp Date: Mon, 24 Nov 2025 10:20:46 +0100 Subject: [PATCH 20/38] coerce to empty string --- scripts/check_teams.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/check_teams.py b/scripts/check_teams.py index 8643a746..5c7c2add 100644 --- a/scripts/check_teams.py +++ b/scripts/check_teams.py @@ -27,7 +27,7 @@ def report_diff(field: str, **entries: list[str]): if len(entries) != 2: raise ValueError("Must pass exactly two keyword arguments") names = list(entries.keys()) - values = list(entries.values()) + values = list([value or "" for value in entries.values()]) eprint(f"Contents for {field} in {names[0]} do not match {names[1]}:") values0 = sorted(values[0], key=str.lower) values1 = sorted(values[1], key=str.lower) From b3035d6e5279a574fc7e36c92db1dcb6b56699e5 Mon Sep 17 00:00:00 2001 From: jaimergp Date: Mon, 24 Nov 2025 10:43:10 +0100 Subject: [PATCH 21/38] Check if users have direct access to repos, instead of via teams --- scripts/check_teams.py | 36 +++++++++++++++++++++++++----------- 1 file changed, 25 insertions(+), 11 deletions(-) diff --git a/scripts/check_teams.py b/scripts/check_teams.py index 5c7c2add..9b88c278 100644 --- a/scripts/check_teams.py +++ b/scripts/check_teams.py @@ -27,10 +27,10 @@ def report_diff(field: str, **entries: list[str]): if len(entries) != 2: raise ValueError("Must pass exactly two keyword arguments") names = list(entries.keys()) - values = list([value or "" for value in entries.values()]) + values = list(entries.values()) eprint(f"Contents for {field} in {names[0]} do not match {names[1]}:") - values0 = sorted(values[0], key=str.lower) - values1 = sorted(values[1], key=str.lower) + values0 = sorted([str(val) for val in values[0]], key=str.lower) + values1 = sorted([str(val) for val in values[1]], key=str.lower) eprint(f"{names[0]}:", values0) eprint(f"{names[1]}:", values1) eprint( @@ -51,8 +51,10 @@ def gh(org, apipath): if org == "conda": token = os.environ.get("CONDA_ORG_WIDE_TOKEN") - if org == "conda-incubator": + elif org == "conda-incubator": token = os.environ.get("CONDA_INCUBATOR_ORG_WIDE_TOKEN") + else: + token = None token = token or os.environ.get("GITHUB_TOKEN") or "" # Headers for authentication and proper API versioning @@ -95,6 +97,10 @@ def access_to_repos(org, team): and "-ghsa-" not in repo["name"] ] +def collaborators(org, repo): + result = gh(org, f"repos/{org}/{repo}/collaborators?affiliation=direct") + return {user["login"]: user["role_name"] for user in result} + def all_yamls() -> list[Path]: return sorted(chain(ROOT.glob("teams/**/*.yml"), ROOT.glob("teams/**/*.yaml"))) @@ -166,13 +172,21 @@ def check_teams() -> int: report_diff("teams", repo=teams_in_repo, github=teams_in_gh) exit_code = 1 - # # 5. Check no individuals are granted access directly (everything must be a team) - # for repo in chain(repos_in_org("conda"), repos_in_org("conda-incubator")): - # access = repo_access(*repo.split("/")) - # if access["usernames"]: - # eprint(f"Some users have direct access to `{repo}`:", access["usernames"]) - # eprint("Repository access must be granted through teams only!") - # exit_code = 1 + # 5. Check no individuals are granted access directly (everything must be a team) + repos_with_direct_access = {} + for repo in chain(repos_in_org("conda"), repos_in_org("conda-incubator")): + if "-ghsa-" in repo: + continue + if users := collaborators(*repo.split("/")): + repos_with_direct_access[repo] = users + if repos_with_direct_access: + eprint("Some users have direct access to repositories.") + eprint("Repository access must be granted through teams only!") + for repo, users in repos_with_direct_access.items(): + print(f"- {repo}:") + for user, level in sorted(users.items()): + print(f" - {user}: {level}") + exit_code = 1 return exit_code From cbe5b272e5543f32dc66bac64e7a07535862c4cc Mon Sep 17 00:00:00 2001 From: jaimergp Date: Mon, 24 Nov 2025 10:43:28 +0100 Subject: [PATCH 22/38] pre-commit --- scripts/check_teams.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/scripts/check_teams.py b/scripts/check_teams.py index 9b88c278..44b29e5f 100644 --- a/scripts/check_teams.py +++ b/scripts/check_teams.py @@ -97,6 +97,7 @@ def access_to_repos(org, team): and "-ghsa-" not in repo["name"] ] + def collaborators(org, repo): result = gh(org, f"repos/{org}/{repo}/collaborators?affiliation=direct") return {user["login"]: user["role_name"] for user in result} @@ -176,7 +177,7 @@ def check_teams() -> int: repos_with_direct_access = {} for repo in chain(repos_in_org("conda"), repos_in_org("conda-incubator")): if "-ghsa-" in repo: - continue + continue if users := collaborators(*repo.split("/")): repos_with_direct_access[repo] = users if repos_with_direct_access: From bd5aaf2a8735627d1eabae17235980f79803d273 Mon Sep 17 00:00:00 2001 From: jaimergp Date: Mon, 24 Nov 2025 10:59:21 +0100 Subject: [PATCH 23/38] clarify permissions needed --- scripts/check_teams.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/scripts/check_teams.py b/scripts/check_teams.py index 44b29e5f..9e05ce6c 100644 --- a/scripts/check_teams.py +++ b/scripts/check_teams.py @@ -1,6 +1,12 @@ """ Checks whether the members defined in the teams/*.yaml files correspond to their Github definitions. It also makes sure that all teams in conda and conda-incubator are collected here. + +We need one fine-grained token per organization (CONDA_ORG_WIDE_TOKEN, +CONDA_INCUBATOR_ORG_WIDE_TOKEN), with permissions: + +- All repositories, metadata (read-only) +- Organization, metadata (read-only) """ import os From 24053c22ad1a6e47702df4eabd6cf2689281bd98 Mon Sep 17 00:00:00 2001 From: jaimergp Date: Mon, 24 Nov 2025 12:30:52 +0100 Subject: [PATCH 24/38] Remove script (belongs in conda-dot-org) --- scripts/render_team_md.py | 59 --------------------------------------- 1 file changed, 59 deletions(-) delete mode 100644 scripts/render_team_md.py diff --git a/scripts/render_team_md.py b/scripts/render_team_md.py deleted file mode 100644 index aaa2e1a9..00000000 --- a/scripts/render_team_md.py +++ /dev/null @@ -1,59 +0,0 @@ -""" -Generate markdown documents for each team -""" -import sys - -from jinja2 import Environment -from ruamel.yaml import YAML - -yaml = YAML() - -TEMPLATE = """ -# {{ name }} - -{{ description }} - -## Requirements - -This team is defined as a {{ charter }} team. - -{{ requirements or "No requirements specified." }} - -## Members -{% for member in members %} -* [@{{ member }}](https://github.com/{{ member }}) -{%- endfor %} -{%- if emeritus %} -* Emeritus: -{%- for member in emeritus %} - * [@{{ member }}](https://github.com/{{ member }}) -{%- endfor %} -{%- endif %} - -## Resources - -This team has write access to these repositories: -{% for repo in scopes["codeowners"] %} -* [`{{ repo }}`](https://github.com/{{ repo }}) -{%- endfor %} -{% if scopes["other"] %} -Additionally, it controls these other resources: -{% for other in scopes["other"] %} -* {{ other }} -{%- endfor %} -{%- endif %} -{%- if links %} - -## Links -{% for link in links %} -* {{ link }} -{%- endfor %} -{%- endif %} -""" - -yml_path = sys.argv[1] -with open(yml_path) as f: - data = yaml.load(f) -env = Environment() -tpl = env.from_string(TEMPLATE) -print(tpl.render(data)) From 5824b1339180c32aca14a54842ed4505d7cee82b Mon Sep 17 00:00:00 2001 From: jaimergp Date: Mon, 24 Nov 2025 18:44:42 +0100 Subject: [PATCH 25/38] Merge steering and emeritus --- README.md | 6 +- emeritus.csv | 21 +---- pixi.lock | 50 ++++++++++++ pixi.toml | 1 + scripts/schemas.py | 41 ++++++++-- steering.csv | 17 +---- teams/conda/steering-council.yml | 108 ++++++++++++++++++++++---- teams/conda/steering-emeritus.yml | 122 +++++++++++++++++++++++++++--- teams/teams.schema.json | 102 ++++++++++++++++++++++++- 9 files changed, 395 insertions(+), 73 deletions(-) diff --git a/README.md b/README.md index e702463a..58a1cdcd 100644 --- a/README.md +++ b/README.md @@ -59,7 +59,7 @@ This group encompasses all others who are not on the [Steering Council](#steerin ### Emeritus Steering -[Steering Council](#steering-council) members that are inactive (commits, GitHub comments/issues/reviews, dev meetings, and voting on polls) in the past six months will be asked if they want to become **Emeritus Steering** members. One week after asking, if the inactive Steering Council member has not responded, they will be automatically moved to emeritus status. Any Steering Council member can also request to become Emeritus if they wish to do so (e.g. taking a sabbatical or long vacation). Emeritus Steering members can be brought back to active Steering Council membership at anytime, assuming there is space and no other policies (e.g., [shared funding](#shared-funding-membership-restrictions), [council size](#steering-council-size), etc.) are violated. Emeritus Steering Council members cannot vote. When the status of a member changes, the [`steering.csv`](steering.csv) and [`emeritus.csv`](emeritus.csv) files should be immediately updated to reflect the member's new position. +[Steering Council](#steering-council) members that are inactive (commits, GitHub comments/issues/reviews, dev meetings, and voting on polls) in the past six months will be asked if they want to become **Emeritus Steering** members. One week after asking, if the inactive Steering Council member has not responded, they will be automatically moved to emeritus status. Any Steering Council member can also request to become Emeritus if they wish to do so (e.g. taking a sabbatical or long vacation). Emeritus Steering members can be brought back to active Steering Council membership at anytime, assuming there is space and no other policies (e.g., [shared funding](#shared-funding-membership-restrictions), [council size](#steering-council-size), etc.) are violated. Emeritus Steering Council members cannot vote. When the status of a member changes, the corresponding `teams/` YAML files should be immediately updated to reflect the member's new position. ## Community, Federated & Archive Maintenance @@ -234,7 +234,7 @@ This section presents descriptions and criteria for voting items in the conda Or * Steering Council members must explicitly abstain from a vote via making a comment on the PR/issue or selecting the "abstain" option. Simply not voting at all doesn't count as an abstention. * Abstentions count towards the [quorum](#quorum) but are excluded when computing if a vote passes. -Voting items are labeled as either **standard** or **sensitive**. Standard items are ones where public record and discourse is preferable. Sensitive voting items are ones where the results of the vote should remain private to the voters after the vote has occurred. Sensitive votes should take place on a secure anonymous voting platform in order to retain election integrity and anonymity. (We may use [`Polys`](https://polys.me) and the [`Helios voting system`](https://vote.heliosvoting.org/), but are open to any secure, anonymous system.) The email capability of your chosen voting platform should be used for sending voting invitations and reminders if possible. All votes should be sent to the appropriate people using their email listed in `steering.csv` as applicable. +Voting items are labeled as either **standard** or **sensitive**. Standard items are ones where public record and discourse is preferable. Sensitive voting items are ones where the results of the vote should remain private to the voters after the vote has occurred. Sensitive votes should take place on a secure anonymous voting platform in order to retain election integrity and anonymity. (We may use [`Polys`](https://polys.me) and the [`Helios voting system`](https://vote.heliosvoting.org/), but are open to any secure, anonymous system.) The email capability of your chosen voting platform should be used for sending voting invitations and reminders if possible. All votes should be sent to the appropriate people using their email listed in `steering-council.yml` as applicable. The default voting period is 1 week (7 days). This may be modified at the time when a vote is called, but may never be less than one week modulo exceptions for some time-sensitive votes below. @@ -310,7 +310,7 @@ To post a timeout reminder, here is a template comment: If you have questions concerning the proposal, you may also leave a comment or code review. -To declare a standard vote "timed out," the person making such a declaration must post a pull-request adding a vote record to the [`vote-results`](vote-results/]) folder. The declaration PR should be merged by the first Steering Council member who is available to verify that the requirements for the timeout have been met, based on their own personal records. +To declare a standard vote "timed out," the person making such a declaration must post a pull-request adding a vote record to the [`vote-results`](vote-results/) folder. The declaration PR should be merged by the first Steering Council member who is available to verify that the requirements for the timeout have been met, based on their own personal records. ### Voting Total Examples diff --git a/emeritus.csv b/emeritus.csv index 08422111..685b420e 100644 --- a/emeritus.csv +++ b/emeritus.csv @@ -1,20 +1 @@ -github_username,email,name,funder,pronouns -raydouglass,ray@raydouglass.com,Ray Douglass,, -sodre,psodre@gmail.com,Patrick Sodré,, -minrk,benjaminrk@gmail.com,Min Ragan-Kelley,, -scopatz,scopatz@gmail.com,Anthony Scopatz,, -angloyna,angela.gloyna@gmail.com,Angela Gloyna,, -jjhelmus,jjhelmus@gmail.com,Jonathan Helmus,, -prusse-martin,prusse.martin@gmail.com,Martin Prüsse,, -myancy-anaconda,Megan.C.Yancy@gmail.com,Megan Yancy,, -teoliphant,teoliphant@gmail.com,Travis Oliphant,, -dharhas,dharhas@gmail.com,Dharhas Pothina,, -cjmartian,connormartin7@gmail.com,Connor Martin,, -mcg1969,mgrant@anaconda.com,Michael Grant,, -csoja,csoja@anaconda.com,Crystal Soja,, -awwad,sebastien.awwad@gmail.com,Sebastien Awwad,, -ericdill,ericdill@pm.me,Eric Dill,, -goanpeca,goanpeca@gmail.com,Gonzalo Peña-Castellanos,Quansight,he/him -kkraus14,keith.j.kraus@gmail.com,Keith Kraus,no funding, he/him -beckermr,becker.mr@gmail.com,Matthew R. Becker,no funding,he/him -trallard,taniar.allard@gmail.com,Tania Allard,Quansight,she/her +Moved,to,teams/,directory diff --git a/pixi.lock b/pixi.lock index 73ec969c..2af787f4 100644 --- a/pixi.lock +++ b/pixi.lock @@ -14,6 +14,8 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/certifi-2025.11.12-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/cffi-2.0.0-py312h460c074_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.4.4-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/dnspython-2.8.0-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/email-validator-2.3.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/h2-4.3.0-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/hpack-4.1.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/hyperframe-6.1.0-pyhd8ed1ab_0.conda @@ -45,6 +47,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/requests-2.32.5-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/ruamel.yaml-0.18.16-py312h4c3975b_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/ruamel.yaml.clib-0.2.14-py312h4c3975b_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/sniffio-1.3.1-pyhd8ed1ab_2.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/tk-8.6.13-noxft_ha0e22de_103.conda - conda: https://conda.anaconda.org/conda-forge/noarch/typing-extensions-4.15.0-h396c80c_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/typing-inspection-0.4.2-pyhd8ed1ab_0.conda @@ -61,6 +64,8 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/certifi-2025.11.12-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/cffi-2.0.0-py312he90777b_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.4.4-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/dnspython-2.8.0-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/email-validator-2.3.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/h2-4.3.0-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/hpack-4.1.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/hyperframe-6.1.0-pyhd8ed1ab_0.conda @@ -83,6 +88,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/requests-2.32.5-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/ruamel.yaml-0.18.16-py312h80b0991_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/ruamel.yaml.clib-0.2.14-py312h80b0991_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/sniffio-1.3.1-pyhd8ed1ab_2.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/tk-8.6.13-hf689a15_3.conda - conda: https://conda.anaconda.org/conda-forge/noarch/typing-extensions-4.15.0-h396c80c_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/typing-inspection-0.4.2-pyhd8ed1ab_0.conda @@ -99,6 +105,8 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/certifi-2025.11.12-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/cffi-2.0.0-py312h1b4d9a2_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.4.4-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/dnspython-2.8.0-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/email-validator-2.3.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/h2-4.3.0-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/hpack-4.1.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/hyperframe-6.1.0-pyhd8ed1ab_0.conda @@ -122,6 +130,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/requests-2.32.5-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ruamel.yaml-0.18.16-py312h4409184_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ruamel.yaml.clib-0.2.14-py312h4409184_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/sniffio-1.3.1-pyhd8ed1ab_2.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/tk-8.6.13-h892fb3f_3.conda - conda: https://conda.anaconda.org/conda-forge/noarch/typing-extensions-4.15.0-h396c80c_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/typing-inspection-0.4.2-pyhd8ed1ab_0.conda @@ -138,6 +147,8 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/certifi-2025.11.12-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/cffi-2.0.0-py312he06e257_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.4.4-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/dnspython-2.8.0-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/email-validator-2.3.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/h2-4.3.0-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/hpack-4.1.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/hyperframe-6.1.0-pyhd8ed1ab_0.conda @@ -157,6 +168,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/requests-2.32.5-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/ruamel.yaml-0.18.16-py312he06e257_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/ruamel.yaml.clib-0.2.14-py312he06e257_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/sniffio-1.3.1-pyhd8ed1ab_2.conda - conda: https://conda.anaconda.org/conda-forge/win-64/tk-8.6.13-h2c6b04d_3.conda - conda: https://conda.anaconda.org/conda-forge/noarch/typing-extensions-4.15.0-h396c80c_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/typing-inspection-0.4.2-pyhd8ed1ab_0.conda @@ -386,6 +398,35 @@ packages: license_family: MIT size: 50965 timestamp: 1760437331772 +- conda: https://conda.anaconda.org/conda-forge/noarch/dnspython-2.8.0-pyhcf101f3_0.conda + sha256: ef1e7b8405997ed3d6e2b6722bd7088d4a8adf215e7c88335582e65651fb4e05 + md5: d73fdc05f10693b518f52c994d748c19 + depends: + - python >=3.10,<4.0.0 + - sniffio + - python + constrains: + - aioquic >=1.2.0 + - cryptography >=45 + - httpcore >=1.0.0 + - httpx >=0.28.0 + - h2 >=4.2.0 + - idna >=3.10 + - trio >=0.30 + - wmi >=1.5.1 + license: ISC + size: 196500 + timestamp: 1757292856922 +- conda: https://conda.anaconda.org/conda-forge/noarch/email-validator-2.3.0-pyhd8ed1ab_0.conda + sha256: c37320864c35ef996b0e02e289df6ee89582d6c8e233e18dc9983375803c46bb + md5: 3bc0ac31178387e8ed34094d9481bfe8 + depends: + - dnspython >=2.0.0 + - idna >=2.0.0 + - python >=3.10 + license: Unlicense + size: 46767 + timestamp: 1756221480106 - conda: https://conda.anaconda.org/conda-forge/noarch/h2-4.3.0-pyhcf101f3_0.conda sha256: 84c64443368f84b600bfecc529a1194a3b14c3656ee2e832d15a20e0329b6da3 md5: 164fc43f0b53b6e3a7bc7dce5e4f1dc9 @@ -1191,6 +1232,15 @@ packages: license_family: MIT size: 105494 timestamp: 1760564569285 +- conda: https://conda.anaconda.org/conda-forge/noarch/sniffio-1.3.1-pyhd8ed1ab_2.conda + sha256: dce518f45e24cd03f401cb0616917773159a210c19d601c5f2d4e0e5879d30ad + md5: 03fe290994c5e4ec17293cfb6bdce520 + depends: + - python >=3.10 + license: Apache-2.0 + license_family: Apache + size: 15698 + timestamp: 1762941572482 - conda: https://conda.anaconda.org/conda-forge/linux-64/tk-8.6.13-noxft_ha0e22de_103.conda sha256: 1544760538a40bcd8ace2b1d8ebe3eb5807ac268641f8acdc18c69c5ebfeaf64 md5: 86bc20552bf46075e3d92b67f089172d diff --git a/pixi.toml b/pixi.toml index 39925676..30c87a08 100644 --- a/pixi.toml +++ b/pixi.toml @@ -3,6 +3,7 @@ pydantic = ">=2,<3" python = ">=3.12.4,<3.13" requests = ">=2.32.3,<2.33" "ruamel.yaml" = ">=0.18,<0.19" +email-validator = ">=2.3.0,<3" [tasks] check_teams = "python scripts/check_teams.py" diff --git a/scripts/schemas.py b/scripts/schemas.py index af1f14cc..11fe859f 100644 --- a/scripts/schemas.py +++ b/scripts/schemas.py @@ -1,5 +1,11 @@ from typing import Literal -from pydantic import BaseModel, HttpUrl, ConfigDict, Field +from pydantic import ( + BaseModel, + ConfigDict, + Field, + EmailStr, + HttpUrl, +) class Scopes(BaseModel): @@ -17,6 +23,25 @@ class Scopes(BaseModel): """Other responsibilities of this team""" +class MemberDetails(BaseModel): + """ + Defines the contact details of a team member. + """ + + model_config = ConfigDict(extra="forbid") + + full_name: str | None = ... + """Full name of the member.""" + email: EmailStr | None = ... + """Email address of the member.""" + funder: str | None = ... + """Employer or sponsor for the time allocated to the project.""" + pronouns: str | None = ... + """Pronouns of the member.""" + decision: HttpUrl | list[HttpUrl] | None = ... + """URL pointing to the record of the membership decision""" + + class CondaSubTeam(BaseModel): """ Model for defining Conda Sub-Teams based on the governance structure. @@ -46,11 +71,17 @@ class CondaSubTeam(BaseModel): links: list[HttpUrl] = ... """Important links, e.g. the issue/PR proposing the team creation""" - members: dict[str, HttpUrl | None] = Field(..., min_length=1) - """Maps username to a record of the decision adding them to the team""" + members: dict[str, MemberDetails | HttpUrl | None] = ... + """ + Maps username to its details or, in its simplified form, a URL pointing + to the record of the decision adding them to the team. + """ - emeritus: dict[str, HttpUrl | None] | None = Field(..., min_length=1) - """Maps username to a record of the decision removing them from the team""" + emeritus: dict[str, MemberDetails | list[HttpUrl] | HttpUrl | None] | None = ... + """ + Maps username to its details or, in its simplified form, a URL pointing + to the record of the decision removing them from the team. + """ if __name__ == "__main__": diff --git a/steering.csv b/steering.csv index 2fe9a16a..685b420e 100644 --- a/steering.csv +++ b/steering.csv @@ -1,16 +1 @@ -github_username,email,name,funder,pronouns -xhochy,mail@uwekorn.com,Uwe Korn,QuantCo,he/him -cj-wright,cjwright4242@gmail.com,Christopher J. 'CJ' Wright,, -mariusvniekerk,marius.v.niekerk@gmail.com,Marius van Niekerk,, -chenghlee,clee@anaconda.com,Cheng H. Lee,Anaconda,he/him -ocefpaf,ocefpaf@gmail.com,Filipe Fernandes,no funding,he/him -marcelotrevisani,marceloduartetrevisani@gmail.com,Marcelo Duarte Trevisani,no funding,he/him -msarahan,msarahan@gmail.com,Michael Sarahan,NVIDIA,he/him -mbargull,marcel.bargull@udo.edu,Marcel Bargull,, -jakirkham,jakirkham@gmail.com,John Kirkham,NVIDIA,he/him -jezdez,jannis@leidel.info,Jannis Leidel,Anaconda,he/him -wolfv,w.vollprecht@gmail.com,Wolf Vollprecht,prefix.dev,he/him -jaimergp,jaime.rogue@gmail.com,Jaime Rodríguez-Guerra,Quansight,he/him -baszalmstra,zalmstra.bas@gmail.com,Bas Zalmstra,prefix.dev,he/him -Hind-M,hind.montassif@gmail.com,Hind Montassif,QuantStack,she/her -pavelzw,pavelzw@gmail.com,Pavel Zwerschke,QuantCo,he/him +Moved,to,teams/,directory diff --git a/teams/conda/steering-council.yml b/teams/conda/steering-council.yml index f3d60099..291e87ed 100644 --- a/teams/conda/steering-council.yml +++ b/teams/conda/steering-council.yml @@ -1,6 +1,6 @@ # yaml-language-server: $schema=../teams.schema.json name: conda/steering-council -description: +description: Steering council of the conda ecosystem charter: static requirements: scopes: @@ -10,35 +10,113 @@ scopes: - conda/ceps - conda/cla other: -links: +links: [] members: - jezdez: - msarahan: xhochy: + full_name: Uwe Korn + email: mail@uwekorn.com + funder: QuantCo + pronouns: he/him + decision: + cj-wright: + full_name: Christopher J. 'CJ' Wright + email: cjwright4242@gmail.com + funder: + pronouns: + decision: mariusvniekerk: + full_name: Marius van Niekerk + email: marius.v.niekerk@gmail.com + funder: + pronouns: + decision: + chenghlee: + full_name: Cheng H. Lee + email: clee@anaconda.com + funder: Anaconda + pronouns: he/him + decision: + ocefpaf: + full_name: Filipe Fernandes + email: ocefpaf@gmail.com + funder: + pronouns: he/him + decision: + marcelotrevisani: + full_name: Marcelo Duarte Trevisani + email: marceloduartetrevisani@gmail.com + funder: + pronouns: he/him + decision: + msarahan: + full_name: Michael Sarahan + email: msarahan@gmail.com + funder: NVIDIA + pronouns: he/him + decision: + mbargull: + full_name: Marcel Bargull + email: marcel.bargull@udo.edu + funder: + pronouns: + decision: + jakirkham: + full_name: John Kirkham + email: jakirkham@gmail.com + funder: NVIDIA + pronouns: he/him + decision: + jezdez: + full_name: Jannis Leidel + email: jannis@leidel.info + funder: Anaconda + pronouns: he/him + decision: + wolfv: + full_name: Wolf Vollprecht + email: w.vollprecht@gmail.com + funder: prefix.dev + pronouns: he/him + decision: + jaimergp: + full_name: Jaime Rodríguez-Guerra + email: jaime.rogue@gmail.com + funder: Quansight + pronouns: he/him + decision: + baszalmstra: + full_name: Bas Zalmstra + email: zalmstra.bas@gmail.com + funder: prefix.dev + pronouns: he/him + decision: + Hind-M: + full_name: Hind Montassif + email: hind.montassif@gmail.com + funder: QuantStack + pronouns: she/her + decision: + pavelzw: + full_name: Pavel Zwerschke + email: pavelzw@gmail.com + funder: QuantCo + pronouns: he/him + decision: +emeritus: + # FIX: These are still "part" of steering because emeritus is a subteam of steering, which + # inherit the permissions. minrk: dharhas: - wolfv: - ocefpaf: sodre: jjhelmus: csoja: - jaimergp: mcg1969: - jakirkham: raydouglass: - chenghlee: goanpeca: prusse-martin: - baszalmstra: beckermr: ericdill: angloyna: - marcelotrevisani: - mbargull: awwad: trallard: - pavelzw: cjmartian: - Hind-M: -emeritus: diff --git a/teams/conda/steering-emeritus.yml b/teams/conda/steering-emeritus.yml index bd12c061..f3641c5f 100644 --- a/teams/conda/steering-emeritus.yml +++ b/teams/conda/steering-emeritus.yml @@ -1,6 +1,6 @@ # yaml-language-server: $schema=../teams.schema.json name: conda/steering-emeritus -description: Emeritus members of the conda steering council. +description: Former members of the steering council charter: static requirements: scopes: @@ -10,20 +10,120 @@ scopes: - conda/ceps - conda/cla other: -links: +links: [] members: - minrk: - dharhas: + raydouglass: + full_name: Ray Douglass + email: ray@raydouglass.com + funder: + pronouns: + decision: sodre: + full_name: Patrick Sodré + email: psodre@gmail.com + funder: + pronouns: + decision: + minrk: + full_name: Min Ragan-Kelley + email: benjaminrk@gmail.com + funder: + pronouns: + decision: + scopatz: + full_name: Anthony Scopatz + email: scopatz@gmail.com + funder: + pronouns: + decision: + angloyna: + full_name: Angela Gloyna + email: angela.gloyna@gmail.com + funder: + pronouns: + decision: jjhelmus: - csoja: + full_name: Jonathan Helmus + email: jjhelmus@gmail.com + funder: + pronouns: + decision: + prusse-martin: + full_name: Martin Prüsse + email: prusse.martin@gmail.com + funder: + pronouns: + decision: + myancy-anaconda: + full_name: Megan Yancy + email: Megan.C.Yancy@gmail.com + funder: + pronouns: + decision: + teoliphant: + full_name: Travis Oliphant + email: teoliphant@gmail.com + funder: + pronouns: + decision: + dharhas: + full_name: Dharhas Pothina + email: dharhas@gmail.com + funder: + pronouns: + decision: + cjmartian: + full_name: Connor Martin + email: connormartin7@gmail.com + funder: + pronouns: + decision: mcg1969: - raydouglass: + full_name: Michael Grant + email: mgrant@anaconda.com + funder: + pronouns: + decision: + csoja: + full_name: Crystal Soja + email: csoja@anaconda.com + funder: + pronouns: + decision: + awwad: + full_name: Sebastien Awwad + email: sebastien.awwad@gmail.com + funder: + pronouns: + decision: + ericdill: + full_name: Eric Dill + email: ericdill@pm.me + funder: + pronouns: + decision: goanpeca: - prusse-martin: + full_name: Gonzalo Peña-Castellanos + email: goanpeca@gmail.com + funder: Quansight + pronouns: he/him + decision: + kkraus14: + full_name: Keith Kraus + email: keith.j.kraus@gmail.com + funder: + pronouns: he/him + decision: beckermr: - ericdill: - angloyna: - awwad: - cjmartian: + full_name: Matthew R. Becker + email: becker.mr@gmail.com + funder: + pronouns: he/him + decision: + trallard: + full_name: Tania Allard + email: taniar.allard@gmail.com + funder: Quansight + pronouns: she/her + decision: emeritus: diff --git a/teams/teams.schema.json b/teams/teams.schema.json index a06beb0b..c39997b3 100644 --- a/teams/teams.schema.json +++ b/teams/teams.schema.json @@ -1,5 +1,88 @@ { "$defs": { + "MemberDetails": { + "additionalProperties": false, + "description": "Defines the contact details of a team member.", + "properties": { + "full_name": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Full Name" + }, + "email": { + "anyOf": [ + { + "format": "email", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Email" + }, + "funder": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Funder" + }, + "pronouns": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Pronouns" + }, + "decision": { + "anyOf": [ + { + "format": "uri", + "maxLength": 2083, + "minLength": 1, + "type": "string" + }, + { + "items": { + "format": "uri", + "maxLength": 2083, + "minLength": 1, + "type": "string" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "title": "Decision" + } + }, + "required": [ + "full_name", + "email", + "funder", + "pronouns", + "decision" + ], + "title": "MemberDetails", + "type": "object" + }, "Scopes": { "additionalProperties": false, "description": "Defines the responsibilities of a Conda sub-team.\nThis structure is nested within the main CondaSubTeam model.", @@ -93,6 +176,9 @@ "members": { "additionalProperties": { "anyOf": [ + { + "$ref": "#/$defs/MemberDetails" + }, { "format": "uri", "maxLength": 2083, @@ -104,7 +190,6 @@ } ] }, - "minProperties": 1, "title": "Members", "type": "object" }, @@ -113,6 +198,18 @@ { "additionalProperties": { "anyOf": [ + { + "$ref": "#/$defs/MemberDetails" + }, + { + "items": { + "format": "uri", + "maxLength": 2083, + "minLength": 1, + "type": "string" + }, + "type": "array" + }, { "format": "uri", "maxLength": 2083, @@ -124,7 +221,6 @@ } ] }, - "minProperties": 1, "type": "object" }, { @@ -146,4 +242,4 @@ ], "title": "Conda Sub-Teams", "type": "object" -} +} \ No newline at end of file From 9e576a953621b188103d820914274ac23336abec Mon Sep 17 00:00:00 2001 From: jaimergp Date: Mon, 24 Nov 2025 18:48:15 +0100 Subject: [PATCH 26/38] add viniciusdc to conda-store --- teams/conda-incubator/conda-store.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/teams/conda-incubator/conda-store.yml b/teams/conda-incubator/conda-store.yml index 779b04dd..4079ad3b 100644 --- a/teams/conda-incubator/conda-store.yml +++ b/teams/conda-incubator/conda-store.yml @@ -21,6 +21,7 @@ members: trallard: https://github.com/conda/governance/issues/106 pavithraes: https://github.com/conda/governance/issues/106 smeragoel: https://github.com/conda/governance/issues/106 + viniciusdc: https://github.com/conda-incubator/conda-store/issues/1115 emeritus: pierrotsmnrd: costrouc: From c1b68bfedfec6a321c61ad7da067bac76df6fed8 Mon Sep 17 00:00:00 2001 From: jaimergp Date: Mon, 24 Nov 2025 19:29:01 +0100 Subject: [PATCH 27/38] Add decisions to all present and former steering members --- pixi.toml | 2 +- scripts/schemas.py | 2 +- teams/conda/steering-council.yml | 29 ++++++++++++------- teams/conda/steering-emeritus.yml | 48 ++++++++++++++++++++++++++++++- teams/teams.schema.json | 2 +- 5 files changed, 69 insertions(+), 14 deletions(-) diff --git a/pixi.toml b/pixi.toml index 30c87a08..e90209da 100644 --- a/pixi.toml +++ b/pixi.toml @@ -1,9 +1,9 @@ [dependencies] +email-validator = ">=2.3.0,<3" pydantic = ">=2,<3" python = ">=3.12.4,<3.13" requests = ">=2.32.3,<2.33" "ruamel.yaml" = ">=0.18,<0.19" -email-validator = ">=2.3.0,<3" [tasks] check_teams = "python scripts/check_teams.py" diff --git a/scripts/schemas.py b/scripts/schemas.py index 11fe859f..f3a3f31e 100644 --- a/scripts/schemas.py +++ b/scripts/schemas.py @@ -90,5 +90,5 @@ class CondaSubTeam(BaseModel): schema = CondaSubTeam.model_json_schema() (Path(__file__).parents[1] / "teams" / "teams.schema.json").write_text( - json.dumps(schema, indent=2) + json.dumps(schema, indent=2) + "\n" ) diff --git a/teams/conda/steering-council.yml b/teams/conda/steering-council.yml index 291e87ed..ddd76e26 100644 --- a/teams/conda/steering-council.yml +++ b/teams/conda/steering-council.yml @@ -17,94 +17,103 @@ members: email: mail@uwekorn.com funder: QuantCo pronouns: he/him - decision: + decision: https://github.com/conda/governance/issues/1 cj-wright: full_name: Christopher J. 'CJ' Wright email: cjwright4242@gmail.com funder: pronouns: - decision: + decision: https://github.com/conda/governance/issues/1 mariusvniekerk: full_name: Marius van Niekerk email: marius.v.niekerk@gmail.com funder: pronouns: - decision: + decision: https://github.com/conda/governance/issues/1 chenghlee: full_name: Cheng H. Lee email: clee@anaconda.com funder: Anaconda pronouns: he/him decision: + - https://github.com/conda/governance/issues/1 + - https://github.com/conda/governance/pull/8 ocefpaf: full_name: Filipe Fernandes email: ocefpaf@gmail.com funder: pronouns: he/him decision: + - https://github.com/conda/governance/issues/1 marcelotrevisani: full_name: Marcelo Duarte Trevisani email: marceloduartetrevisani@gmail.com funder: pronouns: he/him decision: + - https://github.com/conda/governance/issues/1 msarahan: full_name: Michael Sarahan email: msarahan@gmail.com funder: NVIDIA pronouns: he/him decision: + - https://github.com/conda/governance/issues/1 + - https://github.com/conda/governance/pull/15 mbargull: full_name: Marcel Bargull email: marcel.bargull@udo.edu funder: pronouns: - decision: + decision: https://github.com/conda/governance/issues/1 jakirkham: full_name: John Kirkham email: jakirkham@gmail.com funder: NVIDIA pronouns: he/him decision: + - https://github.com/conda/governance/pull/21 jezdez: full_name: Jannis Leidel email: jannis@leidel.info funder: Anaconda pronouns: he/him - decision: + decision: https://github.com/conda/governance/pull/37 wolfv: full_name: Wolf Vollprecht email: w.vollprecht@gmail.com funder: prefix.dev pronouns: he/him decision: + - https://github.com/conda/governance/issues/1 + - https://github.com/conda/governance/pull/44 jaimergp: full_name: Jaime Rodríguez-Guerra email: jaime.rogue@gmail.com funder: Quansight pronouns: he/him - decision: + decision: https://github.com/conda/governance/pull/45 baszalmstra: full_name: Bas Zalmstra email: zalmstra.bas@gmail.com funder: prefix.dev pronouns: he/him - decision: + decision: https://github.com/conda/governance/commit/03f21ae79dc1525eae0091ee3cf1e8f26856c6d6 Hind-M: full_name: Hind Montassif email: hind.montassif@gmail.com funder: QuantStack pronouns: she/her - decision: + decision: https://github.com/conda/governance/pull/171 pavelzw: full_name: Pavel Zwerschke email: pavelzw@gmail.com funder: QuantCo pronouns: he/him - decision: + decision: https://github.com/conda/governance/pull/241 emeritus: # FIX: These are still "part" of steering because emeritus is a subteam of steering, which - # inherit the permissions. + # inherit the permissions. minrk: dharhas: sodre: diff --git a/teams/conda/steering-emeritus.yml b/teams/conda/steering-emeritus.yml index f3641c5f..e9e1c10b 100644 --- a/teams/conda/steering-emeritus.yml +++ b/teams/conda/steering-emeritus.yml @@ -18,112 +18,158 @@ members: funder: pronouns: decision: + - https://github.com/conda/governance/issues/1 + - https://github.com/conda/governance/pull/32 sodre: full_name: Patrick Sodré email: psodre@gmail.com funder: pronouns: decision: + - https://github.com/conda/governance/issues/1 + - https://github.com/conda/governance/pull/33 minrk: full_name: Min Ragan-Kelley email: benjaminrk@gmail.com funder: pronouns: decision: + - https://github.com/conda/governance/issues/1 + - https://github.com/conda/governance/pull/34 scopatz: full_name: Anthony Scopatz email: scopatz@gmail.com funder: pronouns: decision: + - https://github.com/conda/governance/issues/1 + - https://github.com/conda/governance/pull/36 angloyna: full_name: Angela Gloyna email: angela.gloyna@gmail.com funder: pronouns: decision: + - https://github.com/conda/governance/issues/1 + - https://github.com/conda/governance/pull/36 jjhelmus: full_name: Jonathan Helmus email: jjhelmus@gmail.com funder: pronouns: decision: + - https://github.com/conda/governance/issues/1 + - https://github.com/conda/governance/pull/36 prusse-martin: full_name: Martin Prüsse email: prusse.martin@gmail.com funder: pronouns: decision: + - https://github.com/conda/governance/issues/1 + - https://github.com/conda/governance/pull/36 myancy-anaconda: full_name: Megan Yancy email: Megan.C.Yancy@gmail.com funder: pronouns: - decision: + decision: https://github.com/conda/governance/pull/39 teoliphant: full_name: Travis Oliphant email: teoliphant@gmail.com funder: pronouns: decision: + - https://github.com/conda/governance/issues/1 + - https://github.com/conda/governance/pull/6 + - https://github.com/conda/governance/pull/64 dharhas: full_name: Dharhas Pothina email: dharhas@gmail.com funder: pronouns: decision: + - https://github.com/conda/governance/issues/1 + - https://github.com/conda/governance/pull/2 + - https://github.com/conda/governance/pull/64 cjmartian: full_name: Connor Martin email: connormartin7@gmail.com funder: pronouns: decision: + - https://github.com/conda/governance/issues/1 + - https://github.com/conda/governance/pull/3 + - https://github.com/conda/governance/pull/65 mcg1969: full_name: Michael Grant email: mgrant@anaconda.com funder: pronouns: decision: + - https://github.com/conda/governance/issues/1 + - https://github.com/conda/governance/pull/7 + - https://github.com/conda/governance/pull/65 csoja: full_name: Crystal Soja email: csoja@anaconda.com funder: pronouns: decision: + - https://github.com/conda/governance/issues/1 + - https://github.com/conda/governance/pull/16 + - https://github.com/conda/governance/pull/65 awwad: full_name: Sebastien Awwad email: sebastien.awwad@gmail.com funder: pronouns: decision: + - https://github.com/conda/governance/issues/1 + - https://github.com/conda/governance/pull/17 + - https://github.com/conda/governance/pull/65 ericdill: full_name: Eric Dill email: ericdill@pm.me funder: pronouns: decision: + - https://github.com/conda/governance/issues/1 + - https://github.com/conda/governance/pull/83 goanpeca: full_name: Gonzalo Peña-Castellanos email: goanpeca@gmail.com funder: Quansight pronouns: he/him decision: + - https://github.com/conda/governance/issues/1 + - https://github.com/conda/governance/pull/163 kkraus14: full_name: Keith Kraus email: keith.j.kraus@gmail.com funder: pronouns: he/him decision: + - https://github.com/conda/governance/issues/1 + - https://github.com/conda/governance/pull/59 + - https://github.com/conda/governance/pull/74 + - https://github.com/conda/governance/pull/205 beckermr: full_name: Matthew R. Becker email: becker.mr@gmail.com funder: pronouns: he/him decision: + - https://github.com/conda/governance/issues/1 + - https://github.com/conda/governance/pull/28 + - https://github.com/conda/governance/pull/169 + - https://github.com/conda/governance/pull/252 trallard: full_name: Tania Allard email: taniar.allard@gmail.com funder: Quansight pronouns: she/her decision: + - https://github.com/conda/governance/pull/172 + - https://github.com/conda/governance/pull/310 emeritus: diff --git a/teams/teams.schema.json b/teams/teams.schema.json index c39997b3..deffc07e 100644 --- a/teams/teams.schema.json +++ b/teams/teams.schema.json @@ -242,4 +242,4 @@ ], "title": "Conda Sub-Teams", "type": "object" -} \ No newline at end of file +} From 999835a525897dcfd67bf1c37af828f1cf1883da Mon Sep 17 00:00:00 2001 From: jaimergp Date: Mon, 24 Nov 2025 20:46:15 +0100 Subject: [PATCH 28/38] Add sorter pre-commit --- .gitignore | 1 + .pre-commit-config.yaml | 7 + scripts/check_teams.py | 5 + scripts/schemas.py | 5 + scripts/sort_team_yaml.py | 42 +++++ teams/conda-incubator/bots.yml | 3 +- teams/conda-incubator/builds-tools.yml | 22 +-- teams/conda-incubator/ceps.yml | 4 +- teams/conda-incubator/code-of-conduct.yml | 8 +- teams/conda-incubator/conda-completions.yml | 2 +- teams/conda-incubator/conda-dot-org.yml | 22 +-- .../conda-incubator/conda-libmamba-solver.yml | 6 +- teams/conda-incubator/conda-lockfiles.yml | 6 +- teams/conda-incubator/conda-meta-mcp.yml | 2 +- teams/conda-incubator/conda-mirror.yml | 8 +- teams/conda-incubator/conda-oci.yml | 2 +- teams/conda-incubator/conda-plugins.yml | 4 +- teams/conda-incubator/conda-project.yml | 6 +- teams/conda-incubator/conda-pypi.yml | 10 +- .../conda-incubator/conda-rattler-solver.yml | 2 +- teams/conda-incubator/conda-self.yml | 6 +- teams/conda-incubator/conda-sh.yml | 2 +- teams/conda-incubator/conda-store.yml | 14 +- teams/conda-incubator/conda-subchannel.yml | 2 +- teams/conda-incubator/conda-tutorial.yml | 4 +- teams/conda-incubator/constructor.yml | 12 +- teams/conda-incubator/content.yml | 10 +- teams/conda-incubator/design.yml | 12 +- teams/conda-incubator/docs.yml | 2 +- teams/conda-incubator/fetch.yml | 4 +- teams/conda-incubator/hatch-conda-build.yml | 2 +- teams/conda-incubator/implementation.yml | 12 +- teams/conda-incubator/infrastructure.yml | 6 +- teams/conda-incubator/installer.yml | 12 +- .../nvidia-virtual-packages.yml | 2 +- teams/conda-incubator/pre-commit.yml | 2 +- teams/conda-incubator/rattler.yml | 6 +- teams/conda-incubator/setup-miniconda.yml | 6 +- teams/conda-incubator/shells.yml | 2 +- teams/conda-incubator/steering-council.yml | 48 ++--- teams/conda/anaconda.yml | 16 +- teams/conda/builds-tools.yml | 7 +- teams/conda/ceps.yml | 2 +- teams/conda/cla-reviewers.yml | 3 +- teams/conda/conda-core.yml | 12 +- teams/conda/conda-dot-org.yml | 6 +- teams/conda/conda-index.yml | 4 +- teams/conda/conda-lock.yml | 6 +- .../conda-maintainers-project-management.yml | 7 +- teams/conda/conda-maintainers.yml | 20 +- teams/conda/distribution-contractors.yml | 2 +- teams/conda/grayskull.yml | 4 +- teams/conda/packaging-tools.yml | 6 +- teams/conda/prefix-dev.yml | 8 +- teams/conda/quansight.yml | 2 +- teams/conda/rattler.yml | 6 +- teams/conda/steering-council.yml | 137 +++++++------- teams/conda/steering-emeritus.yml | 172 +++++++++--------- 58 files changed, 409 insertions(+), 344 deletions(-) create mode 100644 scripts/sort_team_yaml.py diff --git a/.gitignore b/.gitignore index 096b5eb5..5bbe9d7e 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ # pixi environments .pixi *.egg-info +__pycache__/ diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 334d5bd8..e286d604 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -57,6 +57,7 @@ repos: rev: v2.4.1 hooks: - id: codespell + exclude: ^teams/.*/.*\.ya?ml$ exclude_types: - csv args: [--write-changes] @@ -67,6 +68,12 @@ repos: - id: check-useless-excludes - repo: local hooks: + - id: sort-team-yaml + name: Check ordering in teams/**/*.yml + language: python + entry: python scripts/sort_team_yaml.py + files: ^teams/.*/.*\.ya?ml$ + additional_dependencies: [ruamel.yaml, email-validator, pydantic] - id: git-diff name: git diff entry: git diff --exit-code diff --git a/scripts/check_teams.py b/scripts/check_teams.py index 9e05ce6c..23db23a9 100644 --- a/scripts/check_teams.py +++ b/scripts/check_teams.py @@ -9,6 +9,11 @@ - Organization, metadata (read-only) """ +# /// script +# dependencies = [ +# "requests", +# "ruamel.yaml", +# ] import os import sys from itertools import chain diff --git a/scripts/schemas.py b/scripts/schemas.py index f3a3f31e..3b9ca522 100644 --- a/scripts/schemas.py +++ b/scripts/schemas.py @@ -1,3 +1,8 @@ +# /// script +# dependencies = [ +# "pydantic>=2,<3", +# ] + from typing import Literal from pydantic import ( BaseModel, diff --git a/scripts/sort_team_yaml.py b/scripts/sort_team_yaml.py new file mode 100644 index 00000000..cad792e2 --- /dev/null +++ b/scripts/sort_team_yaml.py @@ -0,0 +1,42 @@ +# /// script +# dependencies = [ +# "requests", +# "ruamel.yaml", +# "pydantic>=2,<3", +# "email-validator", +# ] +# /// +import sys +from pathlib import Path + +from ruamel.yaml import YAML + +from schemas import CondaSubTeam + +TEAM_KEY_ORDER = list(CondaSubTeam.model_fields.keys()) + +yaml = YAML(typ="rt") +yaml.preserve_quotes = True +yaml.line_break = 10000 +yaml.indent(mapping=2, sequence=4, offset=2) + +for path in sys.argv[1:]: + path = Path(path) + with open(path) as f: + data = yaml.load(f) + + # NOTE: We use reversed pop + insert to preserve comments + + for key in reversed(TEAM_KEY_ORDER): + # .pop() removes the key/value but RETAINS the comment in 'ca' + val = data.pop(key, None) + data.insert(0, key, val) + + for key in "members", "emeritus": + if members := data.get(key): + for key in sorted(members.keys(), reverse=True, key=str.lower): + val = members.pop(key, None) + members.insert(0, key, val) + + with open(path, "w") as f: + yaml.dump(data, f) diff --git a/teams/conda-incubator/bots.yml b/teams/conda-incubator/bots.yml index f10c7663..f450faf1 100644 --- a/teams/conda-incubator/bots.yml +++ b/teams/conda-incubator/bots.yml @@ -1,6 +1,7 @@ # yaml-language-server: $schema=../teams.schema.json name: conda-incubator/bots -description: Special team to permission bots and automations across repositories. +description: Special team to permission bots and automations across + repositories. charter: requirements: scopes: diff --git a/teams/conda-incubator/builds-tools.yml b/teams/conda-incubator/builds-tools.yml index edb9043e..5eeb7983 100644 --- a/teams/conda-incubator/builds-tools.yml +++ b/teams/conda-incubator/builds-tools.yml @@ -9,21 +9,21 @@ scopes: links: - https://github.com/conda/governance/issues/128 members: - jezdez: - msarahan: + beckermr: + beeankha: + chenghlee: + dbast: dholth: - ryanskeith: - travishathaway: - wolfv: - schuylermartin45: + isuruf: jaimergp: - dbast: jakirkham: - chenghlee: + jezdez: kenodegard: - isuruf: - beckermr: marcelotrevisani: mbargull: - beeankha: + msarahan: + ryanskeith: + schuylermartin45: + travishathaway: + wolfv: emeritus: diff --git a/teams/conda-incubator/ceps.yml b/teams/conda-incubator/ceps.yml index 1f2cc597..20fa7720 100644 --- a/teams/conda-incubator/ceps.yml +++ b/teams/conda-incubator/ceps.yml @@ -8,8 +8,8 @@ scopes: other: links: members: - jezdez: - kenodegard: awwad: beeankha: + jezdez: + kenodegard: emeritus: diff --git a/teams/conda-incubator/code-of-conduct.yml b/teams/conda-incubator/code-of-conduct.yml index 638be6fe..f59dc4fd 100644 --- a/teams/conda-incubator/code-of-conduct.yml +++ b/teams/conda-incubator/code-of-conduct.yml @@ -8,11 +8,11 @@ scopes: other: links: members: - ocefpaf: - tnabtaf: + beeankha: csoja: - kenodegard: ericdill: - beeankha: kathatherine: + kenodegard: + ocefpaf: + tnabtaf: emeritus: diff --git a/teams/conda-incubator/conda-completions.yml b/teams/conda-incubator/conda-completions.yml index ca726388..3c7ef32b 100644 --- a/teams/conda-incubator/conda-completions.yml +++ b/teams/conda-incubator/conda-completions.yml @@ -9,6 +9,6 @@ scopes: other: links: members: - jezdez: esc: + jezdez: emeritus: diff --git a/teams/conda-incubator/conda-dot-org.yml b/teams/conda-incubator/conda-dot-org.yml index 957e518c..53826a60 100644 --- a/teams/conda-incubator/conda-dot-org.yml +++ b/teams/conda-incubator/conda-dot-org.yml @@ -8,20 +8,20 @@ scopes: other: links: members: - jezdez: - travishathaway: - tnabtaf: - jaimergp: - jakirkham: - chenghlee: - goanpeca: + ang852: + asmitbm: barabo: - kenodegard: beeankha: + chenghlee: eakbulut: + goanpeca: + jaimergp: + jakirkham: JeremiahSifuentes: - asmitbm: - Pinak-Datta: + jezdez: kathatherine: - ang852: + kenodegard: + Pinak-Datta: + tnabtaf: + travishathaway: emeritus: diff --git a/teams/conda-incubator/conda-libmamba-solver.yml b/teams/conda-incubator/conda-libmamba-solver.yml index 180d703d..7ec3bc66 100644 --- a/teams/conda-incubator/conda-libmamba-solver.yml +++ b/teams/conda-incubator/conda-libmamba-solver.yml @@ -9,9 +9,9 @@ scopes: links: - https://github.com/conda/conda/issues/15166 members: + conda-bot: + jaimergp: jezdez: - wolfv: jjhelmus: - jaimergp: - conda-bot: + wolfv: emeritus: diff --git a/teams/conda-incubator/conda-lockfiles.yml b/teams/conda-incubator/conda-lockfiles.yml index 4cdb5fb9..f668a450 100644 --- a/teams/conda-incubator/conda-lockfiles.yml +++ b/teams/conda-incubator/conda-lockfiles.yml @@ -9,10 +9,10 @@ scopes: other: links: members: + jaimergp: jezdez: - travishathaway: - soapy1: jjhelmus: - jaimergp: kenodegard: + soapy1: + travishathaway: emeritus: diff --git a/teams/conda-incubator/conda-meta-mcp.yml b/teams/conda-incubator/conda-meta-mcp.yml index 845be29e..9d54d5c0 100644 --- a/teams/conda-incubator/conda-meta-mcp.yml +++ b/teams/conda-incubator/conda-meta-mcp.yml @@ -10,6 +10,6 @@ scopes: links: - https://github.com/conda/governance/issues/277 members: - jezdez: https://github.com/conda/governance/issues/277 dbast: https://github.com/conda/governance/issues/277 + jezdez: https://github.com/conda/governance/issues/277 emeritus: diff --git a/teams/conda-incubator/conda-mirror.yml b/teams/conda-incubator/conda-mirror.yml index dfcc74f6..d3e0eead 100644 --- a/teams/conda-incubator/conda-mirror.yml +++ b/teams/conda-incubator/conda-mirror.yml @@ -9,11 +9,11 @@ scopes: other: links: members: - xhochy: - mariusvniekerk: - scopatz: - goanpeca: delsner: ericdill: + goanpeca: + mariusvniekerk: pavelzw: + scopatz: + xhochy: emeritus: diff --git a/teams/conda-incubator/conda-oci.yml b/teams/conda-incubator/conda-oci.yml index 6c122af6..7888c356 100644 --- a/teams/conda-incubator/conda-oci.yml +++ b/teams/conda-incubator/conda-oci.yml @@ -9,6 +9,6 @@ scopes: other: links: members: - jezdez: beckermr: + jezdez: emeritus: diff --git a/teams/conda-incubator/conda-plugins.yml b/teams/conda-incubator/conda-plugins.yml index c90dac80..a671f1eb 100644 --- a/teams/conda-incubator/conda-plugins.yml +++ b/teams/conda-incubator/conda-plugins.yml @@ -9,8 +9,8 @@ scopes: other: links: members: + beeankha: jezdez: - travishathaway: kenodegard: - beeankha: + travishathaway: emeritus: diff --git a/teams/conda-incubator/conda-project.yml b/teams/conda-incubator/conda-project.yml index a6b36ac5..9c426cdd 100644 --- a/teams/conda-incubator/conda-project.yml +++ b/teams/conda-incubator/conda-project.yml @@ -9,10 +9,10 @@ scopes: other: links: members: - jezdez: AlbertDeFusco: - jlstevens: jbednar: - mattkram: + jezdez: jkong-anaconda: + jlstevens: + mattkram: emeritus: diff --git a/teams/conda-incubator/conda-pypi.yml b/teams/conda-incubator/conda-pypi.yml index 17ff6bc7..5d22a91d 100644 --- a/teams/conda-incubator/conda-pypi.yml +++ b/teams/conda-incubator/conda-pypi.yml @@ -10,13 +10,13 @@ scopes: links: - https://github.com/conda/governance/issues/142 members: + danyeaw: https://github.com/conda-incubator/conda-pypi/issues/52 + ForgottenProgramme: https://github.com/conda-incubator/conda-pypi/issues/161 + jaimergp: https://github.com/conda/governance/issues/142 jezdez: https://github.com/conda/governance/issues/142 - ryanskeith: https://github.com/conda-incubator/conda-pypi/issues/75 - travishathaway: https://github.com/conda-incubator/conda-pypi/issues/51 jjhelmus: https://github.com/conda-incubator/conda-pypi/issues/46 - jaimergp: https://github.com/conda/governance/issues/142 kenodegard: - danyeaw: https://github.com/conda-incubator/conda-pypi/issues/52 - ForgottenProgramme: https://github.com/conda-incubator/conda-pypi/issues/161 + ryanskeith: https://github.com/conda-incubator/conda-pypi/issues/75 soapy1: https://github.com/conda-incubator/conda-pypi/issues/167 + travishathaway: https://github.com/conda-incubator/conda-pypi/issues/51 emeritus: diff --git a/teams/conda-incubator/conda-rattler-solver.yml b/teams/conda-incubator/conda-rattler-solver.yml index 65a88343..116e22da 100644 --- a/teams/conda-incubator/conda-rattler-solver.yml +++ b/teams/conda-incubator/conda-rattler-solver.yml @@ -10,6 +10,6 @@ scopes: links: - https://github.com/conda/governance/issues/246 members: - jezdez: https://github.com/conda-incubator/conda-rattler-solver/issues/18 jaimergp: https://github.com/conda/governance/issues/246 + jezdez: https://github.com/conda-incubator/conda-rattler-solver/issues/18 emeritus: diff --git a/teams/conda-incubator/conda-self.yml b/teams/conda-incubator/conda-self.yml index 56de7655..75a7334b 100644 --- a/teams/conda-incubator/conda-self.yml +++ b/teams/conda-incubator/conda-self.yml @@ -10,9 +10,9 @@ scopes: links: - https://github.com/conda/governance/issues/264 members: - jezdez: - soapy1: - jaimergp: https://github.com/conda/governance/issues/264 danyeaw: https://github.com/conda-incubator/conda-self/issues/39 ForgottenProgramme: + jaimergp: https://github.com/conda/governance/issues/264 + jezdez: + soapy1: emeritus: diff --git a/teams/conda-incubator/conda-sh.yml b/teams/conda-incubator/conda-sh.yml index 5ed99710..7973352b 100644 --- a/teams/conda-incubator/conda-sh.yml +++ b/teams/conda-incubator/conda-sh.yml @@ -9,7 +9,7 @@ scopes: other: links: members: - jezdez: Carreau: jaimergp: + jezdez: emeritus: diff --git a/teams/conda-incubator/conda-store.yml b/teams/conda-incubator/conda-store.yml index 4079ad3b..d009ff63 100644 --- a/teams/conda-incubator/conda-store.yml +++ b/teams/conda-incubator/conda-store.yml @@ -12,21 +12,21 @@ scopes: links: - https://github.com/conda/governance/issues/106 members: - gabalafou: https://github.com/conda/governance/issues/106 dharhas: https://github.com/conda/governance/issues/106 - soapy1: + gabalafou: https://github.com/conda/governance/issues/106 jaimergp: https://github.com/conda/governance/issues/106 - peytondmurray: kcpevey: https://github.com/conda/governance/issues/106 - trallard: https://github.com/conda/governance/issues/106 pavithraes: https://github.com/conda/governance/issues/106 + peytondmurray: smeragoel: https://github.com/conda/governance/issues/106 + soapy1: + trallard: https://github.com/conda/governance/issues/106 viniciusdc: https://github.com/conda-incubator/conda-store/issues/1115 emeritus: - pierrotsmnrd: - costrouc: aktech: anirrudh: + asmeurer: + costrouc: iameskild: + pierrotsmnrd: steff456: - asmeurer: diff --git a/teams/conda-incubator/conda-subchannel.yml b/teams/conda-incubator/conda-subchannel.yml index d0187e6e..bb6485a7 100644 --- a/teams/conda-incubator/conda-subchannel.yml +++ b/teams/conda-incubator/conda-subchannel.yml @@ -10,6 +10,6 @@ scopes: links: - https://github.com/conda/governance/issues/143 members: - jezdez: https://github.com/conda/governance/issues/143 jaimergp: https://github.com/conda/governance/issues/143 + jezdez: https://github.com/conda/governance/issues/143 emeritus: diff --git a/teams/conda-incubator/conda-tutorial.yml b/teams/conda-incubator/conda-tutorial.yml index e1cf9deb..47df7045 100644 --- a/teams/conda-incubator/conda-tutorial.yml +++ b/teams/conda-incubator/conda-tutorial.yml @@ -9,8 +9,8 @@ scopes: other: links: members: + beeankha: jezdez: - tnabtaf: leriomaggio: - beeankha: + tnabtaf: emeritus: diff --git a/teams/conda-incubator/constructor.yml b/teams/conda-incubator/constructor.yml index a2e80156..c910bb50 100644 --- a/teams/conda-incubator/constructor.yml +++ b/teams/conda-incubator/constructor.yml @@ -9,15 +9,15 @@ scopes: links: - https://github.com/conda/governance/issues/53 members: - jezdez: - hmaarrfk: bkreider: - hoechenberger: - larsoner: - jaimergp: - mcg1969: chenghlee: goanpeca: + hmaarrfk: + hoechenberger: isuruf: + jaimergp: + jezdez: + larsoner: + mcg1969: pseudoyim: emeritus: diff --git a/teams/conda-incubator/content.yml b/teams/conda-incubator/content.yml index 8db78cdf..9c6afaf0 100644 --- a/teams/conda-incubator/content.yml +++ b/teams/conda-incubator/content.yml @@ -8,11 +8,11 @@ scopes: other: links: members: - travishathaway: - tnabtaf: - jaimergp: - goanpeca: + ang852: beeankha: + goanpeca: + jaimergp: kathatherine: - ang852: + tnabtaf: + travishathaway: emeritus: diff --git a/teams/conda-incubator/design.yml b/teams/conda-incubator/design.yml index 4e4821d1..9de38d03 100644 --- a/teams/conda-incubator/design.yml +++ b/teams/conda-incubator/design.yml @@ -8,12 +8,12 @@ scopes: other: links: members: - jezdez: - travishathaway: - tnabtaf: - jaimergp: - kenodegard: + ang852: eakbulut: + jaimergp: + jezdez: kathatherine: - ang852: + kenodegard: + tnabtaf: + travishathaway: emeritus: diff --git a/teams/conda-incubator/docs.yml b/teams/conda-incubator/docs.yml index d78e4773..7be568da 100644 --- a/teams/conda-incubator/docs.yml +++ b/teams/conda-incubator/docs.yml @@ -10,6 +10,6 @@ scopes: links: members: jezdez: - travishathaway: kathatherine: + travishathaway: emeritus: diff --git a/teams/conda-incubator/fetch.yml b/teams/conda-incubator/fetch.yml index e88b6ad6..ecfd4c4b 100644 --- a/teams/conda-incubator/fetch.yml +++ b/teams/conda-incubator/fetch.yml @@ -9,8 +9,8 @@ scopes: other: links: members: - jezdez: dholth: - travishathaway: + jezdez: kenodegard: + travishathaway: emeritus: diff --git a/teams/conda-incubator/hatch-conda-build.yml b/teams/conda-incubator/hatch-conda-build.yml index 9fb0363d..2660e8dc 100644 --- a/teams/conda-incubator/hatch-conda-build.yml +++ b/teams/conda-incubator/hatch-conda-build.yml @@ -9,7 +9,7 @@ scopes: other: links: members: - jezdez: AlbertDeFusco: costrouc: + jezdez: emeritus: diff --git a/teams/conda-incubator/implementation.yml b/teams/conda-incubator/implementation.yml index 0e7d28f8..156b4a58 100644 --- a/teams/conda-incubator/implementation.yml +++ b/teams/conda-incubator/implementation.yml @@ -8,13 +8,13 @@ scopes: other: links: members: - jezdez: - travishathaway: - tnabtaf: - jaimergp: - goanpeca: barabo: - kenodegard: beeankha: + goanpeca: + jaimergp: JeremiahSifuentes: + jezdez: + kenodegard: + tnabtaf: + travishathaway: emeritus: diff --git a/teams/conda-incubator/infrastructure.yml b/teams/conda-incubator/infrastructure.yml index 445f64b6..e4270658 100644 --- a/teams/conda-incubator/infrastructure.yml +++ b/teams/conda-incubator/infrastructure.yml @@ -8,9 +8,9 @@ scopes: other: links: members: - jezdez: - dbast: + beckermr: chenghlee: + dbast: + jezdez: kenodegard: - beckermr: emeritus: diff --git a/teams/conda-incubator/installer.yml b/teams/conda-incubator/installer.yml index 76bc15e5..8e1a6a85 100644 --- a/teams/conda-incubator/installer.yml +++ b/teams/conda-incubator/installer.yml @@ -9,14 +9,14 @@ scopes: other: links: members: - jezdez: - xhochy: - jlstevens: - jaimergp: - dbast: chenghlee: + dbast: isuruf: - pseudoyim: + jaimergp: + jezdez: + jlstevens: marcoesters: + pseudoyim: psteyer: + xhochy: emeritus: diff --git a/teams/conda-incubator/nvidia-virtual-packages.yml b/teams/conda-incubator/nvidia-virtual-packages.yml index c6c78e69..0d928451 100644 --- a/teams/conda-incubator/nvidia-virtual-packages.yml +++ b/teams/conda-incubator/nvidia-virtual-packages.yml @@ -10,6 +10,6 @@ scopes: links: - https://github.com/conda/governance/issues/308 members: - chenghlee: https://github.com/conda/governance/issues/308 carterbox: https://github.com/conda/governance/issues/308 + chenghlee: https://github.com/conda/governance/issues/308 emeritus: diff --git a/teams/conda-incubator/pre-commit.yml b/teams/conda-incubator/pre-commit.yml index d6badb35..16824c6b 100644 --- a/teams/conda-incubator/pre-commit.yml +++ b/teams/conda-incubator/pre-commit.yml @@ -40,7 +40,7 @@ scopes: links: - https://github.com/conda/governance/issues/255 members: + pavelzw: xhochy: ytausch: - pavelzw: emeritus: diff --git a/teams/conda-incubator/rattler.yml b/teams/conda-incubator/rattler.yml index 956274f0..7451b287 100644 --- a/teams/conda-incubator/rattler.yml +++ b/teams/conda-incubator/rattler.yml @@ -8,9 +8,9 @@ scopes: other: links: members: - wolfv: baszalmstra: - ruben-arts: - nichmor: Hofer-Julian: + nichmor: + ruben-arts: + wolfv: emeritus: diff --git a/teams/conda-incubator/setup-miniconda.yml b/teams/conda-incubator/setup-miniconda.yml index 17783fec..1eac0b4d 100644 --- a/teams/conda-incubator/setup-miniconda.yml +++ b/teams/conda-incubator/setup-miniconda.yml @@ -10,10 +10,10 @@ scopes: other: links: members: - jezdez: bollwyvl: - jaimergp: + conda-bot: dbast: goanpeca: - conda-bot: + jaimergp: + jezdez: emeritus: diff --git a/teams/conda-incubator/shells.yml b/teams/conda-incubator/shells.yml index 24408288..ce8f9052 100644 --- a/teams/conda-incubator/shells.yml +++ b/teams/conda-incubator/shells.yml @@ -10,6 +10,6 @@ scopes: links: members: jezdez: - kenodegard: kalawac: + kenodegard: emeritus: diff --git a/teams/conda-incubator/steering-council.yml b/teams/conda-incubator/steering-council.yml index b03b7376..83279426 100644 --- a/teams/conda-incubator/steering-council.yml +++ b/teams/conda-incubator/steering-council.yml @@ -8,35 +8,35 @@ scopes: other: links: members: - jezdez: - msarahan: - xhochy: - mariusvniekerk: - minrk: - teoliphant: - scopatz: - dharhas: - wolfv: - ocefpaf: - sodre: + angloyna: + awwad: + beckermr: + chenghlee: + CJ-Wright: + cjmartian: + conda-bot: csoja: + dharhas: + ericdill: + goanpeca: + Hind-M: jaimergp: - mcg1969: jakirkham: - raydouglass: - chenghlee: - goanpeca: + jezdez: kkraus14: - prusse-martin: - beckermr: - ericdill: - CJ-Wright: - angloyna: marcelotrevisani: + mariusvniekerk: mbargull: - awwad: - conda-bot: + mcg1969: + minrk: + msarahan: + ocefpaf: + prusse-martin: + raydouglass: + scopatz: + sodre: + teoliphant: trallard: - cjmartian: - Hind-M: + wolfv: + xhochy: emeritus: diff --git a/teams/conda/anaconda.yml b/teams/conda/anaconda.yml index fe8f758e..b5e02d79 100644 --- a/teams/conda/anaconda.yml +++ b/teams/conda/anaconda.yml @@ -10,15 +10,15 @@ scopes: links: - https://github.com/conda/governance/issues/222 members: - jezdez: https://github.com/conda/governance/issues/222 - dholth: https://github.com/conda/governance/issues/222 - ryanskeith: https://github.com/conda/governance/issues/222 - travishathaway: https://github.com/conda/governance/issues/222 - schuylermartin45: https://github.com/conda/governance/issues/222 chenghlee: https://github.com/conda/governance/issues/222 - kenodegard: https://github.com/conda/governance/issues/222 - george-lorch: https://github.com/conda/governance/issues/222 danyeaw: https://github.com/conda/governance/issues/222 - marcoesters: https://github.com/conda/governance/issues/222 + dholth: https://github.com/conda/governance/issues/222 ForgottenProgramme: https://github.com/conda/governance/issues/222 + george-lorch: https://github.com/conda/governance/issues/222 + jezdez: https://github.com/conda/governance/issues/222 + kenodegard: https://github.com/conda/governance/issues/222 + marcoesters: https://github.com/conda/governance/issues/222 + ryanskeith: https://github.com/conda/governance/issues/222 + schuylermartin45: https://github.com/conda/governance/issues/222 + travishathaway: https://github.com/conda/governance/issues/222 emeritus: diff --git a/teams/conda/builds-tools.yml b/teams/conda/builds-tools.yml index 6c278335..b19a52ef 100644 --- a/teams/conda/builds-tools.yml +++ b/teams/conda/builds-tools.yml @@ -1,6 +1,7 @@ # yaml-language-server: $schema=../teams.schema.json name: conda/builds-tools -description: Team to work on conda-build and other build tools in the conda ecosystem +description: Team to work on conda-build and other build tools in the conda + ecosystem charter: project requirements: scopes: @@ -13,8 +14,8 @@ links: - https://github.com/conda/conda-build/issues/4698 - https://github.com/conda/governance/issues/128 members: - beeankha: https://github.com/conda/conda-build/issues/4698 beckermr: + beeankha: https://github.com/conda/conda-build/issues/4698 chenghlee: https://github.com/conda/conda-build/issues/4698 dbast: https://github.com/conda/conda-build/issues/4698 dholth: https://github.com/conda/conda-build/issues/4698 @@ -28,9 +29,9 @@ members: mbargull: https://github.com/conda/conda-build/issues/4698 msarahan: https://github.com/conda/conda-build/issues/4698 ryanskeith: https://github.com/conda/conda-build/issues/4698 + schuylermartin45: https://github.com/conda/governance/issues/128 travishathaway: https://github.com/conda/conda-build/issues/4698 wolfv: https://github.com/conda/conda-build/issues/4698 - schuylermartin45: https://github.com/conda/governance/issues/128 emeritus: Callek: danpetry: https://anaconda.slack.com/archives/C05B9MPGR4Y/p1713452484809289 diff --git a/teams/conda/ceps.yml b/teams/conda/ceps.yml index f9be8ac8..e7fd6c0d 100644 --- a/teams/conda/ceps.yml +++ b/teams/conda/ceps.yml @@ -9,7 +9,7 @@ scopes: other: links: members: + beeankha: jezdez: kenodegard: - beeankha: emeritus: diff --git a/teams/conda/cla-reviewers.yml b/teams/conda/cla-reviewers.yml index f58c5ded..7cc38899 100644 --- a/teams/conda/cla-reviewers.yml +++ b/teams/conda/cla-reviewers.yml @@ -2,7 +2,8 @@ name: conda/cla-reviewers description: The team reviewing incoming CLA documents charter: static -requirements: All team members must only consist of steering council members for compliance reasons. +requirements: All team members must only consist of steering council members for + compliance reasons. scopes: codeowners: - conda/cla diff --git a/teams/conda/conda-core.yml b/teams/conda/conda-core.yml index c769b27d..a4c968e4 100644 --- a/teams/conda/conda-core.yml +++ b/teams/conda/conda-core.yml @@ -25,13 +25,13 @@ scopes: other: links: members: - jezdez: - dholth: - travishathaway: + beeankha: chenghlee: + dholth: + ForgottenProgramme: + jezdez: kenodegard: - pseudoyim: marcoesters: - beeankha: - ForgottenProgramme: + pseudoyim: + travishathaway: emeritus: diff --git a/teams/conda/conda-dot-org.yml b/teams/conda/conda-dot-org.yml index abef5cde..104fa991 100644 --- a/teams/conda/conda-dot-org.yml +++ b/teams/conda/conda-dot-org.yml @@ -11,9 +11,9 @@ links: - https://github.com/conda/governance/issues/76 - https://github.com/conda/conda-dot-org/issues/110 members: - jezdez: https://github.com/conda/conda-dot-org/issues/110 - travishathaway: https://github.com/conda/conda-dot-org/issues/110 - jaimergp: https://github.com/conda/conda-dot-org/issues/110 beeankha: https://github.com/conda/conda-dot-org/issues/110 + jaimergp: https://github.com/conda/conda-dot-org/issues/110 + jezdez: https://github.com/conda/conda-dot-org/issues/110 kathatherine: https://github.com/conda/conda-dot-org/issues/110 + travishathaway: https://github.com/conda/conda-dot-org/issues/110 emeritus: diff --git a/teams/conda/conda-index.yml b/teams/conda/conda-index.yml index 791f4400..16897970 100644 --- a/teams/conda/conda-index.yml +++ b/teams/conda/conda-index.yml @@ -11,8 +11,8 @@ links: - https://github.com/conda/conda-build/issues/4472 - https://github.com/conda/conda-index/issues/59 members: - jezdez: https://github.com/conda/conda-build/issues/4472 + chenghlee: https://github.com/conda/conda-build/issues/4472 dholth: https://github.com/conda/conda-build/issues/4472 + jezdez: https://github.com/conda/conda-build/issues/4472 jjhelmus: - chenghlee: https://github.com/conda/conda-build/issues/4472 emeritus: diff --git a/teams/conda/conda-lock.yml b/teams/conda/conda-lock.yml index 3c756bf6..19d58a70 100644 --- a/teams/conda/conda-lock.yml +++ b/teams/conda/conda-lock.yml @@ -10,10 +10,10 @@ scopes: links: - https://github.com/conda/conda-lock/issues/319 members: - jezdez: - mariusvniekerk: - ocefpaf: ericdill: + jezdez: marcelotrevisani: maresb: + mariusvniekerk: + ocefpaf: emeritus: diff --git a/teams/conda/conda-maintainers-project-management.yml b/teams/conda/conda-maintainers-project-management.yml index e7703e62..b0f1ed0b 100644 --- a/teams/conda/conda-maintainers-project-management.yml +++ b/teams/conda/conda-maintainers-project-management.yml @@ -1,6 +1,7 @@ # yaml-language-server: $schema=../teams.schema.json name: conda/conda-maintainers-project-management -description: Support team for @conda/conda-maintainers, with triage permissions only +description: Support team for @conda/conda-maintainers, with triage permissions + only charter: dynamic requirements: scopes: @@ -8,9 +9,9 @@ scopes: other: links: members: - jezdez: - jaimergp: george-lorch: + jaimergp: + jezdez: lwinfree: trallard: emeritus: diff --git a/teams/conda/conda-maintainers.yml b/teams/conda/conda-maintainers.yml index b2ca0739..25a1f75d 100644 --- a/teams/conda/conda-maintainers.yml +++ b/teams/conda/conda-maintainers.yml @@ -12,18 +12,18 @@ scopes: links: - https://github.com/conda/conda/issues/13526 members: - jezdez: https://github.com/conda/conda/issues/13526 + beeankha: https://github.com/conda/conda/issues/13526 + chenghlee: https://github.com/conda/conda/issues/13526 + danyeaw: https://github.com/conda/governance/issues/265 dholth: https://github.com/conda/conda/issues/13526 - ryanskeith: - travishathaway: https://github.com/conda/conda/issues/13526 - soapy1: https://github.com/conda/governance/issues/258 - jjhelmus: https://github.com/conda/governance/issues/219 + ForgottenProgramme: https://github.com/conda/conda/issues/13526 + george-lorch: https://github.com/conda/governance/issues/216 jaimergp: https://github.com/conda/conda/issues/13526 - chenghlee: https://github.com/conda/conda/issues/13526 + jezdez: https://github.com/conda/conda/issues/13526 + jjhelmus: https://github.com/conda/governance/issues/219 kenodegard: https://github.com/conda/conda/issues/13526 - george-lorch: https://github.com/conda/governance/issues/216 - danyeaw: https://github.com/conda/governance/issues/265 mbargull: https://github.com/conda/conda/issues/13526 - beeankha: https://github.com/conda/conda/issues/13526 - ForgottenProgramme: https://github.com/conda/conda/issues/13526 + ryanskeith: + soapy1: https://github.com/conda/governance/issues/258 + travishathaway: https://github.com/conda/conda/issues/13526 emeritus: diff --git a/teams/conda/distribution-contractors.yml b/teams/conda/distribution-contractors.yml index 5e461e6d..28057a6a 100644 --- a/teams/conda/distribution-contractors.yml +++ b/teams/conda/distribution-contractors.yml @@ -8,7 +8,7 @@ scopes: other: links: members: + M-Waszkiewicz-Anaconda: skupr-anaconda: yshmatov-anaconda: - M-Waszkiewicz-Anaconda: emeritus: diff --git a/teams/conda/grayskull.yml b/teams/conda/grayskull.yml index 3acf6764..4c14efac 100644 --- a/teams/conda/grayskull.yml +++ b/teams/conda/grayskull.yml @@ -10,8 +10,8 @@ scopes: links: - https://github.com/conda/grayskull/issues/436 members: + ForgottenProgramme: jezdez: - ocefpaf: marcelotrevisani: - ForgottenProgramme: + ocefpaf: emeritus: diff --git a/teams/conda/packaging-tools.yml b/teams/conda/packaging-tools.yml index b286f8e8..8b3bcc16 100644 --- a/teams/conda/packaging-tools.yml +++ b/teams/conda/packaging-tools.yml @@ -11,11 +11,11 @@ scopes: links: - https://github.com/conda/infrastructure/issues/1007 members: - jezdez: https://github.com/conda/infrastructure/issues/1007 - dholth: https://github.com/conda/infrastructure/issues/1007 - travishathaway: https://github.com/conda/infrastructure/issues/1007 chenghlee: https://github.com/conda/infrastructure/issues/1007 + dholth: https://github.com/conda/infrastructure/issues/1007 + jezdez: https://github.com/conda/infrastructure/issues/1007 kenodegard: https://github.com/conda/infrastructure/issues/1007 marcelotrevisani: https://github.com/conda/infrastructure/issues/1007 marcoesters: https://github.com/conda/infrastructure/issues/1007 + travishathaway: https://github.com/conda/infrastructure/issues/1007 emeritus: diff --git a/teams/conda/prefix-dev.yml b/teams/conda/prefix-dev.yml index 8234caa5..5bce41b6 100644 --- a/teams/conda/prefix-dev.yml +++ b/teams/conda/prefix-dev.yml @@ -9,10 +9,10 @@ scopes: links: - https://github.com/conda/governance/issues/226 members: - tdejager: https://github.com/conda/governance/issues/225 - wolfv: https://github.com/conda/governance/issues/225 baszalmstra: https://github.com/conda/governance/issues/225 - ruben-arts: https://github.com/conda/governance/issues/225 - nichmor: https://github.com/conda/governance/issues/225 Hofer-Julian: https://github.com/conda/governance/issues/225 + nichmor: https://github.com/conda/governance/issues/225 + ruben-arts: https://github.com/conda/governance/issues/225 + tdejager: https://github.com/conda/governance/issues/225 + wolfv: https://github.com/conda/governance/issues/225 emeritus: diff --git a/teams/conda/quansight.yml b/teams/conda/quansight.yml index 63599362..a29fa7d1 100644 --- a/teams/conda/quansight.yml +++ b/teams/conda/quansight.yml @@ -12,8 +12,8 @@ scopes: links: - https://github.com/conda/governance/issues/225 members: - soapy1: https://github.com/conda/governance/issues/225 jaimergp: https://github.com/conda/governance/issues/225 peytondmurray: https://github.com/conda/governance/issues/225 + soapy1: https://github.com/conda/governance/issues/225 trallard: https://github.com/conda/governance/issues/225 emeritus: diff --git a/teams/conda/rattler.yml b/teams/conda/rattler.yml index b949e7da..33d041cb 100644 --- a/teams/conda/rattler.yml +++ b/teams/conda/rattler.yml @@ -11,9 +11,9 @@ links: - https://github.com/conda/governance/issues/145 - https://github.com/conda/rattler/issues/799 members: - wolfv: https://github.com/conda/governance/issues/145 baszalmstra: https://github.com/conda/governance/issues/145 - ruben-arts: https://github.com/conda/governance/issues/145 - nichmor: https://github.com/conda/governance/issues/145 Hofer-Julian: + nichmor: https://github.com/conda/governance/issues/145 + ruben-arts: https://github.com/conda/governance/issues/145 + wolfv: https://github.com/conda/governance/issues/145 emeritus: diff --git a/teams/conda/steering-council.yml b/teams/conda/steering-council.yml index ddd76e26..a9869344 100644 --- a/teams/conda/steering-council.yml +++ b/teams/conda/steering-council.yml @@ -12,24 +12,13 @@ scopes: other: links: [] members: - xhochy: - full_name: Uwe Korn - email: mail@uwekorn.com - funder: QuantCo + baszalmstra: + full_name: Bas Zalmstra + email: zalmstra.bas@gmail.com + funder: prefix.dev pronouns: he/him - decision: https://github.com/conda/governance/issues/1 - cj-wright: - full_name: Christopher J. 'CJ' Wright - email: cjwright4242@gmail.com - funder: - pronouns: - decision: https://github.com/conda/governance/issues/1 - mariusvniekerk: - full_name: Marius van Niekerk - email: marius.v.niekerk@gmail.com - funder: - pronouns: - decision: https://github.com/conda/governance/issues/1 + decision: + https://github.com/conda/governance/commit/03f21ae79dc1525eae0091ee3cf1e8f26856c6d6 chenghlee: full_name: Cheng H. Lee email: clee@anaconda.com @@ -38,13 +27,37 @@ members: decision: - https://github.com/conda/governance/issues/1 - https://github.com/conda/governance/pull/8 - ocefpaf: - full_name: Filipe Fernandes - email: ocefpaf@gmail.com + cj-wright: + full_name: Christopher J. 'CJ' Wright + email: cjwright4242@gmail.com funder: + pronouns: + decision: https://github.com/conda/governance/issues/1 + Hind-M: + full_name: Hind Montassif + email: hind.montassif@gmail.com + funder: QuantStack + pronouns: she/her + decision: https://github.com/conda/governance/pull/171 + jaimergp: + full_name: Jaime Rodríguez-Guerra + email: jaime.rogue@gmail.com + funder: Quansight + pronouns: he/him + decision: https://github.com/conda/governance/pull/45 + jakirkham: + full_name: John Kirkham + email: jakirkham@gmail.com + funder: NVIDIA pronouns: he/him decision: - - https://github.com/conda/governance/issues/1 + - https://github.com/conda/governance/pull/21 + jezdez: + full_name: Jannis Leidel + email: jannis@leidel.info + funder: Anaconda + pronouns: he/him + decision: https://github.com/conda/governance/pull/37 marcelotrevisani: full_name: Marcelo Duarte Trevisani email: marceloduartetrevisani@gmail.com @@ -52,6 +65,18 @@ members: pronouns: he/him decision: - https://github.com/conda/governance/issues/1 + mariusvniekerk: + full_name: Marius van Niekerk + email: marius.v.niekerk@gmail.com + funder: + pronouns: + decision: https://github.com/conda/governance/issues/1 + mbargull: + full_name: Marcel Bargull + email: marcel.bargull@udo.edu + funder: + pronouns: + decision: https://github.com/conda/governance/issues/1 msarahan: full_name: Michael Sarahan email: msarahan@gmail.com @@ -60,25 +85,19 @@ members: decision: - https://github.com/conda/governance/issues/1 - https://github.com/conda/governance/pull/15 - mbargull: - full_name: Marcel Bargull - email: marcel.bargull@udo.edu + ocefpaf: + full_name: Filipe Fernandes + email: ocefpaf@gmail.com funder: - pronouns: - decision: https://github.com/conda/governance/issues/1 - jakirkham: - full_name: John Kirkham - email: jakirkham@gmail.com - funder: NVIDIA pronouns: he/him decision: - - https://github.com/conda/governance/pull/21 - jezdez: - full_name: Jannis Leidel - email: jannis@leidel.info - funder: Anaconda + - https://github.com/conda/governance/issues/1 + pavelzw: + full_name: Pavel Zwerschke + email: pavelzw@gmail.com + funder: QuantCo pronouns: he/him - decision: https://github.com/conda/governance/pull/37 + decision: https://github.com/conda/governance/pull/241 wolfv: full_name: Wolf Vollprecht email: w.vollprecht@gmail.com @@ -87,45 +106,27 @@ members: decision: - https://github.com/conda/governance/issues/1 - https://github.com/conda/governance/pull/44 - jaimergp: - full_name: Jaime Rodríguez-Guerra - email: jaime.rogue@gmail.com - funder: Quansight - pronouns: he/him - decision: https://github.com/conda/governance/pull/45 - baszalmstra: - full_name: Bas Zalmstra - email: zalmstra.bas@gmail.com - funder: prefix.dev - pronouns: he/him - decision: https://github.com/conda/governance/commit/03f21ae79dc1525eae0091ee3cf1e8f26856c6d6 - Hind-M: - full_name: Hind Montassif - email: hind.montassif@gmail.com - funder: QuantStack - pronouns: she/her - decision: https://github.com/conda/governance/pull/171 - pavelzw: - full_name: Pavel Zwerschke - email: pavelzw@gmail.com + xhochy: + full_name: Uwe Korn + email: mail@uwekorn.com funder: QuantCo pronouns: he/him - decision: https://github.com/conda/governance/pull/241 + decision: https://github.com/conda/governance/issues/1 emeritus: # FIX: These are still "part" of steering because emeritus is a subteam of steering, which # inherit the permissions. - minrk: + angloyna: + awwad: + beckermr: + cjmartian: + csoja: dharhas: - sodre: + ericdill: + goanpeca: jjhelmus: - csoja: mcg1969: - raydouglass: - goanpeca: + minrk: prusse-martin: - beckermr: - ericdill: - angloyna: - awwad: + raydouglass: + sodre: trallard: - cjmartian: diff --git a/teams/conda/steering-emeritus.yml b/teams/conda/steering-emeritus.yml index e9e1c10b..b277dcf3 100644 --- a/teams/conda/steering-emeritus.yml +++ b/teams/conda/steering-emeritus.yml @@ -12,38 +12,6 @@ scopes: other: links: [] members: - raydouglass: - full_name: Ray Douglass - email: ray@raydouglass.com - funder: - pronouns: - decision: - - https://github.com/conda/governance/issues/1 - - https://github.com/conda/governance/pull/32 - sodre: - full_name: Patrick Sodré - email: psodre@gmail.com - funder: - pronouns: - decision: - - https://github.com/conda/governance/issues/1 - - https://github.com/conda/governance/pull/33 - minrk: - full_name: Min Ragan-Kelley - email: benjaminrk@gmail.com - funder: - pronouns: - decision: - - https://github.com/conda/governance/issues/1 - - https://github.com/conda/governance/pull/34 - scopatz: - full_name: Anthony Scopatz - email: scopatz@gmail.com - funder: - pronouns: - decision: - - https://github.com/conda/governance/issues/1 - - https://github.com/conda/governance/pull/36 angloyna: full_name: Angela Gloyna email: angela.gloyna@gmail.com @@ -52,46 +20,25 @@ members: decision: - https://github.com/conda/governance/issues/1 - https://github.com/conda/governance/pull/36 - jjhelmus: - full_name: Jonathan Helmus - email: jjhelmus@gmail.com - funder: - pronouns: - decision: - - https://github.com/conda/governance/issues/1 - - https://github.com/conda/governance/pull/36 - prusse-martin: - full_name: Martin Prüsse - email: prusse.martin@gmail.com - funder: - pronouns: - decision: - - https://github.com/conda/governance/issues/1 - - https://github.com/conda/governance/pull/36 - myancy-anaconda: - full_name: Megan Yancy - email: Megan.C.Yancy@gmail.com - funder: - pronouns: - decision: https://github.com/conda/governance/pull/39 - teoliphant: - full_name: Travis Oliphant - email: teoliphant@gmail.com + awwad: + full_name: Sebastien Awwad + email: sebastien.awwad@gmail.com funder: pronouns: decision: - https://github.com/conda/governance/issues/1 - - https://github.com/conda/governance/pull/6 - - https://github.com/conda/governance/pull/64 - dharhas: - full_name: Dharhas Pothina - email: dharhas@gmail.com + - https://github.com/conda/governance/pull/17 + - https://github.com/conda/governance/pull/65 + beckermr: + full_name: Matthew R. Becker + email: becker.mr@gmail.com funder: - pronouns: + pronouns: he/him decision: - https://github.com/conda/governance/issues/1 - - https://github.com/conda/governance/pull/2 - - https://github.com/conda/governance/pull/64 + - https://github.com/conda/governance/pull/28 + - https://github.com/conda/governance/pull/169 + - https://github.com/conda/governance/pull/252 cjmartian: full_name: Connor Martin email: connormartin7@gmail.com @@ -101,15 +48,6 @@ members: - https://github.com/conda/governance/issues/1 - https://github.com/conda/governance/pull/3 - https://github.com/conda/governance/pull/65 - mcg1969: - full_name: Michael Grant - email: mgrant@anaconda.com - funder: - pronouns: - decision: - - https://github.com/conda/governance/issues/1 - - https://github.com/conda/governance/pull/7 - - https://github.com/conda/governance/pull/65 csoja: full_name: Crystal Soja email: csoja@anaconda.com @@ -119,15 +57,15 @@ members: - https://github.com/conda/governance/issues/1 - https://github.com/conda/governance/pull/16 - https://github.com/conda/governance/pull/65 - awwad: - full_name: Sebastien Awwad - email: sebastien.awwad@gmail.com + dharhas: + full_name: Dharhas Pothina + email: dharhas@gmail.com funder: pronouns: decision: - https://github.com/conda/governance/issues/1 - - https://github.com/conda/governance/pull/17 - - https://github.com/conda/governance/pull/65 + - https://github.com/conda/governance/pull/2 + - https://github.com/conda/governance/pull/64 ericdill: full_name: Eric Dill email: ericdill@pm.me @@ -144,6 +82,14 @@ members: decision: - https://github.com/conda/governance/issues/1 - https://github.com/conda/governance/pull/163 + jjhelmus: + full_name: Jonathan Helmus + email: jjhelmus@gmail.com + funder: + pronouns: + decision: + - https://github.com/conda/governance/issues/1 + - https://github.com/conda/governance/pull/36 kkraus14: full_name: Keith Kraus email: keith.j.kraus@gmail.com @@ -154,16 +100,70 @@ members: - https://github.com/conda/governance/pull/59 - https://github.com/conda/governance/pull/74 - https://github.com/conda/governance/pull/205 - beckermr: - full_name: Matthew R. Becker - email: becker.mr@gmail.com + mcg1969: + full_name: Michael Grant + email: mgrant@anaconda.com funder: - pronouns: he/him + pronouns: decision: - https://github.com/conda/governance/issues/1 - - https://github.com/conda/governance/pull/28 - - https://github.com/conda/governance/pull/169 - - https://github.com/conda/governance/pull/252 + - https://github.com/conda/governance/pull/7 + - https://github.com/conda/governance/pull/65 + minrk: + full_name: Min Ragan-Kelley + email: benjaminrk@gmail.com + funder: + pronouns: + decision: + - https://github.com/conda/governance/issues/1 + - https://github.com/conda/governance/pull/34 + myancy-anaconda: + full_name: Megan Yancy + email: Megan.C.Yancy@gmail.com + funder: + pronouns: + decision: https://github.com/conda/governance/pull/39 + prusse-martin: + full_name: Martin Prüsse + email: prusse.martin@gmail.com + funder: + pronouns: + decision: + - https://github.com/conda/governance/issues/1 + - https://github.com/conda/governance/pull/36 + raydouglass: + full_name: Ray Douglass + email: ray@raydouglass.com + funder: + pronouns: + decision: + - https://github.com/conda/governance/issues/1 + - https://github.com/conda/governance/pull/32 + scopatz: + full_name: Anthony Scopatz + email: scopatz@gmail.com + funder: + pronouns: + decision: + - https://github.com/conda/governance/issues/1 + - https://github.com/conda/governance/pull/36 + sodre: + full_name: Patrick Sodré + email: psodre@gmail.com + funder: + pronouns: + decision: + - https://github.com/conda/governance/issues/1 + - https://github.com/conda/governance/pull/33 + teoliphant: + full_name: Travis Oliphant + email: teoliphant@gmail.com + funder: + pronouns: + decision: + - https://github.com/conda/governance/issues/1 + - https://github.com/conda/governance/pull/6 + - https://github.com/conda/governance/pull/64 trallard: full_name: Tania Allard email: taniar.allard@gmail.com From d0e7d3e77791be69d4b3be4be5352f02cd1ece58 Mon Sep 17 00:00:00 2001 From: jaimergp Date: Mon, 24 Nov 2025 20:48:29 +0100 Subject: [PATCH 29/38] Add more globs to pull_request.paths --- .github/workflows/check-teams.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/check-teams.yml b/.github/workflows/check-teams.yml index e5a0edda..bb0da3f8 100644 --- a/.github/workflows/check-teams.yml +++ b/.github/workflows/check-teams.yml @@ -4,10 +4,14 @@ on: workflow_dispatch: pull_request: paths: + - teams/**/*.yml - teams/*.yml + - teams/**/*.yaml - teams/*.yaml - teams/*.schema.json + - scripts/check_teams.py - scripts/schemas.py + - scripts/sort_team_yaml.py - .github/workflows/check-teams.yml jobs: From d627fb69c66136dce9cc4031a9dea8dd762e8b74 Mon Sep 17 00:00:00 2001 From: jaimergp Date: Tue, 25 Nov 2025 10:21:51 +0100 Subject: [PATCH 30/38] Handle strings too --- scripts/check_teams.py | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/scripts/check_teams.py b/scripts/check_teams.py index 23db23a9..325bc0a4 100644 --- a/scripts/check_teams.py +++ b/scripts/check_teams.py @@ -34,14 +34,22 @@ def eprint(*args, **kwargs): print(*args, **kwargs) -def report_diff(field: str, **entries: list[str]): +def report_diff(field: str, **entries: str | list[str]): if len(entries) != 2: raise ValueError("Must pass exactly two keyword arguments") names = list(entries.keys()) values = list(entries.values()) eprint(f"Contents for {field} in {names[0]} do not match {names[1]}:") - values0 = sorted([str(val) for val in values[0]], key=str.lower) - values1 = sorted([str(val) for val in values[1]], key=str.lower) + values0 = ( + [str(val) for val in values[0]] + if isinstance(values[0], (list, tuple)) + else [values[0] or ""] + ) + values1 = ( + [str(val) for val in values[1]] + if isinstance(values[1], (list, tuple)) + else [values[1] or ""] + ) eprint(f"{names[0]}:", values0) eprint(f"{names[1]}:", values1) eprint( @@ -150,8 +158,8 @@ def check_teams() -> int: if team["description"] != details["description"]: report_diff( "descriptions", - file=[team["description"]], - github=[details["description"]], + file=team["description"], + github=details["description"], ) exit_code = 1 From 740715b1d730f455309998726cdceb847b1bbd00 Mon Sep 17 00:00:00 2001 From: jaimergp Date: Wed, 26 Nov 2025 11:30:58 +0100 Subject: [PATCH 31/38] Change `scopes` to `resources` and `codeowners` to `repos`. `teams` holds the GH teams representing the governance team. --- scripts/check_teams.py | 4 +-- scripts/schemas.py | 12 ++++--- scripts/sort_team_yaml.py | 7 ++++- teams/conda-incubator/bots.yml | 8 +++-- teams/conda-incubator/builds-tools.yml | 8 +++-- teams/conda-incubator/ceps.yml | 8 +++-- teams/conda-incubator/code-of-conduct.yml | 8 +++-- teams/conda-incubator/conda-checkpoints.yml | 8 +++-- teams/conda-incubator/conda-colab.yml | 8 +++-- teams/conda-incubator/conda-completions.yml | 8 +++-- teams/conda-incubator/conda-dot-org.yml | 8 +++-- teams/conda-incubator/conda-env-builder.yml | 8 +++-- .../conda-incubator/conda-libmamba-solver.yml | 8 +++-- teams/conda-incubator/conda-lockfiles.yml | 8 +++-- teams/conda-incubator/conda-meta-mcp.yml | 8 +++-- teams/conda-incubator/conda-mirror.yml | 8 +++-- teams/conda-incubator/conda-oci.yml | 8 +++-- teams/conda-incubator/conda-plugins.yml | 8 +++-- teams/conda-incubator/conda-project.yml | 8 +++-- teams/conda-incubator/conda-protect.yml | 8 +++-- teams/conda-incubator/conda-pypi.yml | 8 +++-- .../conda-incubator/conda-rattler-solver.yml | 8 +++-- teams/conda-incubator/conda-rich.yml | 8 +++-- teams/conda-incubator/conda-self.yml | 8 +++-- teams/conda-incubator/conda-sh.yml | 8 +++-- teams/conda-incubator/conda-spawn.yml | 8 +++-- teams/conda-incubator/conda-store.yml | 8 +++-- teams/conda-incubator/conda-subchannel.yml | 8 +++-- teams/conda-incubator/conda-tree.yml | 8 +++-- teams/conda-incubator/conda-tui.yml | 8 +++-- teams/conda-incubator/conda-tutorial.yml | 8 +++-- teams/conda-incubator/condastats.yml | 8 +++-- teams/conda-incubator/constructor.yml | 8 +++-- teams/conda-incubator/content.yml | 8 +++-- teams/conda-incubator/design.yml | 8 +++-- teams/conda-incubator/docs.yml | 8 +++-- teams/conda-incubator/fetch.yml | 8 +++-- teams/conda-incubator/hatch-conda-build.yml | 8 +++-- teams/conda-incubator/implementation.yml | 8 +++-- teams/conda-incubator/infrastructure.yml | 8 +++-- teams/conda-incubator/installer.yml | 8 +++-- .../nvidia-virtual-packages.yml | 8 +++-- teams/conda-incubator/pre-commit.yml | 8 +++-- teams/conda-incubator/rattler.yml | 8 +++-- teams/conda-incubator/relock-conda.yml | 8 +++-- teams/conda-incubator/setup-miniconda.yml | 8 +++-- teams/conda-incubator/shells.yml | 8 +++-- teams/conda-incubator/steering-council.yml | 8 +++-- teams/conda/anaconda.yml | 8 +++-- teams/conda/builds-tools.yml | 8 +++-- teams/conda/ceps.yml | 8 +++-- teams/conda/cla-reviewers.yml | 8 +++-- teams/conda/coc-committee.yml | 8 +++-- teams/conda/communications.yml | 8 +++-- teams/conda/community-contributors.yml | 8 +++-- teams/conda/conda-core.yml | 8 +++-- teams/conda/conda-dot-org.yml | 8 +++-- teams/conda/conda-index.yml | 8 +++-- teams/conda/conda-lock.yml | 8 +++-- .../conda-maintainers-project-management.yml | 8 +++-- teams/conda/conda-maintainers.yml | 8 +++-- teams/conda/constructor.yml | 8 +++-- teams/conda/distribution-contractors.yml | 8 +++-- teams/conda/docs.yml | 8 +++-- teams/conda/grayskull.yml | 8 +++-- teams/conda/infrastructure.yml | 8 +++-- teams/conda/packaging-tools.yml | 8 +++-- teams/conda/prefix-dev.yml | 8 +++-- teams/conda/quansight.yml | 8 +++-- teams/conda/rattler.yml | 8 +++-- teams/conda/steering-council.yml | 8 +++-- teams/conda/steering-emeritus.yml | 8 +++-- teams/teams.schema.json | 31 ++++++++++++++----- 73 files changed, 383 insertions(+), 223 deletions(-) diff --git a/scripts/check_teams.py b/scripts/check_teams.py index 325bc0a4..845f9086 100644 --- a/scripts/check_teams.py +++ b/scripts/check_teams.py @@ -179,7 +179,7 @@ def check_teams() -> int: exit_code = 1 # 3. Validate access to repositories - repos_in_file = sorted(team["scopes"]["codeowners"] or [], key=str.lower) + repos_in_file = sorted(team["resources"]["repos"] or [], key=str.lower) repos_in_gh = sorted(access_to_repos(org, name), key=str.lower) if set(repos_in_file) != set(repos_in_gh): report_diff("repositories", file=repos_in_file, github=repos_in_gh) @@ -228,7 +228,7 @@ def generate(): "description": details["description"], "charter": None, "requirements": None, - "scopes": {"codeowners": access_to_repos(*team.split("/")), "other": None}, + "resources": {"repos": access_to_repos(*team.split("/")), "other": None}, "links": None, "members": {member: None for member in team_members(*team.split("/"))}, "emeritus": None, diff --git a/scripts/schemas.py b/scripts/schemas.py index 3b9ca522..3a3f7a89 100644 --- a/scripts/schemas.py +++ b/scripts/schemas.py @@ -13,7 +13,7 @@ ) -class Scopes(BaseModel): +class Resources(BaseModel): """ Defines the responsibilities of a Conda sub-team. This structure is nested within the main CondaSubTeam model. @@ -21,8 +21,10 @@ class Scopes(BaseModel): model_config = ConfigDict(extra="forbid") - codeowners: list[str] | None = ... - """The GitHub projects this team owns or has write access to.""" + teams: list[str] | None = ... + "The Github team (or teams, across different organizations) representing this team." + repos: list[str] | None = ... + """The GitHub repositories this team owns or has write access to.""" other: list[HttpUrl] | None = ... """Other responsibilities of this team""" @@ -55,7 +57,7 @@ class CondaSubTeam(BaseModel): model_config = ConfigDict(title="Conda Sub-Teams", extra="forbid") name: str = ... - """The team name in GitHub""" + """The team name as per the governance""" description: str = Field(..., min_length=1, max_length=128) """The team description in GitHub""" @@ -70,7 +72,7 @@ class CondaSubTeam(BaseModel): requirements: str | None = ... """Special requirements for team membership""" - scopes: Scopes = ... + resources: Resources = ... """Team responsibilities and owned resources""" links: list[HttpUrl] = ... diff --git a/scripts/sort_team_yaml.py b/scripts/sort_team_yaml.py index cad792e2..60f35d42 100644 --- a/scripts/sort_team_yaml.py +++ b/scripts/sort_team_yaml.py @@ -31,12 +31,17 @@ # .pop() removes the key/value but RETAINS the comment in 'ca' val = data.pop(key, None) data.insert(0, key, val) - + for key in "members", "emeritus": if members := data.get(key): for key in sorted(members.keys(), reverse=True, key=str.lower): val = members.pop(key, None) members.insert(0, key, val) + data["resources"].setdefault("teams", []).append(data["name"]) + data["name"] = data["name"].split("/")[-1] + for key in reversed(("teams", "repos", "other")): + val = data["resources"].pop(key, None) + data["resources"].insert(0, key, val) with open(path, "w") as f: yaml.dump(data, f) diff --git a/teams/conda-incubator/bots.yml b/teams/conda-incubator/bots.yml index f450faf1..2e0382d6 100644 --- a/teams/conda-incubator/bots.yml +++ b/teams/conda-incubator/bots.yml @@ -1,11 +1,13 @@ # yaml-language-server: $schema=../teams.schema.json -name: conda-incubator/bots +name: bots description: Special team to permission bots and automations across repositories. charter: requirements: -scopes: - codeowners: +resources: + teams: + - conda-incubator/bots + repos: - conda-incubator/conda-lockfiles other: links: diff --git a/teams/conda-incubator/builds-tools.yml b/teams/conda-incubator/builds-tools.yml index 5eeb7983..3f933674 100644 --- a/teams/conda-incubator/builds-tools.yml +++ b/teams/conda-incubator/builds-tools.yml @@ -1,10 +1,12 @@ # yaml-language-server: $schema=../teams.schema.json -name: conda-incubator/builds-tools +name: builds-tools description: Deprecated. charter: requirements: -scopes: - codeowners: [] +resources: + teams: + - conda-incubator/builds-tools + repos: [] other: links: - https://github.com/conda/governance/issues/128 diff --git a/teams/conda-incubator/ceps.yml b/teams/conda-incubator/ceps.yml index 20fa7720..889bd7e9 100644 --- a/teams/conda-incubator/ceps.yml +++ b/teams/conda-incubator/ceps.yml @@ -1,10 +1,12 @@ # yaml-language-server: $schema=../teams.schema.json -name: conda-incubator/ceps +name: ceps description: Deprecated. charter: requirements: -scopes: - codeowners: [] +resources: + teams: + - conda-incubator/ceps + repos: [] other: links: members: diff --git a/teams/conda-incubator/code-of-conduct.yml b/teams/conda-incubator/code-of-conduct.yml index f59dc4fd..1845185d 100644 --- a/teams/conda-incubator/code-of-conduct.yml +++ b/teams/conda-incubator/code-of-conduct.yml @@ -1,10 +1,12 @@ # yaml-language-server: $schema=../teams.schema.json -name: conda-incubator/code-of-conduct +name: code-of-conduct description: Code of conduct committee charter: requirements: -scopes: - codeowners: [] +resources: + teams: + - conda-incubator/code-of-conduct + repos: [] other: links: members: diff --git a/teams/conda-incubator/conda-checkpoints.yml b/teams/conda-incubator/conda-checkpoints.yml index ea6c2f78..0d8a5a96 100644 --- a/teams/conda-incubator/conda-checkpoints.yml +++ b/teams/conda-incubator/conda-checkpoints.yml @@ -1,10 +1,12 @@ # yaml-language-server: $schema=../teams.schema.json -name: conda-incubator/conda-checkpoints +name: conda-checkpoints description: Maintainers of `conda-checkpoints` charter: dynamic requirements: -scopes: - codeowners: +resources: + teams: + - conda-incubator/conda-checkpoints + repos: - conda-incubator/conda-checkpoints other: links: diff --git a/teams/conda-incubator/conda-colab.yml b/teams/conda-incubator/conda-colab.yml index b0d53037..afe43d8c 100644 --- a/teams/conda-incubator/conda-colab.yml +++ b/teams/conda-incubator/conda-colab.yml @@ -1,10 +1,12 @@ # yaml-language-server: $schema=../teams.schema.json -name: conda-incubator/conda-colab +name: conda-colab description: Maintainers of `condacolab` charter: requirements: -scopes: - codeowners: +resources: + teams: + - conda-incubator/conda-colab + repos: - conda-incubator/condacolab other: links: diff --git a/teams/conda-incubator/conda-completions.yml b/teams/conda-incubator/conda-completions.yml index 3c7ef32b..c2823387 100644 --- a/teams/conda-incubator/conda-completions.yml +++ b/teams/conda-incubator/conda-completions.yml @@ -1,10 +1,12 @@ # yaml-language-server: $schema=../teams.schema.json -name: conda-incubator/conda-completions +name: conda-completions description: Maintainers of conda shell completions charter: requirements: -scopes: - codeowners: +resources: + teams: + - conda-incubator/conda-completions + repos: - conda-incubator/conda-zsh-completion other: links: diff --git a/teams/conda-incubator/conda-dot-org.yml b/teams/conda-incubator/conda-dot-org.yml index 53826a60..df89146d 100644 --- a/teams/conda-incubator/conda-dot-org.yml +++ b/teams/conda-incubator/conda-dot-org.yml @@ -1,10 +1,12 @@ # yaml-language-server: $schema=../teams.schema.json -name: conda-incubator/conda-dot-org +name: conda-dot-org description: Maintainers of the conda.org website charter: requirements: -scopes: - codeowners: [] +resources: + teams: + - conda-incubator/conda-dot-org + repos: [] other: links: members: diff --git a/teams/conda-incubator/conda-env-builder.yml b/teams/conda-incubator/conda-env-builder.yml index 34ec54ec..5aba25f1 100644 --- a/teams/conda-incubator/conda-env-builder.yml +++ b/teams/conda-incubator/conda-env-builder.yml @@ -1,10 +1,12 @@ # yaml-language-server: $schema=../teams.schema.json -name: conda-incubator/conda-env-builder +name: conda-env-builder description: Maintainers of `conda-env-builder` charter: requirements: -scopes: - codeowners: +resources: + teams: + - conda-incubator/conda-env-builder + repos: - conda-incubator/conda-env-builder other: links: diff --git a/teams/conda-incubator/conda-libmamba-solver.yml b/teams/conda-incubator/conda-libmamba-solver.yml index 7ec3bc66..7d48f10c 100644 --- a/teams/conda-incubator/conda-libmamba-solver.yml +++ b/teams/conda-incubator/conda-libmamba-solver.yml @@ -1,10 +1,12 @@ # yaml-language-server: $schema=../teams.schema.json -name: conda-incubator/conda-libmamba-solver +name: conda-libmamba-solver description: Maintainers of `conda-libmamba-solver` charter: requirements: -scopes: - codeowners: [] +resources: + teams: + - conda-incubator/conda-libmamba-solver + repos: [] other: links: - https://github.com/conda/conda/issues/15166 diff --git a/teams/conda-incubator/conda-lockfiles.yml b/teams/conda-incubator/conda-lockfiles.yml index f668a450..3b98ffb0 100644 --- a/teams/conda-incubator/conda-lockfiles.yml +++ b/teams/conda-incubator/conda-lockfiles.yml @@ -1,10 +1,12 @@ # yaml-language-server: $schema=../teams.schema.json -name: conda-incubator/conda-lockfiles +name: conda-lockfiles description: Maintainers of `conda-lockfiles` charter: requirements: -scopes: - codeowners: +resources: + teams: + - conda-incubator/conda-lockfiles + repos: - conda-incubator/conda-lockfiles other: links: diff --git a/teams/conda-incubator/conda-meta-mcp.yml b/teams/conda-incubator/conda-meta-mcp.yml index 9d54d5c0..7bda9f96 100644 --- a/teams/conda-incubator/conda-meta-mcp.yml +++ b/teams/conda-incubator/conda-meta-mcp.yml @@ -1,10 +1,12 @@ # yaml-language-server: $schema=../teams.schema.json -name: conda-incubator/conda-meta-mcp +name: conda-meta-mcp description: Maintainers of `conda-meta-mcp` charter: dynamic requirements: -scopes: - codeowners: +resources: + teams: + - conda-incubator/conda-meta-mcp + repos: - conda-incubator/conda-meta-mcp other: links: diff --git a/teams/conda-incubator/conda-mirror.yml b/teams/conda-incubator/conda-mirror.yml index d3e0eead..7d6a8476 100644 --- a/teams/conda-incubator/conda-mirror.yml +++ b/teams/conda-incubator/conda-mirror.yml @@ -1,10 +1,12 @@ # yaml-language-server: $schema=../teams.schema.json -name: conda-incubator/conda-mirror +name: conda-mirror description: Maintainers of `conda-mirror` charter: requirements: -scopes: - codeowners: +resources: + teams: + - conda-incubator/conda-mirror + repos: - conda-incubator/conda-mirror other: links: diff --git a/teams/conda-incubator/conda-oci.yml b/teams/conda-incubator/conda-oci.yml index 7888c356..7e47566f 100644 --- a/teams/conda-incubator/conda-oci.yml +++ b/teams/conda-incubator/conda-oci.yml @@ -1,10 +1,12 @@ # yaml-language-server: $schema=../teams.schema.json -name: conda-incubator/conda-oci +name: conda-oci description: Maintainers of `conda-oci` charter: requirements: -scopes: - codeowners: +resources: + teams: + - conda-incubator/conda-oci + repos: - conda-incubator/conda-oci other: links: diff --git a/teams/conda-incubator/conda-plugins.yml b/teams/conda-incubator/conda-plugins.yml index a671f1eb..451c0c8c 100644 --- a/teams/conda-incubator/conda-plugins.yml +++ b/teams/conda-incubator/conda-plugins.yml @@ -1,10 +1,12 @@ # yaml-language-server: $schema=../teams.schema.json -name: conda-incubator/conda-plugins +name: conda-plugins description: Maintainers of `conda-plugins` charter: requirements: -scopes: - codeowners: +resources: + teams: + - conda-incubator/conda-plugins + repos: - conda-incubator/conda-plugins other: links: diff --git a/teams/conda-incubator/conda-project.yml b/teams/conda-incubator/conda-project.yml index 9c426cdd..37a832e0 100644 --- a/teams/conda-incubator/conda-project.yml +++ b/teams/conda-incubator/conda-project.yml @@ -1,10 +1,12 @@ # yaml-language-server: $schema=../teams.schema.json -name: conda-incubator/conda-project +name: conda-project description: Maintainers of `conda-project` charter: requirements: -scopes: - codeowners: +resources: + teams: + - conda-incubator/conda-project + repos: - conda-incubator/conda-project other: links: diff --git a/teams/conda-incubator/conda-protect.yml b/teams/conda-incubator/conda-protect.yml index 677df72c..f960465f 100644 --- a/teams/conda-incubator/conda-protect.yml +++ b/teams/conda-incubator/conda-protect.yml @@ -1,10 +1,12 @@ # yaml-language-server: $schema=../teams.schema.json -name: conda-incubator/conda-protect +name: conda-protect description: Maintainers of `conda-protect` charter: dynamic requirements: -scopes: - codeowners: +resources: + teams: + - conda-incubator/conda-protect + repos: - conda-incubator/conda-protect other: links: diff --git a/teams/conda-incubator/conda-pypi.yml b/teams/conda-incubator/conda-pypi.yml index 5d22a91d..afe23ba8 100644 --- a/teams/conda-incubator/conda-pypi.yml +++ b/teams/conda-incubator/conda-pypi.yml @@ -1,10 +1,12 @@ # yaml-language-server: $schema=../teams.schema.json -name: conda-incubator/conda-pypi +name: conda-pypi description: Maintainers of `conda-pypi` charter: dynamic requirements: -scopes: - codeowners: +resources: + teams: + - conda-incubator/conda-pypi + repos: - conda-incubator/conda-pypi other: links: diff --git a/teams/conda-incubator/conda-rattler-solver.yml b/teams/conda-incubator/conda-rattler-solver.yml index 116e22da..4561ce2b 100644 --- a/teams/conda-incubator/conda-rattler-solver.yml +++ b/teams/conda-incubator/conda-rattler-solver.yml @@ -1,10 +1,12 @@ # yaml-language-server: $schema=../teams.schema.json -name: conda-incubator/conda-rattler-solver +name: conda-rattler-solver description: Maintainers of `conda-rattler-solver` charter: dynamic requirements: -scopes: - codeowners: +resources: + teams: + - conda-incubator/conda-rattler-solver + repos: - conda-incubator/conda-rattler-solver other: links: diff --git a/teams/conda-incubator/conda-rich.yml b/teams/conda-incubator/conda-rich.yml index fd30d79e..f8890e5a 100644 --- a/teams/conda-incubator/conda-rich.yml +++ b/teams/conda-incubator/conda-rich.yml @@ -1,10 +1,12 @@ # yaml-language-server: $schema=../teams.schema.json -name: conda-incubator/conda-rich +name: conda-rich description: Maintainers of `conda-rich` charter: dynamic requirements: -scopes: - codeowners: +resources: + teams: + - conda-incubator/conda-rich + repos: - conda-incubator/conda-rich other: links: diff --git a/teams/conda-incubator/conda-self.yml b/teams/conda-incubator/conda-self.yml index 75a7334b..5d4ecff6 100644 --- a/teams/conda-incubator/conda-self.yml +++ b/teams/conda-incubator/conda-self.yml @@ -1,10 +1,12 @@ # yaml-language-server: $schema=../teams.schema.json -name: conda-incubator/conda-self +name: conda-self description: Maintainers of `conda-self` charter: dynamic requirements: -scopes: - codeowners: +resources: + teams: + - conda-incubator/conda-self + repos: - conda-incubator/conda-self other: links: diff --git a/teams/conda-incubator/conda-sh.yml b/teams/conda-incubator/conda-sh.yml index 7973352b..703acdf8 100644 --- a/teams/conda-incubator/conda-sh.yml +++ b/teams/conda-incubator/conda-sh.yml @@ -1,10 +1,12 @@ # yaml-language-server: $schema=../teams.schema.json -name: conda-incubator/conda-sh +name: conda-sh description: Maintainers of the conda.sh website charter: requirements: -scopes: - codeowners: +resources: + teams: + - conda-incubator/conda-sh + repos: - conda-incubator/conda.sh other: links: diff --git a/teams/conda-incubator/conda-spawn.yml b/teams/conda-incubator/conda-spawn.yml index fcc3a3ef..8c3526b1 100644 --- a/teams/conda-incubator/conda-spawn.yml +++ b/teams/conda-incubator/conda-spawn.yml @@ -1,10 +1,12 @@ # yaml-language-server: $schema=../teams.schema.json -name: conda-incubator/conda-spawn +name: conda-spawn description: Maintainers of `conda-spawn` charter: dynamic requirements: -scopes: - codeowners: +resources: + teams: + - conda-incubator/conda-spawn + repos: - conda-incubator/conda-spawn other: links: diff --git a/teams/conda-incubator/conda-store.yml b/teams/conda-incubator/conda-store.yml index d009ff63..0e56ceb3 100644 --- a/teams/conda-incubator/conda-store.yml +++ b/teams/conda-incubator/conda-store.yml @@ -1,10 +1,12 @@ # yaml-language-server: $schema=../teams.schema.json -name: conda-incubator/conda-store +name: conda-store description: Maintainers of `conda-store` and related projects charter: dynamic requirements: -scopes: - codeowners: +resources: + teams: + - conda-incubator/conda-store + repos: - conda-incubator/conda-store - conda-incubator/conda-store-ui - conda-incubator/jupyterlab-conda-store diff --git a/teams/conda-incubator/conda-subchannel.yml b/teams/conda-incubator/conda-subchannel.yml index bb6485a7..00ee8ecb 100644 --- a/teams/conda-incubator/conda-subchannel.yml +++ b/teams/conda-incubator/conda-subchannel.yml @@ -1,10 +1,12 @@ # yaml-language-server: $schema=../teams.schema.json -name: conda-incubator/conda-subchannel +name: conda-subchannel description: Maintainers of `conda-subchannel` charter: dynamic requirements: -scopes: - codeowners: +resources: + teams: + - conda-incubator/conda-subchannel + repos: - conda-incubator/conda-subchannel other: links: diff --git a/teams/conda-incubator/conda-tree.yml b/teams/conda-incubator/conda-tree.yml index ca175bb1..d15d2046 100644 --- a/teams/conda-incubator/conda-tree.yml +++ b/teams/conda-incubator/conda-tree.yml @@ -1,10 +1,12 @@ # yaml-language-server: $schema=../teams.schema.json -name: conda-incubator/conda-tree +name: conda-tree description: Maintainers of `conda-tree` charter: project requirements: -scopes: - codeowners: +resources: + teams: + - conda-incubator/conda-tree + repos: - conda-incubator/conda-tree other: links: diff --git a/teams/conda-incubator/conda-tui.yml b/teams/conda-incubator/conda-tui.yml index 769a8d2c..d2f5749e 100644 --- a/teams/conda-incubator/conda-tui.yml +++ b/teams/conda-incubator/conda-tui.yml @@ -1,10 +1,12 @@ # yaml-language-server: $schema=../teams.schema.json -name: conda-incubator/conda-tui +name: conda-tui description: Maintainers of `conda-tui` charter: dynamic requirements: -scopes: - codeowners: +resources: + teams: + - conda-incubator/conda-tui + repos: - conda-incubator/conda-tui other: links: diff --git a/teams/conda-incubator/conda-tutorial.yml b/teams/conda-incubator/conda-tutorial.yml index 47df7045..3e399fc4 100644 --- a/teams/conda-incubator/conda-tutorial.yml +++ b/teams/conda-incubator/conda-tutorial.yml @@ -1,10 +1,12 @@ # yaml-language-server: $schema=../teams.schema.json -name: conda-incubator/conda-tutorial +name: conda-tutorial description: Maintainers of the `conda-tutorial` repository charter: requirements: -scopes: - codeowners: +resources: + teams: + - conda-incubator/conda-tutorial + repos: - conda-incubator/conda-tutorial other: links: diff --git a/teams/conda-incubator/condastats.yml b/teams/conda-incubator/condastats.yml index 66cd3839..628e65b0 100644 --- a/teams/conda-incubator/condastats.yml +++ b/teams/conda-incubator/condastats.yml @@ -1,10 +1,12 @@ # yaml-language-server: $schema=../teams.schema.json -name: conda-incubator/condastats +name: condastats description: Maintainers of `condastats` charter: requirements: -scopes: - codeowners: +resources: + teams: + - conda-incubator/condastats + repos: - conda-incubator/condastats other: links: diff --git a/teams/conda-incubator/constructor.yml b/teams/conda-incubator/constructor.yml index c910bb50..97d4e754 100644 --- a/teams/conda-incubator/constructor.yml +++ b/teams/conda-incubator/constructor.yml @@ -1,10 +1,12 @@ # yaml-language-server: $schema=../teams.schema.json -name: conda-incubator/constructor +name: constructor description: charter: requirements: -scopes: - codeowners: [] +resources: + teams: + - conda-incubator/constructor + repos: [] other: links: - https://github.com/conda/governance/issues/53 diff --git a/teams/conda-incubator/content.yml b/teams/conda-incubator/content.yml index 9c6afaf0..604c4e39 100644 --- a/teams/conda-incubator/content.yml +++ b/teams/conda-incubator/content.yml @@ -1,10 +1,12 @@ # yaml-language-server: $schema=../teams.schema.json -name: conda-incubator/content +name: content description: charter: requirements: -scopes: - codeowners: [] +resources: + teams: + - conda-incubator/content + repos: [] other: links: members: diff --git a/teams/conda-incubator/design.yml b/teams/conda-incubator/design.yml index 9de38d03..178167ce 100644 --- a/teams/conda-incubator/design.yml +++ b/teams/conda-incubator/design.yml @@ -1,10 +1,12 @@ # yaml-language-server: $schema=../teams.schema.json -name: conda-incubator/design +name: design description: charter: requirements: -scopes: - codeowners: [] +resources: + teams: + - conda-incubator/design + repos: [] other: links: members: diff --git a/teams/conda-incubator/docs.yml b/teams/conda-incubator/docs.yml index 7be568da..d69c739a 100644 --- a/teams/conda-incubator/docs.yml +++ b/teams/conda-incubator/docs.yml @@ -1,10 +1,12 @@ # yaml-language-server: $schema=../teams.schema.json -name: conda-incubator/docs +name: docs description: Maintainers of common documentation infrastructure charter: requirements: -scopes: - codeowners: +resources: + teams: + - conda-incubator/docs + repos: - conda-incubator/conda-sphinx-theme other: links: diff --git a/teams/conda-incubator/fetch.yml b/teams/conda-incubator/fetch.yml index ecfd4c4b..0eead9b2 100644 --- a/teams/conda-incubator/fetch.yml +++ b/teams/conda-incubator/fetch.yml @@ -1,10 +1,12 @@ # yaml-language-server: $schema=../teams.schema.json -name: conda-incubator/fetch +name: fetch description: charter: requirements: -scopes: - codeowners: +resources: + teams: + - conda-incubator/fetch + repos: - conda-incubator/conda-auth other: links: diff --git a/teams/conda-incubator/hatch-conda-build.yml b/teams/conda-incubator/hatch-conda-build.yml index 2660e8dc..916e8a80 100644 --- a/teams/conda-incubator/hatch-conda-build.yml +++ b/teams/conda-incubator/hatch-conda-build.yml @@ -1,10 +1,12 @@ # yaml-language-server: $schema=../teams.schema.json -name: conda-incubator/hatch-conda-build +name: hatch-conda-build description: Maintainers of the `hatch-conda-build` plugin charter: requirements: -scopes: - codeowners: +resources: + teams: + - conda-incubator/hatch-conda-build + repos: - conda-incubator/hatch-conda-build other: links: diff --git a/teams/conda-incubator/implementation.yml b/teams/conda-incubator/implementation.yml index 156b4a58..b7d74804 100644 --- a/teams/conda-incubator/implementation.yml +++ b/teams/conda-incubator/implementation.yml @@ -1,10 +1,12 @@ # yaml-language-server: $schema=../teams.schema.json -name: conda-incubator/implementation +name: implementation description: charter: requirements: -scopes: - codeowners: [] +resources: + teams: + - conda-incubator/implementation + repos: [] other: links: members: diff --git a/teams/conda-incubator/infrastructure.yml b/teams/conda-incubator/infrastructure.yml index e4270658..ce12ae3a 100644 --- a/teams/conda-incubator/infrastructure.yml +++ b/teams/conda-incubator/infrastructure.yml @@ -1,10 +1,12 @@ # yaml-language-server: $schema=../teams.schema.json -name: conda-incubator/infrastructure +name: infrastructure description: charter: requirements: -scopes: - codeowners: [] +resources: + teams: + - conda-incubator/infrastructure + repos: [] other: links: members: diff --git a/teams/conda-incubator/installer.yml b/teams/conda-incubator/installer.yml index 8e1a6a85..f093edc5 100644 --- a/teams/conda-incubator/installer.yml +++ b/teams/conda-incubator/installer.yml @@ -1,10 +1,12 @@ # yaml-language-server: $schema=../teams.schema.json -name: conda-incubator/installer +name: installer description: Maintainers of the `installer` Github Action charter: requirements: -scopes: - codeowners: +resources: + teams: + - conda-incubator/installer + repos: - conda-incubator/installer other: links: diff --git a/teams/conda-incubator/nvidia-virtual-packages.yml b/teams/conda-incubator/nvidia-virtual-packages.yml index 0d928451..9184faa2 100644 --- a/teams/conda-incubator/nvidia-virtual-packages.yml +++ b/teams/conda-incubator/nvidia-virtual-packages.yml @@ -1,10 +1,12 @@ # yaml-language-server: $schema=../teams.schema.json -name: conda-incubator/nvidia-virtual-packages +name: nvidia-virtual-packages description: Maintainers of virtual packages related to Nvidia charter: dynamic requirements: -scopes: - codeowners: +resources: + teams: + - conda-incubator/nvidia-virtual-packages + repos: - conda-incubator/nvidia-virtual-packages other: links: diff --git a/teams/conda-incubator/pre-commit.yml b/teams/conda-incubator/pre-commit.yml index 16824c6b..b72f7281 100644 --- a/teams/conda-incubator/pre-commit.yml +++ b/teams/conda-incubator/pre-commit.yml @@ -1,10 +1,12 @@ # yaml-language-server: $schema=../teams.schema.json -name: conda-incubator/pre-commit +name: pre-commit description: Maintainers of conda-based pre-commit hooks charter: dynamic requirements: -scopes: - codeowners: +resources: + teams: + - conda-incubator/pre-commit + repos: - conda-incubator/pre-commit-mirrors-black - conda-incubator/pre-commit-mirrors-flake8 - conda-incubator/pre-commit-mirrors-mypy diff --git a/teams/conda-incubator/rattler.yml b/teams/conda-incubator/rattler.yml index 7451b287..89acc584 100644 --- a/teams/conda-incubator/rattler.yml +++ b/teams/conda-incubator/rattler.yml @@ -1,10 +1,12 @@ # yaml-language-server: $schema=../teams.schema.json -name: conda-incubator/rattler +name: rattler description: charter: requirements: -scopes: - codeowners: [] +resources: + teams: + - conda-incubator/rattler + repos: [] other: links: members: diff --git a/teams/conda-incubator/relock-conda.yml b/teams/conda-incubator/relock-conda.yml index 48f7cf45..36712121 100644 --- a/teams/conda-incubator/relock-conda.yml +++ b/teams/conda-incubator/relock-conda.yml @@ -1,10 +1,12 @@ # yaml-language-server: $schema=../teams.schema.json -name: conda-incubator/relock-conda +name: relock-conda description: Maintainers of `relock-conda` charter: requirements: -scopes: - codeowners: +resources: + teams: + - conda-incubator/relock-conda + repos: - conda-incubator/relock-conda other: links: diff --git a/teams/conda-incubator/setup-miniconda.yml b/teams/conda-incubator/setup-miniconda.yml index 1eac0b4d..56dad47c 100644 --- a/teams/conda-incubator/setup-miniconda.yml +++ b/teams/conda-incubator/setup-miniconda.yml @@ -1,10 +1,12 @@ # yaml-language-server: $schema=../teams.schema.json -name: conda-incubator/setup-miniconda +name: setup-miniconda description: Maintainers of the setup-miniconda action charter: requirements: -scopes: - codeowners: +resources: + teams: + - conda-incubator/setup-miniconda + repos: - conda-incubator/setup-miniconda - conda-incubator/setup-miniforge other: diff --git a/teams/conda-incubator/shells.yml b/teams/conda-incubator/shells.yml index ce8f9052..f27b89cc 100644 --- a/teams/conda-incubator/shells.yml +++ b/teams/conda-incubator/shells.yml @@ -1,10 +1,12 @@ # yaml-language-server: $schema=../teams.schema.json -name: conda-incubator/shells +name: shells description: Maintainers of conda-shell and other shell-related projects charter: requirements: -scopes: - codeowners: +resources: + teams: + - conda-incubator/shells + repos: - conda-incubator/conda-shell other: links: diff --git a/teams/conda-incubator/steering-council.yml b/teams/conda-incubator/steering-council.yml index 83279426..19b4cb4b 100644 --- a/teams/conda-incubator/steering-council.yml +++ b/teams/conda-incubator/steering-council.yml @@ -1,10 +1,12 @@ # yaml-language-server: $schema=../teams.schema.json -name: conda-incubator/steering-council +name: steering-council description: charter: requirements: -scopes: - codeowners: [] +resources: + teams: + - conda-incubator/steering-council + repos: [] other: links: members: diff --git a/teams/conda/anaconda.yml b/teams/conda/anaconda.yml index b5e02d79..6734dad0 100644 --- a/teams/conda/anaconda.yml +++ b/teams/conda/anaconda.yml @@ -1,10 +1,12 @@ # yaml-language-server: $schema=../teams.schema.json -name: conda/anaconda +name: anaconda description: People working at Anaconda. charter: dynamic requirements: Members must be employed by Anaconda. -scopes: - codeowners: +resources: + teams: + - conda/anaconda + repos: - conda/conda-planning other: links: diff --git a/teams/conda/builds-tools.yml b/teams/conda/builds-tools.yml index b19a52ef..f36b7522 100644 --- a/teams/conda/builds-tools.yml +++ b/teams/conda/builds-tools.yml @@ -1,11 +1,13 @@ # yaml-language-server: $schema=../teams.schema.json -name: conda/builds-tools +name: builds-tools description: Team to work on conda-build and other build tools in the conda ecosystem charter: project requirements: -scopes: - codeowners: +resources: + teams: + - conda/builds-tools + repos: - conda-incubator/conda-recipe-manager - conda/conda-build other: diff --git a/teams/conda/ceps.yml b/teams/conda/ceps.yml index e7fd6c0d..9b190dfd 100644 --- a/teams/conda/ceps.yml +++ b/teams/conda/ceps.yml @@ -1,10 +1,12 @@ # yaml-language-server: $schema=../teams.schema.json -name: conda/ceps +name: ceps description: Editorial team for CEPs charter: requirements: -scopes: - codeowners: +resources: + teams: + - conda/ceps + repos: - conda/ceps other: links: diff --git a/teams/conda/cla-reviewers.yml b/teams/conda/cla-reviewers.yml index 7cc38899..231e196f 100644 --- a/teams/conda/cla-reviewers.yml +++ b/teams/conda/cla-reviewers.yml @@ -1,11 +1,13 @@ # yaml-language-server: $schema=../teams.schema.json -name: conda/cla-reviewers +name: cla-reviewers description: The team reviewing incoming CLA documents charter: static requirements: All team members must only consist of steering council members for compliance reasons. -scopes: - codeowners: +resources: + teams: + - conda/cla-reviewers + repos: - conda/cla other: links: diff --git a/teams/conda/coc-committee.yml b/teams/conda/coc-committee.yml index 8dad7366..4917a322 100644 --- a/teams/conda/coc-committee.yml +++ b/teams/conda/coc-committee.yml @@ -1,10 +1,12 @@ # yaml-language-server: $schema=../teams.schema.json -name: conda/coc-committee +name: coc-committee description: The Code of Conduct Committee charter: dynamic requirements: -scopes: - codeowners: +resources: + teams: + - conda/coc-committee + repos: other: - https://github.com/conda-conduct - https://conda.zulipchat.com/#narrow/channel/469892-code-of-conduct # private diff --git a/teams/conda/communications.yml b/teams/conda/communications.yml index e0f520af..b36bf433 100644 --- a/teams/conda/communications.yml +++ b/teams/conda/communications.yml @@ -1,10 +1,12 @@ # yaml-language-server: $schema=../teams.schema.json -name: conda/communications +name: communications description: Handles communications across the organization charter: dynamic requirements: -scopes: - codeowners: +resources: + teams: + - conda/communications + repos: - conda/communications other: - https://conda.discourse.group/ diff --git a/teams/conda/community-contributors.yml b/teams/conda/community-contributors.yml index 67d052a9..c09b45d2 100644 --- a/teams/conda/community-contributors.yml +++ b/teams/conda/community-contributors.yml @@ -1,10 +1,12 @@ # yaml-language-server: $schema=../teams.schema.json -name: conda/community-contributors +name: community-contributors description: charter: requirements: -scopes: - codeowners: +resources: + teams: + - conda/community-contributors + repos: - conda/conda-build - conda/conda-docs - conda/conda-pack diff --git a/teams/conda/conda-core.yml b/teams/conda/conda-core.yml index a4c968e4..33d135aa 100644 --- a/teams/conda/conda-core.yml +++ b/teams/conda/conda-core.yml @@ -1,10 +1,12 @@ # yaml-language-server: $schema=../teams.schema.json -name: conda/conda-core +name: conda-core description: charter: requirements: -scopes: - codeowners: +resources: + teams: + - conda/conda-core + repos: - conda/menuinst - conda/pycosat - conda/conda-build diff --git a/teams/conda/conda-dot-org.yml b/teams/conda/conda-dot-org.yml index 104fa991..7ec5fdc5 100644 --- a/teams/conda/conda-dot-org.yml +++ b/teams/conda/conda-dot-org.yml @@ -1,10 +1,12 @@ # yaml-language-server: $schema=../teams.schema.json -name: conda/conda-dot-org +name: conda-dot-org description: Team responsible for the conda.org website maintenance charter: dynamic requirements: -scopes: - codeowners: +resources: + teams: + - conda/conda-dot-org + repos: - conda/conda-dot-org other: links: diff --git a/teams/conda/conda-index.yml b/teams/conda/conda-index.yml index 16897970..d5483cf8 100644 --- a/teams/conda/conda-index.yml +++ b/teams/conda/conda-index.yml @@ -1,10 +1,12 @@ # yaml-language-server: $schema=../teams.schema.json -name: conda/conda-index +name: conda-index description: Maintainers of conda-index charter: project requirements: -scopes: - codeowners: +resources: + teams: + - conda/conda-index + repos: - conda/conda-index other: links: diff --git a/teams/conda/conda-lock.yml b/teams/conda/conda-lock.yml index 19d58a70..4cf0cbb1 100644 --- a/teams/conda/conda-lock.yml +++ b/teams/conda/conda-lock.yml @@ -1,10 +1,12 @@ # yaml-language-server: $schema=../teams.schema.json -name: conda/conda-lock +name: conda-lock description: Maintainers of conda-lock charter: project requirements: -scopes: - codeowners: +resources: + teams: + - conda/conda-lock + repos: - conda/conda-lock other: links: diff --git a/teams/conda/conda-maintainers-project-management.yml b/teams/conda/conda-maintainers-project-management.yml index b0f1ed0b..a633bb2b 100644 --- a/teams/conda/conda-maintainers-project-management.yml +++ b/teams/conda/conda-maintainers-project-management.yml @@ -1,11 +1,13 @@ # yaml-language-server: $schema=../teams.schema.json -name: conda/conda-maintainers-project-management +name: conda-maintainers-project-management description: Support team for @conda/conda-maintainers, with triage permissions only charter: dynamic requirements: -scopes: - codeowners: [] +resources: + teams: + - conda/conda-maintainers-project-management + repos: [] other: links: members: diff --git a/teams/conda/conda-maintainers.yml b/teams/conda/conda-maintainers.yml index 25a1f75d..016e6bbe 100644 --- a/teams/conda/conda-maintainers.yml +++ b/teams/conda/conda-maintainers.yml @@ -1,10 +1,12 @@ # yaml-language-server: $schema=../teams.schema.json -name: conda/conda-maintainers +name: conda-maintainers description: Maintainers of `conda` and related core plugins charter: project requirements: -scopes: - codeowners: +resources: + teams: + - conda/conda-maintainers + repos: - conda/conda - conda/conda-libmamba-solver - conda/conda-classic-solver diff --git a/teams/conda/constructor.yml b/teams/conda/constructor.yml index 55d91604..7bfb343f 100644 --- a/teams/conda/constructor.yml +++ b/teams/conda/constructor.yml @@ -1,10 +1,12 @@ # yaml-language-server: $schema=../teams.schema.json -name: conda/constructor +name: constructor description: The team maintaining constructor and related projects charter: project requirements: -scopes: - codeowners: +resources: + teams: + - conda/constructor + repos: - conda/conda-pack - conda/constructor - conda/menuinst diff --git a/teams/conda/distribution-contractors.yml b/teams/conda/distribution-contractors.yml index 28057a6a..bfbe81b8 100644 --- a/teams/conda/distribution-contractors.yml +++ b/teams/conda/distribution-contractors.yml @@ -1,10 +1,12 @@ # yaml-language-server: $schema=../teams.schema.json -name: conda/distribution-contractors +name: distribution-contractors description: charter: requirements: -scopes: - codeowners: [] +resources: + teams: + - conda/distribution-contractors + repos: [] other: links: members: diff --git a/teams/conda/docs.yml b/teams/conda/docs.yml index 7bd0ba65..5efcc568 100644 --- a/teams/conda/docs.yml +++ b/teams/conda/docs.yml @@ -1,10 +1,12 @@ # yaml-language-server: $schema=../teams.schema.json -name: conda/docs +name: docs description: The team working on all-things docs charter: project requirements: -scopes: - codeowners: +resources: + teams: + - conda/docs + repos: - conda/conda - conda/conda-build - conda/conda-docs diff --git a/teams/conda/grayskull.yml b/teams/conda/grayskull.yml index 4c14efac..66c36dec 100644 --- a/teams/conda/grayskull.yml +++ b/teams/conda/grayskull.yml @@ -1,10 +1,12 @@ # yaml-language-server: $schema=../teams.schema.json -name: conda/grayskull +name: grayskull description: Maintainers of `grayskull` charter: project requirements: -scopes: - codeowners: +resources: + teams: + - conda/grayskull + repos: - conda/grayskull other: links: diff --git a/teams/conda/infrastructure.yml b/teams/conda/infrastructure.yml index 5ab8a95e..1c734280 100644 --- a/teams/conda/infrastructure.yml +++ b/teams/conda/infrastructure.yml @@ -1,10 +1,12 @@ # yaml-language-server: $schema=../teams.schema.json -name: conda/infrastructure +name: infrastructure description: The team working on conda community infrastructure charter: static requirements: Any steering council member may join without approval -scopes: - codeowners: +resources: + teams: + - conda/infrastructure + repos: - conda/.github - conda/actions - conda/infrastructure diff --git a/teams/conda/packaging-tools.yml b/teams/conda/packaging-tools.yml index 8b3bcc16..99eec172 100644 --- a/teams/conda/packaging-tools.yml +++ b/teams/conda/packaging-tools.yml @@ -1,10 +1,12 @@ # yaml-language-server: $schema=../teams.schema.json -name: conda/packaging-tools +name: packaging-tools description: Maintainers of conda-package-handling and related projects charter: project requirements: -scopes: - codeowners: +resources: + teams: + - conda/packaging-tools + repos: - conda/conda-package-handling - conda/conda-package-streaming other: diff --git a/teams/conda/prefix-dev.yml b/teams/conda/prefix-dev.yml index 5bce41b6..d49a4f71 100644 --- a/teams/conda/prefix-dev.yml +++ b/teams/conda/prefix-dev.yml @@ -1,10 +1,12 @@ # yaml-language-server: $schema=../teams.schema.json -name: conda/prefix-dev +name: prefix-dev description: Contributors working for Prefix.dev charter: dynamic requirements: Being employed by Prefix.dev -scopes: - codeowners: [] +resources: + teams: + - conda/prefix-dev + repos: [] other: links: - https://github.com/conda/governance/issues/226 diff --git a/teams/conda/quansight.yml b/teams/conda/quansight.yml index a29fa7d1..0e006adb 100644 --- a/teams/conda/quansight.yml +++ b/teams/conda/quansight.yml @@ -1,10 +1,12 @@ # yaml-language-server: $schema=../teams.schema.json -name: conda/quansight +name: quansight description: Contributors working for Quansight charter: dynamic requirements: -scopes: - codeowners: +resources: + teams: + - conda/quansight + repos: - conda/menuinst - conda/constructor - conda/conda-planning diff --git a/teams/conda/rattler.yml b/teams/conda/rattler.yml index 33d041cb..a6f0ee49 100644 --- a/teams/conda/rattler.yml +++ b/teams/conda/rattler.yml @@ -1,10 +1,12 @@ # yaml-language-server: $schema=../teams.schema.json -name: conda/rattler +name: rattler description: Maintainers of `rattler` charter: dynamic requirements: -scopes: - codeowners: +resources: + teams: + - conda/rattler + repos: - conda/rattler other: links: diff --git a/teams/conda/steering-council.yml b/teams/conda/steering-council.yml index a9869344..ae078dfd 100644 --- a/teams/conda/steering-council.yml +++ b/teams/conda/steering-council.yml @@ -1,10 +1,12 @@ # yaml-language-server: $schema=../teams.schema.json -name: conda/steering-council +name: steering-council description: Steering council of the conda ecosystem charter: static requirements: -scopes: - codeowners: +resources: + teams: + - conda/steering-council + repos: - conda/governance - conda/assets - conda/ceps diff --git a/teams/conda/steering-emeritus.yml b/teams/conda/steering-emeritus.yml index b277dcf3..ade21569 100644 --- a/teams/conda/steering-emeritus.yml +++ b/teams/conda/steering-emeritus.yml @@ -1,10 +1,12 @@ # yaml-language-server: $schema=../teams.schema.json -name: conda/steering-emeritus +name: steering-emeritus description: Former members of the steering council charter: static requirements: -scopes: - codeowners: +resources: + teams: + - conda/steering-emeritus + repos: - conda/governance - conda/assets - conda/ceps diff --git a/teams/teams.schema.json b/teams/teams.schema.json index deffc07e..13af8748 100644 --- a/teams/teams.schema.json +++ b/teams/teams.schema.json @@ -83,11 +83,11 @@ "title": "MemberDetails", "type": "object" }, - "Scopes": { + "Resources": { "additionalProperties": false, "description": "Defines the responsibilities of a Conda sub-team.\nThis structure is nested within the main CondaSubTeam model.", "properties": { - "codeowners": { + "teams": { "anyOf": [ { "items": { @@ -99,7 +99,21 @@ "type": "null" } ], - "title": "Codeowners" + "title": "Teams" + }, + "repos": { + "anyOf": [ + { + "items": { + "type": "string" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "title": "Repos" }, "other": { "anyOf": [ @@ -120,10 +134,11 @@ } }, "required": [ - "codeowners", + "teams", + "repos", "other" ], - "title": "Scopes", + "title": "Resources", "type": "object" } }, @@ -160,8 +175,8 @@ ], "title": "Requirements" }, - "scopes": { - "$ref": "#/$defs/Scopes" + "resources": { + "$ref": "#/$defs/Resources" }, "links": { "items": { @@ -235,7 +250,7 @@ "description", "charter", "requirements", - "scopes", + "resources", "links", "members", "emeritus" From e93bf25f1743286e06ec54ba95bfd90e2bf6deed Mon Sep 17 00:00:00 2001 From: jaimergp Date: Tue, 2 Dec 2025 12:27:11 +0100 Subject: [PATCH 32/38] Allow a governance team to span several Github teams --- .pre-commit-config.yaml | 4 +- scripts/check_teams.py | 179 +++++++++++------- scripts/schemas.py | 27 ++- scripts/sort_team_yaml.py | 5 +- teams/{conda => }/anaconda.yml | 2 +- teams/{conda-incubator => }/bots.yml | 5 +- teams/{conda => }/builds-tools.yml | 10 +- teams/{conda => }/ceps.yml | 3 +- teams/{conda => }/cla-reviewers.yml | 5 +- teams/{conda => }/coc-committee.yml | 3 +- teams/{conda => }/communications.yml | 2 +- teams/{conda => }/community-contributors.yml | 2 +- .../conda-checkpoints.yml | 2 +- teams/{conda-incubator => }/conda-colab.yml | 2 +- .../conda-completions.yml | 2 +- teams/{conda => }/conda-core.yml | 2 +- teams/{conda => }/conda-dot-org.yml | 3 +- .../conda-env-builder.yml | 2 +- teams/conda-incubator/builds-tools.yml | 31 --- teams/conda-incubator/ceps.yml | 17 -- teams/conda-incubator/code-of-conduct.yml | 20 -- teams/conda-incubator/conda-dot-org.yml | 29 --- teams/conda-incubator/constructor.yml | 25 --- teams/conda-incubator/docs.yml | 17 -- teams/conda-incubator/infrastructure.yml | 18 -- teams/conda-incubator/rattler.yml | 18 -- teams/conda-incubator/steering-council.yml | 44 ----- teams/{conda => }/conda-index.yml | 2 +- .../conda-libmamba-solver.yml | 2 +- teams/{conda => }/conda-lock.yml | 2 +- .../{conda-incubator => }/conda-lockfiles.yml | 2 +- .../conda-maintainers-project-management.yml | 5 +- teams/{conda => }/conda-maintainers.yml | 2 +- .../{conda-incubator => }/conda-meta-mcp.yml | 2 +- teams/{conda-incubator => }/conda-mirror.yml | 2 +- teams/{conda-incubator => }/conda-oci.yml | 2 +- teams/{conda-incubator => }/conda-plugins.yml | 2 +- teams/{conda-incubator => }/conda-project.yml | 2 +- teams/{conda-incubator => }/conda-protect.yml | 2 +- teams/{conda-incubator => }/conda-pypi.yml | 2 +- .../conda-rattler-solver.yml | 2 +- teams/{conda-incubator => }/conda-rich.yml | 2 +- teams/{conda-incubator => }/conda-self.yml | 2 +- teams/{conda-incubator => }/conda-sh.yml | 2 +- teams/{conda-incubator => }/conda-spawn.yml | 2 +- teams/{conda-incubator => }/conda-store.yml | 2 +- .../conda-subchannel.yml | 2 +- teams/{conda-incubator => }/conda-tree.yml | 2 +- teams/{conda-incubator => }/conda-tui.yml | 2 +- .../{conda-incubator => }/conda-tutorial.yml | 2 +- teams/{conda-incubator => }/condastats.yml | 2 +- teams/{conda => }/constructor.yml | 3 +- teams/{conda-incubator => }/content.yml | 2 +- teams/{conda-incubator => }/design.yml | 2 +- .../{conda => }/distribution-contractors.yml | 2 +- teams/{conda => }/docs.yml | 4 +- teams/{conda-incubator => }/fetch.yml | 2 +- teams/{conda => }/grayskull.yml | 2 +- .../hatch-conda-build.yml | 2 +- .../{conda-incubator => }/implementation.yml | 2 +- teams/{conda => }/infrastructure.yml | 3 +- teams/{conda-incubator => }/installer.yml | 2 +- .../nvidia-virtual-packages.yml | 2 +- teams/{conda => }/packaging-tools.yml | 2 +- teams/{conda-incubator => }/pre-commit.yml | 2 +- teams/{conda => }/prefix-dev.yml | 2 +- teams/{conda => }/quansight.yml | 2 +- teams/{conda => }/rattler.yml | 3 +- teams/{conda-incubator => }/relock-conda.yml | 2 +- .../{conda-incubator => }/setup-miniconda.yml | 2 +- teams/{conda-incubator => }/shells.yml | 2 +- teams/{conda => }/steering-council.yml | 6 +- teams/{conda => }/steering-emeritus.yml | 2 +- teams/teams.schema.json | 3 + 74 files changed, 212 insertions(+), 374 deletions(-) rename teams/{conda => }/anaconda.yml (94%) rename teams/{conda-incubator => }/bots.yml (76%) rename teams/{conda => }/builds-tools.yml (88%) rename teams/{conda => }/ceps.yml (72%) rename teams/{conda => }/cla-reviewers.yml (85%) rename teams/{conda => }/coc-committee.yml (92%) rename teams/{conda => }/communications.yml (93%) rename teams/{conda => }/community-contributors.yml (83%) rename teams/{conda-incubator => }/conda-checkpoints.yml (85%) rename teams/{conda-incubator => }/conda-colab.yml (81%) rename teams/{conda-incubator => }/conda-completions.yml (83%) rename teams/{conda => }/conda-core.yml (93%) rename teams/{conda => }/conda-dot-org.yml (88%) rename teams/{conda-incubator => }/conda-env-builder.yml (82%) delete mode 100644 teams/conda-incubator/builds-tools.yml delete mode 100644 teams/conda-incubator/ceps.yml delete mode 100644 teams/conda-incubator/code-of-conduct.yml delete mode 100644 teams/conda-incubator/conda-dot-org.yml delete mode 100644 teams/conda-incubator/constructor.yml delete mode 100644 teams/conda-incubator/docs.yml delete mode 100644 teams/conda-incubator/infrastructure.yml delete mode 100644 teams/conda-incubator/rattler.yml delete mode 100644 teams/conda-incubator/steering-council.yml rename teams/{conda => }/conda-index.yml (90%) rename teams/{conda-incubator => }/conda-libmamba-solver.yml (85%) rename teams/{conda => }/conda-lock.yml (86%) rename teams/{conda-incubator => }/conda-lockfiles.yml (85%) rename teams/{conda => }/conda-maintainers-project-management.yml (80%) rename teams/{conda => }/conda-maintainers.yml (95%) rename teams/{conda-incubator => }/conda-meta-mcp.yml (88%) rename teams/{conda-incubator => }/conda-mirror.yml (85%) rename teams/{conda-incubator => }/conda-oci.yml (81%) rename teams/{conda-incubator => }/conda-plugins.yml (83%) rename teams/{conda-incubator => }/conda-project.yml (85%) rename teams/{conda-incubator => }/conda-protect.yml (88%) rename teams/{conda-incubator => }/conda-pypi.yml (93%) rename teams/{conda-incubator => }/conda-rattler-solver.yml (89%) rename teams/{conda-incubator => }/conda-rich.yml (88%) rename teams/{conda-incubator => }/conda-self.yml (89%) rename teams/{conda-incubator => }/conda-sh.yml (82%) rename teams/{conda-incubator => }/conda-spawn.yml (86%) rename teams/{conda-incubator => }/conda-store.yml (94%) rename teams/{conda-incubator => }/conda-subchannel.yml (88%) rename teams/{conda-incubator => }/conda-tree.yml (86%) rename teams/{conda-incubator => }/conda-tui.yml (87%) rename teams/{conda-incubator => }/conda-tutorial.yml (84%) rename teams/{conda-incubator => }/condastats.yml (81%) rename teams/{conda => }/constructor.yml (93%) rename teams/{conda-incubator => }/content.yml (81%) rename teams/{conda-incubator => }/design.yml (82%) rename teams/{conda => }/distribution-contractors.yml (81%) rename teams/{conda => }/docs.yml (80%) rename teams/{conda-incubator => }/fetch.yml (80%) rename teams/{conda => }/grayskull.yml (85%) rename teams/{conda-incubator => }/hatch-conda-build.yml (84%) rename teams/{conda-incubator => }/implementation.yml (84%) rename teams/{conda => }/infrastructure.yml (90%) rename teams/{conda-incubator => }/installer.yml (86%) rename teams/{conda-incubator => }/nvidia-virtual-packages.yml (89%) rename teams/{conda => }/packaging-tools.yml (93%) rename teams/{conda-incubator => }/pre-commit.yml (97%) rename teams/{conda => }/prefix-dev.yml (92%) rename teams/{conda => }/quansight.yml (91%) rename teams/{conda => }/rattler.yml (86%) rename teams/{conda-incubator => }/relock-conda.yml (81%) rename teams/{conda-incubator => }/setup-miniconda.yml (86%) rename teams/{conda-incubator => }/shells.yml (83%) rename teams/{conda => }/steering-council.yml (94%) rename teams/{conda => }/steering-emeritus.yml (98%) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index e286d604..7ea6ba66 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -57,7 +57,7 @@ repos: rev: v2.4.1 hooks: - id: codespell - exclude: ^teams/.*/.*\.ya?ml$ + exclude: ^teams/.*\.ya?ml$ exclude_types: - csv args: [--write-changes] @@ -72,7 +72,7 @@ repos: name: Check ordering in teams/**/*.yml language: python entry: python scripts/sort_team_yaml.py - files: ^teams/.*/.*\.ya?ml$ + files: ^teams/.*\.ya?ml$ additional_dependencies: [ruamel.yaml, email-validator, pydantic] - id: git-diff name: git diff diff --git a/scripts/check_teams.py b/scripts/check_teams.py index 845f9086..660b5088 100644 --- a/scripts/check_teams.py +++ b/scripts/check_teams.py @@ -14,6 +14,7 @@ # "requests", # "ruamel.yaml", # ] + import os import sys from itertools import chain @@ -29,17 +30,22 @@ yaml.indent(mapping=2, sequence=4, offset=2) -def eprint(*args, **kwargs): +def eprint(*args, indent=0, **kwargs): kwargs.setdefault("file", sys.stderr) - print(*args, **kwargs) + if indent: + print(indent * " ", *args, **kwargs) + else: + print(*args, **kwargs) -def report_diff(field: str, **entries: str | list[str]): +def report_diff(field: str, indent: int = 2, **entries: str | list[str]): if len(entries) != 2: raise ValueError("Must pass exactly two keyword arguments") names = list(entries.keys()) values = list(entries.values()) - eprint(f"Contents for {field} in {names[0]} do not match {names[1]}:") + eprint( + f"! Contents for {field} in {names[0]} do not match {names[1]}:", indent=indent + ) values0 = ( [str(val) for val in values[0]] if isinstance(values[0], (list, tuple)) @@ -50,19 +56,15 @@ def report_diff(field: str, **entries: str | list[str]): if isinstance(values[1], (list, tuple)) else [values[1] or ""] ) - eprint(f"{names[0]}:", values0) - eprint(f"{names[1]}:", values1) - eprint( - "Diff:", - *unified_diff( - values0, - values1, - fromfile=names[0], - tofile=names[1], - ), - sep="\n", - ) - eprint("----") + eprint(f"{names[0]}:", values0, indent=indent) + eprint(f"{names[1]}:", values1, indent=indent) + for line in unified_diff( + values0, + values1, + fromfile=names[0], + tofile=names[1], + ): + eprint(line, indent=indent) def gh(org, apipath): @@ -117,6 +119,11 @@ def access_to_repos(org, team): ] +def teams_with_access_to_repo(org, repo): + result = gh(org, f"repos/{org}/{repo}/teams") + return [team["slug"] for team in result] + + def collaborators(org, repo): result = gh(org, f"repos/{org}/{repo}/collaborators?affiliation=direct") return {user["login"]: user["role_name"] for user in result} @@ -130,75 +137,99 @@ def check_teams() -> int: exit_code = 0 teams_in_github = [*teams_in_org("conda"), *teams_in_org("conda-incubator")] seen_teams = [] + seen_repos = [] for path in all_yamls(): - eprint("Checking", path.relative_to(ROOT)) + print("Checking", path.relative_to(ROOT), "...") with open(path) as f: team = yaml.load(f) - # 0. Validate team name - name_components = team["name"].split("/") - if len(name_components) == 2: - org, name = name_components - elif len(name_components) == 1: - org = "conda" - name = name_components[0] - else: - eprint(f"Name {team['name']} must be '' or '/'") - exit_code = 1 - continue - if org not in ("conda", "conda-incubator"): - eprint("Team must belong to the `conda` or `conda-incubator` orgs.") - exit_code = 1 - continue - - details = team_details(org, name) - - # 1. Validate descriptions - if team["description"] != details["description"]: - report_diff( - "descriptions", - file=team["description"], - github=details["description"], + for team_name in team.get("resources", {}).get("teams", ()): + print(" Checking Github team", team_name, "...") + # 0. Validate team names + org, name = team_name.split("/") + if org not in ("conda", "conda-incubator"): + eprint( + "Team must belong to the `conda` or `conda-incubator` orgs.", + indent=4, + ) + exit_code = 1 + continue + + details = team_details(org, name) + + # 1. Validate descriptions + if team["description"] != details["description"]: + report_diff( + "descriptions", + file=team["description"], + github=details["description"], + indent=4, + ) + exit_code = 1 + + # 2. Validate team members + try: + members = team_members(org, name) + except Exception as exc: + eprint(type(exc).__name__, "-", exc, indent=4) + exit_code = 1 + continue + seen_teams.append(f"{org}/{name}") + if set(members) != set(team["members"]): + members_in_file = sorted(team["members"], key=str.lower) + members_in_gh = sorted(members, key=str.lower) + report_diff( + "members", file=members_in_file, github=members_in_gh, indent=4 + ) + exit_code = 1 + + # 3. Validate access to repositories + repos_in_file = sorted( + [ + repo + for repo in team["resources"]["repos"] or [] + if repo.startswith(f"{org}/") + ], + key=str.lower, ) - exit_code = 1 - - # 2. Validate team members - try: - members = team_members(org, name) - except Exception as exc: - eprint(type(exc).__name__, "-", exc) - eprint("----") - exit_code = 1 - continue - seen_teams.append(f"{org}/{name}") - if set(members) != set(team["members"]): - members_in_file = sorted(team["members"], key=str.lower) - members_in_gh = sorted(members, key=str.lower) - report_diff("members", file=members_in_file, github=members_in_gh) - exit_code = 1 - - # 3. Validate access to repositories - repos_in_file = sorted(team["resources"]["repos"] or [], key=str.lower) - repos_in_gh = sorted(access_to_repos(org, name), key=str.lower) - if set(repos_in_file) != set(repos_in_gh): - report_diff("repositories", file=repos_in_file, github=repos_in_gh) - exit_code = 1 + seen_repos.extend(repos_in_file) + repos_in_gh = sorted(access_to_repos(org, name), key=str.lower) + if set(repos_in_file) != set(repos_in_gh): + report_diff( + "repositories", file=repos_in_file, github=repos_in_gh, indent=4 + ) + exit_code = 1 + print(" ---") + print("---") # 4. Check all teams are described if set(seen_teams) != set(teams_in_github): teams_in_repo = sorted(seen_teams, key=str.lower) teams_in_gh = sorted(teams_in_github, key=str.lower) - report_diff("teams", repo=teams_in_repo, github=teams_in_gh) + report_diff("teams", yamls=teams_in_repo, github=teams_in_gh, indent=2) exit_code = 1 + print("---") # 5. Check no individuals are granted access directly (everything must be a team) repos_with_direct_access = {} for repo in chain(repos_in_org("conda"), repos_in_org("conda-incubator")): if "-ghsa-" in repo: continue - if users := collaborators(*repo.split("/")): - repos_with_direct_access[repo] = users + if repo not in seen_repos: + eprint(f"Repository '{repo}' is not annotated in any local team YAMLs.") + eprint( + "These teams have access:", teams_with_access_to_repo(*repo.split("/")) + ) + exit_code = 1 + try: + if users := collaborators(*repo.split("/")): + repos_with_direct_access[repo] = users + except requests.HTTPError as exc: + eprint( + f"Could not check collaborators for {repo} (HTTPError: {exc}), skipping..." + ) + continue if repos_with_direct_access: eprint("Some users have direct access to repositories.") eprint("Repository access must be granted through teams only!") @@ -224,18 +255,22 @@ def generate(): org, team_name = team.split("/") details = team_details(org, team_name) data = { - "name": team, + "name": team_name, "description": details["description"], "charter": None, "requirements": None, - "resources": {"repos": access_to_repos(*team.split("/")), "other": None}, + "resources": { + "teams": [team], + "repos": access_to_repos(org, team_name), + "other": None, + }, "links": None, - "members": {member: None for member in team_members(*team.split("/"))}, + "members": {member: None for member in team_members(org, team_name)}, "emeritus": None, } Path("teams", org).mkdir(parents=True, exist_ok=True) output_path = Path("teams", org, f"{team_name.replace('.', '-')}.yml") - output_path.write_text("# yaml-language-server: $schema=../teams.schema.json\n") + output_path.write_text("# yaml-language-server: $schema=./teams.schema.json\n") with open(output_path, "a") as f: yaml.dump(data, f) diff --git a/scripts/schemas.py b/scripts/schemas.py index 3a3f7a89..01fe6e18 100644 --- a/scripts/schemas.py +++ b/scripts/schemas.py @@ -3,7 +3,7 @@ # "pydantic>=2,<3", # ] -from typing import Literal +from typing import Annotated, Literal from pydantic import ( BaseModel, ConfigDict, @@ -20,12 +20,25 @@ class Resources(BaseModel): """ model_config = ConfigDict(extra="forbid") - - teams: list[str] | None = ... + teams: ( + list[ + Annotated[ + str, Field(pattern=r"[a-zA-Z0-9\-_\.\+]{1,128}/[a-zA-Z0-9\-_]{1,128}") + ] + ] + | None + ) = ... "The Github team (or teams, across different organizations) representing this team." - repos: list[str] | None = ... + repos: ( + list[ + Annotated[ + str, + Field(pattern=r"[a-zA-Z0-9\-_\.\+]{1,128}/[a-zA-Z0-9\-_\.\+]{1,128}"), + ] + ] + | None + ) = ... """The GitHub repositories this team owns or has write access to.""" - other: list[HttpUrl] | None = ... """Other responsibilities of this team""" @@ -56,8 +69,8 @@ class CondaSubTeam(BaseModel): model_config = ConfigDict(title="Conda Sub-Teams", extra="forbid") - name: str = ... - """The team name as per the governance""" + name: str = Field(..., pattern=r"[a-zA-Z0-9\-_]{1,128}") + """The team name as per the governance (no organization name!).""" description: str = Field(..., min_length=1, max_length=128) """The team description in GitHub""" diff --git a/scripts/sort_team_yaml.py b/scripts/sort_team_yaml.py index 60f35d42..9bf0dc93 100644 --- a/scripts/sort_team_yaml.py +++ b/scripts/sort_team_yaml.py @@ -17,7 +17,7 @@ yaml = YAML(typ="rt") yaml.preserve_quotes = True -yaml.line_break = 10000 +yaml.width = 10000 yaml.indent(mapping=2, sequence=4, offset=2) for path in sys.argv[1:]: @@ -37,8 +37,7 @@ for key in sorted(members.keys(), reverse=True, key=str.lower): val = members.pop(key, None) members.insert(0, key, val) - data["resources"].setdefault("teams", []).append(data["name"]) - data["name"] = data["name"].split("/")[-1] + for key in reversed(("teams", "repos", "other")): val = data["resources"].pop(key, None) data["resources"].insert(0, key, val) diff --git a/teams/conda/anaconda.yml b/teams/anaconda.yml similarity index 94% rename from teams/conda/anaconda.yml rename to teams/anaconda.yml index 6734dad0..5c30ec4c 100644 --- a/teams/conda/anaconda.yml +++ b/teams/anaconda.yml @@ -1,4 +1,4 @@ -# yaml-language-server: $schema=../teams.schema.json +# yaml-language-server: $schema=./teams.schema.json name: anaconda description: People working at Anaconda. charter: dynamic diff --git a/teams/conda-incubator/bots.yml b/teams/bots.yml similarity index 76% rename from teams/conda-incubator/bots.yml rename to teams/bots.yml index 2e0382d6..fa12e9fe 100644 --- a/teams/conda-incubator/bots.yml +++ b/teams/bots.yml @@ -1,7 +1,6 @@ -# yaml-language-server: $schema=../teams.schema.json +# yaml-language-server: $schema=./teams.schema.json name: bots -description: Special team to permission bots and automations across - repositories. +description: Special team to permission bots and automations across repositories. charter: requirements: resources: diff --git a/teams/conda/builds-tools.yml b/teams/builds-tools.yml similarity index 88% rename from teams/conda/builds-tools.yml rename to teams/builds-tools.yml index f36b7522..9b26d07e 100644 --- a/teams/conda/builds-tools.yml +++ b/teams/builds-tools.yml @@ -1,15 +1,17 @@ -# yaml-language-server: $schema=../teams.schema.json +# yaml-language-server: $schema=./teams.schema.json name: builds-tools -description: Team to work on conda-build and other build tools in the conda - ecosystem +description: Team to work on conda-build and other build tools in the conda ecosystem charter: project requirements: resources: teams: - conda/builds-tools + - conda-incubator/builds-tools repos: - - conda-incubator/conda-recipe-manager - conda/conda-build + - conda/conda-launchers + - conda/conda-recipe-manager + - conda/conda-recipe-manager-test-data other: - https://conda.zulipchat.com/#narrow/channel/471111-builds-tools links: diff --git a/teams/conda/ceps.yml b/teams/ceps.yml similarity index 72% rename from teams/conda/ceps.yml rename to teams/ceps.yml index 9b190dfd..0d006e0f 100644 --- a/teams/conda/ceps.yml +++ b/teams/ceps.yml @@ -1,4 +1,4 @@ -# yaml-language-server: $schema=../teams.schema.json +# yaml-language-server: $schema=./teams.schema.json name: ceps description: Editorial team for CEPs charter: @@ -6,6 +6,7 @@ requirements: resources: teams: - conda/ceps + - conda-incubator/ceps repos: - conda/ceps other: diff --git a/teams/conda/cla-reviewers.yml b/teams/cla-reviewers.yml similarity index 85% rename from teams/conda/cla-reviewers.yml rename to teams/cla-reviewers.yml index 231e196f..9c01a87d 100644 --- a/teams/conda/cla-reviewers.yml +++ b/teams/cla-reviewers.yml @@ -1,9 +1,8 @@ -# yaml-language-server: $schema=../teams.schema.json +# yaml-language-server: $schema=./teams.schema.json name: cla-reviewers description: The team reviewing incoming CLA documents charter: static -requirements: All team members must only consist of steering council members for - compliance reasons. +requirements: All team members must only consist of steering council members for compliance reasons. resources: teams: - conda/cla-reviewers diff --git a/teams/conda/coc-committee.yml b/teams/coc-committee.yml similarity index 92% rename from teams/conda/coc-committee.yml rename to teams/coc-committee.yml index 4917a322..8ffc473c 100644 --- a/teams/conda/coc-committee.yml +++ b/teams/coc-committee.yml @@ -1,4 +1,4 @@ -# yaml-language-server: $schema=../teams.schema.json +# yaml-language-server: $schema=./teams.schema.json name: coc-committee description: The Code of Conduct Committee charter: dynamic @@ -6,6 +6,7 @@ requirements: resources: teams: - conda/coc-committee + - conda-incubator/code-of-conduct repos: other: - https://github.com/conda-conduct diff --git a/teams/conda/communications.yml b/teams/communications.yml similarity index 93% rename from teams/conda/communications.yml rename to teams/communications.yml index b36bf433..4a480503 100644 --- a/teams/conda/communications.yml +++ b/teams/communications.yml @@ -1,4 +1,4 @@ -# yaml-language-server: $schema=../teams.schema.json +# yaml-language-server: $schema=./teams.schema.json name: communications description: Handles communications across the organization charter: dynamic diff --git a/teams/conda/community-contributors.yml b/teams/community-contributors.yml similarity index 83% rename from teams/conda/community-contributors.yml rename to teams/community-contributors.yml index c09b45d2..72d25cef 100644 --- a/teams/conda/community-contributors.yml +++ b/teams/community-contributors.yml @@ -1,4 +1,4 @@ -# yaml-language-server: $schema=../teams.schema.json +# yaml-language-server: $schema=./teams.schema.json name: community-contributors description: charter: diff --git a/teams/conda-incubator/conda-checkpoints.yml b/teams/conda-checkpoints.yml similarity index 85% rename from teams/conda-incubator/conda-checkpoints.yml rename to teams/conda-checkpoints.yml index 0d8a5a96..fba1b33c 100644 --- a/teams/conda-incubator/conda-checkpoints.yml +++ b/teams/conda-checkpoints.yml @@ -1,4 +1,4 @@ -# yaml-language-server: $schema=../teams.schema.json +# yaml-language-server: $schema=./teams.schema.json name: conda-checkpoints description: Maintainers of `conda-checkpoints` charter: dynamic diff --git a/teams/conda-incubator/conda-colab.yml b/teams/conda-colab.yml similarity index 81% rename from teams/conda-incubator/conda-colab.yml rename to teams/conda-colab.yml index afe43d8c..8cb8f59f 100644 --- a/teams/conda-incubator/conda-colab.yml +++ b/teams/conda-colab.yml @@ -1,4 +1,4 @@ -# yaml-language-server: $schema=../teams.schema.json +# yaml-language-server: $schema=./teams.schema.json name: conda-colab description: Maintainers of `condacolab` charter: diff --git a/teams/conda-incubator/conda-completions.yml b/teams/conda-completions.yml similarity index 83% rename from teams/conda-incubator/conda-completions.yml rename to teams/conda-completions.yml index c2823387..3c1d1052 100644 --- a/teams/conda-incubator/conda-completions.yml +++ b/teams/conda-completions.yml @@ -1,4 +1,4 @@ -# yaml-language-server: $schema=../teams.schema.json +# yaml-language-server: $schema=./teams.schema.json name: conda-completions description: Maintainers of conda shell completions charter: diff --git a/teams/conda/conda-core.yml b/teams/conda-core.yml similarity index 93% rename from teams/conda/conda-core.yml rename to teams/conda-core.yml index 33d135aa..38bdb7c9 100644 --- a/teams/conda/conda-core.yml +++ b/teams/conda-core.yml @@ -1,4 +1,4 @@ -# yaml-language-server: $schema=../teams.schema.json +# yaml-language-server: $schema=./teams.schema.json name: conda-core description: charter: diff --git a/teams/conda/conda-dot-org.yml b/teams/conda-dot-org.yml similarity index 88% rename from teams/conda/conda-dot-org.yml rename to teams/conda-dot-org.yml index 7ec5fdc5..0dc00f98 100644 --- a/teams/conda/conda-dot-org.yml +++ b/teams/conda-dot-org.yml @@ -1,4 +1,4 @@ -# yaml-language-server: $schema=../teams.schema.json +# yaml-language-server: $schema=./teams.schema.json name: conda-dot-org description: Team responsible for the conda.org website maintenance charter: dynamic @@ -6,6 +6,7 @@ requirements: resources: teams: - conda/conda-dot-org + - conda-incubator/conda-dot-org repos: - conda/conda-dot-org other: diff --git a/teams/conda-incubator/conda-env-builder.yml b/teams/conda-env-builder.yml similarity index 82% rename from teams/conda-incubator/conda-env-builder.yml rename to teams/conda-env-builder.yml index 5aba25f1..595b8ff5 100644 --- a/teams/conda-incubator/conda-env-builder.yml +++ b/teams/conda-env-builder.yml @@ -1,4 +1,4 @@ -# yaml-language-server: $schema=../teams.schema.json +# yaml-language-server: $schema=./teams.schema.json name: conda-env-builder description: Maintainers of `conda-env-builder` charter: diff --git a/teams/conda-incubator/builds-tools.yml b/teams/conda-incubator/builds-tools.yml deleted file mode 100644 index 3f933674..00000000 --- a/teams/conda-incubator/builds-tools.yml +++ /dev/null @@ -1,31 +0,0 @@ -# yaml-language-server: $schema=../teams.schema.json -name: builds-tools -description: Deprecated. -charter: -requirements: -resources: - teams: - - conda-incubator/builds-tools - repos: [] - other: -links: - - https://github.com/conda/governance/issues/128 -members: - beckermr: - beeankha: - chenghlee: - dbast: - dholth: - isuruf: - jaimergp: - jakirkham: - jezdez: - kenodegard: - marcelotrevisani: - mbargull: - msarahan: - ryanskeith: - schuylermartin45: - travishathaway: - wolfv: -emeritus: diff --git a/teams/conda-incubator/ceps.yml b/teams/conda-incubator/ceps.yml deleted file mode 100644 index 889bd7e9..00000000 --- a/teams/conda-incubator/ceps.yml +++ /dev/null @@ -1,17 +0,0 @@ -# yaml-language-server: $schema=../teams.schema.json -name: ceps -description: Deprecated. -charter: -requirements: -resources: - teams: - - conda-incubator/ceps - repos: [] - other: -links: -members: - awwad: - beeankha: - jezdez: - kenodegard: -emeritus: diff --git a/teams/conda-incubator/code-of-conduct.yml b/teams/conda-incubator/code-of-conduct.yml deleted file mode 100644 index 1845185d..00000000 --- a/teams/conda-incubator/code-of-conduct.yml +++ /dev/null @@ -1,20 +0,0 @@ -# yaml-language-server: $schema=../teams.schema.json -name: code-of-conduct -description: Code of conduct committee -charter: -requirements: -resources: - teams: - - conda-incubator/code-of-conduct - repos: [] - other: -links: -members: - beeankha: - csoja: - ericdill: - kathatherine: - kenodegard: - ocefpaf: - tnabtaf: -emeritus: diff --git a/teams/conda-incubator/conda-dot-org.yml b/teams/conda-incubator/conda-dot-org.yml deleted file mode 100644 index df89146d..00000000 --- a/teams/conda-incubator/conda-dot-org.yml +++ /dev/null @@ -1,29 +0,0 @@ -# yaml-language-server: $schema=../teams.schema.json -name: conda-dot-org -description: Maintainers of the conda.org website -charter: -requirements: -resources: - teams: - - conda-incubator/conda-dot-org - repos: [] - other: -links: -members: - ang852: - asmitbm: - barabo: - beeankha: - chenghlee: - eakbulut: - goanpeca: - jaimergp: - jakirkham: - JeremiahSifuentes: - jezdez: - kathatherine: - kenodegard: - Pinak-Datta: - tnabtaf: - travishathaway: -emeritus: diff --git a/teams/conda-incubator/constructor.yml b/teams/conda-incubator/constructor.yml deleted file mode 100644 index 97d4e754..00000000 --- a/teams/conda-incubator/constructor.yml +++ /dev/null @@ -1,25 +0,0 @@ -# yaml-language-server: $schema=../teams.schema.json -name: constructor -description: -charter: -requirements: -resources: - teams: - - conda-incubator/constructor - repos: [] - other: -links: - - https://github.com/conda/governance/issues/53 -members: - bkreider: - chenghlee: - goanpeca: - hmaarrfk: - hoechenberger: - isuruf: - jaimergp: - jezdez: - larsoner: - mcg1969: - pseudoyim: -emeritus: diff --git a/teams/conda-incubator/docs.yml b/teams/conda-incubator/docs.yml deleted file mode 100644 index d69c739a..00000000 --- a/teams/conda-incubator/docs.yml +++ /dev/null @@ -1,17 +0,0 @@ -# yaml-language-server: $schema=../teams.schema.json -name: docs -description: Maintainers of common documentation infrastructure -charter: -requirements: -resources: - teams: - - conda-incubator/docs - repos: - - conda-incubator/conda-sphinx-theme - other: -links: -members: - jezdez: - kathatherine: - travishathaway: -emeritus: diff --git a/teams/conda-incubator/infrastructure.yml b/teams/conda-incubator/infrastructure.yml deleted file mode 100644 index ce12ae3a..00000000 --- a/teams/conda-incubator/infrastructure.yml +++ /dev/null @@ -1,18 +0,0 @@ -# yaml-language-server: $schema=../teams.schema.json -name: infrastructure -description: -charter: -requirements: -resources: - teams: - - conda-incubator/infrastructure - repos: [] - other: -links: -members: - beckermr: - chenghlee: - dbast: - jezdez: - kenodegard: -emeritus: diff --git a/teams/conda-incubator/rattler.yml b/teams/conda-incubator/rattler.yml deleted file mode 100644 index 89acc584..00000000 --- a/teams/conda-incubator/rattler.yml +++ /dev/null @@ -1,18 +0,0 @@ -# yaml-language-server: $schema=../teams.schema.json -name: rattler -description: -charter: -requirements: -resources: - teams: - - conda-incubator/rattler - repos: [] - other: -links: -members: - baszalmstra: - Hofer-Julian: - nichmor: - ruben-arts: - wolfv: -emeritus: diff --git a/teams/conda-incubator/steering-council.yml b/teams/conda-incubator/steering-council.yml deleted file mode 100644 index 19b4cb4b..00000000 --- a/teams/conda-incubator/steering-council.yml +++ /dev/null @@ -1,44 +0,0 @@ -# yaml-language-server: $schema=../teams.schema.json -name: steering-council -description: -charter: -requirements: -resources: - teams: - - conda-incubator/steering-council - repos: [] - other: -links: -members: - angloyna: - awwad: - beckermr: - chenghlee: - CJ-Wright: - cjmartian: - conda-bot: - csoja: - dharhas: - ericdill: - goanpeca: - Hind-M: - jaimergp: - jakirkham: - jezdez: - kkraus14: - marcelotrevisani: - mariusvniekerk: - mbargull: - mcg1969: - minrk: - msarahan: - ocefpaf: - prusse-martin: - raydouglass: - scopatz: - sodre: - teoliphant: - trallard: - wolfv: - xhochy: -emeritus: diff --git a/teams/conda/conda-index.yml b/teams/conda-index.yml similarity index 90% rename from teams/conda/conda-index.yml rename to teams/conda-index.yml index d5483cf8..9790c783 100644 --- a/teams/conda/conda-index.yml +++ b/teams/conda-index.yml @@ -1,4 +1,4 @@ -# yaml-language-server: $schema=../teams.schema.json +# yaml-language-server: $schema=./teams.schema.json name: conda-index description: Maintainers of conda-index charter: project diff --git a/teams/conda-incubator/conda-libmamba-solver.yml b/teams/conda-libmamba-solver.yml similarity index 85% rename from teams/conda-incubator/conda-libmamba-solver.yml rename to teams/conda-libmamba-solver.yml index 7d48f10c..528db2f7 100644 --- a/teams/conda-incubator/conda-libmamba-solver.yml +++ b/teams/conda-libmamba-solver.yml @@ -1,4 +1,4 @@ -# yaml-language-server: $schema=../teams.schema.json +# yaml-language-server: $schema=./teams.schema.json name: conda-libmamba-solver description: Maintainers of `conda-libmamba-solver` charter: diff --git a/teams/conda/conda-lock.yml b/teams/conda-lock.yml similarity index 86% rename from teams/conda/conda-lock.yml rename to teams/conda-lock.yml index 4cf0cbb1..eb0f0bc6 100644 --- a/teams/conda/conda-lock.yml +++ b/teams/conda-lock.yml @@ -1,4 +1,4 @@ -# yaml-language-server: $schema=../teams.schema.json +# yaml-language-server: $schema=./teams.schema.json name: conda-lock description: Maintainers of conda-lock charter: project diff --git a/teams/conda-incubator/conda-lockfiles.yml b/teams/conda-lockfiles.yml similarity index 85% rename from teams/conda-incubator/conda-lockfiles.yml rename to teams/conda-lockfiles.yml index 3b98ffb0..7d7e9501 100644 --- a/teams/conda-incubator/conda-lockfiles.yml +++ b/teams/conda-lockfiles.yml @@ -1,4 +1,4 @@ -# yaml-language-server: $schema=../teams.schema.json +# yaml-language-server: $schema=./teams.schema.json name: conda-lockfiles description: Maintainers of `conda-lockfiles` charter: diff --git a/teams/conda/conda-maintainers-project-management.yml b/teams/conda-maintainers-project-management.yml similarity index 80% rename from teams/conda/conda-maintainers-project-management.yml rename to teams/conda-maintainers-project-management.yml index a633bb2b..1b5409eb 100644 --- a/teams/conda/conda-maintainers-project-management.yml +++ b/teams/conda-maintainers-project-management.yml @@ -1,7 +1,6 @@ -# yaml-language-server: $schema=../teams.schema.json +# yaml-language-server: $schema=./teams.schema.json name: conda-maintainers-project-management -description: Support team for @conda/conda-maintainers, with triage permissions - only +description: Support team for @conda/conda-maintainers, with triage permissions only charter: dynamic requirements: resources: diff --git a/teams/conda/conda-maintainers.yml b/teams/conda-maintainers.yml similarity index 95% rename from teams/conda/conda-maintainers.yml rename to teams/conda-maintainers.yml index 016e6bbe..95386c7d 100644 --- a/teams/conda/conda-maintainers.yml +++ b/teams/conda-maintainers.yml @@ -1,4 +1,4 @@ -# yaml-language-server: $schema=../teams.schema.json +# yaml-language-server: $schema=./teams.schema.json name: conda-maintainers description: Maintainers of `conda` and related core plugins charter: project diff --git a/teams/conda-incubator/conda-meta-mcp.yml b/teams/conda-meta-mcp.yml similarity index 88% rename from teams/conda-incubator/conda-meta-mcp.yml rename to teams/conda-meta-mcp.yml index 7bda9f96..3312df04 100644 --- a/teams/conda-incubator/conda-meta-mcp.yml +++ b/teams/conda-meta-mcp.yml @@ -1,4 +1,4 @@ -# yaml-language-server: $schema=../teams.schema.json +# yaml-language-server: $schema=./teams.schema.json name: conda-meta-mcp description: Maintainers of `conda-meta-mcp` charter: dynamic diff --git a/teams/conda-incubator/conda-mirror.yml b/teams/conda-mirror.yml similarity index 85% rename from teams/conda-incubator/conda-mirror.yml rename to teams/conda-mirror.yml index 7d6a8476..56e1b1db 100644 --- a/teams/conda-incubator/conda-mirror.yml +++ b/teams/conda-mirror.yml @@ -1,4 +1,4 @@ -# yaml-language-server: $schema=../teams.schema.json +# yaml-language-server: $schema=./teams.schema.json name: conda-mirror description: Maintainers of `conda-mirror` charter: diff --git a/teams/conda-incubator/conda-oci.yml b/teams/conda-oci.yml similarity index 81% rename from teams/conda-incubator/conda-oci.yml rename to teams/conda-oci.yml index 7e47566f..cb990153 100644 --- a/teams/conda-incubator/conda-oci.yml +++ b/teams/conda-oci.yml @@ -1,4 +1,4 @@ -# yaml-language-server: $schema=../teams.schema.json +# yaml-language-server: $schema=./teams.schema.json name: conda-oci description: Maintainers of `conda-oci` charter: diff --git a/teams/conda-incubator/conda-plugins.yml b/teams/conda-plugins.yml similarity index 83% rename from teams/conda-incubator/conda-plugins.yml rename to teams/conda-plugins.yml index 451c0c8c..69168fe6 100644 --- a/teams/conda-incubator/conda-plugins.yml +++ b/teams/conda-plugins.yml @@ -1,4 +1,4 @@ -# yaml-language-server: $schema=../teams.schema.json +# yaml-language-server: $schema=./teams.schema.json name: conda-plugins description: Maintainers of `conda-plugins` charter: diff --git a/teams/conda-incubator/conda-project.yml b/teams/conda-project.yml similarity index 85% rename from teams/conda-incubator/conda-project.yml rename to teams/conda-project.yml index 37a832e0..71ac94a3 100644 --- a/teams/conda-incubator/conda-project.yml +++ b/teams/conda-project.yml @@ -1,4 +1,4 @@ -# yaml-language-server: $schema=../teams.schema.json +# yaml-language-server: $schema=./teams.schema.json name: conda-project description: Maintainers of `conda-project` charter: diff --git a/teams/conda-incubator/conda-protect.yml b/teams/conda-protect.yml similarity index 88% rename from teams/conda-incubator/conda-protect.yml rename to teams/conda-protect.yml index f960465f..9cd27372 100644 --- a/teams/conda-incubator/conda-protect.yml +++ b/teams/conda-protect.yml @@ -1,4 +1,4 @@ -# yaml-language-server: $schema=../teams.schema.json +# yaml-language-server: $schema=./teams.schema.json name: conda-protect description: Maintainers of `conda-protect` charter: dynamic diff --git a/teams/conda-incubator/conda-pypi.yml b/teams/conda-pypi.yml similarity index 93% rename from teams/conda-incubator/conda-pypi.yml rename to teams/conda-pypi.yml index afe23ba8..d564ce22 100644 --- a/teams/conda-incubator/conda-pypi.yml +++ b/teams/conda-pypi.yml @@ -1,4 +1,4 @@ -# yaml-language-server: $schema=../teams.schema.json +# yaml-language-server: $schema=./teams.schema.json name: conda-pypi description: Maintainers of `conda-pypi` charter: dynamic diff --git a/teams/conda-incubator/conda-rattler-solver.yml b/teams/conda-rattler-solver.yml similarity index 89% rename from teams/conda-incubator/conda-rattler-solver.yml rename to teams/conda-rattler-solver.yml index 4561ce2b..386e8280 100644 --- a/teams/conda-incubator/conda-rattler-solver.yml +++ b/teams/conda-rattler-solver.yml @@ -1,4 +1,4 @@ -# yaml-language-server: $schema=../teams.schema.json +# yaml-language-server: $schema=./teams.schema.json name: conda-rattler-solver description: Maintainers of `conda-rattler-solver` charter: dynamic diff --git a/teams/conda-incubator/conda-rich.yml b/teams/conda-rich.yml similarity index 88% rename from teams/conda-incubator/conda-rich.yml rename to teams/conda-rich.yml index f8890e5a..fadc5392 100644 --- a/teams/conda-incubator/conda-rich.yml +++ b/teams/conda-rich.yml @@ -1,4 +1,4 @@ -# yaml-language-server: $schema=../teams.schema.json +# yaml-language-server: $schema=./teams.schema.json name: conda-rich description: Maintainers of `conda-rich` charter: dynamic diff --git a/teams/conda-incubator/conda-self.yml b/teams/conda-self.yml similarity index 89% rename from teams/conda-incubator/conda-self.yml rename to teams/conda-self.yml index 5d4ecff6..c7e73010 100644 --- a/teams/conda-incubator/conda-self.yml +++ b/teams/conda-self.yml @@ -1,4 +1,4 @@ -# yaml-language-server: $schema=../teams.schema.json +# yaml-language-server: $schema=./teams.schema.json name: conda-self description: Maintainers of `conda-self` charter: dynamic diff --git a/teams/conda-incubator/conda-sh.yml b/teams/conda-sh.yml similarity index 82% rename from teams/conda-incubator/conda-sh.yml rename to teams/conda-sh.yml index 703acdf8..a8010ff6 100644 --- a/teams/conda-incubator/conda-sh.yml +++ b/teams/conda-sh.yml @@ -1,4 +1,4 @@ -# yaml-language-server: $schema=../teams.schema.json +# yaml-language-server: $schema=./teams.schema.json name: conda-sh description: Maintainers of the conda.sh website charter: diff --git a/teams/conda-incubator/conda-spawn.yml b/teams/conda-spawn.yml similarity index 86% rename from teams/conda-incubator/conda-spawn.yml rename to teams/conda-spawn.yml index 8c3526b1..231270d2 100644 --- a/teams/conda-incubator/conda-spawn.yml +++ b/teams/conda-spawn.yml @@ -1,4 +1,4 @@ -# yaml-language-server: $schema=../teams.schema.json +# yaml-language-server: $schema=./teams.schema.json name: conda-spawn description: Maintainers of `conda-spawn` charter: dynamic diff --git a/teams/conda-incubator/conda-store.yml b/teams/conda-store.yml similarity index 94% rename from teams/conda-incubator/conda-store.yml rename to teams/conda-store.yml index 0e56ceb3..9ee6f28b 100644 --- a/teams/conda-incubator/conda-store.yml +++ b/teams/conda-store.yml @@ -1,4 +1,4 @@ -# yaml-language-server: $schema=../teams.schema.json +# yaml-language-server: $schema=./teams.schema.json name: conda-store description: Maintainers of `conda-store` and related projects charter: dynamic diff --git a/teams/conda-incubator/conda-subchannel.yml b/teams/conda-subchannel.yml similarity index 88% rename from teams/conda-incubator/conda-subchannel.yml rename to teams/conda-subchannel.yml index 00ee8ecb..567a366a 100644 --- a/teams/conda-incubator/conda-subchannel.yml +++ b/teams/conda-subchannel.yml @@ -1,4 +1,4 @@ -# yaml-language-server: $schema=../teams.schema.json +# yaml-language-server: $schema=./teams.schema.json name: conda-subchannel description: Maintainers of `conda-subchannel` charter: dynamic diff --git a/teams/conda-incubator/conda-tree.yml b/teams/conda-tree.yml similarity index 86% rename from teams/conda-incubator/conda-tree.yml rename to teams/conda-tree.yml index d15d2046..e17e5ed7 100644 --- a/teams/conda-incubator/conda-tree.yml +++ b/teams/conda-tree.yml @@ -1,4 +1,4 @@ -# yaml-language-server: $schema=../teams.schema.json +# yaml-language-server: $schema=./teams.schema.json name: conda-tree description: Maintainers of `conda-tree` charter: project diff --git a/teams/conda-incubator/conda-tui.yml b/teams/conda-tui.yml similarity index 87% rename from teams/conda-incubator/conda-tui.yml rename to teams/conda-tui.yml index d2f5749e..b841a754 100644 --- a/teams/conda-incubator/conda-tui.yml +++ b/teams/conda-tui.yml @@ -1,4 +1,4 @@ -# yaml-language-server: $schema=../teams.schema.json +# yaml-language-server: $schema=./teams.schema.json name: conda-tui description: Maintainers of `conda-tui` charter: dynamic diff --git a/teams/conda-incubator/conda-tutorial.yml b/teams/conda-tutorial.yml similarity index 84% rename from teams/conda-incubator/conda-tutorial.yml rename to teams/conda-tutorial.yml index 3e399fc4..ec91ba8e 100644 --- a/teams/conda-incubator/conda-tutorial.yml +++ b/teams/conda-tutorial.yml @@ -1,4 +1,4 @@ -# yaml-language-server: $schema=../teams.schema.json +# yaml-language-server: $schema=./teams.schema.json name: conda-tutorial description: Maintainers of the `conda-tutorial` repository charter: diff --git a/teams/conda-incubator/condastats.yml b/teams/condastats.yml similarity index 81% rename from teams/conda-incubator/condastats.yml rename to teams/condastats.yml index 628e65b0..1d57c188 100644 --- a/teams/conda-incubator/condastats.yml +++ b/teams/condastats.yml @@ -1,4 +1,4 @@ -# yaml-language-server: $schema=../teams.schema.json +# yaml-language-server: $schema=./teams.schema.json name: condastats description: Maintainers of `condastats` charter: diff --git a/teams/conda/constructor.yml b/teams/constructor.yml similarity index 93% rename from teams/conda/constructor.yml rename to teams/constructor.yml index 7bfb343f..2ba4c292 100644 --- a/teams/conda/constructor.yml +++ b/teams/constructor.yml @@ -1,4 +1,4 @@ -# yaml-language-server: $schema=../teams.schema.json +# yaml-language-server: $schema=./teams.schema.json name: constructor description: The team maintaining constructor and related projects charter: project @@ -6,6 +6,7 @@ requirements: resources: teams: - conda/constructor + - conda-incubator/constructor repos: - conda/conda-pack - conda/constructor diff --git a/teams/conda-incubator/content.yml b/teams/content.yml similarity index 81% rename from teams/conda-incubator/content.yml rename to teams/content.yml index 604c4e39..8357b516 100644 --- a/teams/conda-incubator/content.yml +++ b/teams/content.yml @@ -1,4 +1,4 @@ -# yaml-language-server: $schema=../teams.schema.json +# yaml-language-server: $schema=./teams.schema.json name: content description: charter: diff --git a/teams/conda-incubator/design.yml b/teams/design.yml similarity index 82% rename from teams/conda-incubator/design.yml rename to teams/design.yml index 178167ce..0d264246 100644 --- a/teams/conda-incubator/design.yml +++ b/teams/design.yml @@ -1,4 +1,4 @@ -# yaml-language-server: $schema=../teams.schema.json +# yaml-language-server: $schema=./teams.schema.json name: design description: charter: diff --git a/teams/conda/distribution-contractors.yml b/teams/distribution-contractors.yml similarity index 81% rename from teams/conda/distribution-contractors.yml rename to teams/distribution-contractors.yml index bfbe81b8..257f3775 100644 --- a/teams/conda/distribution-contractors.yml +++ b/teams/distribution-contractors.yml @@ -1,4 +1,4 @@ -# yaml-language-server: $schema=../teams.schema.json +# yaml-language-server: $schema=./teams.schema.json name: distribution-contractors description: charter: diff --git a/teams/conda/docs.yml b/teams/docs.yml similarity index 80% rename from teams/conda/docs.yml rename to teams/docs.yml index 5efcc568..0484fc6a 100644 --- a/teams/conda/docs.yml +++ b/teams/docs.yml @@ -1,4 +1,4 @@ -# yaml-language-server: $schema=../teams.schema.json +# yaml-language-server: $schema=./teams.schema.json name: docs description: The team working on all-things docs charter: project @@ -6,6 +6,7 @@ requirements: resources: teams: - conda/docs + - conda-incubator/docs repos: - conda/conda - conda/conda-build @@ -13,6 +14,7 @@ resources: - conda/constructor - conda/infrastructure - conda/menuinst + - conda-incubator/conda-sphinx-theme other: links: - https://github.com/conda/conda-docs/issues/780 diff --git a/teams/conda-incubator/fetch.yml b/teams/fetch.yml similarity index 80% rename from teams/conda-incubator/fetch.yml rename to teams/fetch.yml index 0eead9b2..f13dc765 100644 --- a/teams/conda-incubator/fetch.yml +++ b/teams/fetch.yml @@ -1,4 +1,4 @@ -# yaml-language-server: $schema=../teams.schema.json +# yaml-language-server: $schema=./teams.schema.json name: fetch description: charter: diff --git a/teams/conda/grayskull.yml b/teams/grayskull.yml similarity index 85% rename from teams/conda/grayskull.yml rename to teams/grayskull.yml index 66c36dec..b6f63ef6 100644 --- a/teams/conda/grayskull.yml +++ b/teams/grayskull.yml @@ -1,4 +1,4 @@ -# yaml-language-server: $schema=../teams.schema.json +# yaml-language-server: $schema=./teams.schema.json name: grayskull description: Maintainers of `grayskull` charter: project diff --git a/teams/conda-incubator/hatch-conda-build.yml b/teams/hatch-conda-build.yml similarity index 84% rename from teams/conda-incubator/hatch-conda-build.yml rename to teams/hatch-conda-build.yml index 916e8a80..27e77ad5 100644 --- a/teams/conda-incubator/hatch-conda-build.yml +++ b/teams/hatch-conda-build.yml @@ -1,4 +1,4 @@ -# yaml-language-server: $schema=../teams.schema.json +# yaml-language-server: $schema=./teams.schema.json name: hatch-conda-build description: Maintainers of the `hatch-conda-build` plugin charter: diff --git a/teams/conda-incubator/implementation.yml b/teams/implementation.yml similarity index 84% rename from teams/conda-incubator/implementation.yml rename to teams/implementation.yml index b7d74804..e4c0a519 100644 --- a/teams/conda-incubator/implementation.yml +++ b/teams/implementation.yml @@ -1,4 +1,4 @@ -# yaml-language-server: $schema=../teams.schema.json +# yaml-language-server: $schema=./teams.schema.json name: implementation description: charter: diff --git a/teams/conda/infrastructure.yml b/teams/infrastructure.yml similarity index 90% rename from teams/conda/infrastructure.yml rename to teams/infrastructure.yml index 1c734280..3ffa89fc 100644 --- a/teams/conda/infrastructure.yml +++ b/teams/infrastructure.yml @@ -1,4 +1,4 @@ -# yaml-language-server: $schema=../teams.schema.json +# yaml-language-server: $schema=./teams.schema.json name: infrastructure description: The team working on conda community infrastructure charter: static @@ -6,6 +6,7 @@ requirements: Any steering council member may join without approval resources: teams: - conda/infrastructure + - conda-incubator/infrastructure repos: - conda/.github - conda/actions diff --git a/teams/conda-incubator/installer.yml b/teams/installer.yml similarity index 86% rename from teams/conda-incubator/installer.yml rename to teams/installer.yml index f093edc5..42a1caf9 100644 --- a/teams/conda-incubator/installer.yml +++ b/teams/installer.yml @@ -1,4 +1,4 @@ -# yaml-language-server: $schema=../teams.schema.json +# yaml-language-server: $schema=./teams.schema.json name: installer description: Maintainers of the `installer` Github Action charter: diff --git a/teams/conda-incubator/nvidia-virtual-packages.yml b/teams/nvidia-virtual-packages.yml similarity index 89% rename from teams/conda-incubator/nvidia-virtual-packages.yml rename to teams/nvidia-virtual-packages.yml index 9184faa2..c6226c4f 100644 --- a/teams/conda-incubator/nvidia-virtual-packages.yml +++ b/teams/nvidia-virtual-packages.yml @@ -1,4 +1,4 @@ -# yaml-language-server: $schema=../teams.schema.json +# yaml-language-server: $schema=./teams.schema.json name: nvidia-virtual-packages description: Maintainers of virtual packages related to Nvidia charter: dynamic diff --git a/teams/conda/packaging-tools.yml b/teams/packaging-tools.yml similarity index 93% rename from teams/conda/packaging-tools.yml rename to teams/packaging-tools.yml index 99eec172..afdedbcd 100644 --- a/teams/conda/packaging-tools.yml +++ b/teams/packaging-tools.yml @@ -1,4 +1,4 @@ -# yaml-language-server: $schema=../teams.schema.json +# yaml-language-server: $schema=./teams.schema.json name: packaging-tools description: Maintainers of conda-package-handling and related projects charter: project diff --git a/teams/conda-incubator/pre-commit.yml b/teams/pre-commit.yml similarity index 97% rename from teams/conda-incubator/pre-commit.yml rename to teams/pre-commit.yml index b72f7281..e1f51ad6 100644 --- a/teams/conda-incubator/pre-commit.yml +++ b/teams/pre-commit.yml @@ -1,4 +1,4 @@ -# yaml-language-server: $schema=../teams.schema.json +# yaml-language-server: $schema=./teams.schema.json name: pre-commit description: Maintainers of conda-based pre-commit hooks charter: dynamic diff --git a/teams/conda/prefix-dev.yml b/teams/prefix-dev.yml similarity index 92% rename from teams/conda/prefix-dev.yml rename to teams/prefix-dev.yml index d49a4f71..fe20dce2 100644 --- a/teams/conda/prefix-dev.yml +++ b/teams/prefix-dev.yml @@ -1,4 +1,4 @@ -# yaml-language-server: $schema=../teams.schema.json +# yaml-language-server: $schema=./teams.schema.json name: prefix-dev description: Contributors working for Prefix.dev charter: dynamic diff --git a/teams/conda/quansight.yml b/teams/quansight.yml similarity index 91% rename from teams/conda/quansight.yml rename to teams/quansight.yml index 0e006adb..200e53f5 100644 --- a/teams/conda/quansight.yml +++ b/teams/quansight.yml @@ -1,4 +1,4 @@ -# yaml-language-server: $schema=../teams.schema.json +# yaml-language-server: $schema=./teams.schema.json name: quansight description: Contributors working for Quansight charter: dynamic diff --git a/teams/conda/rattler.yml b/teams/rattler.yml similarity index 86% rename from teams/conda/rattler.yml rename to teams/rattler.yml index a6f0ee49..2aa78e41 100644 --- a/teams/conda/rattler.yml +++ b/teams/rattler.yml @@ -1,4 +1,4 @@ -# yaml-language-server: $schema=../teams.schema.json +# yaml-language-server: $schema=./teams.schema.json name: rattler description: Maintainers of `rattler` charter: dynamic @@ -6,6 +6,7 @@ requirements: resources: teams: - conda/rattler + - conda-incubator/rattler repos: - conda/rattler other: diff --git a/teams/conda-incubator/relock-conda.yml b/teams/relock-conda.yml similarity index 81% rename from teams/conda-incubator/relock-conda.yml rename to teams/relock-conda.yml index 36712121..26e84012 100644 --- a/teams/conda-incubator/relock-conda.yml +++ b/teams/relock-conda.yml @@ -1,4 +1,4 @@ -# yaml-language-server: $schema=../teams.schema.json +# yaml-language-server: $schema=./teams.schema.json name: relock-conda description: Maintainers of `relock-conda` charter: diff --git a/teams/conda-incubator/setup-miniconda.yml b/teams/setup-miniconda.yml similarity index 86% rename from teams/conda-incubator/setup-miniconda.yml rename to teams/setup-miniconda.yml index 56dad47c..9b0566b7 100644 --- a/teams/conda-incubator/setup-miniconda.yml +++ b/teams/setup-miniconda.yml @@ -1,4 +1,4 @@ -# yaml-language-server: $schema=../teams.schema.json +# yaml-language-server: $schema=./teams.schema.json name: setup-miniconda description: Maintainers of the setup-miniconda action charter: diff --git a/teams/conda-incubator/shells.yml b/teams/shells.yml similarity index 83% rename from teams/conda-incubator/shells.yml rename to teams/shells.yml index f27b89cc..cca967c3 100644 --- a/teams/conda-incubator/shells.yml +++ b/teams/shells.yml @@ -1,4 +1,4 @@ -# yaml-language-server: $schema=../teams.schema.json +# yaml-language-server: $schema=./teams.schema.json name: shells description: Maintainers of conda-shell and other shell-related projects charter: diff --git a/teams/conda/steering-council.yml b/teams/steering-council.yml similarity index 94% rename from teams/conda/steering-council.yml rename to teams/steering-council.yml index ae078dfd..ad04b730 100644 --- a/teams/conda/steering-council.yml +++ b/teams/steering-council.yml @@ -1,4 +1,4 @@ -# yaml-language-server: $schema=../teams.schema.json +# yaml-language-server: $schema=./teams.schema.json name: steering-council description: Steering council of the conda ecosystem charter: static @@ -6,6 +6,7 @@ requirements: resources: teams: - conda/steering-council + - conda-incubator/steering-council repos: - conda/governance - conda/assets @@ -19,8 +20,7 @@ members: email: zalmstra.bas@gmail.com funder: prefix.dev pronouns: he/him - decision: - https://github.com/conda/governance/commit/03f21ae79dc1525eae0091ee3cf1e8f26856c6d6 + decision: https://github.com/conda/governance/commit/03f21ae79dc1525eae0091ee3cf1e8f26856c6d6 chenghlee: full_name: Cheng H. Lee email: clee@anaconda.com diff --git a/teams/conda/steering-emeritus.yml b/teams/steering-emeritus.yml similarity index 98% rename from teams/conda/steering-emeritus.yml rename to teams/steering-emeritus.yml index ade21569..35838161 100644 --- a/teams/conda/steering-emeritus.yml +++ b/teams/steering-emeritus.yml @@ -1,4 +1,4 @@ -# yaml-language-server: $schema=../teams.schema.json +# yaml-language-server: $schema=./teams.schema.json name: steering-emeritus description: Former members of the steering council charter: static diff --git a/teams/teams.schema.json b/teams/teams.schema.json index 13af8748..c36a475a 100644 --- a/teams/teams.schema.json +++ b/teams/teams.schema.json @@ -91,6 +91,7 @@ "anyOf": [ { "items": { + "pattern": "[a-zA-Z0-9\\-_\\.\\+]{1,128}/[a-zA-Z0-9\\-_]{1,128}", "type": "string" }, "type": "array" @@ -105,6 +106,7 @@ "anyOf": [ { "items": { + "pattern": "[a-zA-Z0-9\\-_\\.\\+]{1,128}/[a-zA-Z0-9\\-_\\.\\+]{1,128}", "type": "string" }, "type": "array" @@ -146,6 +148,7 @@ "description": "Model for defining Conda Sub-Teams based on the governance structure.", "properties": { "name": { + "pattern": "[a-zA-Z0-9\\-_]{1,128}", "title": "Name", "type": "string" }, From 206530c6b53e94e9a687e2c946cccab0e0eed76b Mon Sep 17 00:00:00 2001 From: Jannis Leidel Date: Wed, 3 Dec 2025 10:16:20 +0100 Subject: [PATCH 33/38] Fix name typo in build-tools YAML file --- teams/{builds-tools.yml => build-tools.yml} | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) rename teams/{builds-tools.yml => build-tools.yml} (95%) diff --git a/teams/builds-tools.yml b/teams/build-tools.yml similarity index 95% rename from teams/builds-tools.yml rename to teams/build-tools.yml index 9b26d07e..0c6ab7c6 100644 --- a/teams/builds-tools.yml +++ b/teams/build-tools.yml @@ -1,12 +1,12 @@ # yaml-language-server: $schema=./teams.schema.json -name: builds-tools +name: build-tools description: Team to work on conda-build and other build tools in the conda ecosystem charter: project requirements: resources: teams: - - conda/builds-tools - - conda-incubator/builds-tools + - conda/build-tools + - conda-incubator/build-tools repos: - conda/conda-build - conda/conda-launchers From 114b2a6a1c7475684c420779688ac9607b631d69 Mon Sep 17 00:00:00 2001 From: jaimergp Date: Wed, 3 Dec 2025 11:42:51 +0100 Subject: [PATCH 34/38] Update zulip link for build-tools --- teams/build-tools.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/teams/build-tools.yml b/teams/build-tools.yml index 0c6ab7c6..af9e47de 100644 --- a/teams/build-tools.yml +++ b/teams/build-tools.yml @@ -13,7 +13,7 @@ resources: - conda/conda-recipe-manager - conda/conda-recipe-manager-test-data other: - - https://conda.zulipchat.com/#narrow/channel/471111-builds-tools + - https://conda.zulipchat.com/#narrow/channel/471111-build-tools links: - https://github.com/conda/conda-build/issues/4698 - https://github.com/conda/governance/issues/128 From f3b3275c7d888a310d5f28fff9759c9ec724d60e Mon Sep 17 00:00:00 2001 From: jaimergp Date: Wed, 3 Dec 2025 11:54:12 +0100 Subject: [PATCH 35/38] Add disclaimer comment --- scripts/sort_team_yaml.py | 7 ++++++- teams/anaconda.yml | 3 +++ teams/bots.yml | 3 +++ teams/build-tools.yml | 3 +++ teams/ceps.yml | 3 +++ teams/cla-reviewers.yml | 3 +++ teams/coc-committee.yml | 3 +++ teams/communications.yml | 3 +++ teams/community-contributors.yml | 3 +++ teams/conda-checkpoints.yml | 3 +++ teams/conda-colab.yml | 3 +++ teams/conda-completions.yml | 3 +++ teams/conda-core.yml | 3 +++ teams/conda-dot-org.yml | 3 +++ teams/conda-env-builder.yml | 3 +++ teams/conda-index.yml | 3 +++ teams/conda-libmamba-solver.yml | 3 +++ teams/conda-lock.yml | 3 +++ teams/conda-lockfiles.yml | 3 +++ teams/conda-maintainers-project-management.yml | 3 +++ teams/conda-maintainers.yml | 3 +++ teams/conda-meta-mcp.yml | 3 +++ teams/conda-mirror.yml | 3 +++ teams/conda-oci.yml | 3 +++ teams/conda-plugins.yml | 3 +++ teams/conda-project.yml | 3 +++ teams/conda-protect.yml | 3 +++ teams/conda-pypi.yml | 3 +++ teams/conda-rattler-solver.yml | 3 +++ teams/conda-rich.yml | 3 +++ teams/conda-self.yml | 3 +++ teams/conda-sh.yml | 3 +++ teams/conda-spawn.yml | 3 +++ teams/conda-store.yml | 3 +++ teams/conda-subchannel.yml | 3 +++ teams/conda-tree.yml | 3 +++ teams/conda-tui.yml | 3 +++ teams/conda-tutorial.yml | 3 +++ teams/condastats.yml | 3 +++ teams/constructor.yml | 3 +++ teams/content.yml | 3 +++ teams/design.yml | 3 +++ teams/distribution-contractors.yml | 3 +++ teams/docs.yml | 3 +++ teams/fetch.yml | 3 +++ teams/grayskull.yml | 3 +++ teams/hatch-conda-build.yml | 3 +++ teams/implementation.yml | 3 +++ teams/infrastructure.yml | 3 +++ teams/installer.yml | 3 +++ teams/nvidia-virtual-packages.yml | 3 +++ teams/packaging-tools.yml | 3 +++ teams/pre-commit.yml | 3 +++ teams/prefix-dev.yml | 3 +++ teams/quansight.yml | 3 +++ teams/rattler.yml | 3 +++ teams/relock-conda.yml | 3 +++ teams/setup-miniconda.yml | 3 +++ teams/shells.yml | 3 +++ teams/steering-council.yml | 3 +++ teams/steering-emeritus.yml | 3 +++ 61 files changed, 186 insertions(+), 1 deletion(-) diff --git a/scripts/sort_team_yaml.py b/scripts/sort_team_yaml.py index 9bf0dc93..125080a4 100644 --- a/scripts/sort_team_yaml.py +++ b/scripts/sort_team_yaml.py @@ -42,5 +42,10 @@ val = data["resources"].pop(key, None) data["resources"].insert(0, key, val) - with open(path, "w") as f: + path.write_text( + "# NOTE: This file is a work in progress.\n" + "# The information here reflected is provisional\n" + "# and must not be interpreted as the ground truth.\n" + ) + with open(path, "a") as f: yaml.dump(data, f) diff --git a/teams/anaconda.yml b/teams/anaconda.yml index 5c30ec4c..5d25237f 100644 --- a/teams/anaconda.yml +++ b/teams/anaconda.yml @@ -1,3 +1,6 @@ +# NOTE: This file is a work in progress. +# The information here reflected is provisional +# and must not be interpreted as the ground truth. # yaml-language-server: $schema=./teams.schema.json name: anaconda description: People working at Anaconda. diff --git a/teams/bots.yml b/teams/bots.yml index fa12e9fe..0974a016 100644 --- a/teams/bots.yml +++ b/teams/bots.yml @@ -1,3 +1,6 @@ +# NOTE: This file is a work in progress. +# The information here reflected is provisional +# and must not be interpreted as the ground truth. # yaml-language-server: $schema=./teams.schema.json name: bots description: Special team to permission bots and automations across repositories. diff --git a/teams/build-tools.yml b/teams/build-tools.yml index af9e47de..1145572e 100644 --- a/teams/build-tools.yml +++ b/teams/build-tools.yml @@ -1,3 +1,6 @@ +# NOTE: This file is a work in progress. +# The information here reflected is provisional +# and must not be interpreted as the ground truth. # yaml-language-server: $schema=./teams.schema.json name: build-tools description: Team to work on conda-build and other build tools in the conda ecosystem diff --git a/teams/ceps.yml b/teams/ceps.yml index 0d006e0f..a10d2be1 100644 --- a/teams/ceps.yml +++ b/teams/ceps.yml @@ -1,3 +1,6 @@ +# NOTE: This file is a work in progress. +# The information here reflected is provisional +# and must not be interpreted as the ground truth. # yaml-language-server: $schema=./teams.schema.json name: ceps description: Editorial team for CEPs diff --git a/teams/cla-reviewers.yml b/teams/cla-reviewers.yml index 9c01a87d..eddb438f 100644 --- a/teams/cla-reviewers.yml +++ b/teams/cla-reviewers.yml @@ -1,3 +1,6 @@ +# NOTE: This file is a work in progress. +# The information here reflected is provisional +# and must not be interpreted as the ground truth. # yaml-language-server: $schema=./teams.schema.json name: cla-reviewers description: The team reviewing incoming CLA documents diff --git a/teams/coc-committee.yml b/teams/coc-committee.yml index 8ffc473c..9cfe45d2 100644 --- a/teams/coc-committee.yml +++ b/teams/coc-committee.yml @@ -1,3 +1,6 @@ +# NOTE: This file is a work in progress. +# The information here reflected is provisional +# and must not be interpreted as the ground truth. # yaml-language-server: $schema=./teams.schema.json name: coc-committee description: The Code of Conduct Committee diff --git a/teams/communications.yml b/teams/communications.yml index 4a480503..ce7eaae6 100644 --- a/teams/communications.yml +++ b/teams/communications.yml @@ -1,3 +1,6 @@ +# NOTE: This file is a work in progress. +# The information here reflected is provisional +# and must not be interpreted as the ground truth. # yaml-language-server: $schema=./teams.schema.json name: communications description: Handles communications across the organization diff --git a/teams/community-contributors.yml b/teams/community-contributors.yml index 72d25cef..a7b8afc2 100644 --- a/teams/community-contributors.yml +++ b/teams/community-contributors.yml @@ -1,3 +1,6 @@ +# NOTE: This file is a work in progress. +# The information here reflected is provisional +# and must not be interpreted as the ground truth. # yaml-language-server: $schema=./teams.schema.json name: community-contributors description: diff --git a/teams/conda-checkpoints.yml b/teams/conda-checkpoints.yml index fba1b33c..6fe9b3e3 100644 --- a/teams/conda-checkpoints.yml +++ b/teams/conda-checkpoints.yml @@ -1,3 +1,6 @@ +# NOTE: This file is a work in progress. +# The information here reflected is provisional +# and must not be interpreted as the ground truth. # yaml-language-server: $schema=./teams.schema.json name: conda-checkpoints description: Maintainers of `conda-checkpoints` diff --git a/teams/conda-colab.yml b/teams/conda-colab.yml index 8cb8f59f..21773c20 100644 --- a/teams/conda-colab.yml +++ b/teams/conda-colab.yml @@ -1,3 +1,6 @@ +# NOTE: This file is a work in progress. +# The information here reflected is provisional +# and must not be interpreted as the ground truth. # yaml-language-server: $schema=./teams.schema.json name: conda-colab description: Maintainers of `condacolab` diff --git a/teams/conda-completions.yml b/teams/conda-completions.yml index 3c1d1052..105f7088 100644 --- a/teams/conda-completions.yml +++ b/teams/conda-completions.yml @@ -1,3 +1,6 @@ +# NOTE: This file is a work in progress. +# The information here reflected is provisional +# and must not be interpreted as the ground truth. # yaml-language-server: $schema=./teams.schema.json name: conda-completions description: Maintainers of conda shell completions diff --git a/teams/conda-core.yml b/teams/conda-core.yml index 38bdb7c9..490516e5 100644 --- a/teams/conda-core.yml +++ b/teams/conda-core.yml @@ -1,3 +1,6 @@ +# NOTE: This file is a work in progress. +# The information here reflected is provisional +# and must not be interpreted as the ground truth. # yaml-language-server: $schema=./teams.schema.json name: conda-core description: diff --git a/teams/conda-dot-org.yml b/teams/conda-dot-org.yml index 0dc00f98..ba36a815 100644 --- a/teams/conda-dot-org.yml +++ b/teams/conda-dot-org.yml @@ -1,3 +1,6 @@ +# NOTE: This file is a work in progress. +# The information here reflected is provisional +# and must not be interpreted as the ground truth. # yaml-language-server: $schema=./teams.schema.json name: conda-dot-org description: Team responsible for the conda.org website maintenance diff --git a/teams/conda-env-builder.yml b/teams/conda-env-builder.yml index 595b8ff5..e45748cd 100644 --- a/teams/conda-env-builder.yml +++ b/teams/conda-env-builder.yml @@ -1,3 +1,6 @@ +# NOTE: This file is a work in progress. +# The information here reflected is provisional +# and must not be interpreted as the ground truth. # yaml-language-server: $schema=./teams.schema.json name: conda-env-builder description: Maintainers of `conda-env-builder` diff --git a/teams/conda-index.yml b/teams/conda-index.yml index 9790c783..bbad2ed5 100644 --- a/teams/conda-index.yml +++ b/teams/conda-index.yml @@ -1,3 +1,6 @@ +# NOTE: This file is a work in progress. +# The information here reflected is provisional +# and must not be interpreted as the ground truth. # yaml-language-server: $schema=./teams.schema.json name: conda-index description: Maintainers of conda-index diff --git a/teams/conda-libmamba-solver.yml b/teams/conda-libmamba-solver.yml index 528db2f7..453daebf 100644 --- a/teams/conda-libmamba-solver.yml +++ b/teams/conda-libmamba-solver.yml @@ -1,3 +1,6 @@ +# NOTE: This file is a work in progress. +# The information here reflected is provisional +# and must not be interpreted as the ground truth. # yaml-language-server: $schema=./teams.schema.json name: conda-libmamba-solver description: Maintainers of `conda-libmamba-solver` diff --git a/teams/conda-lock.yml b/teams/conda-lock.yml index eb0f0bc6..b8af8fd7 100644 --- a/teams/conda-lock.yml +++ b/teams/conda-lock.yml @@ -1,3 +1,6 @@ +# NOTE: This file is a work in progress. +# The information here reflected is provisional +# and must not be interpreted as the ground truth. # yaml-language-server: $schema=./teams.schema.json name: conda-lock description: Maintainers of conda-lock diff --git a/teams/conda-lockfiles.yml b/teams/conda-lockfiles.yml index 7d7e9501..b3932c1e 100644 --- a/teams/conda-lockfiles.yml +++ b/teams/conda-lockfiles.yml @@ -1,3 +1,6 @@ +# NOTE: This file is a work in progress. +# The information here reflected is provisional +# and must not be interpreted as the ground truth. # yaml-language-server: $schema=./teams.schema.json name: conda-lockfiles description: Maintainers of `conda-lockfiles` diff --git a/teams/conda-maintainers-project-management.yml b/teams/conda-maintainers-project-management.yml index 1b5409eb..7efb2ba1 100644 --- a/teams/conda-maintainers-project-management.yml +++ b/teams/conda-maintainers-project-management.yml @@ -1,3 +1,6 @@ +# NOTE: This file is a work in progress. +# The information here reflected is provisional +# and must not be interpreted as the ground truth. # yaml-language-server: $schema=./teams.schema.json name: conda-maintainers-project-management description: Support team for @conda/conda-maintainers, with triage permissions only diff --git a/teams/conda-maintainers.yml b/teams/conda-maintainers.yml index 95386c7d..1c368768 100644 --- a/teams/conda-maintainers.yml +++ b/teams/conda-maintainers.yml @@ -1,3 +1,6 @@ +# NOTE: This file is a work in progress. +# The information here reflected is provisional +# and must not be interpreted as the ground truth. # yaml-language-server: $schema=./teams.schema.json name: conda-maintainers description: Maintainers of `conda` and related core plugins diff --git a/teams/conda-meta-mcp.yml b/teams/conda-meta-mcp.yml index 3312df04..91bc1c77 100644 --- a/teams/conda-meta-mcp.yml +++ b/teams/conda-meta-mcp.yml @@ -1,3 +1,6 @@ +# NOTE: This file is a work in progress. +# The information here reflected is provisional +# and must not be interpreted as the ground truth. # yaml-language-server: $schema=./teams.schema.json name: conda-meta-mcp description: Maintainers of `conda-meta-mcp` diff --git a/teams/conda-mirror.yml b/teams/conda-mirror.yml index 56e1b1db..afa2ead7 100644 --- a/teams/conda-mirror.yml +++ b/teams/conda-mirror.yml @@ -1,3 +1,6 @@ +# NOTE: This file is a work in progress. +# The information here reflected is provisional +# and must not be interpreted as the ground truth. # yaml-language-server: $schema=./teams.schema.json name: conda-mirror description: Maintainers of `conda-mirror` diff --git a/teams/conda-oci.yml b/teams/conda-oci.yml index cb990153..eabce053 100644 --- a/teams/conda-oci.yml +++ b/teams/conda-oci.yml @@ -1,3 +1,6 @@ +# NOTE: This file is a work in progress. +# The information here reflected is provisional +# and must not be interpreted as the ground truth. # yaml-language-server: $schema=./teams.schema.json name: conda-oci description: Maintainers of `conda-oci` diff --git a/teams/conda-plugins.yml b/teams/conda-plugins.yml index 69168fe6..36336797 100644 --- a/teams/conda-plugins.yml +++ b/teams/conda-plugins.yml @@ -1,3 +1,6 @@ +# NOTE: This file is a work in progress. +# The information here reflected is provisional +# and must not be interpreted as the ground truth. # yaml-language-server: $schema=./teams.schema.json name: conda-plugins description: Maintainers of `conda-plugins` diff --git a/teams/conda-project.yml b/teams/conda-project.yml index 71ac94a3..e404b744 100644 --- a/teams/conda-project.yml +++ b/teams/conda-project.yml @@ -1,3 +1,6 @@ +# NOTE: This file is a work in progress. +# The information here reflected is provisional +# and must not be interpreted as the ground truth. # yaml-language-server: $schema=./teams.schema.json name: conda-project description: Maintainers of `conda-project` diff --git a/teams/conda-protect.yml b/teams/conda-protect.yml index 9cd27372..9c74b418 100644 --- a/teams/conda-protect.yml +++ b/teams/conda-protect.yml @@ -1,3 +1,6 @@ +# NOTE: This file is a work in progress. +# The information here reflected is provisional +# and must not be interpreted as the ground truth. # yaml-language-server: $schema=./teams.schema.json name: conda-protect description: Maintainers of `conda-protect` diff --git a/teams/conda-pypi.yml b/teams/conda-pypi.yml index d564ce22..66ab4722 100644 --- a/teams/conda-pypi.yml +++ b/teams/conda-pypi.yml @@ -1,3 +1,6 @@ +# NOTE: This file is a work in progress. +# The information here reflected is provisional +# and must not be interpreted as the ground truth. # yaml-language-server: $schema=./teams.schema.json name: conda-pypi description: Maintainers of `conda-pypi` diff --git a/teams/conda-rattler-solver.yml b/teams/conda-rattler-solver.yml index 386e8280..c6a8950b 100644 --- a/teams/conda-rattler-solver.yml +++ b/teams/conda-rattler-solver.yml @@ -1,3 +1,6 @@ +# NOTE: This file is a work in progress. +# The information here reflected is provisional +# and must not be interpreted as the ground truth. # yaml-language-server: $schema=./teams.schema.json name: conda-rattler-solver description: Maintainers of `conda-rattler-solver` diff --git a/teams/conda-rich.yml b/teams/conda-rich.yml index fadc5392..3929da51 100644 --- a/teams/conda-rich.yml +++ b/teams/conda-rich.yml @@ -1,3 +1,6 @@ +# NOTE: This file is a work in progress. +# The information here reflected is provisional +# and must not be interpreted as the ground truth. # yaml-language-server: $schema=./teams.schema.json name: conda-rich description: Maintainers of `conda-rich` diff --git a/teams/conda-self.yml b/teams/conda-self.yml index c7e73010..f2804923 100644 --- a/teams/conda-self.yml +++ b/teams/conda-self.yml @@ -1,3 +1,6 @@ +# NOTE: This file is a work in progress. +# The information here reflected is provisional +# and must not be interpreted as the ground truth. # yaml-language-server: $schema=./teams.schema.json name: conda-self description: Maintainers of `conda-self` diff --git a/teams/conda-sh.yml b/teams/conda-sh.yml index a8010ff6..dfc2967a 100644 --- a/teams/conda-sh.yml +++ b/teams/conda-sh.yml @@ -1,3 +1,6 @@ +# NOTE: This file is a work in progress. +# The information here reflected is provisional +# and must not be interpreted as the ground truth. # yaml-language-server: $schema=./teams.schema.json name: conda-sh description: Maintainers of the conda.sh website diff --git a/teams/conda-spawn.yml b/teams/conda-spawn.yml index 231270d2..ea4d6884 100644 --- a/teams/conda-spawn.yml +++ b/teams/conda-spawn.yml @@ -1,3 +1,6 @@ +# NOTE: This file is a work in progress. +# The information here reflected is provisional +# and must not be interpreted as the ground truth. # yaml-language-server: $schema=./teams.schema.json name: conda-spawn description: Maintainers of `conda-spawn` diff --git a/teams/conda-store.yml b/teams/conda-store.yml index 9ee6f28b..0e5147e1 100644 --- a/teams/conda-store.yml +++ b/teams/conda-store.yml @@ -1,3 +1,6 @@ +# NOTE: This file is a work in progress. +# The information here reflected is provisional +# and must not be interpreted as the ground truth. # yaml-language-server: $schema=./teams.schema.json name: conda-store description: Maintainers of `conda-store` and related projects diff --git a/teams/conda-subchannel.yml b/teams/conda-subchannel.yml index 567a366a..b0b5d85b 100644 --- a/teams/conda-subchannel.yml +++ b/teams/conda-subchannel.yml @@ -1,3 +1,6 @@ +# NOTE: This file is a work in progress. +# The information here reflected is provisional +# and must not be interpreted as the ground truth. # yaml-language-server: $schema=./teams.schema.json name: conda-subchannel description: Maintainers of `conda-subchannel` diff --git a/teams/conda-tree.yml b/teams/conda-tree.yml index e17e5ed7..b8622b7b 100644 --- a/teams/conda-tree.yml +++ b/teams/conda-tree.yml @@ -1,3 +1,6 @@ +# NOTE: This file is a work in progress. +# The information here reflected is provisional +# and must not be interpreted as the ground truth. # yaml-language-server: $schema=./teams.schema.json name: conda-tree description: Maintainers of `conda-tree` diff --git a/teams/conda-tui.yml b/teams/conda-tui.yml index b841a754..4f452151 100644 --- a/teams/conda-tui.yml +++ b/teams/conda-tui.yml @@ -1,3 +1,6 @@ +# NOTE: This file is a work in progress. +# The information here reflected is provisional +# and must not be interpreted as the ground truth. # yaml-language-server: $schema=./teams.schema.json name: conda-tui description: Maintainers of `conda-tui` diff --git a/teams/conda-tutorial.yml b/teams/conda-tutorial.yml index ec91ba8e..1add0052 100644 --- a/teams/conda-tutorial.yml +++ b/teams/conda-tutorial.yml @@ -1,3 +1,6 @@ +# NOTE: This file is a work in progress. +# The information here reflected is provisional +# and must not be interpreted as the ground truth. # yaml-language-server: $schema=./teams.schema.json name: conda-tutorial description: Maintainers of the `conda-tutorial` repository diff --git a/teams/condastats.yml b/teams/condastats.yml index 1d57c188..d56ba425 100644 --- a/teams/condastats.yml +++ b/teams/condastats.yml @@ -1,3 +1,6 @@ +# NOTE: This file is a work in progress. +# The information here reflected is provisional +# and must not be interpreted as the ground truth. # yaml-language-server: $schema=./teams.schema.json name: condastats description: Maintainers of `condastats` diff --git a/teams/constructor.yml b/teams/constructor.yml index 2ba4c292..04d275b4 100644 --- a/teams/constructor.yml +++ b/teams/constructor.yml @@ -1,3 +1,6 @@ +# NOTE: This file is a work in progress. +# The information here reflected is provisional +# and must not be interpreted as the ground truth. # yaml-language-server: $schema=./teams.schema.json name: constructor description: The team maintaining constructor and related projects diff --git a/teams/content.yml b/teams/content.yml index 8357b516..4414d30e 100644 --- a/teams/content.yml +++ b/teams/content.yml @@ -1,3 +1,6 @@ +# NOTE: This file is a work in progress. +# The information here reflected is provisional +# and must not be interpreted as the ground truth. # yaml-language-server: $schema=./teams.schema.json name: content description: diff --git a/teams/design.yml b/teams/design.yml index 0d264246..158c9054 100644 --- a/teams/design.yml +++ b/teams/design.yml @@ -1,3 +1,6 @@ +# NOTE: This file is a work in progress. +# The information here reflected is provisional +# and must not be interpreted as the ground truth. # yaml-language-server: $schema=./teams.schema.json name: design description: diff --git a/teams/distribution-contractors.yml b/teams/distribution-contractors.yml index 257f3775..c0352c54 100644 --- a/teams/distribution-contractors.yml +++ b/teams/distribution-contractors.yml @@ -1,3 +1,6 @@ +# NOTE: This file is a work in progress. +# The information here reflected is provisional +# and must not be interpreted as the ground truth. # yaml-language-server: $schema=./teams.schema.json name: distribution-contractors description: diff --git a/teams/docs.yml b/teams/docs.yml index 0484fc6a..09b54d9f 100644 --- a/teams/docs.yml +++ b/teams/docs.yml @@ -1,3 +1,6 @@ +# NOTE: This file is a work in progress. +# The information here reflected is provisional +# and must not be interpreted as the ground truth. # yaml-language-server: $schema=./teams.schema.json name: docs description: The team working on all-things docs diff --git a/teams/fetch.yml b/teams/fetch.yml index f13dc765..fefb2d45 100644 --- a/teams/fetch.yml +++ b/teams/fetch.yml @@ -1,3 +1,6 @@ +# NOTE: This file is a work in progress. +# The information here reflected is provisional +# and must not be interpreted as the ground truth. # yaml-language-server: $schema=./teams.schema.json name: fetch description: diff --git a/teams/grayskull.yml b/teams/grayskull.yml index b6f63ef6..865f4904 100644 --- a/teams/grayskull.yml +++ b/teams/grayskull.yml @@ -1,3 +1,6 @@ +# NOTE: This file is a work in progress. +# The information here reflected is provisional +# and must not be interpreted as the ground truth. # yaml-language-server: $schema=./teams.schema.json name: grayskull description: Maintainers of `grayskull` diff --git a/teams/hatch-conda-build.yml b/teams/hatch-conda-build.yml index 27e77ad5..bea6b7f4 100644 --- a/teams/hatch-conda-build.yml +++ b/teams/hatch-conda-build.yml @@ -1,3 +1,6 @@ +# NOTE: This file is a work in progress. +# The information here reflected is provisional +# and must not be interpreted as the ground truth. # yaml-language-server: $schema=./teams.schema.json name: hatch-conda-build description: Maintainers of the `hatch-conda-build` plugin diff --git a/teams/implementation.yml b/teams/implementation.yml index e4c0a519..b0696e15 100644 --- a/teams/implementation.yml +++ b/teams/implementation.yml @@ -1,3 +1,6 @@ +# NOTE: This file is a work in progress. +# The information here reflected is provisional +# and must not be interpreted as the ground truth. # yaml-language-server: $schema=./teams.schema.json name: implementation description: diff --git a/teams/infrastructure.yml b/teams/infrastructure.yml index 3ffa89fc..f97fd376 100644 --- a/teams/infrastructure.yml +++ b/teams/infrastructure.yml @@ -1,3 +1,6 @@ +# NOTE: This file is a work in progress. +# The information here reflected is provisional +# and must not be interpreted as the ground truth. # yaml-language-server: $schema=./teams.schema.json name: infrastructure description: The team working on conda community infrastructure diff --git a/teams/installer.yml b/teams/installer.yml index 42a1caf9..aadc18fb 100644 --- a/teams/installer.yml +++ b/teams/installer.yml @@ -1,3 +1,6 @@ +# NOTE: This file is a work in progress. +# The information here reflected is provisional +# and must not be interpreted as the ground truth. # yaml-language-server: $schema=./teams.schema.json name: installer description: Maintainers of the `installer` Github Action diff --git a/teams/nvidia-virtual-packages.yml b/teams/nvidia-virtual-packages.yml index c6226c4f..fc7ca4f8 100644 --- a/teams/nvidia-virtual-packages.yml +++ b/teams/nvidia-virtual-packages.yml @@ -1,3 +1,6 @@ +# NOTE: This file is a work in progress. +# The information here reflected is provisional +# and must not be interpreted as the ground truth. # yaml-language-server: $schema=./teams.schema.json name: nvidia-virtual-packages description: Maintainers of virtual packages related to Nvidia diff --git a/teams/packaging-tools.yml b/teams/packaging-tools.yml index afdedbcd..c58ea849 100644 --- a/teams/packaging-tools.yml +++ b/teams/packaging-tools.yml @@ -1,3 +1,6 @@ +# NOTE: This file is a work in progress. +# The information here reflected is provisional +# and must not be interpreted as the ground truth. # yaml-language-server: $schema=./teams.schema.json name: packaging-tools description: Maintainers of conda-package-handling and related projects diff --git a/teams/pre-commit.yml b/teams/pre-commit.yml index e1f51ad6..544af458 100644 --- a/teams/pre-commit.yml +++ b/teams/pre-commit.yml @@ -1,3 +1,6 @@ +# NOTE: This file is a work in progress. +# The information here reflected is provisional +# and must not be interpreted as the ground truth. # yaml-language-server: $schema=./teams.schema.json name: pre-commit description: Maintainers of conda-based pre-commit hooks diff --git a/teams/prefix-dev.yml b/teams/prefix-dev.yml index fe20dce2..8c0ee9dd 100644 --- a/teams/prefix-dev.yml +++ b/teams/prefix-dev.yml @@ -1,3 +1,6 @@ +# NOTE: This file is a work in progress. +# The information here reflected is provisional +# and must not be interpreted as the ground truth. # yaml-language-server: $schema=./teams.schema.json name: prefix-dev description: Contributors working for Prefix.dev diff --git a/teams/quansight.yml b/teams/quansight.yml index 200e53f5..74196688 100644 --- a/teams/quansight.yml +++ b/teams/quansight.yml @@ -1,3 +1,6 @@ +# NOTE: This file is a work in progress. +# The information here reflected is provisional +# and must not be interpreted as the ground truth. # yaml-language-server: $schema=./teams.schema.json name: quansight description: Contributors working for Quansight diff --git a/teams/rattler.yml b/teams/rattler.yml index 2aa78e41..15f422e2 100644 --- a/teams/rattler.yml +++ b/teams/rattler.yml @@ -1,3 +1,6 @@ +# NOTE: This file is a work in progress. +# The information here reflected is provisional +# and must not be interpreted as the ground truth. # yaml-language-server: $schema=./teams.schema.json name: rattler description: Maintainers of `rattler` diff --git a/teams/relock-conda.yml b/teams/relock-conda.yml index 26e84012..49010859 100644 --- a/teams/relock-conda.yml +++ b/teams/relock-conda.yml @@ -1,3 +1,6 @@ +# NOTE: This file is a work in progress. +# The information here reflected is provisional +# and must not be interpreted as the ground truth. # yaml-language-server: $schema=./teams.schema.json name: relock-conda description: Maintainers of `relock-conda` diff --git a/teams/setup-miniconda.yml b/teams/setup-miniconda.yml index 9b0566b7..c7ff9eaa 100644 --- a/teams/setup-miniconda.yml +++ b/teams/setup-miniconda.yml @@ -1,3 +1,6 @@ +# NOTE: This file is a work in progress. +# The information here reflected is provisional +# and must not be interpreted as the ground truth. # yaml-language-server: $schema=./teams.schema.json name: setup-miniconda description: Maintainers of the setup-miniconda action diff --git a/teams/shells.yml b/teams/shells.yml index cca967c3..c9ed66e7 100644 --- a/teams/shells.yml +++ b/teams/shells.yml @@ -1,3 +1,6 @@ +# NOTE: This file is a work in progress. +# The information here reflected is provisional +# and must not be interpreted as the ground truth. # yaml-language-server: $schema=./teams.schema.json name: shells description: Maintainers of conda-shell and other shell-related projects diff --git a/teams/steering-council.yml b/teams/steering-council.yml index ad04b730..5a21b2ab 100644 --- a/teams/steering-council.yml +++ b/teams/steering-council.yml @@ -1,3 +1,6 @@ +# NOTE: This file is a work in progress. +# The information here reflected is provisional +# and must not be interpreted as the ground truth. # yaml-language-server: $schema=./teams.schema.json name: steering-council description: Steering council of the conda ecosystem diff --git a/teams/steering-emeritus.yml b/teams/steering-emeritus.yml index 35838161..f0bd82ad 100644 --- a/teams/steering-emeritus.yml +++ b/teams/steering-emeritus.yml @@ -1,3 +1,6 @@ +# NOTE: This file is a work in progress. +# The information here reflected is provisional +# and must not be interpreted as the ground truth. # yaml-language-server: $schema=./teams.schema.json name: steering-emeritus description: Former members of the steering council From 3af6fca798077c76fd19c6f8b4c1918897324a11 Mon Sep 17 00:00:00 2001 From: jaimergp Date: Wed, 3 Dec 2025 11:55:38 +0100 Subject: [PATCH 36/38] Remove disclaimer from script --- scripts/sort_team_yaml.py | 5 ----- 1 file changed, 5 deletions(-) diff --git a/scripts/sort_team_yaml.py b/scripts/sort_team_yaml.py index 125080a4..c02ffbe0 100644 --- a/scripts/sort_team_yaml.py +++ b/scripts/sort_team_yaml.py @@ -42,10 +42,5 @@ val = data["resources"].pop(key, None) data["resources"].insert(0, key, val) - path.write_text( - "# NOTE: This file is a work in progress.\n" - "# The information here reflected is provisional\n" - "# and must not be interpreted as the ground truth.\n" - ) with open(path, "a") as f: yaml.dump(data, f) From 3f460a6ed7373c34be35c851d093652144b4e042 Mon Sep 17 00:00:00 2001 From: Jannis Leidel Date: Thu, 29 Jan 2026 02:19:37 +0100 Subject: [PATCH 37/38] Sync team member lists with current GitHub org membership - build-tools: Move travishathaway to emeritus - communications: Add dashagurova - constructor: Add lrandersson (#332), move mcg1969 to emeritus - infrastructure: Add jaimergp GitHub team changes still needed: - coc-committee: Remove jezdez - communications: Remove tnabtaf - constructor: Add hmaarrfk --- teams/build-tools.yml | 2 +- teams/communications.yml | 1 + teams/constructor.yml | 5 +++-- teams/infrastructure.yml | 1 + 4 files changed, 6 insertions(+), 3 deletions(-) diff --git a/teams/build-tools.yml b/teams/build-tools.yml index 1145572e..81353225 100644 --- a/teams/build-tools.yml +++ b/teams/build-tools.yml @@ -37,8 +37,8 @@ members: msarahan: https://github.com/conda/conda-build/issues/4698 ryanskeith: https://github.com/conda/conda-build/issues/4698 schuylermartin45: https://github.com/conda/governance/issues/128 - travishathaway: https://github.com/conda/conda-build/issues/4698 wolfv: https://github.com/conda/conda-build/issues/4698 emeritus: Callek: danpetry: https://anaconda.slack.com/archives/C05B9MPGR4Y/p1713452484809289 + travishathaway: https://github.com/conda/conda-build/issues/4698 diff --git a/teams/communications.yml b/teams/communications.yml index ce7eaae6..7b7faa44 100644 --- a/teams/communications.yml +++ b/teams/communications.yml @@ -21,6 +21,7 @@ resources: links: - https://github.com/conda/governance/issues/53 members: + dashagurova: # added to match GitHub team jaimergp: https://github.com/conda/governance/issues/81 jezdez: https://github.com/conda/governance/issues/81 emeritus: diff --git a/teams/constructor.yml b/teams/constructor.yml index 04d275b4..84d55806 100644 --- a/teams/constructor.yml +++ b/teams/constructor.yml @@ -23,14 +23,15 @@ members: bkreider: https://github.com/conda/governance/issues/53 chenghlee: https://github.com/conda/governance/issues/53 goanpeca: https://github.com/conda/governance/issues/53 - hmaarrfk: https://github.com/conda/governance/issues/53 # missing from team? + hmaarrfk: https://github.com/conda/governance/issues/53 hoechenberger: https://github.com/conda/governance/issues/53 isuruf: https://github.com/conda/governance/issues/53 jaimergp: https://github.com/conda/governance/issues/53 jezdez: https://github.com/conda/governance/issues/53 larsoner: https://github.com/conda/governance/issues/53 + lrandersson: https://github.com/conda/governance/issues/332 marcoesters: https://github.com/conda/constructor/issues/790 - mcg1969: https://github.com/conda/governance/issues/53 # missing from team? pseudoyim: https://github.com/conda/governance/issues/53 travishathaway: # missing record of decision? emeritus: + mcg1969: https://github.com/conda/governance/issues/53 diff --git a/teams/infrastructure.yml b/teams/infrastructure.yml index f97fd376..d2b11897 100644 --- a/teams/infrastructure.yml +++ b/teams/infrastructure.yml @@ -25,6 +25,7 @@ members: beckermr: https://github.com/conda/governance/issues/84 chenghlee: # missing record of decision? dbast: https://github.com/conda/governance/issues/84 + jaimergp: # added to match GitHub team jezdez: https://github.com/conda/governance/issues/84 kenodegard: https://github.com/conda/governance/issues/84 emeritus: From c45fd1fa88bd22c6e597ab638c22f956af89801c Mon Sep 17 00:00:00 2001 From: jaimergp Date: Thu, 26 Mar 2026 11:39:31 +0100 Subject: [PATCH 38/38] fix pre-commit --- scripts/sort_team_yaml.py | 2 +- teams/steering-emeritus.yml | 16 ++++++++-------- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/scripts/sort_team_yaml.py b/scripts/sort_team_yaml.py index c02ffbe0..9bf0dc93 100644 --- a/scripts/sort_team_yaml.py +++ b/scripts/sort_team_yaml.py @@ -42,5 +42,5 @@ val = data["resources"].pop(key, None) data["resources"].insert(0, key, val) - with open(path, "a") as f: + with open(path, "w") as f: yaml.dump(data, f) diff --git a/teams/steering-emeritus.yml b/teams/steering-emeritus.yml index 84fbd785..abb1d307 100644 --- a/teams/steering-emeritus.yml +++ b/teams/steering-emeritus.yml @@ -44,6 +44,14 @@ members: - https://github.com/conda/governance/pull/28 - https://github.com/conda/governance/pull/169 - https://github.com/conda/governance/pull/252 + cj-wright: + full_name: Christopher J. 'CJ' Wright + email: cjwright4242@gmail.com + funder: + pronouns: + decision: + - https://github.com/conda/governance/issues/1 + - https://github.com/conda/governance/pull/366 cjmartian: full_name: Connor Martin email: connormartin7@gmail.com @@ -53,14 +61,6 @@ members: - https://github.com/conda/governance/issues/1 - https://github.com/conda/governance/pull/3 - https://github.com/conda/governance/pull/65 - cj-wright: - full_name: Christopher J. 'CJ' Wright - email: cjwright4242@gmail.com - funder: - pronouns: - decision: - - https://github.com/conda/governance/issues/1 - - https://github.com/conda/governance/pull/366 csoja: full_name: Crystal Soja email: csoja@anaconda.com