Contributing#
🐣 We’re so excited you’re here and want to contribute. 🐣
The point of this starter kit is to welcome new users and contributors to the BIDS community. We hope that these guidelines are designed to make it as easy as possible to get involved. If you have any questions that aren’t discussed below, please let us know through one of the many ways to get in touch.
Joining the community#
BIDS - the Brain Imaging Data Structure - is a growing community of neuroimaging enthusiasts, and we want to make our resources accessible to and engaging for as many researchers as possible.
We therefore require that all contributions adhere to our Code of Conduct.
How do you know that you’re a member of the BIDS community? You’re here! You know that BIDS exists! You’re officially a member of the community. It’s THAT easy! Welcome! 🙌 😂
Get in touch#
See out contact page for all the ways to get in touch.
Contributing through GitHub#
git is a really useful tool for version control. GitHub sits on top of git and supports collaborative and distributed working.
We know that it can be daunting to start using git and GitHub if you haven’t worked with them in the past, but the BIDS Starter Kit maintainers are here to help you figure out any of the jargon or confusing instructions you encounter! 💕
In order to contribute via GitHub you’ll need to set up a free account and sign in. Here are some instructions to help you get going. Remember that you can ask us any questions you need to along the way.
Issue labels#
The list of labels for current issues can be found here and includes:
These issues contain a task that a member of the team has determined we need additional help with.
If you feel that you can contribute to one of these issues, we especially encourage you to do so!
These issues contain a question that you’d like to have answered.
There are lots of ways to ask questions but opening an issue is a great way to start a conversation and get your answer.
These issues are particularly appropriate if it is your first contribution to the BIDS Starter Kit, or to GitHub overall.
If you’re not sure about how to go about contributing, these are good places to start. You’ll be mentored through the process by the maintainers team. If you’re a seasoned contributor, please select a different issue to work from and keep these available for the newer and potentially more anxious team members.
These issues are suggesting new features that can be added to the project.
If you want to ask for something new, please try to make sure that your request is distinct from any others that are already in the queue (or part of the starter kit!). If you find one that’s similar but there are subtle differences please reference the other enhancement in your issue.
These issues relate to improving or updating the documentation.
These are usually really great issues to help out with: our goal is to make it easy to understand BIDS without having to ask anyone any questions! Documentation is the ultimate solution 🏆
These issues relate to building and supporting the BIDS community.
BIDS won’t work if people don’t use the standard! YOU are the BIDS community, and we want to know how best to support you.
These issues are reporting a problem or a mistake in the project.
The more details you can provide the better! If you know how to fix the bug, please open an issue first and then submit a pull request ✨
These issues are closing soon…get your opinions in asap!
This label is mostly used to indicate that an old issue is about to be closed, or that a final decision is going to be made on a long running discussion. Speak now….or open a new issue when this one is gone. 😜
These issues relate to finding money money money to keep building the project
We’d love to hear about any opportunities for funding to keep building the BIDS Starter Kit 💰
These issues relate to project management for the BIDS starter kit
We like to model best practice, so the BIDS Starter Kit itself is managed through these issues. We may occasionally have some to coordinate some logistics.
Making a change with a pull request#
We appreciate all contributions to the BIDS Starter Kit.
THANK YOU for helping us build this useful resource. ✨ 🌟 💫
If you’re updating the code or the templates, the following steps are a guide to help you contribute in a way that will be easy for everyone to review and accept with ease 😎.
Requirements#
To make a contribution you will need to have:
a github account (see above)
python 3.8 or higher
a code editor like vs-code
To make edits you will need to:
fork the bids-starter-kit repository
clone your fork to your computer
install the dependencies
make changes
push your changes to your fork
submit a pull request
Fork the BIDS Starter Kit repository to your profile#
This is now your own unique copy of the BIDS Starter Kit. Changes here won’t affect anyone else’s work, so it’s a safe space to explore edits to the code!
Make sure to keep your fork up to date with the upstream repository, otherwise you can end up with lots of dreaded merge conflicts.
Clone your fork to your computer#
git clone --recurse-submodules https://github.com/YOUR_USER_NAME/BIDS-Starter-Kit.git
Install the dependencies and set up pre-commit hooks#
pip install -r requirements_dev.txt
pre-commit install
Make the changes you’ve discussed#
Try to keep the changes focused. If you submit a large amount of work in all in one go it will be much more work for whomever is reviewing your pull request. Help them help you 😉
If you feel tempted to “branch out” then please make a new branch and a new issue to go with it.
Writing in markdown#
GitHub has a helpful page on getting started with writing and formatting on GitHub.
Most of the writing that you’ll do will be in Markdown.
You can think of Markdown as a few little symbols around your text
that will allow GitHub to render the text with a little bit of formatting.
For example you could write words as bold (**bold**
),
or in italics (*italics*
),
or as a link ([link](https://https://youtu.be/dQw4w9WgXcQ)
)
to another webpage.
Commit your changes#
git add .
git commit -m "your commit message"
view your changes#
jupyter-book build src
This will build the book in the src/_build
folder.
You can then open the src/_build/html/index.html
file in your browser to view the changes.
Submit a pull request#
A member of the BIDS Starter Kit team will review your changes to confirm that they can be merged into the main codebase.
A review will probably consist of a few questions to help clarify the work you’ve done. Keep an eye on your github notifications and be prepared to join in that conversation.
You can update your fork of the BIDS Starter Kit repository and the pull request will automatically update with those changes. You don’t need to submit a new pull request when you make a change in response to a review.
GitHub has a nice introduction to the pull request workflow, but please get in touch if you have any questions 🎈.
Example pull request#
Code (link)#
This repository is under development, but we hope that it becomes a useful place for people to share and find small snippets of code that are useful for getting started with BIDS.
To contribute to the codebase you’ll need to submit a pull request. Check out our guidelines below.
In general if you are contributing some code that requires some inputs, either provide that input or a link on how to access it, and an example on how to run that code.
Matlab / Octave#
We are using the Miss_hit linter to help us keep out matlab “clean”. You can find more information on how to set it up and use it on the bids-matlab contributing guidelines.
Templates (link)#
This repository is under development, but we aim to have two templates for each BIDS sidecar file:
one with a
full
example (all required/recommended/optional fields),one with a
short
example (only required fields).
If possible try to provide a script (python, octave, matlab) to generate those templates.
Try to name your script as follow: createBIDS_<suffix>_<extension>_*.[py|m]
createBIDS_T1w_json_short.m
To contribute a template you’ll need to submit a pull request. Check out our guidelines below.
Recognizing contributions#
BIDS follows the all-contributors specification, so we welcome and recognize all contributions from documentation to testing to code development. You can see a list of current contributors in the BIDS specification.
Thank you#
You’re awesome. 👋 😄
— Based on contributing guidelines from the STEMMRoleModels project.
Comment on an existing issue or open a new issue referencing your addition#
This allows other members of the BIDS Starter Kit team to confirm that you aren’t overlapping with work that’s currently underway and that everyone is on the same page with the goal of the work you’re going to carry out.
This blog is a nice explanation of why putting this work in up front is so useful to everyone involved.