When contributing to our open-source code by creating your own RudderStack integration, this guide will help you ensure that you have completed the required steps. It will also help you make sure that your integration code will fit with our pre-existing code base without any issues.
For your integration to be reviewed and considered, there are three repositories that you must contribute to:
Responsible for transforming the standard RudderStack payload from the source into the required payload format needed for a given downstream destination.
RudderStack Config Generator
Responsible for gathering the required configuration details that will be specific to each user, i.e. API keys, event mappings, metrics, etc.
Includes the relevant instructions on setting up, configuring, and using the integration you have created.
For each of the three repositories listed above, it is necessary to fork each one and clone them to your local machine. Ensure that you are updating your local repositories regularly to limit any merge conflicts. It is important to create a branch with a descriptive name and ensure that your commit messages are clear.
When you are ready to create a pull request, follow the steps below:
Push your changes to your remote origin.
Then, go to the RudderStack's repository and click on New pull request.
Click the link the says Compare across forks.
Change the Head Repository to be your forked repository and change Compare to be the associated branch name.
Make any necessary title or descriptions changes. Add any tags such as WIP (work in progress), etc. to help add clarity on what is needed.
Finally, click on Create pull request.
rudder-transformer repository is responsible for transforming the source payload into the required payload for the downstream destination. This is where the bulk of the code will need to be written. Therefore, the following should be considered when contributing to this repository.
There is a big emphasis on formatting the code to match current project structure. If there are any questions or issues regarding this, reach out to our team; see Contact Us section below.
eslint logic in the top of the file.
Include test cases that cover around 80% code coverage.
config-generator repository allows the user to upload the necessary settings needed for configuring the integration. Follow the pre-existing structure to the best of your ability and please reach out to us via the Contact Us section with any questions or concerns.
Please note the following when creating the config generator:
Your documentation should be in the
regex validation rules for all of the text input fields.
The icon file must be an
rudderstack-docs repository houses all the relevant documentation for instructing the users on using the integration you have created. Remember to be thorough with your documentation to avoid confusion and any errors. Although we will review the documentation and get in touch with you in case of any clarification, it will certainly be very helpful to ensure clear, concise steps on setting up, configuring, and using your integration.