Skip to content

feat: distribute Python packages and native CLI releases - #13

Merged
nemith merged 4 commits into
mainfrom
feat/python-packaging
Oct 15, 2026
Merged

nemith merged 4 commits into
mainfrom
feat/python-packaging

Conversation

@nemith

@nemith nemith commented Oct 14, 2026 •

Copy link
Copy Markdown
Owner

Adds Python packages and distribution workflows for the NVUE schema library and CLI. nvueschema provides generated Pydantic models; the cli and full extras install nvueschema-binary, which supplies the native command and Go-backed validation API. The binary-only package supports uv tool install without Pydantic or a Python launcher.

  • Adds a uv workspace, pinned model generation, isolated wheel tests, and wheels for Linux/macOS on amd64 and arm64 plus Windows amd64.
  • Uses release tags to version both packages and their dependency pins. Prerelease tag pushes publish to TestPyPI; GitHub releases publish to PyPI. Publishing requires Go API compatibility and package-manager checks.
  • Builds standalone CLI release archives for Linux, macOS, and Windows on amd64 and arm64, with checksums.
  • Adds the Homebrew formula/update workflow for nemith/homebrew-tap and a pinned Nix flake, with installation instructions in the README.

Validation:

  • Go/schema CI passes unit tests and all 19 NVUE versions.
  • Packaging CI passes Python 3.10/3.14 tests on all five wheel platforms, pip/uv CLI installs, six CLI archive builds, Go API compatibility, and Homebrew/Nix tests on Linux and macOS.
  • TestPyPI publishing succeeds using Trusted Publishing for both packages at tag v0.1.0-alpha.1. Published version: 0.1.0a1. The tagged commit and this PR's consolidated head have identical Git trees (c4813aa083a81087720395452c1d5ba41c69eee0).
  • Fresh installs from TestPyPI pass all 45 API/CLI tests and pip check; standalone uv tool install also works. The base install remains independent of the native backend (39 tests pass, 6 native checks skip).
  • Ruff, actionlint, and whitespace checks pass.

Test packages: nvueschema and nvueschema-binary. This trial does not publish to production PyPI, create a GitHub release, or update the Homebrew formula.

@nemith
nemith deployed to testpypi-binary October 14, 2026 23:54 — with GitHub Actions Active
@nemith
nemith force-pushed the feat/python-packaging branch from 0dc3fa9 to 967428d Compare October 15, 2026 00:40
@nemith
nemith force-pushed the feat/python-packaging branch from 967428d to 9ee87fe Compare October 15, 2026 00:46
@nemith
nemith merged commit 84ed5c4 into main Oct 15, 2026
36 checks passed
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