Contributing to Immersive Web Emulation Runtime
May 7, 2026 ยท View on GitHub
We want to make contributing to this project as easy and transparent as possible.
Pull Requests
We actively welcome your pull requests.
- Fork the repo and create your branch from
main. - If you've added code that should be tested, add tests.
- Make sure your code lints.
- If you haven't already, complete the Contributor License Agreement ("CLA").
Contributor License Agreement ("CLA")
In order to accept your pull request, we need you to submit a CLA. You only need to do this once to work on any of Meta's open source projects.
Complete your CLA here: https://code.facebook.com/cla
Issues
We use GitHub issues to track public bugs. Please ensure your description is clear and has sufficient instructions to be able to reproduce the issue.
Meta has a bounty program for the safe disclosure of security bugs. In those cases, please go through the process outlined on that page and do not file a public issue.
Coding Style
Immersive Web Emulation Runtime uses eslint and prettier to lint and format code.
You can format manually by running:
$ pnpm format
There are also VSCode extensions that can run those linters / formatters for you. Prettier has a VSCode Plugin, which allows you to format on save.
If you don't want to format on save, and want to format a single file, you can use Ctrl+Shift+P in VS Code (Cmd+Shift+P on macs) to bring up the command palette, then type Format Document to format the currently active file. Note that you should have the Prettier VS code plugin installed to make sure it formats according to the project's guidelines.
Testing
Immersive Web Emulation Runtime uses jest to conduct unit testing for all its classes. Before contributing, please make sure your change does not fail any of the existing jest tests. If you are adding new classes or new features, we request that you add relevant tests to ensure a high test coverage of the Immersive Web Emulation Runtime.
You can run tests manually by running:
$ pnpm test
Changesets
This repository releases iwer, @iwer/devui, and @iwer/sem in lockstep via Changesets using a fixed group, so any user-facing change should ship with a changeset.
$ pnpm changeset
Pick the bump level (patch, minor, major) that matches the most impactful change in your PR. The changeset generator will commit a markdown file under .changeset/ describing the change; include it in your pull request. Maintainers run pnpm run version and pnpm release to apply pending changesets and publish to npm.
License
By contributing to Immersive Web Emulation Runtime, you agree that your contributions will be licensed under the LICENSE file in the root directory of this source tree.