Repository navigation
fix(dx): resolve packaging version and CLI advertising drift (MUT-035, MUT-050, MUT-051) - #122
Conversation
|
@BasilZafar11 is attempting to deploy a commit to the priyanshu's projects Team on Vercel. A member of the Team first needs to authorize it. |
|
Opened PR #122 to address this issue. It removes the root product version, reads API version from metadata, documents Hosted development, removes the unsupported Python 3.13 classifier, and clarifies that mutiny db requires the source/workspace API package. All 676 tests pass, along with Ruff, wheel checks, and offline sample smoke. |
CodewithJha
left a comment
There was a problem hiding this comment.
Thanks @BasilZafar11 — this is a careful, well-scoped packaging cleanup, and it lands every acceptance criterion in #78. Approving and merging.
What I verified on the branch
- Full suite:
MUTINY_SAMPLE_OFFLINE=1 uv run --locked pytest -q→ 676 passed;uv run --locked ruff checkclean; mypy clean onmutiny_api/__init__.pyanddb_cmd.py. - Offline sample
mutiny runsaves a violation regression;mutiny --version→ 0.2.0;mutiny --helpandmutiny db --helpboth state the source/workspacemutiny-apirequirement. - Bare
uv sync(what Railway and docker-compose run) still installs every workspace member, sopython -m mutiny_apikeeps booting; the root no longer emits the "not packaged / scripts skipped" warning. - Mutation check: reverting each fix to
mainindividually (API__init__, CLI classifier,dbhelp, rootpyproject, web README) makestest_packaging_dx.pyfail every time. - The new web README matches the code:
next.config.tsdefaultMUTINY_API_URL, the middleware's server-side bearer injection, andserve.py's fail-closed non-loopback binds.
What I liked
- Making the root a virtual workspace with dependency groups fixes the version drift at its source instead of just bumping
0.1.0→0.2.0. It also removes the duplicatemutinyentrypoint and the redundantopenai-agentsextra. - The wheel-metadata assertions in
test_package_release.py(no 3.13 classifier, noRequires-Dist: mutiny-api, no vendoredmutiny_api/) check the shipped artifact itself, not just the pyproject. - Treating the API as "unreleased, independent version" is a valid answer to the first criterion, and it's documented in both READMEs.
- Honest test plan: it says what you left to CI.
Non-blocking follow-ups (no action needed on this PR)
- Because the workspace members now live in the
devgroup, bareuv syncon Railway/compose also installs pytest, pytest-asyncio and ruff into the Hosted runtime. That's harmless, but if #63 (compose/Railway hardening) is picked up, splitting runtime members into their own group and runninguv sync --locked --no-dev --group <runtime>there would keep the runtime lean. uv.lockmoved fromrevision = 3torevision = 5(newer uv). CI and Dependabot handle it. Contributors on an older uv may need to upgrade before--lockedpasses.
|
Merged in a271366, thanks again @BasilZafar11. #78 is now closed and indexed as shipped. If you'd like a next one that fits the packaging, CLI and test work you did here:
No pressure, and comment on the issue first so nobody duplicates the work. |
Co-authored-by: Cursor <cursoragent@cursor.com>
Fixes #78
Summary
devgroup, retain optional LLM dependencies inllm, and remove the duplicate root CLI entrypoint. Regenerate the lockfile and update CI, contributor instructions, sample setup, and support templates touv sync --group dev.mutiny-apidistribution metadata, with an explicit unreleased source fallback. Document the Hosted API as unreleased with an independent internal version, without changing release versions.mutiny-apirequirement in top-level andmutiny db --helpoutput. CLI wheels still do not depend on or vendor the API.Type of change
Checklist
Test plan
uv lockanduv sync --locked --group dev: successful, with no skipped root entrypoint warning.uv run --locked ruff check: passed.MUTINY_SAMPLE_OFFLINE=1 uv run --locked pytest -q --tb=short: 676 passed on local Python 3.13. CI continues to cover Python 3.11/3.12.mutiny initandmutiny run: successful; a violation regression was saved.mutiny --versionreports 0.2.0;mutiny db --helpstates the API/workspace requirement. Unit tests also exercise help with API imports unavailable.The setup migration from
--extra devto--group devis documented in the changelog. Optional LLM setup uses--group llm. Branch starts from current upstream main.