Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 4 additions & 2 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -67,8 +67,10 @@ jobs:
pip install -e ".[dev]"
- name: Run tests
# -rs surfaces skipped tests (e.g. importorskip-guarded integration tests) in the log
# so a silently-skipping suite is visible rather than looking fully green.
run: python -m pytest -rs
# so a silently-skipping suite is visible rather than looking fully green. --cov prints
# a coverage summary for the package on every leg; there is deliberately no
# --cov-fail-under, so coverage is measured and visible but never gates the build.
run: python -m pytest -rs --cov=dprovenancekit --cov-report=term-missing:skip-covered

# The default `test` job installs only `.[dev]` (which includes langchain-core, so the
# LangChain integration tests run there). The OpenAI Agents, LlamaIndex, and CrewAI
Expand Down
4 changes: 4 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,10 @@ public API may still change between minor versions.
`traced_run(context_id="...")` without an explicit store now owns and deterministically closes
a SQLite store at `DPROV_DB` or `.dprovenance/traces.sqlite`, while the existing explicit-store
and run-id/context CLI interfaces remain compatible.
- **An `all` convenience extra.** `pip install dprovenancekit[all]` installs every framework
adapter (LangChain, OpenAI Agents, LlamaIndex, CrewAI, Google GenAI, FastAPI, Jupyter, MCP) in
one step. It requires Python ≥ 3.10 (three of those adapters declare that floor) and is heavy
(CrewAI pulls chromadb/onnxruntime); on 3.9, or for a lean install, pick the specific extras.

### Security

Expand Down
2 changes: 1 addition & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ standard library. Framework adapters live behind optional extras (`.[langchain]`
Run the same checks CI runs:

```bash
python -m pytest -q # full test suite (currently ~430 tests, a few seconds)
python -m pytest -q # full test suite (currently ~440 tests, a few seconds)
python -m ruff check dprovenancekit/
python -m mypy dprovenancekit/
```
Expand Down
6 changes: 4 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@
[![CI](https://github.com/Therealdk8890/DProvenanceKitPython/actions/workflows/ci.yml/badge.svg)](https://github.com/Therealdk8890/DProvenanceKitPython/actions/workflows/ci.yml)
[![PyPI](https://img.shields.io/pypi/v/dprovenancekit)](https://pypi.org/project/dprovenancekit/)
[![PyPI Downloads](https://static.pepy.tech/personalized-badge/dprovenancekit?period=total&units=INTERNATIONAL_SYSTEM&left_color=BLACK&right_color=GREEN&left_text=downloads)](https://pepy.tech/projects/dprovenancekit)
[![Python versions](https://img.shields.io/pypi/pyversions/dprovenancekit)](https://pypi.org/project/dprovenancekit/)
[![License](https://img.shields.io/pypi/l/dprovenancekit)](LICENSE)
[![Listed in the official OpenAI Agents SDK docs](https://img.shields.io/badge/OpenAI%20Agents%20SDK-listed%20in%20the%20official%20docs-412991)](https://github.com/openai/openai-agents-python/blob/main/docs/tracing.md#external-tracing-processors-list)

**Your agent skipped its verification step. The final answer still looked right, so every eval and
Expand Down Expand Up @@ -574,8 +576,8 @@ application owns storage or needs a different backend.
python -m pytest
```

380+ tests. A default run (core plus whichever adapters you have installed) is ~380; CI's full
matrix is higher. Coverage spans Swift-parity tests ported from the original suite, cross-language
~440 tests in the suite. A default run (core plus whichever adapters you have installed) executes
~380 and skips the rest; CI's full matrix runs them all. Coverage spans Swift-parity tests ported from the original suite, cross-language
conformance checks against the frozen Trace Specification v1 vectors, per-adapter integration tests
(LangChain, OpenAI Agents SDK, LlamaIndex, CrewAI), instrumentation-layer tests, regression-gate
tests, facade and visualizer tests, ecosystem integration tests (FastAPI, Jupyter, MCP), and the
Expand Down
16 changes: 15 additions & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ dependencies = []
# silently skipping them. The CrewAI integration test needs `crewai`, which is heavy
# (chromadb, onnxruntime, …) and requires Python >=3.10, so it is intentionally left out
# of `dev` and runs only where crewai is installed (importorskip skips it otherwise).
dev = ["pytest>=7.0", "fastapi", "httpx", "IPython", "pytest-asyncio", "langchain-core>=0.2"]
dev = ["pytest>=7.0", "pytest-cov", "fastapi", "httpx", "IPython", "pytest-asyncio", "langchain-core>=0.2"]
# Framework adapters. The core package stays pure standard library; these extras are only
# needed to wire DProvenanceKit into the corresponding framework.
langchain = ["langchain-core>=0.2"]
Expand All @@ -51,6 +51,20 @@ google-genai = ["google-genai"]
fastapi = ["fastapi", "starlette"]
jupyter = ["ipython"]
mcp = ["mcp"]
# Convenience aggregate: every framework adapter in one install. Requires Python >= 3.10
# (openai-agents, llama-index, and crewai declare that floor) and is heavy (crewai pulls
# chromadb/onnxruntime). On 3.9, or for a lean install, pick the specific extras above.
all = [
"langchain-core>=0.2",
"openai-agents>=0.1",
"llama-index-core",
"crewai>=1.0.0",
"google-genai",
"fastapi",
"starlette",
"ipython",
"mcp",
]

[project.scripts]
dprovenancekit = "dprovenancekit.cli:main"
Expand Down
Loading