The Grouparoo Community

First, THANK YOU!

Grouparoo relies on the contributions of many people just like you to create the best marketing infrastructure & automation tools. Thank you for taking the time to join this open source community, and create something we can all use!

The Grouparoo Community

By contributing to Grouparoo and its related projects, you agree to abide by the Grouparoo Code of Conduct. Please read this document. We as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone.

Support

We strive to handle bugs and problems in the open. This means that we've adopted a support process which allow us to discus the problem publicly and archive that conversation for the future. In this way, we can build a body of of questions and answers that future Grouparoo users can find to help themselves, leading to a stronger, informed community. Learn more about the Grouparoo support process.

Contributions

All changes to Grouparoo should be contributed via Pull Requests to our Github Project. Changes by any other method will be rejected. GitHub allows us to coordinate and communicate in a single place. Pull requests also allow us to run our test suite against all new code to ensure that things still work the way they are supposed to after your change.

Getting Started

Before you start, please create a new Github Issue to discuss your plans for the new feature with us. We want to be sure that you won't be duplicating work, and that we will be able to merge in your work. Failing that, members of Grouparoo Inc will endeavor to quickly comment on an open Issue or Pull Request regarding it's mergeability.

At this time, Grouparoo Inc. is focused on expanding and enhancing our core features, in addition to developing our paid plugins. With that in mind, there are some areas of the codebase that may not be stable enough to accept Pull Requests, or areas of the product that are undergoing significant changes. There are also categories of work which fall outside the scope of of the core product which should be moved to a plugin. Similarly, Pull Requests that drastically change the functionality of an existing section of the product are unlikely to be merged, as they likely conflict with our roadmap.

The best place to contribute to Grouparoo is by adding a new connection to add a new `Source` or `Destination` via a plugin.

Ownership

By contributing to Grouparoo, you agree that you have granted ownership of the work to Grouparoo Inc, to be maintained and distributed in accordance with our open-source License (Mozilla 2.0).

Testing

Grouparoo is a large project with lots of different plugins and tools. We don't expect you to know about everything, so that's why we have a robust test suite. This allows us to ensure that no matter who makes a change, Grouparoo will continue to work the way it is supposed to.

With that in mind, all new features to Grouparoo must also include additions to the test suite to ensure that in the future, we can maintain your work. When writing tests, write the smallest test that ensures that your work is tested. Every contribution to the codebase should have an associated test.

Be sure that your changes pass the test suite! Run `npm test` to run the full test suite. You will need redis, postgres, chromedriver along with node.js installed. You can find instructions on getting started as a developer here.

Linting

We use prettier.js to manage our code style and lint rules. We run prettier as part of our test suite, and your contributions must pass. Prettier is very opinionated and inflexible such that we cannot inject our own opinions. There are no eslint/jshint files to manage in this project.

Comments

If your contribution adds a new feature of modifies an existing behavior, document your changes using Typedoc. We use Typedoc to automatically document Grouparoo. There are many plugins to help you with this, and are built into editors like VSCode.


Our Community Guide was insired by: