2.6 KiB
Contributing guide
Type of contributing
There are two main types of contributions, accepted in KolibriOS:
- Submitting issues about problems in project
- Submitting code to project via pull requests
Each of these types is described in details below.
Issues
You can help us by submitting issues about problems, found in system. Currently, there are two main ways of submitting an issue in the project: Bug Reports and Feature Requests:
- Bug Reports are suitable if you find a bug (crash, error, inexcpected behaviour) in some part of the system (kernel, drivers, apps etc.) and want to report it
- Feature Request are used, when you wont to propose some improvement to the system (missing features, impoved user experience, etc.)
Pull requests
You can also help us by submitting code via pull requests. The process of submitting a pull request consists of following steps:
- Find what you want to implement or improve
- Make a fork of kolibrios repository
- Create a branch with a name that matches your changes
- Implement and test the changes
- Create commits according to the accepted style
- Create and submit a pull request into main branch
- 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 proposed changes can be corrected (if it's necessary) and merged into the project.
Commit style
Pattern
The commit message should look like this:
[Category] Commit message header
Commit message body, if needed
- Commit message header and body should reflect changes made in commit
- Commit message header should start with a capital letter
- Commit message body should be separated from the header by one empty line
Length
Maximum number of characters in a commit header is 72 (standard for Git). Also, 72 is the maximum length of a line in a commit body.
Categories
List of existing categories accepted in the project:
Krn
- kernelDrv
- driversLibs
- librariesApps
- user-space applicationsSkins
- skinsBuild
- build systemCI/CD
- CI/CDDocs
- documentationData
- 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:
Apps/shell
Libs/libimg
Merge commits
Warning
Merge commits are prohibited in the project
Conclusion
We hope this small instructions will help you to can common with KolibriOS contributon and inspire you to participate in the work of this project.