{
"$type": "site.standard.document",
"bskyPostRef": {
"cid": "bafyreifoihcaixn2kvnxx52pccv7gfr3tvkpbih2zcdpzhbbhg667zulsi",
"uri": "at://did:plc:ivbknywyskln22er3nkssdhl/app.bsky.feed.post/3mffw4ivin7i2"
},
"path": "/t/child-thread-survey-of-registry-namespace-designs-for-cargo-and-crates-io/24030#post_2",
"publishedAt": "2026-02-21T03:55:41.000Z",
"site": "https://internals.rust-lang.org",
"tags": [
"crates.io"
],
"textContent": "Regarding renames and redirects — GitHub allows renaming accounts and repos, serves redirects _for a limited time_ , and allows reuse of old names. Non-permanent redirects effectively make the identifiers non-permanent and non-unique over long term.\n\nIt's a footgun, because it's easy to assume that a user can be identified by their login, or a repo by its URL, but that's not reliable long-term. There are already cases on crates.io where accounts behind a login used to publish a crate have changed. GitHub API has unambiguous numeric IDs for accounts, but there are lots of external places where GitHub account names and repo URLs appear without a trustworthy ID. Disambiguating them requires keeping history of login => id mappings and knowing when each name has been written. It's hard to do, and very easy _not_ to do. Similar problems would affect packages if they could be renamed without permanent redirect.\n\nRenaming is super useful from user perspective. If you ever add renaming, then please don't allow reclaiming old names as easily as GitHub. It has the downside of keeping old names occupied/wasted, but otherwise all names lose their uniqueness. Alternatively, give crates some ID/GUID behind the scenes that can be looked up and used as the real permanent identifier that survives renames.",
"title": "Child Thread: Survey of registry namespace designs for Cargo and Crates.io"
}