chore: set version to 0.3.0 across all sources (+ drop v0.4 references) - #145
Conversation
Per the project's versioning rule (no v0.4, no unprompted version chatter): - backend/main.py + marketplace.py: the app reported version "0.4.0" (ahead of even pyproject's 0.2.7 and referencing a forbidden version). Aligned to "0.2.7" to match pyproject.toml / tauri.conf.json — a consistency fix, not a bump. - errorDocsMap.ts / indextts/bootstrap.py / _secret_key.py: reworded "v0.4" deferral comments to version-agnostic "deferred / later hardening pass". - docs/install/troubleshooting.md: the "tracked for v0.4" notarization line now matches macos.md (signing is wired; activates on the Apple cert secrets). Note: historical planning records under .planning/ still contain "defer to v0.4" notes; left as-is (a record of superseded decisions) — CLAUDE.md + the constitution are the live source of truth. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (4)
✅ Files skipped from review due to trivial changes (1)
📝 WalkthroughWalkthroughIntroduce a runtime APP_VERSION (sourced from installed package metadata) and use it for FastAPI and marketplace bundle metadata; bump project/frontend/Tauri manifests and changelog to 0.3.0; reword docstrings/comments and add a test asserting version consistency. ChangesVersion and documentation harmonization
🎯 3 (Moderate) | ⏱️ ~20 minutes Possibly related PRs:
🚥 Pre-merge checks | ✅ 3 | ❌ 2❌ Failed checks (1 warning, 1 inconclusive)
✅ Passed checks (3 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
| Filename | Overview |
|---|---|
| backend/core/version.py | New single-source-of-truth module reading version from importlib.metadata; fallback literal "0.3.0" will drift on next bump. |
| tests/test_app_version.py | New tests asserting APP_VERSION is semver and matches installed package metadata; designed for synced environments only. |
| backend/main.py | APP_VERSION import added mid-file (after lifespan function) instead of at top of module with other imports. |
| backend/api/routers/marketplace.py | Both omnivoice_version literals replaced with APP_VERSION — addresses the stale-string issue from the prior review thread. |
| pyproject.toml | Version bumped from 0.2.7 to 0.3.0; remains the single source of truth for the installed package metadata. |
| uv.lock | Lockfile reconciled to 0.3.0 so uv sync --frozen / uv lock --check passes in CI. |
| frontend/src-tauri/Cargo.lock | Cargo lockfile updated to 0.3.0 for the omnivoice-studio package entry. |
Flowchart
%%{init: {'theme': 'neutral'}}%%
flowchart TD
A[pyproject.toml\nversion = 0.3.0] -->|uv sync / install| B[Installed package\nomnivoice 0.3.0]
B -->|importlib.metadata.version| C[core/version.py\nAPP_VERSION]
A -->|fallback only if not installed| C
C --> D[main.py\nFastAPI version=APP_VERSION]
C --> E[marketplace.py\nomnivoice_version export]
C --> F[marketplace.py\nomnivoice_version publish]
C --> G[tests/test_app_version.py\nassert APP_VERSION == metadata]
Reviews (3): Last reviewed commit: "refactor(version): read app version from..." | Re-trigger Greptile
The current/upcoming version is v0.3.0 (0.2.7 is the prior stable). Bump every version source so the codebase consistently reports 0.3.0 — the in-code dev version; the git *tag* still happens later per the release cadence. - pyproject.toml, frontend/src-tauri/Cargo.toml, tauri.conf.json, frontend/package.json: 0.2.7 → 0.3.0 - backend/main.py (FastAPI) + marketplace.py export metadata → 0.3.0 (these had drifted to a phantom "0.4.0") - CHANGELOG.md: "[0.2.7] — Unreleased" → "[0.3.0] — Unreleased" - uv.lock + Cargo.lock reconciled (1-line each) so `--frozen` installs hold. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
b4d96f6 to
419227a
Compare
|
Want your agent to iterate on Greptile's feedback? Try greploops. |
…ift) Greptile (#145): the FastAPI version + marketplace bundle metadata were bare string literals — they'd go stale-wrong again at the next bump (the exact class of bug this PR fixes; that's how "0.4.0" happened). Read once from importlib.metadata.version("omnivoice") via core.version.APP_VERSION, with a "0.3.0" fallback only for a non-installed source checkout. pyproject.toml is now the single source of truth for the runtime version. Tests: tests/test_app_version.py (semver + equals installed metadata). 2 pass. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The current/upcoming version is v0.3.0 (0.2.7 is the prior stable). Two parts:
1. Version → 0.3.0 everywhere (consistency)
The app even reported a phantom
0.4.0inmain.py/marketplace metadata. Now every source reads0.3.0:pyproject.toml,frontend/src-tauri/Cargo.toml,frontend/src-tauri/tauri.conf.json,frontend/package.jsonbackend/main.py(FastAPI version) +marketplace.pyexport metadataCHANGELOG.md:[0.2.7] — Unreleased→[0.3.0] — Unreleaseduv.lock+Cargo.lockreconciled (1 line each) souv sync --frozen/cargo --frozenin the bootstrap + CI still hold.uv lock --checkpasses.This is the in-code dev version; the git tag still happens later per the release cadence (when you call it "actually useful").
2. Drop stray v0.4 references
Reworded the v0.4 deferral comments in
errorDocsMap.ts,indextts/bootstrap.py,_secret_key.py, and thetroubleshooting.mdnotarization line — no forbidden version chatter left in live code.Verified: no
v0.4in live code; backend parses; frontend typecheck OK; lockfiles consistent.Out of scope: ~90 historical
v0.4notes under.planning/(superseded phase records) — left as-is.🤖 Generated with Claude Code
Summary by CodeRabbit
Chores
Documentation
Tests