-
Notifications
You must be signed in to change notification settings - Fork 29.4k
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. This guideline is less important for more obscure terminal issues where it's typically easier to keep a single source of truth in the xterm.js repo.
Since June 2019 we use the official xterm
module provided by the upstream project instead of the vscode-xterm
fork in order to save time it takes to update the module. Every commit that goes into the master branch of xterm.js is automatically released under the beta tag using Azure Pipelines. To update, follow these steps:
- Identify the release to be used and install it. If you want the latest beta based on master you can run
yarn add xterm@beta
. If you want an older commit the easiest way to do this right now is to identify the commit and then find the "Merge pull request" build on this pipeline, click into the "Release" job and view the output of the "Publish to npm" step to find the version number then install it withyarn add xterm@x.y.z-betaX
- Update the typings in
./src/typings/xterm.d.ts
by copying over the content and replacing the top portion with./node_modules/xterm/typings/xterm.d.ts
. Note that at the very bottom of./src/typings/xterm.d.ts
are our modifications to the xterm typings which expose some private API, this must remain. - Build/test locally to make sure it works or push a branch and do a PR so that tests are run automatically. If the version change is significant it's a good idea to do a product build and verify it passes fully.
Similar to xterm
, identify the release, pull it in and then update the typings. There are some typings hacks at the top due to issues with gulp-tsb
.
Once xtermjs/xterm.js#2165 is done we can refine this process more.
Right now one off builds are manual. xtermjs/xterm.js#2154 will improve this.
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