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 [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: ``` : ``` 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.