== Guidelines

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

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

clazy is a drop-in replacement for clang. To set check levels, set the
CLAZY_CHECKS environment variable to 'level0,level1', etc.

== Licensing
Smolbote is licensed under GPLv3 _only_, and explicitly does not use any
self-updating "-or-later" licensing. Your code needs to be compatible with it,
and have a license header in the style used by the project.

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

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

== Format patch for email

[source, sh]
----
git format-patch $from..$to
----

This will give you one patch per commit. If you want to merge all of them into
a single patch, you can merge the commits using rebase:

[source, sh]
----
git rebase --interactive
----

Alternatively, replay all your commits from the commit before $from on a new
branch:

[source, sh]
----
git branch delivery X
git checkout delivery
git merge --squash master
git format-patch HEAD
----

Email patches to _aqua at iserlohn dash fortress dot net_.