- use clang-format12 or 13 or unversioned executable, only
- check it's actually 12 or 13
- set language standard explicitly to C++17, "Cpp11" is now
an alias for "latest" which is weird
This change does lead to some thrashing when applying styles,
so I'm not going to do that across the board right now. Changes include:
- extra spaces in lambda-captures
- nicer alignment of lambda-bodies
The ordering of entries jumps around sometimes when reading from
Transifex (this might be Python unordered dictionaries, or based
on translation statistics -- I can't tell). Force an order by
sorting on language code and key-name so they all end up grouped
by language code, sorted Name Icon GenericName Comment.
Although this shuffles some more entries now, longer-term it
will reduce churn in the .desktop file.
This introduces a stub-implementation (fake) that mimics the
API offered by libcalamares (the library is actually exposed
to Python via Boost::Python, so it doesn't act like a C-extension).
Using that stub-implementation, we can check Python modules for
validity as part of the test-suite.
The stub-implementation is needed, because otherwise every
Python module already fails at `import libcalamares`.
- stub-implement the API that is actually used by the Python modules
- in globalstorage, be slightly smart about what keys are being
requested (so that e.g. all the modules that handle partitions
information get an empty list and can manipulate that, instead of
erroring out when they get a string)
The only acceptable versions of clang-format are 8 and 9 for now
(until another round of big-churn-from-formatting, at which point
we'll update the required version).
clang-format-9 says:
SpacesInSquareBrackets (bool)
If true, spaces will be inserted after [ and before ]. Lambdas
or unspecified size array declarations will not be affected.
clang-format-10 changes part of that to:
Lambdas without arguments or unspecified size array
declarations will not be affected.
This means that 9 will only allow `[name]` for captures, and 10
will only allow `[ name ]` for captures, so they ping-pong all
the lambda's in the codebase back and forth. Just don't.
Various clang-format versions have different defaults and
don't understand the same options, so adjust to having
files per-formatting-version to patch things up.
- Get a signature on CHANGES at the start, so that the key
is cached by gpg; that way the tag-signing has the key, and
will not time-out (which breaks tarball generation, and
means that I need to **watch** the release script, rather
than fire-and-forget).
- separate out the version into a variable (again -- this was moved **into**
project() long ago, but now there's a desire to have the value before
reaching the project() command)
- rename CALAMARES_VERSION_RC to something more sensible.
- point to main Calamares site in the 'part of' headers instead
of to github (this is the "this file is part of Calamares"
opening line for most files).
- remove boilerplate from all source files, CMake modules and completions,
this is the 3-paragraph summary of the GPL-3.0-or-later, which has
a meaning entirely covered by the SPDX tag.
- remove empty useless HACKING
- remove unused cppcheck.sh
- migrate the AppImage docs to the wiki (which doesn't moan about licensing)
- try a HTML-style comment in the RELEASE docs