The rustdoc-types crate will go from be officialy maintained by the rustdoc team.
rustdoc-types
is a crate published on crates.io. It is used by users of the unstable rustdoc JSON backend to provided a type representing the output of rustdoc --output-format json
.
Currently I (@aDotInTheVoid
) maintain the rustdoc-types
crate on my personal github. No-one else has either github or crates.io permissions. This means if I become unable (or more likely disinterested), the crate will not see updates.
Additionally, if an update to rustdoc-json-types
happens while i'm away from a computer for an extended period of time, their will be a delay in this update being published on crates.io. This almost happened, but was avoided due to the bors queue being quiet at the time.
This involves:
rust-lang
organization, and make rust-lang/rustdoc
maintainers/owners.rustdoc-types
on crates.io to the rustdoc team.rustdoc-types
is a republishing of the in-tree rustdoc-json-types
crate. rustdoc-json-types
is a dependency of librustdoc
, and is the canonical source of truth for the canonical description of 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.
However, the publishing of this to crates.io, so that it can be used by out-of-tree tools that take rustdoc-json as an input (eg, eg, eg). This is done with a scipt so that it is as low maintence 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.
The update/publishing process will be moved to T-Rustdoc. In the medium term, I (@aDotInTheVoid
) will still do it, but
Github has a list of requirements for transfering repositories.
@aDotInTheVoid
) don't have create-repo perms in the rust-lang
org. Therefor 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.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.
crats.io ownership is managed via the command line.
I will run the following commands to move ownership.
cargo owner --add github:rust-lang:owners
cargo owner --add rust-lang-owner
cargo owner --remove aDotInTheVoid
The rust-lang-owner
is neaded because team owners cannot add new owners.
rustdoc-types
as a personal project. This preserves the status quo (and is what will happen if this RFC (or something similar) isn't addopted). This is undesirable because
- Bus factor: If I am unable or unwilling to maintain rustdoc-types
, we cause a load of unnessessary churn when it becomes out of sync withrustdoc-types
through rustup. This is undesirable as it means users can't depend on it in stable rust, and can't depend on multiple versions.rustdoc-json-types
directly from rust-lang/rust
. However
rust-lang/rust
doesn't currently publish to crates.io.rustdoc-json-types
doesn't currently bump the version field in cargo.tomlId
that doesn't allocaterustdoc-types
is a nicer name, and what people already depend on.rustdoc-types
would be a Intentional artifactrustdoc-json-types
was created. What was said then is that if T-Rustdoc want's to publish a crate, it needs to go through an RFC. This is that RFC.None yet
When the rustdoc-json feature is stabilized, we'll should release 1.0.0 to crates.io. How we can evolve the format post stabilization is an unanswered question. It's a blocker for stabilization, but not this RFC