Contributing guidelines
Feel free to open issues to report a bug and ask for improvements.
If you want to contribute, have a look at our contributing guidelines that are meant to guide you and help you get started. If something is not clear or you get stuck: it is more likely we did not do good enough a job at explaining things. So do not hesitate to open an issue, just to ask for clarification.
Installation
To install bidspm and make changes to it, it is recommend to install the python package in editable mode with all its development dependencies.
pip install -e .[dev]
Initialisation
To facilitate running tests, make sure you initialize bidspm in dev mode, from the MATLAB command line:
bidspm dev
You can also run all the tests with:
bidspm run_tests
Style guidelines
We use camelCase
to name functions and variables for the vast majority of the
code in this repository.
Scripts names in general and as well functions related to the demos use a
snake_case
.
Constant are written in UPPERCASE
.
Input arguments ordering
From more general to more specific
BIDS
> opt
> subject
> session
> run
BIDS
(output fromgetData
orbids.layout
) restrict the set of possible analysis one can run to this BIDS data setopt
restricts this set even furthersubject
/session
/run
even more
% OK
varargout = getInfo(BIDS, opt, subLabel, info, varargin)
% not OK
varargout = getInfo(subLabel, BIDS, opt, info, varargin)
Output arguments ordering
Try to return them in order of importance first and in order of appearance otherwise.
Exceptions
If function creates or modifies a batch then matlabbatch
is the first argin
and first argout
.
If a function performs an “action” to be chosen from a one of several strings
(with a switch statement), this string comes as first argin
or second if
matlabbatch
is first.
% OK
varargout = getInfo('filename', BIDS, opt, subID, varargin)
[matlabbatch, voxDim] = setBatchRealign(matlabbatch, [action = 'realign',] BIDS, opt, subID)
% not OK
% 'filename' is the name of the "action" or the info to get in this case
% batch and action should go first
varargout = getInfo(BIDS, opt, subID, 'filename', varargin)
[matlabbatch, voxDim] = setBatchRealign(BIDS, opt, subID, matlabbatch, [action = 'realign'])
Updating the FAQ
The FAQ is rendered with FAQtory.
New questions must be added to docs/questions
and the main FAQ.md can be
created with:
make update_faq
release protocol
[ ] create a dedicated branch for the release candidate
[ ] update version in
citation.cff
[ ] documentation related
[ ] ensure the documentation is up to date
[ ] make sure the doc builds correctly and fix any error
[ ] update jupyter books
[ ] update binder
[ ] update docker recipes
[ ] update changelog
[ ] run
make release
[ ] open a pull request (PR) from this release candidate branch targeting the default branch
[ ] fix any remaining failing continuous integration (test, markdown and code linting…)
[ ] merge to default branch
[ ] create a tagged release
[ ] build and push docker images if necessary