|
Stratax 0.4.0rc1
|
Common setup, build, and import issues while working on Stratax.
The Python package depends on the compiled pybind11 extension module. Install the package in editable mode from the repository root:
Python examples import the installed package from the active environment. Run them from the repository root with that environment's interpreter:
If a source test reports a missing or stale extension, rebuild with STRATAX_BUILD_PYTHON_BINDINGS=ON using the intended interpreter; a plain CMake build leaves bindings disabled. See Getting Started. To test an installed wheel, use python -m pytest tests/python --installed.
Editable-install import hooks can take precedence over PYTHONPATH and select an older extension. Source pytest and scripts/check-doc-examples.py explicitly pin imports to this checkout. Reinstall after rebuilding if direct examples still use an outdated installed package.
Check that Python and build tooling are available:
Then upgrade build tooling inside your virtual environment:
On Windows, install Visual Studio 2022 with the "Desktop Development with C++" workload. Open a fresh terminal after installation and verify CMake can configure the project:
If multiple compilers are installed, configure from a Visual Studio Developer PowerShell or pass a CMake generator explicitly.
Stratax is header-first for C++. Add the repository include directory to your compiler or target.
For CMake targets:
Build C++ tests before running CTest:
Run Python tests from the repository root after installing development dependencies:
The documentation site is generated from Markdown and headers by Doxygen. GitHub Pages is deployed by .github/workflows/docs.yml on pushes to master. Pull requests that touch docs or headers also run .github/workflows/docs-check.yml to check local Markdown links and verify Doxygen generation.
For a local refresh:
Edit Markdown files and headers, not generated files under docs/output/html.
For changes to examples or API descriptions, also run python scripts/check-doc-examples.py after rebuilding the source extension.