From 70158a129658a3c4198928274fea9789e49b8588 Mon Sep 17 00:00:00 2001 From: jaimergp Date: Thu, 20 Nov 2025 16:27:04 +0100 Subject: [PATCH 01/36] 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 de8ffa2..d63af36 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/36] 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 d63af36..e5a0edd 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/36] 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 875e90e..1b34f9e 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 a13946c..36d5867 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 dc77931..4247918 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/36] 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 4247918..dc77931 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/36] Fix deprecation warnings --- pixi.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pixi.toml b/pixi.toml index 46b273d..b59f0a7 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/36] pre-commit again --- pixi.toml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/pixi.toml b/pixi.toml index b59f0a7..3992567 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/36] 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 1b34f9e..f3b3be0 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/36] 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 f3b3be0..d72c03d 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/36] 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 d72c03d..269fa92 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 47c34f9..0c577e9 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 aadc271..7be8a61 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 e009e15..13f9b2a 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 f064629..5192901 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 5e2f11c..bb1e65f 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 c400fe0..1c80178 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 489c710..947dcda 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/36] 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 269fa92..5859bbf 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/36] 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 0c577e9..e6bcfad 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 7be8a61..4c48a60 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 13f9b2a..1db2df8 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 5192901..3194efb 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 bb1e65f..043887f 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 1c80178..7bd0ba6 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 947dcda..6f9c2c1 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/36] 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 5859bbf..2d78876 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 0000000..098c083 --- /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 0000000..e742ba9 --- /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 0000000..fbbcc90 --- /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 0000000..c0caf48 --- /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 0000000..184ade5 --- /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 0000000..b360f62 --- /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 0000000..cc66afd --- /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 0000000..6f9e216 --- /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 0000000..706bf41 --- /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 0000000..e04da34 --- /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 0000000..57d757c --- /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 0000000..a461dc4 --- /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 0000000..5a7109c --- /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 0000000..3b9a492 --- /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 0000000..a20e8ed --- /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 0000000..951fe24 --- /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 0000000..ed6c45d --- /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 0000000..6daf1b9 --- /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 0000000..e9649c5 --- /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 0000000..10c8706 --- /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 0000000..222906e --- /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 0000000..bf6bd7f --- /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 0000000..a07684a --- /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 0000000..8ccdebf --- /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 0000000..0b2e740 --- /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 0000000..61b58f7 --- /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 0000000..b3f2749 --- /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 0000000..9d81d4b --- /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 0000000..bdda1ae --- /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 0000000..3c98851 --- /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 0000000..8db78cd --- /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 0000000..4e4821d --- /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 0000000..2d892ca --- /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 0000000..e88b6ad --- /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 0000000..894d99e --- /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 0000000..0e7d28f --- /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 0000000..445f64b --- /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 0000000..0852181 --- /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 0000000..73174e9 --- /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 0000000..1b93dc1 --- /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 0000000..956274f --- /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 0000000..0356fbb --- /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 0000000..0c969a6 --- /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 0000000..fb0375e --- /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 0000000..b03b737 --- /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 0000000..e248d0b --- /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 0000000..5c9343a --- /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 0000000..67d052a --- /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 0000000..c769b27 --- /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 0000000..c277a5b --- /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 0000000..25127c8 --- /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 0000000..433c178 --- /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 0000000..b9ef0a2 --- /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 0000000..294054d --- /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 0000000..5e461e6 --- /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 0000000..4e9bac4 --- /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 0000000..ec92c5e --- /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 0000000..624af21 --- /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 0000000..4aedb9d --- /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 0000000..b795ef1 --- /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 0000000..b6cd7a8 --- /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 0000000..edfcf16 --- /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/36] 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 2d78876..caf1d9c 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 294054d..f7f9f91 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/36] 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 6daf1b9..4b1396b 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/36] 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 098c083..f10c766 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 e742ba9..c784f14 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 fbbcc90..1f2cc59 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 c0caf48..1f3a75c 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 184ade5..ae6f5f6 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 b360f62..b0d5303 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 cc66afd..ca72638 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 6f9e216..957e518 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 706bf41..34ec54e 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 e04da34..4f93b36 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 57d757c..4cdb5fb 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 a461dc4..07fd7ec 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 5a7109c..dfcc74f 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 3b9a492..6c122af 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 a20e8ed..c90dac8 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 951fe24..a6b36ac 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 ed6c45d..4cdfcd3 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 e9649c5..d682311 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 10c8706..adb9913 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 222906e..48d774b 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 bf6bd7f..5ed9971 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 a07684a..196f057 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 8ccdebf..a908d85 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 0b2e740..bfc1fbf 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 61b58f7..217daaa 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 b3f2749..942bda9 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 9d81d4b..e1cf9de 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 bdda1ae..66cd383 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 2d892ca..d78e477 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 894d99e..9fb0363 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 0852181..76bc15e 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 73174e9..d4d5ac4 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 1b93dc1..25df2b8 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 0356fbb..48f7cf4 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 0c969a6..17783fe 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 fb0375e..2440828 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 e248d0b..4095672 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 5c9343a..f9be8ac 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 c277a5b..ce2d051 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 25127c8..7f6d136 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 433c178..cc93165 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 b9ef0a2..6c4f4c2 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 f7f9f91..163eb15 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 4e9bac4..45486f5 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 ec92c5e..976d147 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 624af21..1887dc3 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 4aedb9d..7a87f84 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 b795ef1..abce3c2 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 dc77931..ed954f9 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/36] 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 caf1d9c..183565d 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 36d5867..af1f14c 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/36] 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 0000000..aaa2e1a --- /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/36] 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 c784f14..edb9043 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 1f3a75c..638be6f 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 ae6f5f6..ea6c2f7 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 4f93b36..180d703 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 07fd7ec..845be29 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 4cdfcd3..677df72 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 4b1396b..17ff6bc 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 d682311..65a8834 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 adb9913..fd30d79 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 48d774b..56de765 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 196f057..fcc3a3e 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 a908d85..779b04d 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 bfc1fbf..d0187e6 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 217daaa..ca175bb 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 942bda9..769a8d2 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 3c98851..a2e8015 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 d4d5ac4..c6c78e6 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 25df2b8..d6badb3 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 4095672..fe8f758 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 e6bcfad..6c27833 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 4c48a60..f58c5de 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 1db2df8..8dad736 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 3194efb..e0f520a 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 ce2d051..abef5cd 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 7f6d136..791f440 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 cc93165..3c756bf 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 6c4f4c2..e7703e6 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 163eb15..b2ca073 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 043887f..55d9160 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 45486f5..3acf676 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 6f9c2c1..5ab8a95 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 976d147..b286f8e 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 1887dc3..8234caa 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 7a87f84..6359936 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 abce3c2..b949e7d 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 b6cd7a8..f3d6009 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 edfcf16..bd12c06 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 ed954f9..a06beb0 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/36] 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 183565d..8643a74 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/36] 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 8643a74..5c7c2ad 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/36] 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 5c7c2ad..9b88c27 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/36] 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 9b88c27..44b29e5 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/36] 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 44b29e5..9e05ce6 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/36] 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 aaa2e1a..0000000 --- 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/36] 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 e702463..58a1cdc 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 0842211..685b420 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 73ec969..2af787f 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 3992567..30c87a0 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 af1f14c..11fe859 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 2fe9a16..685b420 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 f3d6009..291e87e 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 bd12c06..f3641c5 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 a06beb0..c39997b 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/36] 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 779b04d..4079ad3 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/36] 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 30c87a0..e90209d 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 11fe859..f3a3f31 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 291e87e..ddd76e2 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 f3641c5..e9e1c10 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 c39997b..deffc07 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/36] 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 096b5eb..5bbe9d7 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 334d5bd..e286d60 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 9e05ce6..23db23a 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 f3a3f31..3b9ca52 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 0000000..cad792e --- /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 f10c766..f450faf 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 edb9043..5eeb798 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 1f2cc59..20fa772 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 638be6f..f59dc4f 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 ca72638..3c7ef32 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 957e518..53826a6 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 180d703..7ec3bc6 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 4cdb5fb..f668a45 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 845be29..9d54d5c 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 dfcc74f..d3e0eea 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 6c122af..7888c35 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 c90dac8..a671f1e 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 a6b36ac..9c426cd 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 17ff6bc..5d22a91 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 65a8834..116e22d 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 56de765..75a7334 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 5ed9971..7973352 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 4079ad3..d009ff6 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 d0187e6..bb6485a 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 e1cf9de..47df704 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 a2e8015..c910bb5 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 8db78cd..9c6afaf 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 4e4821d..9de38d0 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 d78e477..7be568d 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 e88b6ad..ecfd4c4 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 9fb0363..2660e8d 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 0e7d28f..156b4a5 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 445f64b..e427065 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 76bc15e..8e1a6a8 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 c6c78e6..0d92845 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 d6badb3..16824c6 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 956274f..7451b28 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 17783fe..1eac0b4 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 2440828..ce8f905 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 b03b737..8327942 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 fe8f758..b5e02d7 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 6c27833..b19a52e 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 f9be8ac..e7fd6c0 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 f58c5de..7cc3889 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 c769b27..a4c968e 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 abef5cd..104fa99 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 791f440..1689797 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 3c756bf..19d58a7 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 e7703e6..b0f1ed0 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 b2ca073..25a1f75 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 5e461e6..28057a6 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 3acf676..4c14efa 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 b286f8e..8b3bcc1 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 8234caa..5bce41b 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 6359936..a29fa7d 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 b949e7d..33d041c 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 ddd76e2..a986934 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 e9e1c10..b277dcf 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/36] 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 e5a0edd..bb0da3f 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/36] 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 23db23a..325bc0a 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/36] 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 325bc0a..845f908 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 3b9ca52..3a3f7a8 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 cad792e..60f35d4 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 f450faf..2e0382d 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 5eeb798..3f93367 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 20fa772..889bd7e 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 f59dc4f..1845185 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 ea6c2f7..0d8a5a9 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 b0d5303..afe43d8 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 3c7ef32..c282338 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 53826a6..df89146 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 34ec54e..5aba25f 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 7ec3bc6..7d48f10 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 f668a45..3b98ffb 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 9d54d5c..7bda9f9 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 d3e0eea..7d6a847 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 7888c35..7e47566 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 a671f1e..451c0c8 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 9c426cd..37a832e 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 677df72..f960465 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 5d22a91..afe23ba 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 116e22d..4561ce2 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 fd30d79..f8890e5 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 75a7334..5d4ecff 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 7973352..703acdf 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 fcc3a3e..8c3526b 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 d009ff6..0e56ceb 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 bb6485a..00ee8ec 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 ca175bb..d15d204 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 769a8d2..d2f5749 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 47df704..3e399fc 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 66cd383..628e65b 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 c910bb5..97d4e75 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 9c6afaf..604c4e3 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 9de38d0..178167c 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 7be568d..d69c739 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 ecfd4c4..0eead9b 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 2660e8d..916e8a8 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 156b4a5..b7d7480 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 e427065..ce12ae3 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 8e1a6a8..f093edc 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 0d92845..9184faa 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 16824c6..b72f728 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 7451b28..89acc58 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 48f7cf4..3671212 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 1eac0b4..56dad47 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 ce8f905..f27b89c 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 8327942..19b4cb4 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 b5e02d7..6734dad 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 b19a52e..f36b752 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 e7fd6c0..9b190df 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 7cc3889..231e196 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 8dad736..4917a32 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 e0f520a..b36bf43 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 67d052a..c09b45d 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 a4c968e..33d135a 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 104fa99..7ec5fdc 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 1689797..d5483cf 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 19d58a7..4cf0cbb 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 b0f1ed0..a633bb2 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 25a1f75..016e6bb 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 55d9160..7bfb343 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 28057a6..bfbe81b 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 7bd0ba6..5efcc56 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 4c14efa..66c36de 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 5ab8a95..1c73428 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 8b3bcc1..99eec17 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 5bce41b..d49a4f7 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 a29fa7d..0e006ad 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 33d041c..a6f0ee4 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 a986934..ae078df 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 b277dcf..ade2156 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 deffc07..13af874 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/36] 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 e286d60..7ea6ba6 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 845f908..660b508 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 3a3f7a8..01fe6e1 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 60f35d4..9bf0dc9 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 6734dad..5c30ec4 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 2e0382d..fa12e9f 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 f36b752..9b26d07 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 9b190df..0d006e0 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 231e196..9c01a87 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 4917a32..8ffc473 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 b36bf43..4a48050 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 c09b45d..72d25ce 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 0d8a5a9..fba1b33 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 afe43d8..8cb8f59 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 c282338..3c1d105 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 33d135a..38bdb7c 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 7ec5fdc..0dc00f9 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 5aba25f..595b8ff 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 3f93367..0000000 --- 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 889bd7e..0000000 --- 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 1845185..0000000 --- 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 df89146..0000000 --- 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 97d4e75..0000000 --- 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 d69c739..0000000 --- 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 ce12ae3..0000000 --- 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 89acc58..0000000 --- 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 19b4cb4..0000000 --- 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 d5483cf..9790c78 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 7d48f10..528db2f 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 4cf0cbb..eb0f0bc 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 3b98ffb..7d7e950 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 a633bb2..1b5409e 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 016e6bb..95386c7 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 7bda9f9..3312df0 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 7d6a847..56e1b1d 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 7e47566..cb99015 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 451c0c8..69168fe 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 37a832e..71ac94a 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 f960465..9cd2737 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 afe23ba..d564ce2 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 4561ce2..386e828 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 f8890e5..fadc539 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 5d4ecff..c7e7301 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 703acdf..a8010ff 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 8c3526b..231270d 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 0e56ceb..9ee6f28 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 00ee8ec..567a366 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 d15d204..e17e5ed 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 d2f5749..b841a75 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 3e399fc..ec91ba8 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 628e65b..1d57c18 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 7bfb343..2ba4c29 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 604c4e3..8357b51 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 178167c..0d26424 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 bfbe81b..257f377 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 5efcc56..0484fc6 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 0eead9b..f13dc76 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 66c36de..b6f63ef 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 916e8a8..27e77ad 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 b7d7480..e4c0a51 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 1c73428..3ffa89f 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 f093edc..42a1caf 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 9184faa..c6226c4 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 99eec17..afdedbc 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 b72f728..e1f51ad 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 d49a4f7..fe20dce 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 0e006ad..200e53f 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 a6f0ee4..2aa78e4 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 3671212..26e8401 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 56dad47..9b0566b 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 f27b89c..cca967c 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 ae078df..ad04b73 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 ade2156..3583816 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 13af874..c36a475 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/36] 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 9b26d07..0c6ab7c 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/36] 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 0c6ab7c..af9e47d 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/36] 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 9bf0dc9..125080a 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 5c30ec4..5d25237 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 fa12e9f..0974a01 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 af9e47d..1145572 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 0d006e0..a10d2be 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 9c01a87..eddb438 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 8ffc473..9cfe45d 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 4a48050..ce7eaae 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 72d25ce..a7b8afc 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 fba1b33..6fe9b3e 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 8cb8f59..21773c2 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 3c1d105..105f708 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 38bdb7c..490516e 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 0dc00f9..ba36a81 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 595b8ff..e45748c 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 9790c78..bbad2ed 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 528db2f..453daeb 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 eb0f0bc..b8af8fd 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 7d7e950..b3932c1 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 1b5409e..7efb2ba 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 95386c7..1c36876 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 3312df0..91bc1c7 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 56e1b1d..afa2ead 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 cb99015..eabce05 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 69168fe..3633679 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 71ac94a..e404b74 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 9cd2737..9c74b41 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 d564ce2..66ab472 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 386e828..c6a8950 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 fadc539..3929da5 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 c7e7301..f280492 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 a8010ff..dfc2967 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 231270d..ea4d688 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 9ee6f28..0e5147e 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 567a366..b0b5d85 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 e17e5ed..b8622b7 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 b841a75..4f45215 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 ec91ba8..1add005 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 1d57c18..d56ba42 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 2ba4c29..04d275b 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 8357b51..4414d30 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 0d26424..158c905 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 257f377..c0352c5 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 0484fc6..09b54d9 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 f13dc76..fefb2d4 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 b6f63ef..865f490 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 27e77ad..bea6b7f 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 e4c0a51..b0696e1 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 3ffa89f..f97fd37 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 42a1caf..aadc18f 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 c6226c4..fc7ca4f 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 afdedbc..c58ea84 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 e1f51ad..544af45 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 fe20dce..8c0ee9d 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 200e53f..7419668 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 2aa78e4..15f422e 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 26e8401..4901085 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 9b0566b..c7ff9ea 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 cca967c..c9ed66e 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 ad04b73..5a21b2a 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 3583816..f0bd82a 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/36] 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 125080a..c02ffbe 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)