content/wiki/other/contribute.md

92 lines
3.2 KiB
Markdown

If you want to contribute to MatterLinux, please first read the
[code of conduct](/wiki/conduct).
## Registering to Gitea
All of the development is done using the [git version control system](https://git-scm.com/).
And all the git repos are managed using [Gitea](https://about.gitea.com/), so if you want to
contribute, you should register an account first. To prevent mass account creation, registration
page of Gitea is disabled. So in order to register an account, send a email to the
[maintainer](mailto:ngn@ngn.tf) with the subject `Gitea Account`. Specify **at least** two usernames
for your account (second one will be used for registration if the first one is unavailable). Then
wait for a reply containing further instructions. You can also contact the maintainer over on [XMPP](/wiki/chat).
> **Important**
>
> Do not use the Gitea instance for hosting your own projects/repositories, personal
> repositories (A.K.A. repositories not forked for PRs) will be deleted. If you insist on creating
> personal repositories your account will be deleted.
## Issues
To report a bug, to ask questions or to request a feature, first find the related repository.
Then head over to the issue tab. Label your issue and explain it with a simple title. Write a
detailed description for the issue. Finally create the issue and patiently wait for a response.
To get more information about reporting bugs, check out [this wiki page](/wiki/bugs).
## Pull Requests
If you want to make changes and merge them to the project, first fork the related repository.
Then clone the forked repository and make the changes you want.
> **Important**
>
> Do not make multiple changes in one commit, for example adding a feature and fixing a bug
> in the same commit is a bad idea. Separate different changes to different commits
**Make sure to use correct indenting!**. MatterLinux projects uses **2 spaces** for indenting.
Configure your editor so it uses the same indenting. Here is an example configuration for the
`vim` editor:
```
set tabstop=2
set softtabstop=0
set expandtab
set shiftwidth=2
set smarttab
```
And here is a more extended configuration for general usage:
```
set tabstop=2
set softtabstop=0
set expandtab
set shiftwidth=2
set smarttab
set fileencoding="utf-8"
set hlsearch
set ignorecase
set mouse=a
set smartcase
set smartindent
set noswapfile
set pumheight=10
set undofile
set scrolloff=8
set sidescrolloff=8
set number
set relativenumber
set backspace=indent,eol,start
if !isdirectory("/tmp/undos")
call mkdir("/tmp/undos", "", 0700)
endif
set undodir=/tmp/undos
set undofile
syntax on
```
After making the changes, commit them using the following format:
```
<fix/feature/new/remove/update>: <description>
```
Do not use long commit messages, instead add a description to your commit if needed. **Make sure the email you are
using for signing the commit matches with your Gitea account email.**
After pushing your changes create a pull request (PR) to the original project. Write a
detailed description for the PR, explain the changes you have made, explain why you made
these changes and link any related issues.
## Discussion
Join the [chat rooms](/wiki/chat) to discuss with the other developers, especially for larger
changes and PRs.