# Contributing to Tomatenquark
You have already accomplished the first step by reading these contribution guidelines. Congratz!
The second step is only slightly harder by joining us in Discord.
Tomatenquark is a meritocratic organization:
Meritocracy is a political system in which economic goods and/or political power are vested in individual people on the basis of talent, effort, and achievement, rather than wealth or social class.
If you invest effort into the project it will be anticipated, and your changes will most likely be included in the game, given you can convince enough members they are an improvement. This usually isn't an issue since contribution is a dynamic process involving feedback from others.
Tomatenquark organization is structured into a multitude of repositories which are briefly described below:
|sauerbraten_code||A read-only mirror of the SVN of sauerbraten|
|code||Contains the code for the Tomatenquark game|
|essential||Contains essential media assets to run the game|
|tomatenquark.github.io||The website of the project|
|.github||Community related files|
# Types of contributions
Contributions generally fall under two categories:
We'll briefly cover both of these points.
# Fixing bugs
In any project bugs are anticipated. If you would like to help resolve those, please pick up an issue. We have good first bug (meaning small Tomatenquark related preknowledge is required) issues to help you getting started.
# Adding new features
- Always helpful: Speak with the other Tomatenquark people about your feature idea.
- Take some time to document a roadmap for yourself. Which features would you like to work on or help implementing them?
- You have a new idea for which we don't have an existing issue? (Use the search first!)
- Positive feedback from a Tomatenquark team member will verify you the feature fits into the big picture
# Submitting your changes
If you are not familliar with
GitHub you might read the official GitHub tutorial before continuing with this section.
- Fork the repository and clone your fork
- Create a new branch
masterbranch represents the stable game that is released to the public
- Develop the feature in your branch
- Make small and meaningful commits (see Atomic commits)
- Create a pull request
- You don't need to be completely finished with your work. You can create Pull Requests to get early feedback.
- Members might comment your work in a constructive fashion to guide you through the process.
# Experiments welcome
Experiments are allowed and encouraged.