馃帀 Thanks for your interest in contributing! 馃帀
If find issues while using this library or just reading through it, look to see if an issue has been created. If no issues are related, feel free to open a new one using the template.
If you find any existing issues that you are interested in fixing, you are welcome to open a PR and we will gladly review your changes.
Getting setup is quick and easy. Follow the steps below to get your your dev environment up.
- Fork GitHub repo
- Install dependencies
- Build packages
$ git clone <HTTPS_OR_GIT_URL>
$ yarn
$ yarn build
This repo contains mutliple major versions of all packages. For contributions to version 1.x, create a branch off v1.x. For contributions to the 2.x (latest) version, create a branch off main. Refer to the table below for more infomation about the release status of each package.
| Package | Version | Status | Dev Branch |
|---|---|---|---|
| Browser SDK | |||
@amplitude/analytics-browser |
V2 | Beta | main |
@amplitude/analytics-browser |
V1 | Current | v1.x |
@amplitude/marketing-analytics-browser |
V1 | Current | v1.x |
| Node SDK | |||
@amplitude/analytics-node |
V2 | Unreleased | main |
@amplitude/analytics-node |
V1 | Current | v1.x |
| ReactNative SDK | |||
@amplitude/analytics-react-native |
V2 | Unreleased | main |
@amplitude/analytics-react-native |
V1 | Current | v1.x |
Building quality software is one of our top priorities. We recommend getting your changes tested using manual and automated practices.
$ yarn build
$ yarn test
When writing commit message, follow PR Commit Title Conventions for the format. A git hook will also run to verify that the format is followed.
Once you are finished with your changes and feel good about the proposed changes, create a pull request. A team member will assist in getting them reviewed. We are excited to work with you on this.
For contributions to version 1.x, open a pull request against v1.x. For contributions to the 2.x (latest) version, open a pull request against main.
As soon as your changes are approved, a team member will merge your PR to main and will get published shortly after.
PR titles should follow conventional commit standards. This helps automate the release process.
- Special Case: Any commit with
BREAKING CHANGESin the body: Creates major release feat(<optional scope>): New features (minimum minor release)fix(<optional scope>): Bug fixes (minimum patch release)perf(<optional scope>): Performance improvementdocs(<optional scope>): Documentation updatestest(<optional scope>): Test updatesrefactor(<optional scope>): Code change that neither fixes a bug nor adds a featurestyle(<optional scope>): Code style changes (e.g. formatting, commas, semi-colons)build(<optional scope>): Changes that affect the build system or external dependencies (e.g. Yarn, Npm)ci(<optional scope>): Changes to our CI configuration files and scriptschore(<optional scope>): Other changes that don't modify src or test filesrevert(<optional scope>): Revert commit