Problem: lootbox is not uploaded to hackage, so when we upload
xrefcheck, its build on hackage fails.
Solution: we can use `mixins` feature to set Universum as prelude
without any intermediate packages.
This seems to be supported even by quite old versions of stack, like
1.7.3, so that should not bring build problems in most cases.
Problem: we use many unusual unicode characters, on some locales this
may cause failures on attempt to print to stdout.
Solution: it is generally a good practice to set encoding of all
handlers to UTF-8, and this commit brings `with-utf8` package which does
that.
Problem: we are going to release this tool and from that point
it would be nice to maintain its changelog.
Solution: add a simple CHANGES.md and update PR template.
Problem: nowadays we want all files to store licensing information in
machine-readable format and to use reuse tool to check that. But the
repo is not REUSE compliant.
Solution: add `LICENSES` folder and licensing information for each
file.
Problem: it was agreed with Kostya Ivanov that the copyright owner
is Serokell, so it should be updated in package.yaml.
Also it mentions incorrect license (the one in the repo is MPL-2.0)
and does not have license-file.
Solution: update `copyright` field and `license` field. Also add
`license-file`. Update maintainer as well, because now many people
from Serokell are involved.
I also took the liberty to fix the `github` field.
Problem: latest available LTS resolver is 14.16 and `crossref-verifier`
doesn't compile with it.
Solution: update resolver to 14.16. Newer versions of some packages
are used from now on. I assume that it shouldn't break anything as
long as tests pass.
`req` stopped using `Default` class, that's the only change in the code
I had to make.
Problem: currently `crossref-verify` executable does not work without
configuration, and user was supposed to use one from the repository if
he does not have its own. This is very inconvenient.
Solution: make executable remember some config and use it by default.
For instance, reference to `issues` github page is a valid one despite there is no such
file physically in the repository.
Now user can specify list of "existing" virtual files in config.