Skip to content

chore(release): v1.1.0 — PyPI packaging - #23

Merged
vr000m merged 4 commits into
mainfrom
chore/pypi-packaging
Jun 13, 2026
Merged

chore(release): v1.1.0 — PyPI packaging#23
vr000m merged 4 commits into
mainfrom
chore/pypi-packaging

Conversation

@vr000m

@vr000m vr000m commented Jun 13, 2026

Copy link
Copy Markdown
Owner

Unblocks publishing onoats to PyPI (name is free; the previous blocker was the git-URL dependency, which PyPI rejects).

  • pipecat-local-stt-server: git-URL pin → PyPI >=0.1.2,<0.2. Verified equivalence: the pinned commit 5062b98 is exactly tag v0.1.2, which is the published 0.1.2. Upper bound <0.2 until the 0.2/0.3 wire protocol is live-smoked against the recorder.
  • Removed tool.hatch.metadata.allow-direct-references (no longer needed; future direct refs now fail loudly).
  • PyPI page metadata: readme, authors, [project.urls], classifiers.
  • Version 1.0.0 → 1.1.0 (includes the [stt] language feature from PR feat(stt): make decode language a first-class config.toml key #22); CHANGELOG [Unreleased] folded into [1.1.0]; menubar Info.plist bumped (1.1.0 / build 2).

Verification: uv sync resolves stt-server from PyPI (0.1.2); full suite 266 passed; uv build wheel metadata has no direct-URL Requires-Dist, embeds the README as long description, and carries the new URLs/classifiers.

After merge: tag v1.1.0, then uv publish with a PyPI token.

CI release workflow (added in this PR)

.github/workflows/release.yml: pushing a v* tag runs the full suite + build with two guards (tag == pyproject version; no direct-URL deps in wheel metadata), then publishes via PyPI trusted publishing (OIDC, no stored token) gated behind the pypi GitHub environment.

One-time setup after merge (manual, on the web):

  1. PyPI → Account → Publishing → add a pending publisher: project onoats, owner vr000m, repo onoats-bot, workflow release.yml, environment pypi.
  2. GitHub repo → Settings → Environments → create pypi (optionally add yourself as required reviewer to make every publish a click-to-approve).

Then git tag -a v1.1.0 && git push origin v1.1.0 performs the release.

vr000m added 4 commits June 12, 2026 18:27
Swap pipecat-local-stt-server from git-URL pin to PyPI (>=0.1.2,<0.2;
0.1.2 is the release of the previously pinned commit 5062b98 == v0.1.2),
removing the direct-reference metadata PyPI rejects. Drop the now-unneeded
hatch allow-direct-references. Add readme/authors/urls/classifiers for the
PyPI page. Fold [Unreleased] into 1.1.0 and bump the menubar plist.
Tag push v* -> test + build + metadata guards -> publish behind the
'pypi' GitHub environment with OIDC (no stored token). Guards: tag must
equal pyproject version; wheel metadata must carry no direct-URL deps
(the class of failure PyPI rejects at upload).
- CHANGELOG [1.1.0]: surface the release.yml trusted-publishing workflow
- AGENTS.md: 'Releasing to PyPI' paragraph next to the version-surfaces
  contract (tag-push trigger, one-time PyPI/GitHub setup, no-direct-URL rule)
- blackhole-fallback.md: PyPI install one-liner alongside the checkout path
@vr000m
vr000m merged commit c81d9da into main Jun 13, 2026
1 check passed
@vr000m
vr000m deleted the chore/pypi-packaging branch June 13, 2026 02:03
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.

1 participant