[AAASM-1216] ✨ (pyproject): Add [runtime] extras and split [dependency-groups]#54
Merged
Chisanan232 merged 7 commits intoMay 23, 2026
Merged
Conversation
6 tasks
Marker extra that signals platform-wheel selection. The list is empty by design — pip picks the platform-tagged wheel (which carries the aasm sidecar at agent_assembly/bin/aasm), so no extra runtime deps are needed. `pip install agent-assembly` stays SDK-only. `pip install agent-assembly[runtime]` opts into the bundled binary. AAASM-1216
Convenience alias so users can type `pip install agent-assembly[all]` to opt into runtime + any future extras (e.g. observability, dev adapters) without having to enumerate them. Currently equivalent to [runtime]; will accrete entries as more extras are introduced. AAASM-1216
PEP 735 grouping so contributors can install only the fast linters (ruff + mypy) without the full test stack via `uv sync --group lint`. Mirrors the F112 spec's example in AAASM-1202. Tools are still in dev/pre-commit-ci groups — those are slimmed in follow-up commits to dedupe via include-group. AAASM-1216
PEP 735 grouping so CI/contributors can install only the test stack (pytest, pytest-cov, pytest-rerunfailures, pytest-asyncio, pytest-benchmark) via `uv sync --group test`. Mirrors the F112 spec's example in AAASM-1202. Tools are still in dev group — that's slimmed in the next commit to dedupe via include-group. AAASM-1216
The dev group now lists only dev-runtime tools that don't belong in lint or test (coverage, python-dotenv, grpcio-tools), and pulls in ruff/mypy/pytest+ transitively via PEP 735 include-group. This removes the duplication that existed across dev and the new lint/test groups added in the previous commits. `uv sync --group dev` keeps resolving the same package set as before. AAASM-1216
mypy now lives in the lint group; pre-commit-ci pulls it in transitively via PEP 735 include-group. Removes the literal mypy entry that duplicated the new lint group. pre-commit hooks (pre-commit, pylint) keep running the same way — the pre-commit-ci group still resolves to the same packages. AAASM-1216
…oups Re-resolved manifest after the previous commits added the [project.optional-dependencies] runtime/all entries and the lint/test dependency-groups. No new external packages — the lock delta is purely metadata reorganization (group memberships). AAASM-1216
d277f78 to
070cbe9
Compare
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.



Description
Implements the pyproject design called out in Story AAASM-1202:
[project.optional-dependencies]— addsruntime = [](marker extra for platform-wheel selection) andall = ["agent-assembly[runtime]"](catch-all alias).[dependency-groups]split — introduceslint = [ruff, mypy]andtest = [pytest, pytest-cov, pytest-rerunfailures, pytest-asyncio, pytest-benchmark]as first-class groups.devandpre-commit-cinow source these via{include-group = ...}instead of duplicating package literals.uv.lockrefreshed — manifest metadata only, no new external packages, same 84 resolved packages.Type of Change
Breaking Changes
uv sync --group devstill resolves to the same package set as before. The default install (pip install agent-assembly) is unchanged. The new[runtime]extra is opt-in.Related Issues
Testing
Validations:
python -c "import tomllib; tomllib.loads(open('pyproject.toml').read())"parses cleanlyuv lock --check— in sync after the refresh commituv sync --group dev --dry-runresolvesuv sync --group lint --dry-runresolvesuv sync --group test --dry-runresolves['runtime', 'all']. Final groups:['dev', 'lint', 'test', 'pre-commit-ci', 'docs'].Checklist
Commits (this PR's scope only — AAASM-1216)