You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: text/0000-rustdoc-types-maintainers.md
+19-16Lines changed: 19 additions & 16 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -49,29 +49,20 @@ This involves:
49
49
50
50
`rustdoc-types` is a republishing of the in-tree [`rustdoc-json-types`](https://github.com/rust-lang/rust/tree/b8536c1aa1973dd2438841815b1eeec129480e45/src/rustdoc-json-types) crate. `rustdoc-json-types` is a dependency of `librustdoc`, and is the canonical source of truth for the rustdoc-json output format. Changes to the format are made a a PR to `rust-lang/rust`, and will modify `src/rustdoc-json-types`, `src/librustdoc/json` and `tests/rustdoc-json`. None of this will change.
51
51
52
-
Republishing `rustdoc-json-types` as `rustdoc-types` is done with [a script](https://github.com/aDotInTheVoid/rustdoc-types/blob/577a774c2433beda669271102a201910c4169c0c/update.sh) so that it is as low maintenance as possible. This also ensures that all format/documentation changes happen in the rust-lang/rust repo, and go through the normal review process there.
52
+
Republishing `rustdoc-json-types` as `rustdoc-types` is done with [a script](https://github.com/aDotInTheVoid/rustdoc-types/blob/17cbe9f8f07de954261dbb9536c394381770de7b/update.sh) so that it is as low maintenance as possible. This also ensures that all format/documentation changes happen in the rust-lang/rust repo, and go through the normal review process there.
53
53
54
54
The update/publishing process will be moved to T-Rustdoc. In the medium term, I (`@aDotInTheVoid`) will still do it, but
55
55
- In an official capacity
56
56
- With bus factor for when I stop.
57
57
58
+
We will continue to publish new version of the `rustdoc-types` crate every time
59
+
the upstream implementation changes.
60
+
58
61
## Actual Mechanics of the move
59
62
60
63
### Github
61
64
62
-
Github has a [list of requirements](https://docs.github.com/en/repositories/creating-and-managing-repositories/transferring-a-repository) for transferring repositories.
63
-
64
-
65
-
- When you transfer a repository that you own to another personal account, the new owner will receive a confirmation email. The confirmation email includes instructions for accepting the transfer. If the new owner doesn't accept the transfer within one day, the invitation will expire.
66
-
- N/A: Not transferring to another personal account
67
-
- To transfer a repository that you own to an organization, you must have permission to create a repository in the target organization.
68
-
- I (`@aDotInTheVoid`) don't have create-repo perms in the `rust-lang` org. Therefore I'll add a member of T-Infra as an owner to `aDotInTheVoid/rustdoc-types` (I can't add teams, as it's not in an org). They'll then move it to the repo to the `rust-lang` org. Once moved, T-Infra can become owners.
69
-
- The target account must not have a repository with the same name, or a fork in the same network.
70
-
- OK.
71
-
- The original owner of the repository is added as a collaborator on the transferred repository. Other collaborators to the transferred repository remain intact.
72
-
- OK. After the transfer. T-Rustdoc should be added as a colaborator, and I should be removed so that I only have permissions via my membership in T-Rustdoc.
73
-
- Single repositories forked from a private upstream network cannot be transferred.
74
-
- OK.
65
+
Github has a [list of requirements](https://docs.github.com/en/repositories/creating-and-managing-repositories/transferring-a-repository) for transferring repositories. T-Infra will handle the permissions of moving the repository into the rust-lang github organization.
75
66
76
67
At the end of this we should have a crate in the rust-lang github org with T-Rustdoc as contributors, and T-infra as owners.
77
68
@@ -105,15 +96,27 @@ The `rust-lang-owner` is needed because team owners cannot add new owners.
105
96
- We could publish `rustdoc-json-types` directly from `rust-lang/rust`. However
106
97
-`rust-lang/rust` doesn't currently publish to crates.io.
107
98
-`rustdoc-json-types` doesn't currently bump the version field in `Cargo.toml`
108
-
- It may be desirable to use different types in rustdoc vs users, eg to have a specialized version of `Id` that doesn't allocate
109
-
-`rustdoc-types` is a nicer name, and what people already depend on.
99
+
- It may be desirable to one day use different types for rustdoc serialization vs users deserialization
110
100
101
+
Reasons for this:
102
+
- It could enable performance optmizations by avoiding allocations into strings
103
+
- It could help with stabilization:
104
+
- Allows making structs/enums `#[non_exaustive]`
105
+
- Allows potentially supporting multiple format verions.
106
+
-`rustdoc-types` is a nicer name, and what people already depend on.
111
107
112
108
# Prior art
113
109
[prior-art]: #prior-art
114
110
115
111
-[Rust RFC 3119](https://rust-lang.github.io/rfcs/3119-rust-crate-ownership.html) establishes the Rust crate ownership policy. Under it's categories, `rustdoc-types` would be a **Intentional artifact**
116
112
-[Some old zulip discussion about why `rustdoc-json-types` was created.](https://rust-lang.zulipchat.com/#narrow/stream/266220-t-rustdoc/topic/JSON.20Format/near/223685843) What was said then is that if T-Rustdoc wants to publish a crate, it needs to go through an RFC. This is that RFC.
0 commit comments