Welcome, and thank you for your interest in contributing to iTwin.js!
There are many ways to contribute. The goal of this document is to provide a high-level overview of how you can get involved.
Have a question? Rather than opening an issue, please ask away on the Github discussions page.
The community will be eager to assist you. Your well-worded question will serve as a resource to others searching for help.
Your comments and feedback are welcome. For general comments or discussion please click here to contribute via GitHub issues using the discussion
label.
Have you identified a reproducible problem in iTwin.js? Have a feature request? We want to hear about it! Here's how you can make reporting your issue as effective as possible.
Before you create a new issue, please do a search in open issues to see if the issue or feature request has already been filed.
If you find that your issue already exists, please add relevant comments and your reaction. Use a reaction in place of a "+1" comment:
- 👍 - upvote
- 👎 - downvote
If you cannot find an existing issue that describes your bug or feature, create a new issue using the guidelines below.
File a single issue per problem and feature request. Do not enumerate multiple bugs or feature requests in the same issue.
Do not add your issue as a comment to an existing issue unless it's for the identical input. Many issues look similar, but have different causes.
The more information you can provide, the more likely someone will be successful reproducing the issue and finding a fix.
Please include the following with each issue:
- A short description of the issue that becomes the title
- Versions of relevant iTwin.js packages
- Minimal steps to reproduce the issue or a code snippet that demonstrates the issue
- What you expected to see, versus what you actually saw
- Images that help explain the issue
- Any relevant error messages, logs, or other details
- Impact of the issue
- Use the
bug
orenhancement
label to identify the type of issue you are filing
Don't feel bad if the developers can't reproduce the issue right away. They will simply ask for more information!
You may be asked to clarify things or try different approaches, so please follow your issue and be responsive.
We'd love to accept your contributions to iTwin.js. There are just a few guidelines you need to follow.
A Contribution License Agreement with Bentley must be signed before your contributions will be accepted. Upon opening a pull request, you will be prompted to use cla-assistant for a one-time acceptance applicable for all Bentley projects. You can read more about Contributor License Agreements on Wikipedia.
All submissions go through a review process. We use GitHub pull requests for this purpose. Consult GitHub Help for more information on using pull requests.
We welcome contributions, large or small, including:
- Bug fixes
- New features
- Documentation corrections or additions
- Example code snippets
- Sample data
If you would like to contribute new APIs, please check the CODEOWNERS file to ensure your contributions align with the package owner's and project goals.
Thank you for taking the time to contribute to open source and making great projects like iTwin.js possible!