Skip to content

Modernize project for new ownership#16

Merged
OnFreund merged 3 commits into
masterfrom
claude/reverent-williamson-f57e71
Jun 27, 2026
Merged

Modernize project for new ownership#16
OnFreund merged 3 commits into
masterfrom
claude/reverent-williamson-f57e71

Conversation

@OnFreund

Copy link
Copy Markdown
Owner

Summary

  • Fix CI: bump actions/checkout to v4, actions/setup-python to v5, replace broken 3.11-dev matrix with a single python-version: "3.x" (always resolves to latest stable)
  • Migrate build system: replace setup.cfg + setup.py with a complete pyproject.toml using setuptools-scm for tag-based versioning; set requires-python = ">=3.12" (current HA minimum); migrate mypy config into [tool.mypy]
  • Verified releases: add release.yml (OIDC trusted publisher → PyPI, no stored credentials) and PR test-build workflows (pr-build, pr-publish, pr-cleanup) mirroring the pattern used in pyrisco
  • README: update badge URL to OnFreund/pymonoprice, remove stale Coveralls badge, fix deprecated asyncio loop argument in example, fix "Anouncement" typo, add PR testing section
  • CLAUDE.md: document release flow and PyPI trusted publisher setup
  • RS-232 protocol doc: transcribe the hard-to-read manual pages into a clean markdown table reference at docs/rs232-protocol.md

Reviewer notes

  • PyPI trusted publisher is already configured (Owner: OnFreund, Repo: pymonoprice, Workflow: release.yml, Environment: pypi) — first release just needs a git tag + GitHub Release.
  • A GitHub issue (#15) tracks restoring the Coveralls coverage badge (low-priority follow-up).
  • The protocol doc was transcribed from the MPR-6ZHMAUTO manual (model 10761). A couple of fields were ambiguous in the original scan; they match what the existing library code already implements.

Test plan

  • CI passes (unit tests + mypy) on this PR
  • Open a second test PR → bot posts install comment with pre-release wheel URL
  • After merge: tag v0.6, create GitHub Release → release.yml publishes to PyPI

OnFreund and others added 3 commits June 26, 2026 23:50
- Fix CI: single latest Python (3.x), bump action versions to v4/v5
- Replace setup.cfg + setup.py with pyproject.toml using setuptools-scm
  for tag-based versioning; set requires-python = >=3.12 (HA minimum)
- Add release.yml for OIDC-based verified PyPI publishing
- Add pr-build/pr-publish/pr-cleanup workflows for PR test wheels
- Update README: new badge URLs, fix asyncio example (remove deprecated
  loop param), fix "Anouncement" typo, add PR testing section
- Add CLAUDE.md documenting release flow and PyPI trusted publisher setup

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Transcribed from the MPR-6ZHMAUTO installation manual (model 10761)
into a clean, structured markdown table format. Linked from README.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Tests: replace asyncio.get_event_loop() (removed in 3.14) with
  asyncio.new_event_loop() + addCleanup(loop.close)
- mypy: add type: ignore[misc] on @wraps async wrappers (Coroutine[Any]
  in return type is a known wraps() limitation)
- mypy: type _transport as SerialTransport | None (was incorrectly None)
- mypy: fix connection_made() override to accept BaseTransport per LSP
- mypy: add assert guards before accessing _transport.serial
- mypy: suppress arg-type on create_serial_connection return (untyped stub)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@OnFreund
OnFreund merged commit a9fa7a2 into master Jun 27, 2026
5 checks passed
@OnFreund
OnFreund deleted the claude/reverent-williamson-f57e71 branch June 27, 2026 06:30
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