Skip to content

Commit

Permalink
Add mentored contribution guide
Browse files Browse the repository at this point in the history
  • Loading branch information
adamltyson committed Apr 12, 2024
1 parent 68b5946 commit deea690
Show file tree
Hide file tree
Showing 5 changed files with 49 additions and 9 deletions.
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
# Development guidelines
# General development guidelines

All our software is built as a team, and this means we must agree on some development conventions. This page
covers our internal development guidelines, which we hope are also useful to external contributors.


## General guidelines
## General principles

* All projects will use [Git](https://git-scm.com/) for version control and [GitHub](https://github.com/) for hosting.

Expand Down Expand Up @@ -95,9 +95,3 @@ help standardise how we categorise issues. As a general rule, `critical` issues
| good first issue | Good for newcomers |
| question | Further information is requested |
| wontfix | This will not be worked on |

## Further details
```{toctree}
:maxdepth: 2
languages_frameworks
```
20 changes: 20 additions & 0 deletions docs/source/get-involved/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# Get involved
We always welcome contributions to all of our software, whether from experienced developers, or researchers looking
to make their first open-source contribution.

Many of our projects are quite large and the software is used by researchers around the world. For this reason, all
contributions go through a review process to make sure that they are necessary, useful, correct and complete. This
"code review" process can often be daunting to first time contributors. It is often not difficult to meet these criteria,
but it can be _complicated_.

For this reason we have written some documents to outline the processes we use, so hopefully they aren't so opaque.
We are also happy to guide new contributors through the process. For more details please see
[details about mentored open source contributions](mentoring).

## Further details
```{toctree}
:maxdepth: 1
development_guidelines
languages_frameworks
mentoring
```
26 changes: 26 additions & 0 deletions docs/source/get-involved/mentoring.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
# Mentored open-source contributions

Contributing to open-source software can be complicated, even if you're an experienced programmer
(and even more so if you're not!). Contributions to open-source scientific software come in many forms, and often the
most valuable contributions come from those who aren't (or who wouldn't call themselves) software developers.

For this reason, we offer what we call a "mentored open-source contribution" model. If you're interested in contributing
to our tools in any way, we will help you through the process, teaching you some of the basics of software
engineering as we go. The exact model varies on the individual, but may look something like:

1. We make initial contact and discuss your aims. Maybe you want to adapt one of our tools to your needs, or maybe you
want to transition to research software engineering.
2. We have a quick call to identify a small, well described piece of work for you to start on
(typically an open GitHub issue).
3. We go through the contribution process with you.
4. You begin tackling the project at your own pace, and begin the code review process.
5. We help you out where needed, either asynchronously (GitHub, Zulip) or synchronously (e.g. Zoom).
6. Your contribution is merged.
7. Ideally, we repeat the steps and you gradually work independently on open source.

Importantly, this is not an internship, there is no obligation on either side. It is also not a promise of help.
Anyone is welcome to contribute to any of our tools, and we will always aim to help people make this step.
Unfortunately, we're busy and may not be able to guide everyone through the process.

If this sounds of interest, please get in touch with us either via [Zulip](https://neuroinformatics.zulipchat.com/)
or by <a href="mailto:[email protected] ?subject=Mentored open-source contributions ">emailing Adam Tyson</a>.
2 changes: 1 addition & 1 deletion docs/source/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,6 @@ people
projects
collaborations
blog/index
get-involved/index
resources
guidelines/index
```

0 comments on commit deea690

Please sign in to comment.