Skip to content

Check teams from branch PRs - #313

Open
jaimergp wants to merge 40 commits into
mainfrom
fix-teams
Open

Check teams from branch PRs#313
jaimergp wants to merge 40 commits into
mainfrom
fix-teams

Conversation

@jaimergp

@jaimergp jaimergp commented Nov 20, 2025

Copy link
Copy Markdown
Member

@jaimergp jaimergp changed the title Open PRs from branch Check teams from branch PRs Nov 20, 2025
@jaimergp

Copy link
Copy Markdown
Member Author

Posting the pre-commit logs here because they don't fit in pre-commit.ci:

Validate files with jsonschema...........................................Failed
- hook id: check-jsonschema
- exit code: 1
  Schema validation errors were encountered.
    teams/conda/community-contributors.yml::$.description: None is not of type 'string'
    teams/conda/community-contributors.yml::$.charter: None is not one of ['dynamic', 'static', 'project']
    teams/conda/community-contributors.yml::$.charter: None is not of type 'string'
    teams/conda/community-contributors.yml::$.links: None is not of type 'array'
    teams/conda-incubator/ceps.yml::$.charter: None is not one of ['dynamic', 'static', 'project']
    teams/conda-incubator/ceps.yml::$.charter: None is not of type 'string'
    teams/conda-incubator/ceps.yml::$.links: None is not of type 'array'
    teams/conda-incubator/setup-miniconda.yml::$.charter: None is not one of ['dynamic', 'static', 'project']
    teams/conda-incubator/setup-miniconda.yml::$.charter: None is not of type 'string'
    teams/conda-incubator/setup-miniconda.yml::$.links: None is not of type 'array'
  Schema validation errors were encountered.
    teams/conda-incubator/constructor.yml::$.description: None is not of type 'string'
    teams/conda-incubator/constructor.yml::$.charter: None is not one of ['dynamic', 'static', 'project']
    teams/conda-incubator/constructor.yml::$.charter: None is not of type 'string'
    teams/conda-incubator/bots.yml::$.charter: None is not one of ['dynamic', 'static', 'project']
    teams/conda-incubator/bots.yml::$.charter: None is not of type 'string'
    teams/conda-incubator/bots.yml::$.links: None is not of type 'array'
  Schema validation errors were encountered.
    teams/conda-incubator/rattler.yml::$.description: None is not of type 'string'
    teams/conda-incubator/rattler.yml::$.charter: None is not one of ['dynamic', 'static', 'project']
    teams/conda-incubator/rattler.yml::$.charter: None is not of type 'string'
    teams/conda-incubator/rattler.yml::$.links: None is not of type 'array'
    teams/conda-incubator/conda-project.yml::$.charter: None is not one of ['dynamic', 'static', 'project']
    teams/conda-incubator/conda-project.yml::$.charter: None is not of type 'string'
    teams/conda-incubator/conda-project.yml::$.links: None is not of type 'array'
    teams/conda-incubator/infrastructure.yml::$.description: None is not of type 'string'
    teams/conda-incubator/infrastructure.yml::$.charter: None is not one of ['dynamic', 'static', 'project']
    teams/conda-incubator/infrastructure.yml::$.charter: None is not of type 'string'
    teams/conda-incubator/infrastructure.yml::$.links: None is not of type 'array'
    teams/conda-incubator/conda-mirror.yml::$.charter: None is not one of ['dynamic', 'static', 'project']
    teams/conda-incubator/conda-mirror.yml::$.charter: None is not of type 'string'
    teams/conda-incubator/conda-mirror.yml::$.links: None is not of type 'array'
    teams/conda-incubator/conda-sh.yml::$.charter: None is not one of ['dynamic', 'static', 'project']
    teams/conda-incubator/conda-sh.yml::$.charter: None is not of type 'string'
    teams/conda-incubator/conda-sh.yml::$.links: None is not of type 'array'
    teams/conda-incubator/shells.yml::$.charter: None is not one of ['dynamic', 'static', 'project']
    teams/conda-incubator/shells.yml::$.charter: None is not of type 'string'
    teams/conda-incubator/shells.yml::$.links: None is not of type 'array'
    teams/conda-incubator/conda-lockfiles.yml::$.charter: None is not one of ['dynamic', 'static', 'project']
    teams/conda-incubator/conda-lockfiles.yml::$.charter: None is not of type 'string'
    teams/conda-incubator/conda-lockfiles.yml::$.links: None is not of type 'array'
  Schema validation errors were encountered.
    teams/conda/conda-maintainers-project-management.yml::$.links: None is not of type 'array'
    teams/conda-incubator/conda-colab.yml::$.charter: None is not one of ['dynamic', 'static', 'project']
    teams/conda-incubator/conda-colab.yml::$.charter: None is not of type 'string'
    teams/conda-incubator/conda-colab.yml::$.links: None is not of type 'array'
    teams/conda-incubator/conda-oci.yml::$.charter: None is not one of ['dynamic', 'static', 'project']
    teams/conda-incubator/conda-oci.yml::$.charter: None is not of type 'string'
    teams/conda-incubator/conda-oci.yml::$.links: None is not of type 'array'
    teams/conda/ceps.yml::$.charter: None is not one of ['dynamic', 'static', 'project']
    teams/conda/ceps.yml::$.charter: None is not of type 'string'
    teams/conda/ceps.yml::$.links: None is not of type 'array'
  Schema validation errors were encountered.
    teams/conda/conda-core.yml::$.description: None is not of type 'string'
    teams/conda/conda-core.yml::$.charter: None is not one of ['dynamic', 'static', 'project']
    teams/conda/conda-core.yml::$.charter: None is not of type 'string'
    teams/conda/conda-core.yml::$.links: None is not of type 'array'
    teams/conda-incubator/builds-tools.yml::$.charter: None is not one of ['dynamic', 'static', 'project']
    teams/conda-incubator/builds-tools.yml::$.charter: None is not of type 'string'
    teams/conda-incubator/hatch-conda-build.yml::$.charter: None is not one of ['dynamic', 'static', 'project']
    teams/conda-incubator/hatch-conda-build.yml::$.charter: None is not of type 'string'
    teams/conda-incubator/hatch-conda-build.yml::$.links: None is not of type 'array'
    teams/conda-incubator/condastats.yml::$.charter: None is not one of ['dynamic', 'static', 'project']
    teams/conda-incubator/condastats.yml::$.charter: None is not of type 'string'
    teams/conda-incubator/condastats.yml::$.links: None is not of type 'array'
    teams/conda-incubator/conda-dot-org.yml::$.charter: None is not one of ['dynamic', 'static', 'project']
    teams/conda-incubator/conda-dot-org.yml::$.charter: None is not of type 'string'
    teams/conda-incubator/conda-dot-org.yml::$.links: None is not of type 'array'
    teams/conda-incubator/conda-completions.yml::$.charter: None is not one of ['dynamic', 'static', 'project']
    teams/conda-incubator/conda-completions.yml::$.charter: None is not of type 'string'
    teams/conda-incubator/conda-completions.yml::$.links: None is not of type 'array'
  Schema validation errors were encountered.
    teams/conda-incubator/code-of-conduct.yml::$.charter: None is not one of ['dynamic', 'static', 'project']
    teams/conda-incubator/code-of-conduct.yml::$.charter: None is not of type 'string'
    teams/conda-incubator/code-of-conduct.yml::$.links: None is not of type 'array'
    teams/conda/distribution-contractors.yml::$.description: None is not of type 'string'
    teams/conda/distribution-contractors.yml::$.charter: None is not one of ['dynamic', 'static', 'project']
    teams/conda/distribution-contractors.yml::$.charter: None is not of type 'string'
    teams/conda/distribution-contractors.yml::$.links: None is not of type 'array'
    teams/conda-incubator/design.yml::$.description: None is not of type 'string'
    teams/conda-incubator/design.yml::$.charter: None is not one of ['dynamic', 'static', 'project']
    teams/conda-incubator/design.yml::$.charter: None is not of type 'string'
    teams/conda-incubator/design.yml::$.links: None is not of type 'array'
    teams/conda-incubator/conda-tutorial.yml::$.charter: None is not one of ['dynamic', 'static', 'project']
    teams/conda-incubator/conda-tutorial.yml::$.charter: None is not of type 'string'
    teams/conda-incubator/conda-tutorial.yml::$.links: None is not of type 'array'
    teams/conda-incubator/conda-env-builder.yml::$.charter: None is not one of ['dynamic', 'static', 'project']
    teams/conda-incubator/conda-env-builder.yml::$.charter: None is not of type 'string'
    teams/conda-incubator/conda-env-builder.yml::$.links: None is not of type 'array'
    teams/conda-incubator/conda-libmamba-solver.yml::$.charter: None is not one of ['dynamic', 'static', 'project']
    teams/conda-incubator/conda-libmamba-solver.yml::$.charter: None is not of type 'string'
    teams/conda-incubator/installer.yml::$.charter: None is not one of ['dynamic', 'static', 'project']
    teams/conda-incubator/installer.yml::$.charter: None is not of type 'string'
    teams/conda-incubator/installer.yml::$.links: None is not of type 'array'
  Schema validation errors were encountered.
    teams/conda-incubator/docs.yml::$.charter: None is not one of ['dynamic', 'static', 'project']
    teams/conda-incubator/docs.yml::$.charter: None is not of type 'string'
    teams/conda-incubator/docs.yml::$.links: None is not of type 'array'
    teams/conda-incubator/implementation.yml::$.description: None is not of type 'string'
    teams/conda-incubator/implementation.yml::$.charter: None is not one of ['dynamic', 'static', 'project']
    teams/conda-incubator/implementation.yml::$.charter: None is not of type 'string'
    teams/conda-incubator/implementation.yml::$.links: None is not of type 'array'
    teams/conda-incubator/steering-council.yml::$.description: None is not of type 'string'
    teams/conda-incubator/steering-council.yml::$.charter: None is not one of ['dynamic', 'static', 'project']
    teams/conda-incubator/steering-council.yml::$.charter: None is not of type 'string'
    teams/conda-incubator/steering-council.yml::$.links: None is not of type 'array'
    teams/conda-incubator/conda-plugins.yml::$.charter: None is not one of ['dynamic', 'static', 'project']
    teams/conda-incubator/conda-plugins.yml::$.charter: None is not of type 'string'
    teams/conda-incubator/conda-plugins.yml::$.links: None is not of type 'array'
    teams/conda-incubator/fetch.yml::$.description: None is not of type 'string'
    teams/conda-incubator/fetch.yml::$.charter: None is not one of ['dynamic', 'static', 'project']
    teams/conda-incubator/fetch.yml::$.charter: None is not of type 'string'
    teams/conda-incubator/fetch.yml::$.links: None is not of type 'array'
  Schema validation errors were encountered.
    teams/conda-incubator/content.yml::$.description: None is not of type 'string'
    teams/conda-incubator/content.yml::$.charter: None is not one of ['dynamic', 'static', 'project']
    teams/conda-incubator/content.yml::$.charter: None is not of type 'string'
    teams/conda-incubator/content.yml::$.links: None is not of type 'array'
    teams/conda-incubator/relock-conda.yml::$.charter: None is not one of ['dynamic', 'static', 'project']
    teams/conda-incubator/relock-conda.yml::$.charter: None is not of type 'string'
    teams/conda-incubator/relock-conda.yml::$.links: None is not of type 'array'

@jaimergp
jaimergp marked this pull request as ready for review November 25, 2025 10:10
@jaimergp
jaimergp requested a review from a team as a code owner November 25, 2025 10:10
@jezdez

jezdez commented Nov 25, 2025

Copy link
Copy Markdown
Member

I don't agree with merging snapshots of the progress here as a baseline, since that has the smell of not taking governance information seriously, and I don't want to end up in legal debates later about why we merged this.

That said, if you need a break from this, or frankly if you don't have the access needed because of the org ownership situation, I'm happy to devote time to carry this over the finish line with the items you wrote above. I'm happy to devote time to it this week.

@jezdez jezdez self-assigned this Nov 25, 2025
@jaimergp

Copy link
Copy Markdown
Member Author

That said, if you need a break from this, or frankly if you don't have the access needed because of the org ownership situation, I'm happy to devote time to carry this over the finish line with the items you wrote above. I'm happy to devote time to it this week.

I have time and energy for this, but I don't have permissions to do any cleanups in the conda organization. I can do the ones in conda-incubator, but even for that I'd like consensus.

I don't agree with merging snapshots of the progress here as a baseline, since that has the smell of not taking governance information seriously, and I don't want to end up in legal debates later about why we merged this.

I don't have strong opinions on how we proceed, but some counterpoints:

  • main already contains in-progress work.
  • the situation is quite dire with outdated permissions.
  • it will be very tricky to follow cleanup decisions if all the teams are removed as part of the same PR. I'd prefer having one team (or a few related ones) removed per PR for traceability.

@jaimergp

Copy link
Copy Markdown
Member Author

Oh, and I also need help reviewing the types of teams. Not clear how some of them were created and with which mission.

@jaimergp

Copy link
Copy Markdown
Member Author
  • @kenodegard shared that a governance-defined team does not necessarily correspond to a Github team
  • Hence, a YAML file should be able to represent the same team across several organizations
  • The schema needs to be updated to reflect that, and then we can do the different directories for conda and conda-incubator. To extend this to arbitrary organizations and repositories, we'll probably need to enumerate in which organizations the team must be found with given members. And also which repositories should they have access too (in each organization, but that's trivial to match).

…olds the GH teams representing the governance team.
@jezdez

jezdez commented Dec 3, 2025

Copy link
Copy Markdown
Member

FYI, I just renamed the builds tools team to build tools team, as I think this was a typo when we created the team.

@jaimergp

jaimergp commented Dec 3, 2025

Copy link
Copy Markdown
Member Author

We will also need to rename the Zulip channel: #builds-tools

@jezdez jezdez left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm in favor of this change, thanks for working on it! I left a few comments, just for practical purposes and maybe as follow-up if you agree.

Comment thread steering.csv

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this might break a few links that we pointed at this :-/ Since we didn't version it, I'm wondering if we should keep it where it is, there is sadly no web based symlink support

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'll update the links in the respective places (that's how I did it for conda-forge's move to conda-forge/governance. There are not many instances, and most of them are using the hash-pinned URL, so it should be ok.

Comment thread README.md
### 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.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think it best if we add github issue templates to do this, since I'm worried we'll forget :-/

- build-tools: Move travishathaway to emeritus
- communications: Add dashagurova
- constructor: Add lrandersson (#332), move mcg1969 to emeritus
- infrastructure: Add jaimergp

GitHub team changes still needed:
- coc-committee: Remove jezdez
- communications: Remove tnabtaf
- constructor: Add hmaarrfk
@jezdez

jezdez commented Jan 29, 2026

Copy link
Copy Markdown
Member

Hey Jaime! I pushed a commit to sync the member lists with current GitHub org membership:

Changes:

GitHub team cleanup still needed (separate from this PR):

  • coc-committee: Remove jezdez
  • communications: Remove tnabtaf
  • constructor: Add hmaarrfk

This also supersedes #341 (lrandersson addition).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Record-keeping for subteams

3 participants