Repository navigation
Conversation
The project was never checked against the project_validator standards. A new project-validator CI job checks out the validator's main branch, sets up Python 3.14 with PyYAML, and runs it with --build against this repository. A unit test asserts the workflow keeps that job, pinned to the main branch. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
@leftibot address issues from project_validator by enhancing the CI |
|
✅ leftibot finished addressing the review feedback. |
…lyzers project_validator found no C++ ever compiled: no warnings, hardening, sanitizers, language-extension setting or static analysis. The test cases are now built as an object library with C++20 (extensions off), -Wall -Wextra -Wpedantic -Wshadow -Wconversion -Wsign-conversion and hardening flags, with options for sanitizers, coverage, clang-tidy and cppcheck. This also guarantees every test case is valid C++, so a check cannot pass on code the compiler rejects. A cpp-best-practices .clang-format and a strict .clang-tidy are added; checks/.clang-tidy turns off the clang-tidy checks that duplicate the custom checks the test cases deliberately trigger. The minimum Python is raised to 3.10, as 3.9 is end-of-life and mypy no longer checks it. Requested by @lefticus in PR cpp-best-practices#4 review. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Adds ruff (format and lint, 120 columns as the code already used) and strict mypy configuration, with a stub for the cppcheck addon module, and applies the resulting formatting and annotations. Requested by @lefticus in PR cpp-best-practices#4 review. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
check-tests now builds Debug and Release, with and without sanitizers, on Linux gcc (with cppcheck), Linux clang (with clang-tidy) and macOS AppleClang, across Python 3.10, 3.12 and 3.14, with warnings as errors. New jobs report Python and C++ branch coverage, check formatting, lint, type-check, limit function length, detect copy-paste, lint the workflows (actionlint, zizmor), audit Python tools and scan for secrets. CodeQL and OpenSSF Scorecard workflows, Dependabot for actions, a .gitignore, a SECURITY.md and README badges are added, and every action is pinned to a commit. Unit tests guard the build matrix and the action pinning. The README, .gitignore and CI changes were explicitly requested here, overriding the default rule against touching them. Requested by @lefticus in PR cpp-best-practices#4 review. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Addressed review feedback from @lefticus. New commits: |
|
You are seeing this message because GitHub Code Scanning has recently been set up for this repository, or this pull request contains the workflow file for the Code Scanning tool. What Enabling Code Scanning Means:
For more information about GitHub Code Scanning, check out the documentation. |
|
@leftibot since the C++ in this project is all meant as examples, does it make sense to run full analysis on it? Can that be ignored by the project_validator and can we simplify the C++ side of the CI since this is meant to be used for just testing the C++? |
|
✅ leftibot finished looking into this — see reply below. |
|
Short answer: yes, it should be simplified. The validator can ignore the example C++, but it will still judge the repo as a C++ project. I ran Full C++ analysis doesn't fit these filesThe
What's worth keeping for the C++
Everything else in CI should target the actual product: the Python harness and checks (ruff, mypy, Python branch coverage, lizard), the Can project_validator ignore it?Partly. The catch:
Recommendation
The alternative is to drop CMake/CTest and drive the fixtures from Python (parametrized If this direction works for you, I can open the project_validator issue/PR and push the simplification here. |
Automated fix by @leftibot.
What changed
Files
Closes #3
Triggered by @lefticus.