Thanks for helping improve Oris.
git clone https://github.com/DevStrikerTech/oris.git
cd oris
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install -e ".[dev]"Optional: install pre-commit so local commits match CI.
pre-commit installPre-commit runs Ruff, Ruff format, Mypy, pytest (with the repo coverage gate via scripts/precommit-pytest.sh), and detect-secrets (baseline: .secrets.baseline).
| Branch | Purpose |
|---|---|
prod |
Release-ready history |
dev |
Integration branch; feature PRs target this |
feat/* |
Feature branches (from dev) |
fix/* |
Bugfix branches when clearer than feat/* |
chore/* |
Tooling and metadata-only changes (from dev) |
Workflow:
- Branch from
dev:git checkout dev && git pull && git checkout -b feat/your-feature - Implement with focused commits
- Open a PR into
dev - Merge after CI passes and review
Do not commit secrets or credentials. Prefer environment variables or your platform’s secret store for anything sensitive.
- Typing: Full type hints; the repo uses mypy strict (
mypy src/oris tests). - Style: Ruff lint + format (
ruff check src tests,ruff format --check src tests). - Boundaries: Keep changes inside the relevant package area (
pipeline,runtime,rai, etc.); avoid leaking internals through new public APIs without discussion. - Commits: Small and scoped; use a type prefix, e.g.
feat:,fix:,test:,docs:,chore:.
These must pass locally (and in CI) before a change is ready:
ruff check src tests
ruff format --check src tests
mypy src/oris tests
pytestCoverage is enforced with pytest-cov; the minimum line coverage is 84% (see pyproject.toml).
- Add or update tests for any behavior change (
tests/mirrorssrc/oriswhere possible). - Run the full suite with
pytest; do not lower the coverage gate without maintainer agreement. - For CLI or tracing changes, consider
tests/test_cli*.pyandtests/test_tracing.py.
Use the PR template. Typical checklist:
- Target branch is
dev - Tests added or updated for behavior changes
- Docs or examples updated if users would notice the change
- Ruff, Mypy, and pytest pass
- No secrets in the diff
User-facing docs live under docs/ and are built with MkDocs Material (mkdocs.yml). Preview locally:
pip install -e ".[docs]"
mkdocs serveThe Docs workflow (.github/workflows/docs.yml) publishes to GitHub Pages on pushes to prod.
Participation is governed by CODE_OF_CONDUCT.md.