-
Notifications
You must be signed in to change notification settings - Fork 123
Release
This repository contains two releasable items:
-
@angular/language-server NPM package
This is the LSP server integrated into other clients like vim, emacs, Eclipse, etc. -
Angular.ng-template
vscode extension
This is published to the Visual Studio Marketplace.
Before you do your first release:
- Create a fork of this repository if you don't have one yet.
- Setup git remotes:
-
upstream
to point to this repository -
origin
to point to your fork
-
-
Prepare local environment:
git checkout main git pull upstream main yarn yarn bazel clean
-
Determine the next version (
X.Y.Z
) and the appropriate git branch.
If publishing a patch version, checkout the patch branch, otherwise checkout themain
branch. -
Set a
releaseVersion
variable so you can more easily copy-paste commands:releaseVersion=X.Y.Z
-
Update
version
inpackage.json
toreleaseVersion
. -
Manually update the version of @angular/language-service in
package.json
andserver/package.json
to the latest. The version in both files must be the same. -
Update the version of the typescript dependency in package.json to match the upstream Angular repository. In order to do this, you may need to update the
aspect_rules_ts
version inWORKSPACE
to the latest one from here. Another option is to specify the version manually and usets_integrity
, directions found here. -
Look at the CHANGELOG in
@angular/angular
for commits related to language service, and copy them to this repo's CHANGELOG. -
Append notable commits in this repository, particularly fixes and features, to the CHANGELOG
git log --pretty=format:'%s (%h)' vX.Y.Z-1..HEAD
-
Build the NPM package and vscode extension
./scripts/build.sh package.json
-
Do a quick check to make sure everything works as expected.
- Install the
.vsix
through either vscode or runcode --install-extension bazel-bin/npm/ng-template.vsix
- Open the test project in vscode.
- Run
yarn && yarn build
in theintegration/project
folder. - Execute a few operations such as go to definition, hover, check semantics, and auto-complete.
- Install the
-
Check out a release branch, commit the changes:
git checkout -b ${releaseVersion}-release git commit -am "release: v${releaseVersion}" git push <your remote>
After that:
- Create a PR and add the "merge" and "target" labels
- Get an approval
- Important: wait for CI to be green
- Merge the PR into upstream using
yarn ng-dev pr merge <PR-ID>
-
Check out the main, tag the release, and push to upstream
git checkout main git pull upstream main git tag v${releaseVersion} git push upstream --tags
-
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
-
Release
@angular/language-server
npm publish bazel-bin/npm/server --access public
-
Make sure you're logged into Azure DevOps account. If not, follow the instructions below.
-
Release vscode extension from the root of the repository.
yarn vsce publish --packagePath bazel-bin/npm/ng-template.vsix
-
Update release notes in github.
- Go to the Releases section
- Click "Draft new release"
- Copy the text added to the
CHANGELOG.md
- Upload the
.vsix
file - Click "Publish Release"
- [optional] Read the overall instructions in vscode's documentation
- To obtain the security token, go to go/valentine.
- Search for
Angular vscode marketplace
- Copy the Personal Access Token (PAT)
- Run
yarn vsce login Angular
- Paste the PAT