@@ -127,11 +127,38 @@ module].
127
127
128
128
## crates.io publishing
129
129
130
- Cargo's library is published to [ crates.io] as part of the stable release
131
- process. This is handled by the [ Release team] as part of their process. There
132
- is a [ ` publish.py ` script] that in theory should help with this process. The
133
- test and build tool crates aren't published.
134
-
130
+ Cargo's library and its related dependencies (like ` cargo-util ` ) are published
131
+ to [ crates.io] as part of the 6-week stable release process by the [ Release
132
+ team] . There is a [ ` publish.py ` script] that is used by the Release team's
133
+ automation scripts (see < https://github.com/rust-lang/simpleinfra/ > ) to handle
134
+ determining which packages to publish. The test and build tool crates aren't
135
+ published. This runs on the specific git commit associated with the cargo
136
+ submodule in the ` stable ` branch in ` rust-lang/rust ` at the time of release.
137
+
138
+ On very rare cases, the Cargo team may decide to manually publish a new
139
+ release to [ crates.io] . For example, this may be necessary if there is a
140
+ problem with the current version that only affects API users, and does not
141
+ affect the ` cargo ` binary shipped in the stable release. In this situation,
142
+ PRs should be merged to the associated stable release branch in the cargo repo
143
+ (like ` rust-1.70.0 ` ) that fix the issue and bump the patch version of the
144
+ affected package. Then someone with permissions (currently a subset of the
145
+ Cargo team, or the Release team) should publish it manually using `cargo
146
+ publish`.
147
+
148
+ Some packages are not published automatically because they are not part of the
149
+ Rust release train. These currently include all of the [ ` credential ` ] packages
150
+ and the [ ` home ` ] package. These are published manually on an as-needed or
151
+ as-requested basis by whoever has permissions (currently [ @ehuss ] or the
152
+ Release/Infra team).
153
+
154
+ In the future, these manual publishing options should be integrated with
155
+ GitHub Actions so that any team member can trigger them. Likely that should
156
+ involve getting Infra to create scoped tokens that can be added as GitHub
157
+ Secrets, and setting up GitHub Actions workflows with the appropriate
158
+ permissions which can be manually triggered to launch a release.
159
+
160
+ [ `home` ] : https://github.com/rust-lang/cargo/tree/master/crates/home
161
+ [ `credential` ] : https://github.com/rust-lang/cargo/tree/master/credential
135
162
[ `publish.py` script ] : https://github.com/rust-lang/cargo/blob/master/publish.py
136
163
137
164
## Beta backports
0 commit comments