otko/CONTRIBUTING.md
smillmorel 612936a00b
Some checks failed
CI / lint (push) Has been cancelled
CI / test (macos-latest, 3.10) (push) Has been cancelled
CI / test (macos-latest, 3.11) (push) Has been cancelled
CI / test (macos-latest, 3.12) (push) Has been cancelled
CI / test (ubuntu-latest, 3.10) (push) Has been cancelled
CI / test (ubuntu-latest, 3.11) (push) Has been cancelled
CI / test (ubuntu-latest, 3.12) (push) Has been cancelled
CI / test (windows-latest, 3.10) (push) Has been cancelled
CI / test (windows-latest, 3.11) (push) Has been cancelled
CI / test (windows-latest, 3.12) (push) Has been cancelled
feat: initial otko import
2026-09-08 02:12:15 -04:00

918 B

Contributing

Thanks for your interest. This project is in an early phase; the bar for incoming changes is on architecture cleanliness rather than feature breadth.

Dev setup

python -m venv .venv
source .venv/bin/activate
pip install -e ".[dev]"
pre-commit install

Before opening a PR

ruff check src tests
ruff format src tests
mypy src/otko/core src/otko/services
pytest -m "not slow"

Architectural rules (enforced in review)

  1. core/ may not import Qt or openseespy. Period.
  2. services/ may not import Qt.
  3. views/ may not import openseespy directly — go through a service.
  4. Public functions and methods need type hints and a docstring.
  5. New domain entities go through Pydantic validation.
  6. Long-running operations (>50 ms) run off the GUI thread.

Commit style

Conventional Commits — feat:, fix:, refactor:, docs:, test:, chore:, ci:.