Skip to content

Release

Keen Yee Liau edited this page Mar 31, 2021 · 39 revisions

This repository contains two releasable items:

  1. @angular/language-server NPM package
    This is the LSP server integrated into other clients like vim, emacs, Eclipse, etc.
  2. Angular.ng-template vscode extension
    This is published to the Visual Studio Marketplace.

Release Steps

  1. Determine the next version (X.Y.Z) and the appropriate git branch.
    If publishing a patch version, checkout the patch branch, otherwise checkout the master branch.
  2. Set a releaseVersion variable so you can more easily copy-paste commands:
    releaseVersion=X.Y.Z
  3. Update version in package.json to releaseVersion.
  4. Update version server/package.json to releaseVersion.
  5. Manually update the version of @angular/language-service in package.json and server/package.json to the latest. The version in both files must be the same.
  6. Look at the CHANGELOG in @angular/angular for commits related to language service, and copy them to this repo's CHANGELOG.
  7. Append notable commits in this repository, particularly fixes and features, to the CHANGELOG
    git log --pretty=format:'%s (%h)' vX.Y.Z-1..v${releaseVersion}
  8. Update yarn.lock and node_modules to use the version of @angular/language-service specified in previous step.
    rm -rf node_modules server/node_modules
    yarn install
    • If you see the error Error installing vscode.d.ts: TypeError: Cannot set property 'Authorization' of null try running unset GITHUB_TOKEN, then installing again. The GITHUB_TOKEN will conflict with the installation of vscode.
  9. Build the NPM package and vscode extension
    ./scripts/build.sh
  10. Do a quick check to make sure everything works as expected.
    • Install the .vsix through either vscode or run
      code --install-extension dist/npm/ng-template-${releaseVersion}.vsix
    • Open the test project in vscode
    • Execute a few operations such as go to definition, hover, check semantics, and auto-complete.
    • Remember to try both View Engine and Ivy mode
  11. Commit the changes, tag the release, and push to upstream:
    git commit -am "release: v${releaseVersion}"
    git tag v${releaseVersion}
    git push upstream && git push upstream --tags
  12. Make sure you're logged into Angular NPM account. If not, run the following command:
    npm login --registry https://wombat-dressing-room.appspot.com
  13. Release @angular/language-server
    npm publish dist/npm/server --access public
  14. Make sure you're logged into Azure DevOps account. If not, follow the instructions below.
  15. Release vscode extension from the root of the repository.
    yarn vsce publish --packagePath dist/npm/ng-template-${releaseVersion}.vsix
  16. Update release notes in github.
    • Go to the Releases section
    • Navigate to the release that was published in the previous step.
    • Click edit release
    • Copy the text added to the CHANGELOG
    • Upload the .vsix file.
    • Click Update Release

Login to Azure DevOps

  1. [optional] Read the overall instructions in vscode's documentation
  2. To obtain the security token, go to go/valentine.
  3. Search for Angular vscode marketplace
  4. Copy the Personal Access Token (PAT)
  5. Run yarn vsce login Angular
  6. Paste the PAT
Clone this wiki locally