content/wiki/contribute/contribute.md

94 lines
3.3 KiB
Markdown

If you want to contribute to MatterLinux, please consider getting in [direct
contact with the maintainers](/wiki/chat).
## 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 [directly](/wiki/chat).
> **Important**
>
> Do not use the Gitea instance for hosting your own projects/repositories, personal
> repositories (AKA 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
```
You should also run the `make format` command for repositories that contain custom formatting
rules in their Makefiles.
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.