-
Notifications
You must be signed in to change notification settings - Fork 28.1k
Working with xterm.js
Check out the xterm.js contribution documentation for how to work on the project.
Since bugs and/or features manifest themselves in both VS Code and xterm.js, it's a little unclear initially where the issue(s) should be created. After some experimentation I landed on the best way to deal with this is to create the an issue in both the Microsoft/vscode and xtermjs/xterm.js repositories. The reason this is the best workflow is because the changes will then be verified during endgame and it's much easier to compose release notes for the terminal changes.
To sync with upstream run the following:
git clone https://github.com/Microsoft/xterm.js
cd xterm.js
git checkout vscode-release/1.14 # whatever version
git remote add upstream https://github.com/xtermjs/xterm.js
git fetch upstream
git merge upstream/master
git push
Since xterm.js is on a month release cycle we need to do a little extra work to pull our changes into VS Code quickly in order to get better test coverage from Insiders. Since we're working with git, it's pretty easy to pull in changes that are blocked on PR.
Here's what you need to do to pull your changes that are currently in review into VS Code:
- Checkout the release branch in the Microsoft fork of xterm.js and merge your change:
git clone https://github.com/Microsoft/xterm.js
cd xterm.js
git checkout vscode-release/1.14 # whatever version
git remote add branch_source https://github.com/<yourname>/xterm.js
git fetch branch_source
git merge branch_source/<pr_branch>
You can also use git cherry-pick
if that's easier or if the PR's base branch differs with vscode-release/<...>
.
Note that there is an individual release branch for each version unlike many other modules we use. This is the case so that there can be a "clean slate" on the following version based off master.
-
Build the library and make sure tests pass:
yarn yarn test
If needed also run
yarn start
and verify the incoming changes. -
Update
package.json
, the name should bevscode-xterm
and the version should be<x>.<y>.0-beta<n>
"name": "vscode-xterm", "version": "3.0.0-beta1",
Update the version numbers under the following circumstances:
-
x
andy
: When updatingvscode-xterm
for a new version of vscode, this should match the upcoming, not yet released, version of xterm.js -
n
: Increment this whenx
andy
don't change.
-
-
Commit and push
git add package.json git commit -m "v3.0.0-beta1" git push
-
Publish
vscode-xterm
to npm:npm publish
If you don't have permissions, ask someone who has published before to add you.
-
Go to the vscode repo and add the new version:
rm -rf node_modules/vscode-xterm # Windows: rmdir /S node_modules\vscode-xterm yarn add vscode-xterm@3.0.0-beta1
-
Update
vscode-xterm.d.ts
if needed by manually copying over from./typings/xterm.d.ts
in thevscode-release/...
branch. Note that the bottom ofvscode-xterm.d.ts
is VS Code customizations that should remain in place. -
Build VS Code and verify the changes.
Project Management
- Roadmap
- Iteration Plans
- Development Process
- Issue Tracking
- Build Champion
- Release Process
- Running the Endgame
- Related Projects
Contributing
- How to Contribute
- Submitting Bugs and Suggestions
- Feedback Channels
- Source Code Organization
- Coding Guidelines
- Testing
- Dealing with Test Flakiness
- Contributor License Agreement
- Extension API Guidelines
- Accessibility Guidelines
Documentation