Skip to content

Commit

Permalink
Docs - update contributing docs
Browse files Browse the repository at this point in the history
[ci skip]
  • Loading branch information
ethancrawford committed Oct 8, 2021
1 parent 66df070 commit 3118ae6
Show file tree
Hide file tree
Showing 4 changed files with 86 additions and 112 deletions.
45 changes: 45 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
# Contributing

Hello! If you are interested in contributing to Sonic Pi in some way, fantastic. Everyone is welcome to help!

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).

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).

## Understanding the Sonic Pi source code
There are several ways that you can learn more about the technical design of the Sonic Pi source code.
- 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.**_
- You can study the source code itself at our official [Sonic Pi GitHub repository](https://github.com/sonic-pi-net/sonic-pi)
- 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)

## Project and development process guidelines
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:

- We prefer to limit the number of different technologies/frameworks/languages used in the project where practical
- We prefer friendly, conversational style for documentation over formal language
- 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
- We prefer proposed contributions, as well as the technical choices made when building them, to have clear benefits that outweigh any downsides
- 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
- 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

Also, regarding the Sonic Pi development process:
- We don't set development deadlines
- We merge code into `main` branch for stable releases only, and all work in progress we merge into `dev` branch
- We want code intended to be merged into the `main` or `dev` branches to be passing all tests where possible
- We prefer an issue ticket to be raised as soon as possible when a new bug is discovered (ideally within 48 hours)
- 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.

## Ideal process for contributing with code
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!
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).
3. Fork a copy of the Sonic Pi repository to your personal GitHub account.
4. Clone your fork to your local machine.
5. Make changes to your local clone of Sonic Pi.
6. Commit your changes and push them to your fork on GitHub.
7. Open a Pull Request to the official Sonic Pi repository.
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.
9. Once your code has passed review, it will be merged.

(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).

**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.
111 changes: 0 additions & 111 deletions HOW-TO-CONTRIBUTE.md

This file was deleted.

2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,7 @@ Would you like to contribute a translation too? If so, please take a look at our

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

* [How to contribute](HOW-TO-CONTRIBUTE.md)
* [Contributing](CONTRIBUTING.md)
* [Change log](CHANGELOG.md)
* [Community](COMMUNITY.md)
* [Contributors](CONTRIBUTORS.md)
Expand Down
40 changes: 40 additions & 0 deletions TYPES-OF-CONTRIBUTIONS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
# Types of contributions

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.
Here's a few ways you can help:

## Share your Sonic Pi experiences
- 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)

## Help with issues and pull requests on GitHub
- 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).
- 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.
This could include things like replying to folks:
- Reminders that (politely) point to our [troubleshooting guide](https://github.com/sonic-pi-net/sonic-pi/wiki/Troubleshooting-Issues)
- Help with filling out the issue templates
- Pointers to existing issues that might already describe the same specific problem or request

Or providing your own extra information to issues:
- More detail to describe the problem
- Potential workarounds or ideas for solutions

## Raise a feature request
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!).
If it's new after all, go ahead and [raise a feature request](https://github.com/sonic-pi-net/sonic-pi/issues/new/choose)!

You can also visit [the Sonic Pi community forum](https://in-thread.sonic-pi.net/) if you want to discuss your idea more informally.

## Translate Sonic Pi to your language
It's a wonderful way to introduce school kids in your country to
Sonic Pi and educators will appreciate it when we make it easier for
their class. The tutorial is fairly long, but the graphical user
interface is quickly translated and a good place to start.
For details, see [TRANSLATION.md](https://github.com/sonic-pi-net/sonic-pi/blob/main/TRANSLATION.md)

## Send us some changes for Sonic Pi in a Pull Request
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!

If you don't have a specific bug-fix, new feature, or enhancement already in mind, you can always browse the
[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.
There's probably an issue you can help to fix, or feature request you can help build.
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 comments on commit 3118ae6

Please sign in to comment.