Development
Check out the xterm.js contribution documentation for how to work on the project.
Managing issues
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.
Symlinking a local xterm repo for easier debugging
⚠️ Only Windows and macOS have been tested
- Open Windows Terminal in administrator mode (Windows) or any terminal (macOS)
- Navigate to the vscode repo folder
- Run
./scripts/xterm-symlink.ps1 <absolute path to xterm folder>
, eg../scripts/xterm-symlink.ps1 C:\Github\Tyriar\xterm.js
- Open the symlinked xterm.js repo in VS Code and run
yarn package -- --mode development --watch
to watch changes
Debugging xterm.js inside VS Code should now work. ⚠️ For now you will need to first debug in devtools to get the file to open in VS Code, then it works in VS Code.
Updating xterm
in vscode via script
- Open a terminal in the vscode repo and run
./scripts/xterm-update.ps1
(ornode ./scripts/xterm-update.js
). - Add the changed files and commit with the following message:
xterm@x.y.z-betaX
Diff: https://github.com/xtermjs/xterm.js/compare/91cbeec...eb25243
- Change 1...
- Change 2...
- Build and run vscode to test terminal functionality. If all looks well, push.
- Update distro as conflicts will occur
Updating xterm
in vscode manually
Every commit that goes into the master branch of xterm.js is automatically released under the beta tag using Azure Pipelines. To update the module in vscode, follow these steps:
- Identify the release to be used and install it. Find the latest beta and install via
yarn add xterm@x-y-z-betaX
(also do this in theremote/
andremote/web
folders). 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
- 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.
- Write the commit message in the following format:
xterm@4.2.0-beta18 Diff: https://github.com/xtermjs/xterm.js/compare/91cbeec...eb25243 - Change 1... - Change 2...
Updating xterm-addon-*
Similar to xterm
, identify the release, pull it in and test it
Building one off builds of xterm and addons
Right now one off builds are manual.
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