The most important difference in this PR is that we now enforce scope
and subject line length. `conventional-pre-commit`, which we have been
using until now, does not appear to allow that unlike `committed` which
we will be now using.
On the other hand, `committed` doesn't allow to require having a scope,
unlike `conventional-pre-commit`, but I will probably submit them a PR
for this later.
I also find it questionable that disabling particular checks is to be
done by switching boolean options to false. Doing so by string options
would be more future-proof.
Also note that this has a check to make sure the commit message starts
with a verb. I am fine with this myself, but it may be an overkill.
I ran the following command in Fish shell:
```
reuse annotate --copyright="Topola contributors" --license="MIT" **/.gitignore {.woodpecker/*,.*}.yaml .rustfmt.toml flake.nix index.html
```
Contrary to what I naively thought, `pre-commit` in CI does not result
in commit messages being checked. Another action `pre-commit` was
doing was running `cargo check`, but this is essentially the same as
building without compilation, and we are testing by building in other
CI-workflows. So we are left with only a formatting check, which does
not need installing and running `pre-commit`.