Development Guide
This section is for contributors who want to modify or extend rclib.
Project Goals
- Performance: Core logic in C++17 using Eigen.
- Scalability: Efficient handling of large sparse reservoirs.
- Modularity: Clear separation between Reservoirs and Readouts.
Setup
- Install
uv: We useuvfor dependency management. - Clone recursively:
git clone --recursive ... - Sync environment:
uv sync
Workflow
Code Quality
We use pre-commit to enforce standards.
Tools used:
* ruff (Python linting/formatting)
* basedpyright (Static type checking)
* clang-format (C++ formatting)
Running Tests
C++ Unit Tests:
Python Integration Tests:
# Ensure library is built
cmake -S . -B build
cmake --build build --config Release -j $(nproc) --target _rclib
# Run pytest
uv run pytest
Documentation
- Release Process: How to publish a new version.
- Testing Roadmap: Plans for future test coverage.
- Ridge Solver Optimization Report: Detailed report on Ridge Regression performance improvements.
- RLS Optimization Report: Detailed report on RLS performance improvements.
- Reservoir Performance Optimization Report: Detailed report on reservoir execution performance.