Skip to content

feat(engine): scaffold the uv workspace with engine and code-rag packages - #45

Merged
lucaosti merged 1 commit into
mainfrom
feat/2-uv-workspace
Oct 22, 2026
Merged

lucaosti merged 1 commit into
mainfrom
feat/2-uv-workspace

Conversation

@lucaosti

Copy link
Copy Markdown
Collaborator

What

  • Root pyproject.toml: a uv workspace with members = ["packages/*"]. The root is a virtual project (package = false) that depends on both members, and it has the dev group ruff, mypy, pytest, pytest-cov and import-linter.
  • packages/engine: distribution agentic-rag, import name agentic_rag.
  • packages/code-rag: distribution agentic-rag-code, import name agentic_rag_code. It depends on agentic-rag through a workspace source.
  • Each package uses the src layout, ships py.typed, exposes __version__ from its metadata, and has one smoke test.
  • research/{benchmark,datasets,experiments,report} and services/, each with a README.
  • .python-version (3.11), .gitignore, .gitattributes and uv.lock.

Why

M0-1 of the backlog. This is the layout defined in spec section 4 and ADR-0002.

docs/adr/README.md is intentionally left out, because it ships with #1.

Closes #2

How verified

uv sync
uv run pytest -q
uv run python -c "import agentic_rag, agentic_rag_code"

Results:

  • uv run pytest -q reported 2 passed.
  • The import printed 0.0.0 0.0.0.

Reviewer notes

…ages

This sets up the workspace layout from ADR-0002.

- A virtual root project that depends on both workspace members, with a dev dependency group: ruff, mypy, pytest, pytest-cov and import-linter.
- `agentic-rag` and `agentic-rag-code` as typed `src`-layout packages. Each exposes `__version__` from the package metadata and has a smoke test.
- `research/` and `services/` directories, each with a short README stating its purpose.
- `.gitignore` and `.gitattributes`.

docs/adr/README.md is intentionally not created here. It already ships with the design spec PR.

Refs #2
@lucaosti

Copy link
Copy Markdown
Collaborator Author

Merged without an approving review by maintainer decision, to unblock contributors: this is the foundation chain everything else depends on. Verified locally on the combined chain (#1, #45, #46, #47, #49, #50 merged together, no conflicts): uv sync --locked, ruff check and format, mypy, import-linter (3 contracts kept), pytest with 100% coverage.

@lucaosti
lucaosti merged commit 355e40d into main Oct 22, 2026
@lucaosti
lucaosti deleted the feat/2-uv-workspace branch October 22, 2026 16:15
@lucaosti
lucaosti restored the feat/2-uv-workspace branch October 22, 2026 16:16
@lucaosti
lucaosti deleted the feat/2-uv-workspace branch October 22, 2026 16:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Scaffold the uv workspace and both packages

1 participant