diff options
author | Aleksey Kladov <[email protected]> | 2020-08-05 12:50:09 +0100 |
---|---|---|
committer | Aleksey Kladov <[email protected]> | 2020-08-05 12:50:47 +0100 |
commit | 36d75f31051b456f0423eb4444b997fd4e70f075 (patch) | |
tree | 2f56bdab407a34f1d38006e4d05e32ca55acbbcc | |
parent | 2ad29eb23167273f2e101b44c1f21b4ec2821bc2 (diff) |
Document release process
-rw-r--r-- | docs/dev/README.md | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/docs/dev/README.md b/docs/dev/README.md index 18c53d5c0..ffbbdadc5 100644 --- a/docs/dev/README.md +++ b/docs/dev/README.md | |||
@@ -235,3 +235,34 @@ For measuring time of incremental analysis, use either of these: | |||
235 | $ cargo run --release -p rust-analyzer -- analysis-bench ../chalk/ --highlight ../chalk/chalk-engine/src/logic.rs | 235 | $ cargo run --release -p rust-analyzer -- analysis-bench ../chalk/ --highlight ../chalk/chalk-engine/src/logic.rs |
236 | $ cargo run --release -p rust-analyzer -- analysis-bench ../chalk/ --complete ../chalk/chalk-engine/src/logic.rs:94:0 | 236 | $ cargo run --release -p rust-analyzer -- analysis-bench ../chalk/ --complete ../chalk/chalk-engine/src/logic.rs:94:0 |
237 | ``` | 237 | ``` |
238 | |||
239 | # Release Process | ||
240 | |||
241 | Release process is handled by `release`, `dist` and `promote` xtasks, `release` being the main one. | ||
242 | |||
243 | `release` assumes that you have checkouts of `rust-analyzer`, `rust-ananalyzer.github.io`, and `rust-lang/rust` in the same directory: | ||
244 | |||
245 | ``` | ||
246 | ./rust-analyzer | ||
247 | ./rust-analyzer.github.io | ||
248 | ./rust-rust-analyzer # Note the name! | ||
249 | ``` | ||
250 | |||
251 | Additionally, it assumes that remote for `rust-analyzer` is called `upstream` (I use `origin` to point to my fork). | ||
252 | |||
253 | Release steps: | ||
254 | |||
255 | 1. Inside rust-analyzer, run `cargo xtask release`. This will: | ||
256 | * checkout the `release` branch | ||
257 | * reset it to `upstream/nightly` | ||
258 | * push it to `upstream`. This triggers GitHub Actions which: | ||
259 | ** runs `cargo xtask dist` to package binaries and VS Code extension | ||
260 | ** makes a GitHub release | ||
261 | ** pushes VS Code extension to the marketplace | ||
262 | * create new changelog in `rust-analyzer.github.io` | ||
263 | * create `rust-analyzer.github.io/git.log` file with the log of merge commits since last release | ||
264 | 2. While the release is in progress, fill-in the changelog using `git.log` | ||
265 | 3. Commit & push the changelog | ||
266 | 4. Tweet | ||
267 | 5. Inside `rust-analyzer`, run `cargo xtask promote` -- this will create a PR to rust-lang/rust updating rust-analyzer's submodule. | ||
268 | Self-approve the PR. | ||