This document provides guidelines for setting up your development environment and submitting contributions.
NetGraph-Core is a hybrid C++/Python project. You will need:
- Python 3.11+
- C++20 compatible compiler (GCC 10+, Clang 12+, MSVC 2019+)
- CMake 3.23+
- Ninja (recommended)
git clone https://github.com/networmix/NetGraph-Core.git
cd NetGraph-CoreWe use a Makefile to simplify development tasks.
make dev
source venv/bin/activateThis will:
- Create a virtual environment in
./venv - Install all development dependencies
- Install pre-commit hooks
Run all checks (linting + C++ tests + Python tests):
make checkRun specific test suites:
make cpp-test # C++ tests (GoogleTest)
make py-test # Python tests (pytest)- Python: We use
rufffor linting and formatting, andpyrightfor static type checking. - C++: We follow standard C++20 practices.
Auto-fix Python formatting:
make formatReleases are automated via GitHub Actions when a new tag is pushed.
-
Bump version in
pyproject.toml. -
Commit and push.
-
Create and push a tag:
git tag v0.1.0 git push origin v0.1.0
-
The CI pipeline will build wheels, sdist, and publish to PyPI.