Skip to content

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

uv run --group docs mkdocs serve

Open http://127.0.0.1:8000/. The executable notebook is evaluated during a strict build, so notebook regressions fail documentation CI.