Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 15 additions & 0 deletions RELEASE.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
# How to ship a release

## Publishing to PyPI

1. Ensure that the project version number in [`packages/python/pyproject.toml`](packages/python/pyproject.toml) has been updated. Historically we have sometimes done this before the release. If not, change it now. Our versioning scheme is:
| Release type | Version format | Notes |
|--------------|----------------|-------|
Expand All @@ -20,3 +22,16 @@
1. Rerun the tests -- Compare against baseline.
1. Once you're satisfied with the release, publish it by going to the `lsprotocol-Release` pipeline run that you started earlier and pressing the blue `Review` button and then pressing the blue `Resume` button to initiate publishing.
1. Publish the GitHub release (it was created as a draft).

## Publishing to crates.io

1. Ensure that the project version number in [`packages/rust/lsprotocol/cargo.toml`](packages/rust/lsprotocol/Cargo.toml) has been updated. Historically we have sometimes done this before the release. If not, change it now. Our versioning scheme is shown below. Note that so far we have only shipped alpha/beta releases because the Rust version has only been tested in toy servers.:
| Release type | Version format | Notes |
|--------------|----------------|-------|
| Stable | Major.Minor.0 | |
| Beta | Major.Minor.0-beta.X | `Major.Minor.0` matches the upcoming stable release and `X` starts at `1` and increments with each beta release |
| Alpha | Major.Minor.0-alpha.X | `Major.Minor.0` matches the upcoming stable release and `X` starts at `1` and increments with each alpha release |
1. `cd packages/rust/lsprotocol`
1. Optionally use `cargo publish --all-features --dry-run` to do all of the building and testing work without actually publishing to crates.io.
1. `cargo login`
1. `cargo publish --all-features`
Loading