Cassandra Data Migrator is an ambitious project which aims to seamlessly migrate and validate between origin and target Apache Cassandra®-compatible clusters. There are many ways you can contribute! Please take a moment to review this document in order to make the contribution process easy and effective for everyone involved.
This project follows a CODE_OF_CONDUCT. Please read through it at least once if you are going to contribute to Cassandra Data Migrator.
All source code in this repository is licensed exclusively under Apache License, Version 2.0.
Some quick how-to docs have been written for some of the subject-matter areas in Cassandra Data Migrator. If you need an onramp that is not listed, here let us know!
There are lots of ways to contribute to the project. Some ideas on how to get started are described here.
-
reporting issues - If you find an issue while using Cassandra Data Migrator, please let us know!
-
reproducing issues - For some non-trivial bugs, it helps to have someone reproduce the issue. This can be helpful to help us understand better what conditions cause the issue to occur. If want to help address a non-trivial issue that has been reported, you can follow the steps that the original user reported. Updating issues with such findings is immensely helpful to the maintainers.
Keep your changes focused. Each commit should have a single, clear purpose expressed in its message.
Resist the urge to "fix" cosmetic issues (add/remove blank lines, move methods, etc.) in existing code. This adds cognitive load for reviewers, who have to figure out which changes are relevant to the actual issue. If you see legitimate issues, like typos, address them in a separate commit (it's fine to group multiple typo fixes in a single commit).
Commit message subjects start with a capital letter, use the imperative form and do not end with a period.
Avoid catch-all messages like "Minor cleanup", "Various fixes", etc. They don't provide any useful information to reviewers, and might be a sign that your commit contains unrelated changes.
We don't enforce a particular subject line length limit, but try to keep it short.
You can add more details after the subject line, separated by a blank line.
All contributions to this project are made in the form of pull requests, including:
-
Easy Picks - Any issue labeled
easy pick
is a good first issue for new contributors. These are tagged by the maintainers specifically to provide a gentle on-ramp for those joining our endeavor. -
Fixing bugs - Bug fixes are awesome! If you submit a pull request with a bug fix, we will review it and provide feedback if refinements are needed. Otherwise we'll merge it in for the next release.
-
Testing Improvements - Often, a good test is the best form of documentation. Test coverage can always be improved. Writing tests is also a great way to get familiar with the project up close.
-
Writing documentation - Our users need good documentation. Good documentation is, however, a community effort. If you have used Cassandra Data Migrator and want to improve the journey for others, good documentation with examples is really helpful.
-
Working on the core - The core machinery of Cassandra Data Migrator needs maintenance just like any code base. If you want to help implement new core features, manage project dependencies, address technical debt, or help with internal architecture, there is work to be done. This is on the more advanced end of contribution, and requires some study of the codebase. If you take the time to understand the code a bit before submitting pull requests, then the maintainers will take the time to help you make your pull requests better.
-
Like commits, pull requests should be focused on a single, clearly stated goal. Contributors need to sign the DataStax CLA.
We are looking for more community ownership in this project. That means that we will be supportive of new project contributors who wish to build a sense of trust with the maintainers.
-
Reviewing Pull Requests - If you are a maintainer on this project, then you may be called on to review pull requests. Unless requested directly, pull requests will be allocated to reviewers automatically.
-
Enforcing Conduct - You may be called up on as a maintainer of this project to enforce the code of conduct as it is written.
-
Developing Maintainers - It is important that there be a solid core of project maintainers who can depend on one another and whom the project user base can depend on do govern the project fairly and equitably. As a project maintainer, you will be expected to help guide contributors as they learn about the project. You may be responsible for choosing maintainers or voting on maintainer membership.
-
Documenting APIs - The developer docs are pretty lean right now. We need some examples of configuring and usage templates and so on. This level of contribution requires an intimate awareness of how the core engine works, but it is also some of the most valuable work that you can do in terms of expanding the Cassandra Data Migrator ecosystem. Contributions are welcome here!
Help us get the word out on Cassandra Data Migrator. It is a newly opened project in its current form, and we are eager to get it into the hands of users who need it.
-
Writing blog posts - A blog post that helps others see the good in Cassandra Data Migrator is a service to our community. This is even better when it comes from a new user who has seen the merit of the tooling. We appreciate any help.
-
Helping other users - Helping new users get to a productive state is a great way to build bridges in the community. The more community advocates we have helping each other the better!
-
Community Development - The Cassandra Data Migrator project endeavors to build a strong, inclusive, and robust support system around users and contributors alike. This takes on many forms. It is essential that we keep looking for ways to connect the Cassandra Data Migrator community, doing more of what works and less of what doesn't. If you want to help with community development, please join our discord server and raise your hand!
Thanks to these contributors! ❇️ For recognizing contributions, please follow this documentation and pick a key/contribution type from here.