diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 000000000..ddd8c4a48 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,77 @@ +# Contributing guide + +## Type of contributing + +There are two main types of contributions: submitting issues about problems and submitting pull requests. Each of these types of contributions is described in detail below. + +## Issues + +You can help us by submitting issues to repository. At the moment there are 2 main ways of submitting an issue in the project: _bug reports_ and _feature requests_. All existing forms are provided with brief explanations + +- Reports are suitable if you find a __bug__ in some part of the project and want to create a report; +- Also there is a possibility submit a __feature request__ if it seems to you that the project lacks any feature. + +## Pull requests + +You can also help us by submitting pull requests. The process of submitting a pull request consists of several steps: + +- Find what you want to implement or improve; +- Make a fork (not relevant for owners); +- Create a branch with a name that matches your changes; +- Make and test the changes; +- Create commits according to the [accepted style](##commit-style); +- Create and submit a pull request; +- Wait for CI/CD pipelines and code review to pass. + +When a pull request is submitted, at least two project participants must conduct a code review, after which the changes are corrected (if it's necessary) and merged into the project. + +## Commit style + +### Naming + +- Pattern + + Regular commit message should consist of several parts and be built according to the following template: + + ```test + Category: Commit message body + + Long description if necessary + ``` + + - Commit message body and description should briefly reflect the meaning of the commit changes; + - Commit message body should be written starting with a capital letter; + - Description should be separated from the body by one empty line. + +- Length + + The maximum number of characters in a commit header is __72__ (standard for __Git__). Additionally, __72__ is the maximum length of a line in a commit body. + +- Categories + + List of existing categories accepted in the project: + + - `Krn` - kernel + - `Drv` - drivers + - `Libs` - libraries + - `Skins` - skins + - `Build` - build system + - `CI/CD` - CI/CD + - `Docs` - documentation + - `Data` - images, configs, resources, etc. + - `All` - global changes + + If changes are made to a specific component, the name of the component separated by `/` character needs to be specified. For example: + + ```text + Apps/shell + Libs/libimg + ``` + +### Merge commits + +Merge commits are __prohibited__ in the project + +### Unwanted commits + +Commit messages like `Refactoring`/`Update files` are __unwanted__ in the project diff --git a/README.md b/README.md new file mode 100644 index 000000000..906542369 --- /dev/null +++ b/README.md @@ -0,0 +1,19 @@ +# KolibriOS + +[![License](https://img.shields.io/badge/License-GPL%202.0-green)](./COPYING.TXT) +[![Build system](https://git.kolibrios.org/KolibriOS/kolibrios/actions/workflows/build.yaml/badge.svg)](https://git.kolibrios.org/KolibriOS/kolibrios/actions/workflows/build.yaml) + +KolibriOS is a hobby operating system for x86-compatible computers, its kernel is written entirely in [Fasm](https://flatassembler.net/) assembly language. Based on [MenuetOS](https://www.menuetos.net/), it uses its own standards and is not fully POSIX or UNIX compliant + +## Contributing + +Detailed instructions for the contribution process can be found in the [contributing guide](./CONTRIBUTING.md) +Common list of project tasks is located on [this page](https://git.kolibrios.org/KolibriOS/kolibrios/issues). + +## Special thanks + +The KolibriOS team expresses special thanks to the author of the 32-bit __MenuetOS__, [Ville Turjanmaa](https://www.menuetos.net/contact.htm). We also want to note that all __MenuetOS__ copyrights have been preserved + +## License + +Contents of this repository are licensed under the terms of __GNU GPL 2.0__ unless otherwise specified. See [this](./kernel/trunk/COPYING.TXT) file for details