Contributing to Geomstats
Welcome to the geomstats repository! We are excited you are here and want to contribute.
Practical Guide to Submitting your Contribution
These guidelines are designed to make it as easy as possible to get involved. If you have any questions that are not discussed below, please let us know by opening an issue!
Joining the Conversation
geomstats is maintained by a growing group of enthusiastic developers!
Most of our discussions take place on issues.
Contributing through GitHub
On GitHub, you will use Markdown to chat in issues and pull requests.
GitHub has a really helpful page for getting started with writing and formatting Markdown on GitHub.
Every project on GitHub uses issues slightly differently.
The following outlines how
geomstats developers think about these tools.
Issues are individual pieces of work that need to be completed to move the project forwards. A general guideline: if you find yourself tempted to write a great big issue that is difficult to describe as one unit of work, please consider splitting it into two or more issues.
Issues are assigned labels which explain how they relate to the overall project's goals and immediate next steps.
Making a Change
We appreciate all contributions to
but those accepted fastest will follow a workflow similar to the following:
1. Comment on an existing issue or open a new issue referencing your addition.
This allows other members of the
geomstats development team to confirm that you are not
overlapping with work that is currently underway and that everyone is on the same page
with the goal of the work you are going to carry out.
This blog is a nice explanation of why putting this work in up front is so useful to everyone involved.
This is now your own unique copy of
Changes here will not effect anyone else's work, so it is a safe space to explore edits to the code!
Make sure to keep your fork up to date with the master repository.
3. Make the changes you have discussed, following the geomstats coding style guide.
- Create your feature branch (
git checkout -b feature/fooBar)
- Commit your changes (
git commit -am 'Add some fooBar')
- Push to the branch (
git push origin feature/fooBar)
Try to keep the changes focused. If you feel tempted to "branch out" then please make a new branch.
4. Add the corresponding unit tests.
If you are adding a new feature, do not forget to add the corresponding unit tests.
geomstats enables numpy and tensorflow, your unit tests should run on these two backends.
5. Ensure Geomstats Coding Style Guide.
Ensure that your code is compliant with PEP8, the coding style guide for python.
6. Submit a pull request.
A member of the development team will review your changes to confirm that they can be merged into the main code base.
Use the Github labels to label your pull request:
enhancement: enhancements or new features
bug: bug fixes
test: new or updated tests
documentation: new or updated documentation
style: style changes
refactoring: refactoring existing code
continuous integration: updates to continous integration infrastructure
We welcome and recognize all contributions from documentation to testing to code development. You can see a list of current contributors in our README.md. If you are new to the project, do not forget to add your name and affiliation there!
— Based on contributing guidelines from the fMRIprep project.