Skip to content

Conversation

@Kobzol
Copy link
Member

@Kobzol Kobzol commented Dec 4, 2025

This PR implements sync of crate ownership on crates.io (#2134 (review)). It allows configuring Rust teams that own a given crate on crates.io, and synces the team ownership on crates.io.

It does not yet remove user ownership for other accounts than rust-lang-owner; we first need to transition some crates to team ownership before that.

Best reviewed commit-by-commit.

CC @Mark-Simulacrum

@github-actions
Copy link

github-actions bot commented Dec 4, 2025

Dry-run check results

[WARN  sync_team] sync-team is running in dry mode, no changes will be applied.
[INFO  sync_team] synchronizing crates-io
[INFO  sync_team] synchronizing github

@marcoieni
Copy link
Member

merging this PR will remove other owners, right?
Such as the ones in https://crates.io/crates/annotate-snippets
Or am I misunderstanding?

@Kobzol
Copy link
Member Author

Kobzol commented Dec 4, 2025

I see, I didn't realize we still have crates with individual owners. Ok, then that logic will have to wait, and I'll rework this PR slightly.

@Kobzol Kobzol marked this pull request as draft December 4, 2025 16:04
@Kobzol Kobzol force-pushed the sync-crate-owners branch from cb95045 to c5797d3 Compare December 4, 2025 21:04
@Kobzol Kobzol changed the title Only allow rust-lang-owner to be a user owner of crates Sync crate owners on crates.io Dec 4, 2025
@Kobzol Kobzol marked this pull request as ready for review December 4, 2025 21:06
@rustbot
Copy link

rustbot commented Dec 4, 2025

rust_team_data/src/v1.rs has been modified, it is used (as a git dependency) by multiple sub-projects like triagebot, the www.rust-lang.org website and others.

If you are changing the data structures, please make sure that the changes are not going to break serde deserialization (adding a field is fine; removing or renaming a field isn't).

If you must do a breaking change to the format, make sure to coordinate it with all the users of the rust_team_data crate.

@Kobzol
Copy link
Member Author

Kobzol commented Dec 4, 2025

Ok, new version, now it should do complete sync of team owners.

Mark-Simulacrum
Mark-Simulacrum previously approved these changes Dec 4, 2025
Copy link
Member

@Mark-Simulacrum Mark-Simulacrum left a comment

Choose a reason for hiding this comment

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

We should probably contact crate owners that would get removed with this to let them know, maybe confirm they're ok with it.

@jieyouxu jieyouxu added needs-infra-admin-review This change requires one of the `infra-admins` to review. S-waiting-on-review Status: waiting on review from a team/WG/PG lead, an infra-admin, and/or a team-repo-admin. labels Dec 5, 2025
@Kobzol
Copy link
Member Author

Kobzol commented Dec 5, 2025

In the current state, this would only remove team, not user, owners, and it should not actually remove anyone, as long as I backfilled the teams currently. We only have 5 repos with crates tracked in team currently.

@Kobzol
Copy link
Member Author

Kobzol commented Dec 5, 2025

Rebased.

@Kobzol
Copy link
Member Author

Kobzol commented Dec 7, 2025

Removed invitation of rust-lang-owner, as I realized that it doesn't make sense, it already has to own these crates, otherwise it couldn't access them in the first place. That also saves us from hardcoding rust-lang-owner in the source code.

@Kobzol
Copy link
Member Author

Kobzol commented Dec 10, 2025

Rebased over the recent changes to the crates.io syncing logic. Unlike trusted publishing, the dry-run should actually work here (still has to be done in a separate PR though).

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

Labels

needs-infra-admin-review This change requires one of the `infra-admins` to review. S-waiting-on-review Status: waiting on review from a team/WG/PG lead, an infra-admin, and/or a team-repo-admin.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants