From c5dfb306ddf4af065448dfba7906f0210bcb3ef8 Mon Sep 17 00:00:00 2001 From: AramJonghu Date: Fri, 23 Oct 2026 02:44:45 +0200 Subject: [PATCH 01/13] fix(ci): missing dependency wayland-scanner --- ci/Dockerfile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/ci/Dockerfile b/ci/Dockerfile index d1b3965..c585b6d 100644 --- a/ci/Dockerfile +++ b/ci/Dockerfile @@ -21,7 +21,8 @@ RUN pacman -S --noconfirm \ qt6-declarative \ qt6-shadertools \ qt6-5compat \ - qt6-canvaspainter + qt6-canvaspainter \ + hyprwayland-scanner # Project-specific dependencies RUN pacman -S --noconfirm \ -- 2.47.3 From fd938d4e47bc79cc9af142605c2655bde38e277f Mon Sep 17 00:00:00 2001 From: AramJonghu Date: Fri, 23 Oct 2026 02:44:45 +0200 Subject: [PATCH 02/13] refactor(workflows): combined steps where it makes sense --- .gitea/workflows/cpp.yml | 20 +------ .gitea/workflows/js-ts.yml | 16 +----- .gitea/workflows/python.yml | 6 +- .gitea/workflows/rust.yml | 107 +++++++----------------------------- 4 files changed, 26 insertions(+), 123 deletions(-) diff --git a/.gitea/workflows/cpp.yml b/.gitea/workflows/cpp.yml index 90eb487..b1158ab 100644 --- a/.gitea/workflows/cpp.yml +++ b/.gitea/workflows/cpp.yml @@ -20,28 +20,10 @@ jobs: -exec clang-format -i --style=file {} + git diff --exit-code && echo "clang-format: passed" - build: + build & lint: runs-on: alpine container: image: git.aramjonghu.dev/aramjonghu/zshell-ci:latest - - steps: - - name: Checkout - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - - name: Configure - run: cmake -B build -G Ninja -DENABLE_MODULES=plugin -DCMAKE_BUILD_TYPE=Release - - - name: Build - run: ninja -C build - - clang-tidy: - runs-on: alpine - container: - image: git.aramjonghu.dev/aramjonghu/zshell-ci:latest - steps: - name: Checkout uses: actions/checkout@v4 diff --git a/.gitea/workflows/js-ts.yml b/.gitea/workflows/js-ts.yml index 639adaf..ce8672f 100644 --- a/.gitea/workflows/js-ts.yml +++ b/.gitea/workflows/js-ts.yml @@ -4,7 +4,7 @@ on: pull_request: jobs: - fmt: + fmt & lint: runs-on: alpine container: node:26-alpine @@ -24,20 +24,6 @@ jobs: else echo "No JS/TS files found" fi - - lint: - runs-on: alpine - container: node:26-alpine - - steps: - - name: Checkout - uses: actions/checkout@v4 - - - name: Install tools - run: | - apk add --no-cache \ - git - - name: ESLint run: | if [ -n "$(find . \( -iname "*.js" -o -iname "*.jsx" -o -iname "*.ts" -o -iname "*.tsx" -o -iname "*.mjs" -o -iname "*.cjs" \) -print -quit)" ]; then diff --git a/.gitea/workflows/python.yml b/.gitea/workflows/python.yml index 06377a8..ac44cd9 100644 --- a/.gitea/workflows/python.yml +++ b/.gitea/workflows/python.yml @@ -7,7 +7,7 @@ on: pull_request: jobs: - static: + fmt & lint: runs-on: debian container: node:26-trixie-slim @@ -33,7 +33,7 @@ jobs: . .venv/bin/activate ruff check . - verify: + test & nuitka build: if: always() runs-on: debian container: node:26-trixie-slim @@ -64,4 +64,4 @@ jobs: - name: Nuitka module check run: | . .venv/bin/activate - nuitka --module --include-package=zshell cli/src/zshell/ \ No newline at end of file + nuitka --module --include-package=zshell cli/src/zshell/ diff --git a/.gitea/workflows/rust.yml b/.gitea/workflows/rust.yml index da2d4bf..a1e9e38 100644 --- a/.gitea/workflows/rust.yml +++ b/.gitea/workflows/rust.yml @@ -3,8 +3,9 @@ name: Rust on: pull_request: +# jobs can be separated if we integrate tests jobs: - build: + build, clippy & fmt: runs-on: alpine container: node:26-alpine env: @@ -34,7 +35,9 @@ jobs: apk add --no-cache \ git \ cargo \ - rust + rust \ + rust-clippy \ + rustfmt - name: Cargo check run: | @@ -50,90 +53,6 @@ jobs: else echo "No Rust project found" fi - - fmt: - runs-on: alpine - container: node:26-alpine - env: - CARGO_HOME: ${{ github.workspace }}/.cargo - - steps: - - name: Checkout - uses: actions/checkout@v4 - - - name: Cache cargo packages - uses: actions/cache@v4 - env: - cache-name: cache-cargo-packages - with: - path: | - .cargo/registry - .cargo/git - target - key: rust-fmt-${{ runner.os }}-${{ env.cache-name }}-${{ hashFiles('**/Cargo.lock') }} - restore-keys: | - rust-${{ runner.os }}-build-${{ env.cache-name }}- - rust-${{ runner.os }}-build- - rust- - - - name: Install tools - run: | - apk add --no-cache \ - git \ - cargo \ - rust \ - rustfmt - - - name: Format check - run: | - if [ -n "$(find . -name "Cargo.toml" -print -quit)" ]; then - status=0 - for manifest in $(find . -name "Cargo.toml"); do - cargo fmt --manifest-path "$manifest" --check && \ - echo "$manifest: formatting OK" || \ - { echo "$manifest: needs formatting"; status=1; } - done - exit $status - elif [ -n "$(find . -name "*.rs" -print -quit)" ]; then - echo "Rust files found but no Cargo.toml" - exit 1 - else - echo "No Rust project found" - fi - - clippy: - runs-on: alpine - container: node:26-alpine - env: - CARGO_HOME: ${{ github.workspace }}/.cargo - - steps: - - name: Checkout - uses: actions/checkout@v4 - - - name: Cache cargo packages - uses: actions/cache@v4 - env: - cache-name: cache-cargo-packages - with: - path: | - .cargo/registry - .cargo/git - target - key: rust-clippy-${{ runner.os }}-${{ env.cache-name }}-${{ hashFiles('**/Cargo.lock') }} - restore-keys: | - rust-${{ runner.os }}-build-${{ env.cache-name }}- - rust-${{ runner.os }}-build- - rust- - - - name: Install tools - run: | - apk add --no-cache \ - git \ - cargo \ - rust \ - rust-clippy - - name: Clippy run: | if [ -n "$(find . -name "Cargo.toml" -print -quit)" ]; then @@ -150,3 +69,19 @@ jobs: else echo "No Rust project found" fi + - name: Format check + run: | + if [ -n "$(find . -name "Cargo.toml" -print -quit)" ]; then + status=0 + for manifest in $(find . -name "Cargo.toml"); do + cargo fmt --manifest-path "$manifest" --check && \ + echo "$manifest: formatting OK" || \ + { echo "$manifest: needs formatting"; status=1; } + done + exit $status + elif [ -n "$(find . -name "*.rs" -print -quit)" ]; then + echo "Rust files found but no Cargo.toml" + exit 1 + else + echo "No Rust project found" + fi -- 2.47.3 From b4f0239e2af21ac452ca609f23d64266534934b2 Mon Sep 17 00:00:00 2001 From: AramJonghu Date: Fri, 23 Oct 2026 03:09:34 +0200 Subject: [PATCH 03/13] ci: rework Dockerfile image + buildx dep added --- .gitea/workflows/ci-image.yml | 2 +- ci/Dockerfile | 79 +++++++++++------------------------ 2 files changed, 26 insertions(+), 55 deletions(-) diff --git a/.gitea/workflows/ci-image.yml b/.gitea/workflows/ci-image.yml index 3ee05f3..147a3df 100644 --- a/.gitea/workflows/ci-image.yml +++ b/.gitea/workflows/ci-image.yml @@ -18,7 +18,7 @@ jobs: uses: actions/checkout@v4 - name: Install Docker CLI - run: apk add --no-cache docker-cli + run: apk add --no-cache docker-cli docker-cli-buildx - name: Login to registry run: echo "${{ secrets.REGISTRY_TOKEN }}" | docker login git.aramjonghu.dev --username aramjonghu --password-stdin diff --git a/ci/Dockerfile b/ci/Dockerfile index c585b6d..7241bdd 100644 --- a/ci/Dockerfile +++ b/ci/Dockerfile @@ -1,57 +1,28 @@ FROM archlinux:latest -RUN pacman -Syyu --noconfirm +RUN pacman -Syu --noconfirm \ + && pacman -S --needed --noconfirm \ + base-devel cmake ninja clang lld nodejs tree-sitter \ + jkqtplotter cmark-gfm git wayland-protocols \ + qt6-base qt6-declarative qt6-shadertools qt6-5compat \ + qt6-canvaspainter qt6-wayland qt5-wayland\ + libqalculate pipewire aubio cava lm_sensors glib2 \ + && pacman -Scc --noconfirm -# Build toolchain -RUN pacman -S --noconfirm \ - base-devel \ - cmake \ - ninja \ - clang \ - lld \ - nodejs \ - tree-sitter \ - jkqtplotter \ - cmark-gfm \ - git - -# Qt6 -RUN pacman -S --noconfirm \ - qt6-base \ - qt6-declarative \ - qt6-shadertools \ - qt6-5compat \ - qt6-canvaspainter \ - hyprwayland-scanner - -# Project-specific dependencies -RUN pacman -S --noconfirm \ - libqalculate \ - pipewire \ - aubio \ - cava \ - lm_sensors \ - glib2 - -# AUR: libcava (provides development headers for cava) -RUN pacman -Syu --noconfirm && \ - pacman -S --needed --noconfirm \ - sudo \ - meson \ - autoconf-archive \ - python-tqdm && \ - useradd -m builder && \ - echo "builder ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers - -RUN for i in 1 2 3 4 5; do \ - rm -rf /tmp/libcava && \ - git clone --depth 1 https://aur.archlinux.org/libcava.git /tmp/libcava && \ - break || sleep 5; \ - done && \ - test -d /tmp/libcava/.git && \ - chown -R builder /tmp/libcava - -RUN su builder -c "cd /tmp/libcava && makepkg -si --noconfirm" && \ - rm -rf /tmp/libcava && \ - userdel -r builder && \ - sed -i '/^builder/d' /etc/sudoers +RUN pacman -Syu --noconfirm \ + && pacman -S --needed --noconfirm \ + sudo meson autoconf-archive python-tqdm \ + && useradd -m builder \ + && printf '%s\n' 'builder ALL=(ALL) NOPASSWD: ALL' > /etc/sudoers.d/builder \ + && chmod 0440 /etc/sudoers.d/builder \ + && for i in 1 2 3 4 5; do \ + rm -rf /tmp/libcava; \ + if git clone --depth 1 https://aur.archlinux.org/libcava.git /tmp/libcava; then break; fi; \ + sleep 5; \ + done \ + && test -d /tmp/libcava/.git \ + && chown -R builder:builder /tmp/libcava \ + && su builder -c "cd /tmp/libcava && makepkg -si --noconfirm" \ + && rm -rf /tmp/libcava /etc/sudoers.d/builder \ + && userdel -r builder \ + && pacman -Scc --noconfirm -- 2.47.3 From a2326dc641c1e4eb6a4854dfad29f481f929d13e Mon Sep 17 00:00:00 2001 From: AramJonghu Date: Fri, 23 Oct 2026 03:09:34 +0200 Subject: [PATCH 04/13] format(clang): make cpp-fmt result --- Plugins/ZShell/Blobs/blobinvertedrect.cpp | 2 +- Plugins/ZShell/Blobs/blobinvertedrect.hpp | 8 ++++++-- Plugins/ZShell/Blobs/blobshape.cpp | 3 +-- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/Plugins/ZShell/Blobs/blobinvertedrect.cpp b/Plugins/ZShell/Blobs/blobinvertedrect.cpp index 0e4336c..800d975 100644 --- a/Plugins/ZShell/Blobs/blobinvertedrect.cpp +++ b/Plugins/ZShell/Blobs/blobinvertedrect.cpp @@ -218,7 +218,7 @@ void BlobInvertedRect::outerCornerRadii(float out[4]) const { const auto base = std::min(static_cast(m_outerRadius), maxR); out[0] = std::min( m_outerTopRightRadius >= 0 ? static_cast(m_outerTopRightRadius) - : base, + : base, maxR); out[1] = std::min( m_outerBottomRightRadius >= 0 diff --git a/Plugins/ZShell/Blobs/blobinvertedrect.hpp b/Plugins/ZShell/Blobs/blobinvertedrect.hpp index 60121d0..d3e1fb9 100644 --- a/Plugins/ZShell/Blobs/blobinvertedrect.hpp +++ b/Plugins/ZShell/Blobs/blobinvertedrect.hpp @@ -60,11 +60,15 @@ class BlobInvertedRect : public BlobShape { void setOuterRadius(qreal v); // Per-corner outer radii. -1 falls back to outerRadius (mirrors BlobRect). - [[nodiscard]] qreal outerTopLeftRadius() const { return m_outerTopLeftRadius; } + [[nodiscard]] qreal outerTopLeftRadius() const { + return m_outerTopLeftRadius; + } void setOuterTopLeftRadius(qreal v); - [[nodiscard]] qreal outerTopRightRadius() const { return m_outerTopRightRadius; } + [[nodiscard]] qreal outerTopRightRadius() const { + return m_outerTopRightRadius; + } void setOuterTopRightRadius(qreal v); diff --git a/Plugins/ZShell/Blobs/blobshape.cpp b/Plugins/ZShell/Blobs/blobshape.cpp index 33fd5b4..59978a3 100644 --- a/Plugins/ZShell/Blobs/blobshape.cpp +++ b/Plugins/ZShell/Blobs/blobshape.cpp @@ -240,8 +240,7 @@ void BlobShape::updatePolish() { m_cachedInvertedRadius = 0; memset(m_cachedInvertedOuter, 0, sizeof(m_cachedInvertedOuter)); memset(m_cachedInvertedInner, 0, sizeof(m_cachedInvertedInner)); - memset( - m_cachedInvertedOuterRadii, 0, sizeof(m_cachedInvertedOuterRadii)); + memset(m_cachedInvertedOuterRadii, 0, sizeof(m_cachedInvertedOuterRadii)); auto* inv = m_group->invertedRect(); if (inv) { -- 2.47.3 From 9f9d09bc5b2ef4805069d53727fcd6b41806cb55 Mon Sep 17 00:00:00 2001 From: AramJonghu Date: Fri, 23 Oct 2026 03:09:34 +0200 Subject: [PATCH 05/13] feat(makefile): makefile build & install + progress on cpp and py --- makefile | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 makefile diff --git a/makefile b/makefile new file mode 100644 index 0000000..c7d3ce6 --- /dev/null +++ b/makefile @@ -0,0 +1,36 @@ +BUILD ?= cmake -B build -G Ninja +INSTALL ?= $(BUILD) \ + && ninja -C build \ + && sudo ninja -C build install + +.DEFAULT_GOAL := help + +help: + @echo "build cmake builds into build directory" + +build: + $(BUILD) + +install: + $(INSTALL) + +# TODO: Anything below is not ready + +cpp-fmt: + find . \( -name '*.cpp' -o -name '*.h' -o -name '*.hpp' \) \ + -not -path './build/*' \ + -exec clang-format -i --style=file {} + + +# cpp-lint needs adjustments in ci and here + +py-fmt: + ruff format --check + +py-lint: + ruff check ./cli + +py-check: + basedpyright + +py-test: + python -m pytest ./cli/src/tests/ -v -- 2.47.3 From cbb108a6dd4e86d6051326b20b917da89418a6b5 Mon Sep 17 00:00:00 2001 From: AramJonghu Date: Fri, 23 Oct 2026 16:52:22 +0200 Subject: [PATCH 06/13] feat(makefile): C++, Python, and Rust checks included (incomplete) --- makefile | 85 ++++++++++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 76 insertions(+), 9 deletions(-) diff --git a/makefile b/makefile index c7d3ce6..79920f3 100644 --- a/makefile +++ b/makefile @@ -1,12 +1,34 @@ -BUILD ?= cmake -B build -G Ninja -INSTALL ?= $(BUILD) \ - && ninja -C build \ - && sudo ninja -C build install +BUILD ?= cmake -B build -G Ninja +NINJA ?= ninja -C build +COMPILE ?= $(BUILD) && $(NINJA) +INSTALL ?= $(BUILD) && $(NINJA) && sudo ninja -C build install + +CPPFMT ?= find . \( -name '*.cpp' -o -name '*.h' -o -name '*.hpp' \) -not -path './build/*' -exec clang-format -i --style=file {} + + +NUITKA ?= nuitka --module --include-package=zshell cli/src/zshell/ --output-dir=cli/ .DEFAULT_GOAL := help +# string is misaligned to align when run in terminal help: - @echo "build cmake builds into build directory" + @echo "build cmake builds into build directory" + @echo "install cmake builds, compiles and installs into filesystem" + @echo "compile cmake builds and compiles C++ code" + @echo "cpp-fmt format C++ code with clang-format" + @echo "cpp-lint lint check C++ code with clang-tidy" + @echo "cpp-compile alias to make compile" + @echo "py-fmt format Python code with ruff" + @echo "py-lint lint check Python code with ruff" + @echo "py-check lsp and typecheck all Python code using Basedpyright" + @echo "py-test run all Python tests using Pytest" + @echo "py-compile compiles Python code using Nuitka" + @echo "rs-compile compiles Rust code" + @echo "rs-format formats Rust code with Rustfmt" + @echo "rs-lint lint check Rust code with Clippy" + @echo "rs-test runs all Rust tests" + @echo "check-cpp runs all C++ checks" + @echo "check-py runs all Python checks" + @echo "check-rs runs all Rust checks" build: $(BUILD) @@ -14,15 +36,21 @@ build: install: $(INSTALL) +compile: + $(COMPILE) + # TODO: Anything below is not ready +# C++ cpp-fmt: - find . \( -name '*.cpp' -o -name '*.h' -o -name '*.hpp' \) \ - -not -path './build/*' \ - -exec clang-format -i --style=file {} + + $(CPPFMT) # cpp-lint needs adjustments in ci and here +cpp-compile: + $(COMPILE) + +# Python py-fmt: ruff format --check @@ -33,4 +61,43 @@ py-check: basedpyright py-test: - python -m pytest ./cli/src/tests/ -v + python -m pytest ./cli/tests/ -v + +# Want to use gcc, clang or zig C compiler instead? Output directory? +py-compile: + $(NUITKA) + +# Rust +rs-compile: + cd ./zshell-img-tools/ && cargo run + +rs-fmt: + cd ./zshell-img-tools/ && cargo fmt && echo "formatted!" + +rs-lint: + cd ./zshell-img-tools/ && cargo clippy + +rs-test: + cd ./zshell-img-tools/ && cargo test + +# Qml + + +# Full checks +check-cpp: + $(MAKE) cpp-fmt + $(MAKE) cpp-lint + $(MAKE) install + +check-rs: + $(MAKE) rs-fmt + $(MAKE) rs-lint + $(MAKE) rs-test + $(MAKE) rs-compile + +check-py: + $(MAKE) py-fmt + $(MAKE) py-lint + $(MAKE) py-test + $(MAKE) py-check + $(MAKE) py-compile -- 2.47.3 From a96211a5b537252026c1de29af5649efc7c594db Mon Sep 17 00:00:00 2001 From: AramJonghu Date: Sat, 24 Oct 2026 00:50:47 +0200 Subject: [PATCH 07/13] feat(makefile): added qmlformat + install -> compile in cpp step --- makefile | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/makefile b/makefile index 79920f3..9702f76 100644 --- a/makefile +++ b/makefile @@ -26,6 +26,7 @@ help: @echo "rs-format formats Rust code with Rustfmt" @echo "rs-lint lint check Rust code with Clippy" @echo "rs-test runs all Rust tests" + @echo "qml-fmt format QML code with qmlformat" @echo "check-cpp runs all C++ checks" @echo "check-py runs all Python checks" @echo "check-rs runs all Rust checks" @@ -81,13 +82,14 @@ rs-test: cd ./zshell-img-tools/ && cargo test # Qml - +qml-fmt: + find -name '*.qml' -exec /usr/lib/qt6/bin/qmlformat -i {} + # Full checks check-cpp: $(MAKE) cpp-fmt $(MAKE) cpp-lint - $(MAKE) install + $(MAKE) compile check-rs: $(MAKE) rs-fmt -- 2.47.3 From 5eb84285a4c3a33ffdfa054740361e6cfc259365 Mon Sep 17 00:00:00 2001 From: AramJonghu Date: Sun, 25 Oct 2026 01:32:33 +0200 Subject: [PATCH 08/13] chore(Dockerfile): add future dependencies --- ci/Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ci/Dockerfile b/ci/Dockerfile index 7241bdd..a590ac3 100644 --- a/ci/Dockerfile +++ b/ci/Dockerfile @@ -3,9 +3,9 @@ FROM archlinux:latest RUN pacman -Syu --noconfirm \ && pacman -S --needed --noconfirm \ base-devel cmake ninja clang lld nodejs tree-sitter \ - jkqtplotter cmark-gfm git wayland-protocols \ + jkqtplotter cmark-gfm git wayland-protocols ffmpeg mpv \ qt6-base qt6-declarative qt6-shadertools qt6-5compat \ - qt6-canvaspainter qt6-wayland qt5-wayland\ + qt6-canvaspainter qt6-wayland qt5-wayland \ libqalculate pipewire aubio cava lm_sensors glib2 \ && pacman -Scc --noconfirm -- 2.47.3 From 18c474669b342bcbaf9f215d2805c929f3ed4a92 Mon Sep 17 00:00:00 2001 From: AramJonghu Date: Sun, 25 Oct 2026 01:39:13 +0200 Subject: [PATCH 09/13] fix(clang-tidy): make cpp-lint has proper clang-tidy check --- makefile | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/makefile b/makefile index 9702f76..c264942 100644 --- a/makefile +++ b/makefile @@ -4,6 +4,7 @@ COMPILE ?= $(BUILD) && $(NINJA) INSTALL ?= $(BUILD) && $(NINJA) && sudo ninja -C build install CPPFMT ?= find . \( -name '*.cpp' -o -name '*.h' -o -name '*.hpp' \) -not -path './build/*' -exec clang-format -i --style=file {} + +CPPLINT ?= run-clang-tidy -p build -j "$$(nproc)" -source-filter="^$$(pwd)/Plugins/" -header-filter=".*Plugins/.*" -removed-arg=-mno-direct-extern-access NUITKA ?= nuitka --module --include-package=zshell cli/src/zshell/ --output-dir=cli/ @@ -46,7 +47,8 @@ compile: cpp-fmt: $(CPPFMT) -# cpp-lint needs adjustments in ci and here +cpp-lint: + $(CPPLINT) cpp-compile: $(COMPILE) -- 2.47.3 From 0c4e8e805adb56dad472178f03863a67bb2871c6 Mon Sep 17 00:00:00 2001 From: AramJonghu Date: Sun, 25 Oct 2026 02:46:19 +0200 Subject: [PATCH 10/13] chore(gitignore): nuitka compile files ignored and categorized --- .gitignore | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index c6ff3ec..af40aa1 100644 --- a/.gitignore +++ b/.gitignore @@ -16,8 +16,13 @@ dist/ **/test-plugins/ **/Charts/ network-dev/ -**/zshell.build/ **/zshell.dist/ + +# Nuitka compile +**/zshell.pyi +**/zshell.cpython-* +**/zshell.build/ + .opencode/ run-agent.sh AGENTS.md -- 2.47.3 From 856c78c38007ce1d73e9cc3f3ef9cc24da630a43 Mon Sep 17 00:00:00 2001 From: AramJonghu Date: Sun, 25 Oct 2026 02:02:49 +0100 Subject: [PATCH 11/13] chore(gitignore): ordering known files and directories --- .gitignore | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/.gitignore b/.gitignore index af40aa1..7935e69 100644 --- a/.gitignore +++ b/.gitignore @@ -1,16 +1,7 @@ -**/__pycache__/ ./result/ .pyre/ -.cache/ -.venv/ -.qmlls.ini -build/ -compile_commands.json -testpython pkg/ *.tar.* -uv.lock -.qtcreator/ dist/ **/target/ **/test-plugins/ @@ -18,11 +9,27 @@ dist/ network-dev/ **/zshell.dist/ +# Qml +.qtcreator/ +.qmlls.ini + +# CMake compile artifacts +.cache/ +compile_commands.json +build/ + +# Python +uv.lock +testpython +.venv/ +**/__pycache__/ + # Nuitka compile **/zshell.pyi **/zshell.cpython-* **/zshell.build/ +# Agents stuff .opencode/ run-agent.sh AGENTS.md -- 2.47.3 From 9ad94f1e3e948adb0ba607d8ca3eebc884ece677 Mon Sep 17 00:00:00 2001 From: AramJonghu Date: Sun, 25 Oct 2026 02:19:20 +0100 Subject: [PATCH 12/13] feat(makefile): added no nuitka option for cpp-compile task --- makefile | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/makefile b/makefile index c264942..a4ec05a 100644 --- a/makefile +++ b/makefile @@ -1,4 +1,5 @@ BUILD ?= cmake -B build -G Ninja +NONUITKA ?= cmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPE=Release -DENABLE_MODULES="plugin;shell;m3shapes" NINJA ?= ninja -C build COMPILE ?= $(BUILD) && $(NINJA) INSTALL ?= $(BUILD) && $(NINJA) && sudo ninja -C build install @@ -17,7 +18,7 @@ help: @echo "compile cmake builds and compiles C++ code" @echo "cpp-fmt format C++ code with clang-format" @echo "cpp-lint lint check C++ code with clang-tidy" - @echo "cpp-compile alias to make compile" + @echo "cpp-compile similar to make compile, but excludes Nuitka from compiling python" @echo "py-fmt format Python code with ruff" @echo "py-lint lint check Python code with ruff" @echo "py-check lsp and typecheck all Python code using Basedpyright" @@ -41,8 +42,6 @@ install: compile: $(COMPILE) -# TODO: Anything below is not ready - # C++ cpp-fmt: $(CPPFMT) @@ -51,7 +50,7 @@ cpp-lint: $(CPPLINT) cpp-compile: - $(COMPILE) + $(NONUITKA) # Python py-fmt: -- 2.47.3 From b1ef587dd2d06b41dfde6ffcaaedab00a6839145 Mon Sep 17 00:00:00 2001 From: AramJonghu Date: Sun, 25 Oct 2026 02:25:02 +0100 Subject: [PATCH 13/13] fix(ci): cpp clang-tidy now properly reads non-build files only --- .gitea/workflows/cpp.yml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.gitea/workflows/cpp.yml b/.gitea/workflows/cpp.yml index b1158ab..cca38ae 100644 --- a/.gitea/workflows/cpp.yml +++ b/.gitea/workflows/cpp.yml @@ -40,5 +40,7 @@ jobs: run: | sed -i 's/-mno-direct-extern-access //g' build/compile_commands.json set -o pipefail - run-clang-tidy -p build -j $(nproc) -header-filter="Plugins/.*" 2>&1 | \ - grep -v 'Suppressed\|non-user\|non-system\|unknown argument.*mno-direct\|Found compiler error\|warnings generated\.\|^Use -header-filter' + run-clang-tidy -p build -j "$(nproc)" \ + -source-filter="^$(pwd)/Plugins/" \ + -header-filter=".*Plugins/.*" \ + -removed-arg=-mno-direct-extern-access -- 2.47.3