If you want to contribute by fixing a 🐛 nasty bug or implementing an 🎉 awesome new feature, you are very welcome to do so!
Writing Code for Kando
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!
1. Fork the Kando Repository
Section titled “1. Fork the Kando Repository”As you do not have write access to the main repository, you need to fork it first. For this, click the button below:
Fork Kando on GitHub!
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
).
While it does not matter how you name the branches in your fork, it is a good idea to follow this convention to organize your work.
2. Write Some Code
Section titled “2. Write Some Code”Kando uses Prettier for code formatting.
You can either configure your editor to format the code on save or run npm run format
before committing your changes.
Commits should start with a Capital letter and should be written in imperative mood (e.g. :tada: Add cool new feature instead of :tada: 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 :smile:.
3. Make Sure All Tests Pass
Section titled “3. Make Sure All Tests Pass”The CI jobs on GitHub will run several tests and checks. Kando uses Github Actions for continuous integration. You can also run some of tests locally before pushing your changes.
Unit Tests
Section titled “Unit Tests”Kando does not yet have a lot of unit tests, but we are working on it. You can run the unit tests by executing the following command:
npm run test
Code Formatting
Section titled “Code Formatting”Kando uses Prettier for code formatting. You can test if your code is formatted correctly by running the following command:
npm run prettier
You can also automatically format your code by running:
npm run format
Linting
Section titled “Linting”Kando uses ESLint for linting the code. You can run the linter by executing the following command:
npm run lint
REUSE Compliance
Section titled “REUSE Compliance”Kando is compliant with the REUSE standard. This means that all source files must have a license header and all files must be properly attributed.
If you just added a small piece of code, you usually do not need to change any license headers.
However, if you contributed a significant piece of code, you should add yourself to the file header with a new SPDX-FileCopyrightText
line.
You can read more about this in the documentation for creating menu themes.
You can use the REUSE Tool to check if your code is compliant with the REUSE standard.
There are several ways to do this, but the easiest one is to use pipx
:
pipx run reuse lint
4. Finally: Create a Pull Request
Section titled “4. Finally: Create a Pull Request”Finally, when you are finished with your changes, push them to your fork and create a pull request to the main
branch of Kando’s repository.