Skip to content

Commit e70fa73

Browse files
Merge pull request #3646 from carols10cents/no-crate-transfer-help
Change crates.io policy to not offer crate transfer mediation
2 parents 784b515 + 05ea84f commit e70fa73

File tree

1 file changed

+85
-0
lines changed

1 file changed

+85
-0
lines changed
Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
- Feature Name: `remove_crate_transfer_mediation_policy`
2+
- Start Date: 2024-05-24
3+
- RFC PR: [rust-lang/rfcs#3646](https://github.com/rust-lang/rfcs/pull/3646)
4+
- Rust Issue:
5+
6+
# Summary
7+
[summary]: #summary
8+
9+
The [crates.io package ownership policies currently state](https://crates.io/policies#package-ownership):
10+
11+
> If you want to take over a package, we require you to first try and contact the current owner
12+
> directly. If the current owner agrees, they can add you as an owner of the crate, and you can
13+
> then remove them, if necessary. If the current owner is not reachable or has not published any
14+
> contact information the crates.io team may reach out to help mediate the process of the ownership
15+
> transfer.
16+
17+
The crates.io team would like to remove the final sentence in this paragraph and stop attempting to
18+
mediate ownership transfer of crates.
19+
20+
# Motivation
21+
[motivation]: #motivation
22+
23+
As the number of crates on crates.io grows, so do the number of effectively abandoned crates, and
24+
so do the number of support requests we get asking us to attempt to contact a crate owner to see if
25+
they would be willing to transfer their crate. Managing these requests take time, and they aren't
26+
even usually successful. The crates.io team would like to spend their time working on the site
27+
rather than providing this crate mediation service.
28+
29+
# Guide-level explanation
30+
[guide-level-explanation]: #guide-level-explanation
31+
32+
If someone wants a crate name that is currently in use, and their efforts to either find contact
33+
information for or get a response from the current owner have been unsuccessful, they will need to
34+
pick a different name for their crate. Any requests to the crates.io team to mediate will be
35+
declined.
36+
37+
# Drawbacks
38+
[drawbacks]: #drawbacks
39+
40+
Some crate transfers that would have happened with the help of the crates.io team will not happen,
41+
which could lead to churn in the ecosystem of finding and switching to a new crate that could have
42+
been evolution of an existing crate. It is unclear if the number of successful transfers is an
43+
amount that is significant enough to justify the time spent by the crates.io team.
44+
45+
# Rationale and alternatives
46+
[rationale-and-alternatives]: #rationale-and-alternatives
47+
48+
## Request ownership directly through the crates.io website
49+
50+
Alternatively, crates.io could build a mechanism into crates.io to allow one user to request a
51+
crate from another user without exposing email addresses. However, this would require significant
52+
design and complex implementation to prevent abuse such as a mob of people all requesting transfer
53+
of the same crate as a harassment vector. That engineering effort is best spent elsewhere.
54+
55+
It's also unclear if current users have consented to be contacted by anyone who uses crates.io.
56+
[The privacy policy](https://foundation.rust-lang.org/policies/privacy-policy/#crates.io) currently
57+
states:
58+
59+
> We [the Rust Foundation and the crates.io team] will only use your email address to contact you
60+
> about your account.
61+
62+
Given that ambiguity, we feel that any contact feature would need to be opt-in, limiting the
63+
possible utility even further.
64+
65+
## Separate committee for crate ownership adjudication
66+
67+
[eRFC #2614](https://github.com/rust-lang/rfcs/pull/2614) proposed to establish a separate
68+
committee to make decisions regarding crate ownership, which eventually would face the same
69+
problems of bandwidth and burnout as the number of requests increases.
70+
71+
# Prior art
72+
[prior-art]: #prior-art
73+
74+
- [PyPI](https://pypi.org/) has policies under [PEP 541](https://peps.python.org/pep-0541/) and [they are not able to keep up with the requests](https://github.com/pypi/support/issues?q=is%3Aissue+is%3Aopen+pep+541).
75+
- [npm has a dispute resolution process](https://docs.npmjs.com/policies/disputes) but it is ["not available for dispute requests due to lack of activity related to a specific name"](https://docs.npmjs.com/policies/disputes#when-not-to-use-this-process).
76+
77+
# Unresolved questions
78+
[unresolved-questions]: #unresolved-questions
79+
80+
- None known at this time
81+
82+
# Future possibilities
83+
[future-possibilities]: #future-possibilities
84+
85+
- None known at this time

0 commit comments

Comments
 (0)