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:

  • help-wanted 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!

  • Question 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.

  • good-first-issue 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.

  • Enhancement 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.

  • Documentation 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 🏆

  • Community 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.

  • Bug 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

  • Closing Soon 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. 😜

  • Funding 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 💰

  • Logistics 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.

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.

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#

Example-Contribution

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.