We welcome any kind of contribution to our software, from simple comment or question to a full fledged pull request. Please read and follow our Code of Conduct.
A contribution can be one of the following cases:
- you have a question;
- you think you may have found a bug (including unexpected behavior);
- you want to make some kind of change to the code base (e.g. to fix a bug, to add a new feature, to update documentation);
- you want to make a new release of the code base.
The sections below outline the steps in each case.
- use the search functionality here to see if someone already experienced the same issue;
- if your search did not yield any relevant results, start a new conversation.
- use the search functionality here to see if someone already filed the same issue;
- if your issue search did not yield any relevant results, make a new issue, and choose the Bug report type. This includes a checklist to make sure you provide enough information to the rest of the community to understand the cause and context of the problem.
- (important) announce your plan to the rest of the community before you start working. This announcement should be in the form of a (new) issue. Choose the Feature request type, which includes a checklist of things to consider to get the discussion going;
- (important) wait until some kind of consensus is reached about your idea being a good idea;
- if needed, fork the repository to your own Github profile and create your own feature branch off of the latest master commit. While working on your feature branch, make sure to stay up to date with the master branch by pulling in changes, possibly from the 'upstream' repository (follow the instructions here and here);
- make sure the existing tests still work by running the test suite from RStudio;
- add your own tests (if necessary);
- update or expand the documentation;
- make sure the release notes in
inst/NEWS.Rd
are updated; - add your name to the contributors lists in the
DESCRIPTION
andCITATION.cff
files; - push your feature branch to (your fork of) the GGIR repository on GitHub;
- create the pull request, e.g. following the instructions here. The pull request template includes a checklist with the above items.
In case you feel like you've made a valuable contribution, but you don't know how to write or run tests for it, or how to generate the documentation: don't let this discourage you from making the pull request; we can help you! Just go ahead and submit the pull request, but keep in mind that you might be asked to append additional commits to your pull request.
We loosely follow the tidyverse style guide, but do not enforce every rule strictly.
For instance, we prefer =
instead of <-
as the default assignment operator.
When in doubt about what style to use, don't hesitate to get in touch.
Some general guidelines that we try to adhere to:
- Use standard R as much as possible, keep dependencies to a minimum.
- Keep loops to a minimum.
- Don't make lines too long.
If you are a first time contributor, don't worry about coding style too much. We will help you get things in shape.
GGIR follows the release cycle process described in this document.