bismuth/CONTRIBUTING.md
Mikhail Zolotukhin 93e6f1406b chore: move npm scripts to makefile
This makes it possible to name targets whatever we want and makes us
less dependant on the NPM (i.e. a preparation for NPM removal).
2022-03-23 22:05:55 +03:00

3.1 KiB

🤝 Contributing

Conventional Commits code style: prettier

We glad, that you want to contribute to the project. To make things easier please read the following.

🏗️ Development packages

To make sure you can develop the script install all the tools you need:

👷 Prepare environment

To prepare environment, clone the project and execute the following:

make setup-dev-env

This will install and set up all the things you need (Git Hooks, Dependencies).

🔨 Compile Bismuth

To compile Bismuth execute the following:

make build

This will compile the script via TypeScript and produce the JS output adapted to QML JavaScript Environment.

📦 Installation

To install compiled package, execute:

make install

Note however, that if you have the script already installed and enabled, you need to restart KWin, so that it can apply the changes you've made. To do so do:

make restart-kwin-x11

You can uninstall the package using the following command:

make uninstall

🧪 Unit testing

Bismuth comes with unit tests. To run them execute the following:

make tests

📑 API Documentation

☝️ To view the current API documentation please go here.

To generate API docs, run the following:

make docs

This will generate the documentation in the build directory.

FAQ

I am not a developer

Do not worry, you can still contribute fixing the documentation or just opening the issues and reporting bugs! Do not underestimate your impact, as the job of tester and bug triager is one of the most valuable in any software project. What the use of being a developer if you don't know what to fix or implement?

What skills do I need to contribute as a developer?

Bismuth is written in TypeScript and C++, so you'll have to know some. To learn TypeScript, check out the Handbook. If you know JavaScript and have an experience in some strongly typed language, it will be easy, and even if it not, you're still doing a great job - you can do it!

You'll also need to know something about KWin scripting and Qt JavaScript Environment. For KWin scripting there is a tutorial on the KDE developer portal. And for Qt JavaScript things you can check out the official documentation.