# How to Contribute to Natron
Here's a quick guide to get new developers initiated with contributing to Natron. If you'd like to submit a change to make Natron better, here's how!
* If you've never heard of `git` and never used a terminal, see the [beginners tutorial](#contributing-for-beginners)
* If you have heard of `git` and used it a few times, but you're not super familiar with it, see the [intermediate tutorial](#contributing-for-intermediate-users)
* If you are a developer with some experience working with open-source codebases, see the [basic developer tutorial](#contributing-for-new-developers)
* If you're a seasoned developer, see the [advanced tutorial](#contributing-for-advanced-developers)
## Contributing for Beginners
*Info: Add stuff to here, reference: <http://brunoruviaro.github.io/ardour4-tutorial/how-to-contribute-0/>*
Welcome to the beginner's edition of the Natron contribution guide!
Here, you'll learn:
- What open-source is and how Natron is built around it
- What an *issue*, *pull request*, and *commit* is
- Some basic open-source contributing ettiquette
Reference stuff to add: http://rogerdudler.github.io/git-guide/
## Contributing for Intermediate Users
### TL;DR
The workflow used is the fork-branch-pr workflow, based on these steps:
- Fork the Natron repo
- Clone your fork
- Make a new branch to make changes
- Commmit changes in your branch
- Create a pull request
- Delete your merged branch
- Merge upstream changes into your fork
If you don't really understand what this means, no problem! Detailed steps are explained in the rest of this guide.
### Step 0: Installing and getting to know git
Some git terminology:
* Commit
* Fork
* Repository
### Step 1: Forking a copy of Natron to your computer
#### Forking the Natron repository
Natron is developed at a central repository at <https://github.com/NatronGitHub/Natron> - let's call this the "official repository". However, Natron's contributors work on Natron in copies, or *forks*, of the official repository. So, that's the first thing to do - make a copy of the official repository to your computer.
To do that, press the **fork** button on the repository page:

Watch the GitHub magic happen, and you'll be led to a shiny new repository at `<yourusername>/Natron`. Let's just say your username is `awesome-unicorns` - you'll be able to find your fork at `https://github.com/awesome-unicorns/Natron.git`.
#### Cloning your fork
Alright, so you have your fork, but you can't make changes yet - it's not on your computer. To download the repository to your computer, use the `git clone` command. Open your terminal and run:
```bash
git clone https://github.com/<yourusername>/Natron && cd Natron
```
Again, if your username is `awesome-unicorns`, then the command would be:
```bash
git clone https://github.com/awesome-unicorns/Natron && cd Natron
```
This command copies the Natron repository to your machine as a folder called `Natron` and enters the `Natron` folder for you. You're now free to make your changes!
#### Making and pushing changes
Let's say you've made some changes - maybe you added a sentence in the file `README.md`.
## Contributing for new developers
## Contributing for experienced developers