Development¶
Use the locked development environment and run the complete quality gate before submitting changes.
Set up the repository¶
git clone https://github.com/YacineBelHadj/DynaResp.git
cd DynaResp
uv sync --group dev --group docs
Quality gate¶
uv run ruff format --check src tests
uv run ruff check src tests
uv run mypy src
uv run pytest --cov=dynaresp
uv run --group docs mkdocs build --strict
The configured coverage threshold is 90 percent.
Source layout¶
src/dynaresp/
systems/ structural models
loads/ point, moving, and callback loads
sensors/ observations and measurement effects
simulation/ solver and results
datasets/ callable generation, storage, adapters, benchmarks
Domain packages depend on narrow protocols from dynaresp.types.
Change guidelines¶
- Preserve public behavior during refactors.
- Keep load projection inside the solver, not loads.
- Keep measurement effects outside the structural solver.
- Add abstractions only when they remove concrete duplication or coupling.
- Add tests at the narrowest meaningful public boundary.
- Update guides and API reference with public API changes.
Build documentation locally¶
Open http://127.0.0.1:8000/. The executable notebook is evaluated during a
strict build, so notebook regressions fail documentation CI.