diff --git a/.clang-tidy b/.clang-tidy index ebc2b28..d7f264c 100644 --- a/.clang-tidy +++ b/.clang-tidy @@ -2,5 +2,4 @@ Checks: "bugprone-*, clang-analyzer-*, clang-diagnostic-*, concurrency-*, cppcoreguidelines-*, google-*, misc-*, modernize-*, performance-*, portability-*, -modernize-use-trailing-return-type" WarningsAsErrors: true HeaderFilterRegex: "" -AnalyzeTemporaryDtors: false FormatStyle: none diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 7fd3e70..3d2bcee 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -2,15 +2,19 @@ # See https://pre-commit.com/hooks.html for more hooks repos: - repo: https://github.com/pre-commit/pre-commit-hooks - rev: v4.4.0 + rev: v4.5.0 hooks: - id: trailing-whitespace + stages: [pre-commit] - id: end-of-file-fixer + stages: [pre-commit] - id: check-added-large-files + stages: [pre-commit] - repo: https://github.com/commitizen-tools/commitizen - rev: 3.8.0 + rev: v4.8.3 hooks: - id: commitizen + stages: [commit-msg] - id: commitizen-branch - stages: [push] + stages: [pre-push] diff --git a/Dockerfile b/Dockerfile index 73da839..45c26be 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,18 +1,23 @@ -FROM gcc:13 +FROM gcc:15 # Install build tools -RUN apt-get update && apt-get install -y python3 python3-pip ninja-build clang-format clang-tidy gdb openjdk-17-jdk-headless graphviz git curl zsh \ +RUN apt-get update && apt-get install -y python3 python3-pip ninja-build clang-format clang-tidy gdb openjdk-21-jdk-headless graphviz git curl zsh \ && rm -rf /var/lib/apt/lists/* -RUN pip install --break-system-packages meson gcovr +# Install node for actions +RUN curl -fsSL https://deb.nodesource.com/setup_current.x | bash - && apt-get install -y nodejs +# Install python tools, break-system-packages is needed for debian-based images +RUN pip install --break-system-packages meson pre-commit commitizen gcovr + +# Install just RUN curl --proto '=https' --tlsv1.2 -sSf https://just.systems/install.sh | bash -s -- --to /usr/bin # Install mold from tarball, as the version in the package manager is very old -RUN wget -O mold.tar.gz https://github.com/rui314/mold/releases/download/v2.4.0/mold-2.4.0-x86_64-linux.tar.gz && \ +RUN wget -O mold.tar.gz https://github.com/rui314/mold/releases/download/v2.40.4/mold-2.40.4-x86_64-linux.tar.gz && \ tar -xzf mold.tar.gz && \ - cp -r mold-2.4.0-x86_64-linux/* /usr/local/ && \ - rm -r mold-2.4.0-x86_64-linux && \ + cp -r mold-2.40.4-x86_64-linux/* /usr/local/ && \ + rm -r mold-2.40.4-x86_64-linux && \ rm mold.tar.gz # Set mold as the default linker @@ -22,17 +27,17 @@ ENV CXX_LD=mold # Install plantuml RUN wget --progress=bar:force:noscroll https://github.com/plantuml/plantuml/releases/download/v1.2024.3/plantuml-mit-1.2024.3.jar -O /usr/local/bin/plantuml.jar -# Install node for actions -RUN curl -fsSL https://deb.nodesource.com/setup_current.x | bash - && apt-get install -y nodejs +# Install mermaid-cli +RUN npm install -g @mermaid-js/mermaid-cli # Install latest doxygen -RUN wget --progress=bar:force:noscroll https://www.doxygen.nl/files/doxygen-1.10.0.linux.bin.tar.gz && \ - tar -xzf doxygen-1.10.0.linux.bin.tar.gz && \ - cd doxygen-1.10.0 && \ +RUN wget --progress=bar:force:noscroll https://www.doxygen.nl/files/doxygen-1.14.0.linux.bin.tar.gz && \ + tar -xzf doxygen-1.14.0.linux.bin.tar.gz && \ + cd doxygen-1.14.0 && \ make install && \ cd .. && \ - rm -r doxygen-1.10.0.linux.bin.tar.gz && \ - rm -r doxygen-1.10.0 + rm -r doxygen-1.14.0.linux.bin.tar.gz && \ + rm -r doxygen-1.14.0 # Add a user `dev` with UID/GID 1000 # Set zsh as the default shell for this user diff --git a/Justfile b/Justfile index 0866b06..7b52098 100644 --- a/Justfile +++ b/Justfile @@ -69,5 +69,5 @@ clean: # Obliterate the build directory spotless: - rm -r {{BUILD_PREFIX}} + rm -rf {{BUILD_PREFIX}} meson subprojects purge --confirm diff --git a/subprojects/doctest.wrap b/subprojects/doctest.wrap index f9a150f..403bcec 100644 --- a/subprojects/doctest.wrap +++ b/subprojects/doctest.wrap @@ -1,10 +1,10 @@ [wrap-file] -directory = doctest-2.4.11 -source_url = https://github.com/doctest/doctest/archive/refs/tags/v2.4.11.tar.gz -source_filename = doctest-2.4.11.tar.gz -source_hash = 632ed2c05a7f53fa961381497bf8069093f0d6628c5f26286161fbd32a560186 -source_fallback_url = https://github.com/mesonbuild/wrapdb/releases/download/doctest_2.4.11-1/doctest-2.4.11.tar.gz -wrapdb_version = 2.4.11-1 +directory = doctest-2.4.12 +source_url = https://github.com/doctest/doctest/archive/refs/tags/v2.4.12.tar.gz +source_filename = doctest-2.4.12.tar.gz +source_hash = 73381c7aa4dee704bd935609668cf41880ea7f19fa0504a200e13b74999c2d70 +source_fallback_url = https://github.com/mesonbuild/wrapdb/releases/download/doctest_2.4.12-1/doctest-2.4.12.tar.gz +wrapdb_version = 2.4.12-1 [provide] dependency_names = doctest