== Guidelines

=== Qt
* Check pointers with Q_CHECK_PTR before using or returning them.
* Avoid using connect SIGNAL and SLOT. Instead use &Class::method. This way, connects are checked during the compile, 
  not at runtime.
* Where possible, use QVector over QList: http://lists.qt-project.org/pipermail/development/2017-March/029040.html

=== clazy
You can use [clazy](https://github.com/KDE/clazy) to check Qt semantics. 
Requires clang.

To set check levels, set the CLAZY_CHECKS environment variable to 'level0,level1', etc.

==== Setting up in QtCreator
The simplest way to set it up is to use _clazy_ instead of _clang_.

1. Go to Tools » Options » Build & Run » Compilers
2. Clone the clang compiler of your choice
3. Set _Compiler path_ to _/usr/bin/clazy_

== Licensing
Smolbote is licensed under GPLv3 _only_. Your code needs to be compatible with it, and have a license header in the
style used by the project.

- No self-updating "-or-later" licensing.

=== SPDX-License-Identifier
A full list of license identifiers can be found on [the SPDX website](https://spdx.org/licenses/).

== Style
There is a clang-format style in .clang-format.

== Format patch for email

~~~ sh
hg export -r startcommit[:endcommit] -o patchname.txt
~~~

to export the from _startcommit_ until tip or optionally _endcommit_.

Email the patch file to _aqua at iserlohn dash fortress dot net_.
