Skip to content

Commit 3118ae6

Browse files
committed
Docs - update contributing docs
[ci skip]
1 parent 66df070 commit 3118ae6

File tree

4 files changed

+86
-112
lines changed

4 files changed

+86
-112
lines changed

CONTRIBUTING.md

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
# Contributing
2+
3+
Hello! If you are interested in contributing to Sonic Pi in some way, fantastic. Everyone is welcome to help!
4+
5+
Are you wondering about the different ways you might be able to contribute? See [TYPES-OF-CONTRIBUTIONS.md](https://github.com/sonic-pi-net/sonic-pi/TYPES-OF-CONTRIBUTIONS.md).
6+
7+
Do you want to know about all the new features that we'd love to see included in Sonic Pi? See [the Sonic Pi features project board](https://github.com/orgs/sonic-pi-net/projects/1).
8+
9+
## Understanding the Sonic Pi source code
10+
There are several ways that you can learn more about the technical design of the Sonic Pi source code.
11+
- You can read brief outlines of the source code structure, and see a diagram of the major components, available from the 'Development' section of the sidebar on the [Sonic Pi wiki](https://github.com/sonic-pi-net/sonic-pi/wiki). _**Note: these are all out-of-date to varying degrees and we are in the process of updating them - so for any serious use, feel free to talk with us directly in the mean-time.**_
12+
- You can study the source code itself at our official [Sonic Pi GitHub repository](https://github.com/sonic-pi-net/sonic-pi)
13+
- You can ask the core development team or wider Sonic Pi community questions at any of the places we gather as a [community](https://github.com/sonic-pi-net/sonic-pi/COMMUNITY.md)
14+
15+
## Project and development process guidelines
16+
There are several guidelines that we value when planning the format of new work. We encourage community contributors to keep these in mind also when thinking about contributing to Sonic Pi. They are:
17+
18+
- We prefer to limit the number of different technologies/frameworks/languages used in the project where practical
19+
- We prefer friendly, conversational style for documentation over formal language
20+
- In line with the core aims of the project, we want Sonic Pi features to be simple enough for a 10 year old child to understand and use
21+
- We prefer proposed contributions, as well as the technical choices made when building them, to have clear benefits that outweigh any downsides
22+
- We prefer not to introduce potential instability or uncertainty into the code that is used in the app's build process unless there is a really good reason to do so
23+
- Since the Sonic Pi project is ultimately owned by @samaaron, all contributions need to be in a form that aligns with Sam's vision for the project, and that he will be able to understand and maintain if the original author moves on from the project
24+
25+
Also, regarding the Sonic Pi development process:
26+
- We don't set development deadlines
27+
- We merge code into `main` branch for stable releases only, and all work in progress we merge into `dev` branch
28+
- We want code intended to be merged into the `main` or `dev` branches to be passing all tests where possible
29+
- We prefer an issue ticket to be raised as soon as possible when a new bug is discovered (ideally within 48 hours)
30+
- When someone intends to start work on an issue or new feature, they check the [Issues page](https://github.com/sonic-pi-net/sonic-pi/issues) or [the Sonic Pi features project board](https://github.com/orgs/sonic-pi-net/projects/1) first. If the issue or feature is not already being worked on, the person who intends to start it mentions this publicly somewhere. (They can do this by updating the issue ticket, or mentioning it in any of the places we gather as a [community](https://github.com/sonic-pi-net/sonic-pi/COMMUNITY.md), in order to minimise the possibility of duplicated work.
31+
32+
## Ideal process for contributing with code
33+
1. Familiarise yourself with the part(s) of the code that you wish to contribute towards if necessary. We're always happy to answer questions about the Sonic Pi code!
34+
2. For complex or large code changes, it's worth initially discussing the potential solutions with the core team and other Sonic Pi contributors - either by opening an issue and labelling it as a feature request, or again by chatting with us at any of the places we gather as a [community](https://github.com/sonic-pi-net/sonic-pi/COMMUNITY.md).
35+
3. Fork a copy of the Sonic Pi repository to your personal GitHub account.
36+
4. Clone your fork to your local machine.
37+
5. Make changes to your local clone of Sonic Pi.
38+
6. Commit your changes and push them to your fork on GitHub.
39+
7. Open a Pull Request to the official Sonic Pi repository.
40+
8. If changes are requested either by bots attached to the Sonic Pi repository, or the core team, make the desired changes and push again to your fork on GitHub.
41+
9. Once your code has passed review, it will be merged.
42+
43+
(If you need any further help with any of the above steps for preparing a Pull Request for us on GitHub, it's worth searching the [GitHub documentation](https://docs.github.com/) first, but feel free to ask us for help if you're still stuck after that).
44+
45+
**Note**: if it is decided that a contribution will _not_ be included at the time, this does _not_ mean that the effort is not valued! if such a situation occurs, the core team will endeavour to provide an explanation.

HOW-TO-CONTRIBUTE.md

Lines changed: 0 additions & 111 deletions
This file was deleted.

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ Would you like to contribute a translation too? If so, please take a look at our
8888

8989
Sonic Pi is under active development, and welcomes new contributors:
9090

91-
* [How to contribute](HOW-TO-CONTRIBUTE.md)
91+
* [Contributing](CONTRIBUTING.md)
9292
* [Change log](CHANGELOG.md)
9393
* [Community](COMMUNITY.md)
9494
* [Contributors](CONTRIBUTORS.md)

TYPES-OF-CONTRIBUTIONS.md

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
# Types of contributions
2+
3+
Hello! Are you interested in contributing to Sonic Pi, but not sure where to start? there are many ways to do so, even besides writing code.
4+
Here's a few ways you can help:
5+
6+
## Share your Sonic Pi experiences
7+
- Sharing your Sonic Pi experiences with people is a great way to raise awareness of Sonic Pi. Giving talks, performances, tutorials or workshops, sharing resources and teaching materials, or even just posting a simple message on social media about it (on Twitter we're `@Sonic_Pi`) are all ways you can spread the word. For all the different ways people can connect as a community around Sonic Pi, see [COMMUNITY.md](https://github.com/sonic-pi-net/sonic-pi/blob/main/COMMUNITY.md)
8+
9+
## Help with issues and pull requests on GitHub
10+
- Proof-reading pull requests. If a pull request contains plain text besides code, then spelling and grammar checks are always helpful. The default language is British English (en-GB).
11+
- Adding helpful comments to issues. [The list of issues on GitHub](https://github.com/sonic-pi-net/sonic-pi/issues) can often be quite large - this can become difficult for the core development team to manage, so comments that help to manage this are always welcome.
12+
This could include things like replying to folks:
13+
- Reminders that (politely) point to our [troubleshooting guide](https://github.com/sonic-pi-net/sonic-pi/wiki/Troubleshooting-Issues)
14+
- Help with filling out the issue templates
15+
- Pointers to existing issues that might already describe the same specific problem or request
16+
17+
Or providing your own extra information to issues:
18+
- More detail to describe the problem
19+
- Potential workarounds or ideas for solutions
20+
21+
## Raise a feature request
22+
If you have an idea for a new feature or enhancement, search the [Issues page](https://github.com/sonic-pi-net/sonic-pi/issues) or [the Sonic Pi features project board](https://github.com/orgs/sonic-pi-net/projects/1) first (someone might have raised it already!).
23+
If it's new after all, go ahead and [raise a feature request](https://github.com/sonic-pi-net/sonic-pi/issues/new/choose)!
24+
25+
You can also visit [the Sonic Pi community forum](https://in-thread.sonic-pi.net/) if you want to discuss your idea more informally.
26+
27+
## Translate Sonic Pi to your language
28+
It's a wonderful way to introduce school kids in your country to
29+
Sonic Pi and educators will appreciate it when we make it easier for
30+
their class. The tutorial is fairly long, but the graphical user
31+
interface is quickly translated and a good place to start.
32+
For details, see [TRANSLATION.md](https://github.com/sonic-pi-net/sonic-pi/blob/main/TRANSLATION.md)
33+
34+
## Send us some changes for Sonic Pi in a Pull Request
35+
We're always interested in receiving fixes, new features and improvements for Sonic Pi - even more so in areas that the core team has been unable to focus on!
36+
37+
If you don't have a specific bug-fix, new feature, or enhancement already in mind, you can always browse the
38+
[open issues](https://github.com/sonic-pi-net/sonic-pi/issues) or [the Sonic Pi features project board](https://github.com/orgs/sonic-pi-net/projects/1) on GitHub.
39+
There's probably an issue you can help to fix, or feature request you can help build.
40+
For guidelines to keep in mind while you're preparing your contribution, see [CONTRIBUTING.md](https://github.com/sonic-pi-net/sonic-pi/blob/main/CONTRIBUTING.md)

0 commit comments

Comments
 (0)