openstenoproject/plover

Plover gives "mysterious error" when dependencies are not met

user202729 opened this issue · 0 comments

Describe the bug

As above.

On startup, Plover use pkg_resources to load every modules dynamically, which checks dependency of every plugins, and if there's some error it blocks completely.

(not sure if this can be solved on Plover side because it depends on pip installation strategy, but Plover could at least allow user to reach the plugins manager to fix it through the GUI, and/or show some error message)

To Reproduce

It's not too easy to reproduce this, nevertheless I leave some cases where it could happen.

Incompatible version caused by pip install

Steps: (I think this can happen at least on Windows)

  1. User install package A 1.0.0, which requires B 1.0.0
  2. User install package C 1.0.0, which requires B 1.0.0
  3. A upgrades to 2.0.0 which requires B==2.0.0, and C upgrades to 2.0.0 similarly
  4. User install A==2.0.0 and restart

then Plover cannot start anymore (even manually install plugins through plover_plugins does not work)

Python version upgrade

Reproduce (rough outline):

  1. Install some old Plover version using Mac distribution that uses e.g. Python 3.8
  2. Install some package/plugin that uses C binary (so it's Python-version-specific)
  3. Upgrade to some new Plover version that uses Python 3.9
  4. Plover breaks, as above