Skip to content

fix: declare epaper-dithering so a downgraded copy gets repaired - #155

Open
kbaker827 wants to merge 1 commit into
OpenDisplay:mainfrom
kbaker827:fix/154-declare-epaper-dithering
Open

kbaker827 wants to merge 1 commit into
OpenDisplay:mainfrom
kbaker827:fix/154-declare-epaper-dithering

Conversation

@kbaker827

Copy link
Copy Markdown

Fixes #154

Summary

py-opendisplay imports DbsParams from epaper_dithering at module scope. Home Assistant only checks requirements the manifest names, not their transitive dependencies. So with an older epaper-dithering installed, py-opendisplay>=7.18.1 still looks satisfied, nothing reinstalls it, and the integration fails to import.

Naming epaper-dithering>=6.1.1 in the manifest makes that check fail, and async_process_deps_reqs reinstalls it before the import, both at setup and for config flows.

Evidence

In a clean venv with py-opendisplay==7.18.1 and epaper-dithering==6.0.0:

  • import opendisplay raises the same ImportError as the report
  • the requirement check passes py-opendisplay>=7.18.1 and fails epaper-dithering>=6.1.1
  • installing epaper-dithering>=6.1.1 makes the import succeed

I don't know what downgraded the package on the reporter's system. This repairs the state regardless, but if another integration pins an older version, the two could keep overwriting each other across restarts.

Test plan

  • New tests/test_manifest.py, failed before the change
  • Full suite passes. Run locally on Windows with small local stand-ins for the Unix and BlueZ modules Home Assistant needs (not part of this PR), so CI on Linux is the first clean run.
  • Confirm on an affected Home Assistant install

🤖 Generated with Claude Code

py-opendisplay imports DbsParams from epaper_dithering at module scope.
Home Assistant only checks requirements the manifest names, so when another
install leaves an older epaper-dithering behind, py-opendisplay still looks
satisfied, nothing reinstalls it, and the integration fails to import.

Naming it makes the requirement check fail and reinstall it before import.

Fixes OpenDisplay#154

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@kbaker827
kbaker827 requested a review from g4bri3lDev as a code owner November 6, 2026 16:12
@kbaker827

Copy link
Copy Markdown
Author

CI is waiting on maintainer approval here, so I ran the workflows on my fork at bd674fd:

  • Tests: passed, on both the latest and min-ha Home Assistant, plus ruff
  • hassfest: passed
  • HACS: 8 of 10 checks passed. The two failures are fork settings (issues disabled, no topics), and the fork's unmodified main fails the same two.

This covers this branch on its own, not merged with the other open PRs, and nothing has been run on real hardware.

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.

Integration fails to load since 3.1.0

1 participant