Skip to content

Commit 74deb9c

Browse files
authored
chore: describe a release process in CONTRIBUTING.md (#658)
Fixes #657
1 parent 31862a5 commit 74deb9c

File tree

1 file changed

+47
-0
lines changed

1 file changed

+47
-0
lines changed

CONTRIBUTING.md

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -206,3 +206,50 @@ feedback.
206206
This project uses [Husky](https://typicode.github.io/husky/) to manage pre-commit hooks. These hooks automatically run
207207
linters and formatters before each commit, helping to maintain code quality and consistency. Husky is set up via the
208208
`postinstall` script in `package.json`.
209+
210+
## Release process
211+
212+
This section outlines the steps for releasing the Tact Language Server to NPM and packaging the VS Code extension for
213+
the VS Code Marketplace.
214+
215+
### Language Server (NPM)
216+
217+
The Language Server is published to NPM as `@tact-lang/tact-language-server`. The metadata for this package (name,
218+
version, etc.) is defined in `package.server.json`, which is copied to `dist/package.json` during the build process.
219+
220+
The primary way to publish the Language Server to NPM is by using the all-in-one script:
221+
222+
1. Ensure the version in `package.server.json` is updated and all changes are committed.
223+
2. Run the script:
224+
225+
```bash
226+
yarn build-server-package-and-publish
227+
```
228+
229+
This script will:
230+
231+
- Run `yarn build` to compile the project and prepare the `dist` directory.
232+
- Run `yarn pack:ls` to create a local `.tgz` tarball of the package.
233+
This is useful for local testing before publishing.
234+
- Run `yarn publish:ls` to publish the package to NPM.
235+
236+
You need to be logged in to NPM (`npm login`) for the publication step to succeed.
237+
238+
### VS Code Extension (Marketplace)
239+
240+
To package the VS Code extension for release:
241+
242+
1. Ensure the `version` in the root `package.json` is updated and all changes are committed.
243+
The `README-extension.md` (used for the marketplace description) should also be up to date.
244+
2. Run the packaging script:
245+
```bash
246+
yarn build && yarn package
247+
```
248+
This command uses `npx vsce package` to create a `.vsix` file (e.g.,
249+
`vscode-tact-0.7.1.vsix`) in the root of the project.
250+
3. The generated `.vsix` file can then be uploaded to
251+
the [VS Code Marketplace](https://marketplace.visualstudio.com/manage/publishers/).
252+
253+
Refer to the
254+
official [VS Code documentation for publishing extensions](https://code.visualstudio.com/api/working-with-extensions/publishing-extension)
255+
for more details on the marketplace upload process.

0 commit comments

Comments
 (0)