Skip to content

Commit dab810b

Browse files
bors[bot]matklad
andauthored
Merge #5669
5669: Document release process r=jonas-schievink a=matklad Co-authored-by: Aleksey Kladov <[email protected]>
2 parents 5721cca + 33447e2 commit dab810b

File tree

1 file changed

+31
-0
lines changed

1 file changed

+31
-0
lines changed

docs/dev/README.md

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -235,3 +235,34 @@ For measuring time of incremental analysis, use either of these:
235235
$ cargo run --release -p rust-analyzer -- analysis-bench ../chalk/ --highlight ../chalk/chalk-engine/src/logic.rs
236236
$ cargo run --release -p rust-analyzer -- analysis-bench ../chalk/ --complete ../chalk/chalk-engine/src/logic.rs:94:0
237237
```
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-analyzer.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.

0 commit comments

Comments
 (0)