Skip to content

Latest commit

 

History

History
72 lines (51 loc) · 2.08 KB

File metadata and controls

72 lines (51 loc) · 2.08 KB

Contributing to reqstool-client

Thank you for your interest in contributing!

For DCO sign-off, commit conventions, and code review process, see the organization-wide CONTRIBUTING.md.

Prerequisites

  • Python 3.10+
  • Hatch (pip install hatch)
  • reqstool (pipx install reqstool) — for dogfooding this repo's own traceability data against the latest PyPI release; use hatch run dev:... below to exercise your local changes instead
  • OpenSpec (npm install -g @fission-ai/openspec)

Setup

git clone https://github.com/reqstool/reqstool-client.git
cd reqstool-client
hatch env create dev

If using Claude Code, opening this repo will prompt you to confirm adding the reqstool-ai marketplace and enabling the reqstool/reqstool-openspec plugins (configured in .claude/settings.json) — accept the prompt.

Then regenerate the opsx slash commands and OpenSpec skills (.claude/commands/opsx/, .claude/skills/openspec-*) — they're CLI-generated tool scaffolding, not committed to the repo:

openspec update   # or: openspec init --tools claude --force

Build & Test

# Run all tests
hatch run dev:pytest --cov=reqstool

# Unit tests only
hatch run dev:pytest --cov=reqstool tests/unit

# Integration tests only
hatch run dev:pytest --cov=reqstool tests/integration

Linting & Formatting

# Format with black
hatch run dev:black src tests

# Lint with flake8
hatch run dev:flake8

Model Generation

Pydantic data models in src/reqstool/models/generated/ are auto-generated from the JSON Schemas in src/reqstool/resources/schemas/v1/. JSON Schema is the source of truth — never edit the generated files directly.

To regenerate after modifying a schema:

hatch run dev:codegen

This runs datamodel-codegen to produce Pydantic v2 BaseModel classes from all schema files. The generated files should be committed alongside the schema changes.