First off, thank you for considering contributing to GraphAr. It's people like you that make GraphAr better and better.
There are many ways to contribute, from improving the documentation, submitting bug reports and feature requests or writing code which can be incorporated into GraphAr itself.
We expect all community members to follow our Code of Conduct.
-
Ensure your change has an issue! Find an existing issue or open a new issue.
-
Fork the GraphAr repository in your own GitHub account.
-
Make your changes.
-
Submit the branch as a pull request to the main GraphAr repo. An GraphAr team member should comment and/or review your pull request within a few days. Although, depending on the circumstances, it may take longer.
-
Discussing and keeping your Pull Request updated.
You will probably get feedback or requests for changes to your pull request. This is a big part of the submission process so don't be discouraged! It is a necessary part of the process in order to evaluate whether the changes are correct and necessary.
Feel free to post a comment in the pull request to ping reviewers if you are awaiting an answer on something. If you encounter words or acronyms that seem unfamiliar, refer to this glossary.
All changes has to be made in a branch and submitted as pull requests.
A good branch name would be the issue number you are working on and a short description of the change, like (where issue #42 is the ticket you're working on):
$ git checkout -b 42-add-chinese-translations
Once your changes are ready you must submit your branch as a pull request
The pull request title must follow the format outlined in the conventional commits spec.
Conventional commits is a standardized format for commit messages.
GraphAr only requires this format for commits on the main
branch. And because GraphAr squashes commits before merging branches, this means that only the pull request title must conform to this format.
The following are all good examples of pull request titles:
feat(c++): Support timestamp data type
docs: fix the images link of README
ci: Mark job as skipped if owner is not apache
fix(c++): Fix the bug of the memory leak
refactor: Refactor the API of the vertex info implementation
All pull requests should be reviewed by at least one GraphAr committer.
All pull requests are squash merged. We generally discourage large pull requests that are over 300–500 lines of diff. If you would like to propose a change that is larger, we suggest coming onto our Discussions and discussing it with us. This way we can talk through the solution and discuss if a change that large is even needed! This will produce a quicker response to the change and likely produce code that aligns better with our process.
Currently, GraphAr uses GitHub Actions to run tests. The workflows are defined in .github/workflows
.
For small or first-time contributions, we recommend the dev container method. And if you prefer to do it yourself, that's fine too!
GraphAr provides a pre-configured dev container that could be used in VSCode, JetBrains, JupyterLab. Please pick up your favorite runtime environment.
Different components of GraphAr may require different setup steps. Please refer to their respective README
documentation for more details.
- C++ Library
- Scala with Spark Library
- Python with PySpark Library (under development)
- Java Library (under development)
This doc refer from Apache OpenDAL