Skip to content

Release

Andrew Scott edited this page Aug 7, 2023 · 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 main 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. In order to do this, you may need to update the aspect_rules_ts version in WORKSPACE to the latest one from here.
  4. 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.
  5. Update the version of the typescript dependency in package.json to match the upstream Angular repository.
  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..HEAD
  8. Build the NPM package and vscode extension
    ./scripts/build.sh package.json
  9. Do a quick check to make sure everything works as expected.
    • Install the .vsix through either vscode or run
      code --install-extension bazel-bin/npm/ng-template.vsix
    • Open the test project in vscode
    • Execute a few operations such as go to definition, hover, check semantics, and auto-complete.
  10. Check out a release branch, commit the changes:
    git checkout -b ${releaseVersion}-release
    git commit -am "release: v${releaseVersion}"
    git push <your remote>
    Create a PR, get approval, wait for CI to be green, then merge the PR into upstream.
  11. Check out the release branch again, tag the release, and push to upstream
    git checkout -
    git pull upstream
    git tag v${releaseVersion}
    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 --no-browser
  13. Release @angular/language-server
    npm publish bazel-bin/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 bazel-bin/npm/ng-template.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