Whenever you encounter a 🐛 bug or have 🎉 feature request, report this as a GitHub issue!
We are happy to receive contributions in the form of pull requests on GitHub.
Feel free to fork the repository, implement your changes and create a merge request to the main
branch!
Kando uses a simplified version of GitFlow:
New features are usually implemented in feature/*
branches and are merged to main
once they are finished.
Similarly, bugfixes are implemented in fix/*
branches, where the *
is usually the issue number (e.g. fix/#123
).
Commits should start with a Capital letter and should be written in imperative mood (e.g. 🎉 Add cool new feature instead of 🎉 Added cool new feature). It's a great idea to start the commit message with an applicable emoji. This does not only look great but also makes you rethink what to add to a commit: Commits should be small and focused on a single task. Therefore, only one emoji should be used per commit.
- 🎉
:tada:
when adding a cool new feature. - 🐛
:bug:
when fixing a bug. - 🔧
:wrench:
when adding small piece of code. - 🚀
:rocket:
when improving performance. - ♻️
:recycle:
when refactoring the code. - 🔥
:fire:
when removing files or code. - 🚚
:truck:
when moving / renaming files or classes. - ✨
:sparkles:
when formatting the code. - 🎨
:art:
improving or adding assets like themes or fonts. - 💄
:lipstick:
when working on the UI styling. - 📝
:memo:
when writing docs. - 🌐
:globe_with_meridians:
when working on localization. - 💞
:revolving_hearts:
when updating credits. - ✔️
:heavy_check_mark:
when working on tests. - 🔼
:arrow_up_small:
when adding / upgrading dependencies. - 🔽
:arrow_down_small:
when removing / downgrading dependencies. - 🔀
:twisted_rightwards_arrows:
when merging branches.
Usage of these emojis is not mandatory; we will still accept your pull request if you don't use them. However, we will be very happy if you do 😄.
Kando uses semantic versioning and the changelog follows the rules of Keep a Changelog.
Whenever you add a new feature or fix a bug, please add an entry to the top of the changelog in the [unreleased]
section.
When a new version is released, this section will be marked as released and a tag is created on the main
branch.
Github Actions are used for continuous integration.
- For each commit, several checks are performed. These include code formatting, linting, REUSE compliance and unit tests.
- For pull requests, it is checked in addition that the application can be packaged for Linux and Windows.
- When a new tag is created, the application is packaged for Linux, macOS, and Windows and uploaded to the releases page.