When contributing to this repository, please first discuss the change you wish to make via issue, email, or any other method with the owners of this repository before making a change.
Please note we have a code of conduct, please follow it in all your interactions with the project.
- Ensure the bug was not already reported by searching on GitHub under Issues.
- If you're unable to find an open issue addressing the problem, open a new one. Be sure to include a title and clear description, as much relevant information as possible, and a code sample or an executable test case demonstrating the expected behavior that is not occurring.
- Ensure to run
lerna clean && lerna bootstrap
in the repo's root before making pull request. (NOTE: to fix linter issues runlerna run lint -- -- --fix
) - Ensure the pipeline checks finished successfully.
- Ensure pull request doesn't contain redundant comments, console.log, etc.
- Ensure your code is covered with unit and integration tests (NOTE: no mocks/stubs in integration tests).
- Avoid adding comments to explain what code does, code should be self-explanatory and clean.
- Ensure to add
typedoc
's types:@description
,@param
,@returns
with proper description when introducing new method. - Avoid using variable names like
i
or abbreviations - names should simple and unambiguous.
- Ensure any install or build dependencies are removed before the end of the layer when doing a build.
- Update the README.md and CHANGELOG.md with details of changes to the interface, this includes new environment variables, exposed ports, useful file locations and container parameters.
- Increase the version numbers in any examples files and the README.md to the new version that this Pull Request would represent. The versioning scheme we use is SemVer.
- You may merge the Pull Request in once you have the sign-off of two other developers, or if you do not have permission to do that, you may request the second reviewer to merge it for you.
After merge of PR, the github actions publish all libs that have increased version.
To make it easier when you are updating one of lib and all SDK packages you can use ./utils/pre-publish-update.js
The flow is:
- if libs without internal dependencies were updated - process them first
- if libs with internal dependencies were updated - update libs they are depend on and update them
- if SDK should be update - update all libs sdk depend on and then update SDK
All libs are updated one by one, when all SDKs are updated by one iteration.
The script updates in package.json / dependencies all internal dependencies of the lib (or sdks) that were updated, before so no need to manually do it.
More details in the code.
In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation.
Examples of behavior that contributes to creating a positive environment include:
- Using welcoming and inclusive language
- Being respectful of differing viewpoints and experiences
- Gracefully accepting constructive criticism
- Focusing on what is best for the community
- Showing empathy towards other community members
- Avoiding obvious comments about things like code styling and indentation. ** If you see yourself wanting to do that more than once - open issue with a repo to update the ESLint/Prettier rules to address this concern once and for all. Code reviews should be about logic, not indenting or adding more newlines
Examples of unacceptable behavior by participants include:
- The use of sexualized language or imagery and unwelcome sexual attention or advances
- Trolling, insulting/derogatory comments, and personal or political attacks
- Public or private harassment
- Publishing others' private information, such as a physical or electronic address, without explicit permission
- Other conduct which could reasonably be considered inappropriate in a professional setting