Skip to content

Sync/upstream main 2026 08 - #82

Closed
antoinevalentinHA wants to merge 10 commits into
Patrick762:mainfrom
antoinevalentinHA:sync/upstream-main-2026-08
Closed

Sync/upstream main 2026 08#82
antoinevalentinHA wants to merge 10 commits into
Patrick762:mainfrom
antoinevalentinHA:sync/upstream-main-2026-08

Conversation

@antoinevalentinHA

Copy link
Copy Markdown
Contributor

No description provided.

antoinevalentinHA and others added 10 commits May 19, 2026 18:17
- Declare PEP 517/518 build backend (setuptools>=40.8.0, wheel) so source
  installs (git @main) are reproducible across pip/uv versions.
- Remove stdlib modules asyncio/logging from install_requires and
  requirements.txt (runtime-neutral; avoids pulling abandoned PyPI backports
  from the same index that can fail to resolve).
- Default LIB_VERSION to 0.0.0 to guard against empty-string builds.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Publish a built wheel + sdist as GitHub Release assets when a version tag
(v*) is pushed, so a Home Assistant integration installed via HACS can pin
its manifest requirements to a stable release asset URL instead of a moving
branch. Remove the PyPI publish workflow, which cannot run on this fork.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Bw61z1ycazvGosRw13Emg4
…tion-wv3759

Add tag-triggered release workflow with wheel asset for HACS
Add a workflow_dispatch trigger (with a version input) to the release
workflow so a release can be produced without pushing a tag directly: the
workflow creates the tag at the checked-out commit and attaches the built
wheel + sdist to the GitHub Release. Useful in environments where tag pushes
are restricted.


Claude-Session: https://claude.ai/code/session_01Bw61z1ycazvGosRw13Emg4

Co-authored-by: Claude <noreply@anthropic.com>
Declare >= floors (no upper caps) for the runtime dependencies so that
Home Assistant's uv-based install can be satisfied by packages already
provided by HA core instead of querying the HA wheels index
(wheels.home-assistant.io) for the latest compatible version of each
unpinned dependency. That index querying is what breaks integration
installs when the index has an incident (observed HTTP 522).

Floors for the HA-core-shared packages (bleak, bleak-retry-connector,
async-timeout, cryptography) match the versions HA core 2026.6.0 ships, so
they are satisfied by the already-installed packages without a download. No
upper bound is set, to avoid conflicting with a newer version HA may have
installed. crcmod and pyasn1 are not HA core deps and get a modest floor
only.

This reduces exposure to wheels-index outages but does not eliminate it: a
full index outage can still make uv fail. It is a robustness measure, not a
fix for the outage itself.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Bw61z1ycazvGosRw13Emg4
…tion-wv3759

Add lower-bound version floors to runtime dependencies
Brings in upstream's fragment buffering for encrypted BLE notifications
(8905896), which supersedes the local workaround that silently dropped
frames failing to decrypt: fragments are now reassembled instead of lost.

Conflict in device_reader.py resolved on the upstream base, keeping only
the fork's BleakError handling on the two handshake write_gatt_char calls.
This restores the MessageType.CHALLENGE_ACCEPTED branch, which the fork had
dropped in 6984197 -- without it, challenge-accepted frames fell through to
the AES path and raised the very "Data not aligned on aes block size" error
the workaround was suppressing.

Also picks up EP760/PR100V2/EL32V2 device support and bluetti-scan
improvements. Fork-specific release tooling (release.yml, pyproject.toml,
dependency floors, LIB_VERSION fallback) is unaffected.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Drives _notification_handler with a well-formed CHALLENGE frame against a
client whose write_gatt_char always raises BleakError. Fails with
`bleak.exc.BleakError: Not connected` escaping the handler before the fix,
passes after.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@antoinevalentinHA

Copy link
Copy Markdown
Contributor Author

Sorry for the noise — opened by mistake against upstream instead of my own fork. This branch is a downstream sync and is not intended as a contribution: it would remove your PyPI publishing workflow. Closing.

The intended contributions are #80 and #81, which are scoped to a single change each.

@antoinevalentinHA
antoinevalentinHA deleted the sync/upstream-main-2026-08 branch August 1, 2026 19:21
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.

2 participants