@@ -206,3 +206,50 @@ feedback.
206
206
This project uses [Husky](https://typicode.github.io/husky/) to manage pre-commit hooks. These hooks automatically run
207
207
linters and formatters before each commit, helping to maintain code quality and consistency. Husky is set up via the
208
208
` 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