This directory contains the clang-tidy version we require.
The descriptions can be found in resources/check-descriptions/clang-tidy

The descriptions folder contains the .rst files from the
llvm-project/clang-tools-extra/docs/clang-tidy/checks
folder in the required version (git tag) of https://github.com/llvm/llvm-project

The .rst files contain the names/descriptions of checks and the names/descriptions of check options.

For updating Clang-tidy to a new version:

1. Run clang_tidy_doc_gen.py from its folder to download .rst docs files for the new checks.

2. Run ClangTidyUpdater.java to create entries for new checks in check-mappings.tsv and check-options.tsv files.

3. Ask in the #Q-model Slack channel for someone to classify the new checks in check-mappings.tsv. Rationale should
   be provided for checks with enablement as OFF.

4. Write instructions in server/Dockerfile.base to install new version of clang-tidy

5. For the changes in #4, bump the version of variable TEAMSCALE_BASE_IMAGE in server/Dockerfile and .gitlab-ci.yml.
   Then run dist/gcp job in Gitlab.

6. Ask in #DIG Slack channel to create a new branch in rep https://gitlab.com/cqse/teamscale/build/build-containers
   This is needed to install the clang-tidy binary in the docker containers because clang-tidy integration tests in
   Teamscale use it while running. Use the specified (test) version of `BUILD_IMAGE_VERSION` in the branch, in Teamscale
   (.gitlab-ci.yml) to checks if clang-tidy integration tests work. If it works, notify #DIG so the branch will be
   merged. Make sure to set the final value of `BUILD_IMAGE_VERSION` in the branch into Teamscale (.gitlab-ci.yml).

7. Run false-positive (& false-negative) tests to identify new checks that need removed or turned off.

8. Run performance tests to identify with new checks that should be turned off. Use profiling information at
   https://clang.llvm.org/extra/clang-tidy/Contributing.html#on-checks-profiling.