Contributing¶
Development build¶
git clone https://github.com/slightlabs/CxxScript.git
cd CxxScript
cmake -S . -B build
cmake --build build -j
cd build && ctest --output-on-failure
Running a single test binary¶
./build/tests/test_arrays
./build/tests/test_control_flow --gtest_filter=ControlFlowTest.*
Adding a new test¶
- Add a
test_*.cppfile undertests/. - Register it in
CMakeLists.txt(add_executable, target_link_libraries,gtest_discover_tests, and add it to therun_teststarget'sDEPENDSlist). - Run
ctest --output-on-failureto confirm it's picked up.
Documentation site¶
The docs live under docs/ and are built with MkDocs Material.
pip install -r docs/requirements.txt
mkdocs serve # live preview at http://127.0.0.1:8000
The Deploy Docs GitHub Actions workflow publishes docs/ to GitHub Pages on every push to main
and on every version tag.
Release process¶
Releases are automated:
- Merge to
main— CI runs the full build/test matrix and Conan package build. - Once CI succeeds, the
Auto Tagworkflow creates the nextvMAJOR.MINOR.PATCHtag automatically. - The new tag triggers the
Releaseworkflow (builds artifacts, publishes a GitHub Release) and theDeploy Docsworkflow (publishes the website).
No manual tagging is required for routine changes. For a major/minor bump, push an annotated tag
manually (e.g. git tag v1.0.0 && git push origin v1.0.0) and subsequent auto-tags will continue
from that version.