nvda
8fd56cb9 - Handle incompatible add-ons when upgrading/downgrading NVDA API versions (#15439)

Commit
2 years ago
Handle incompatible add-ons when upgrading/downgrading NVDA API versions (#15439) Fixes #15437 Fixes #15412 Fixes #15414 Summary of the issue: There are several scenarios which need to be supported when updating/downgrading NVDA with incompatible add-ons Test Name Upgrade from Upgrade to Test notes Upgrade to different NVDA version in the same API breaking release cycle X.1 X.1 Add-ons which remain incompatible are listed as incompatible on upgrading. Preserves state of enabled incompatible add-ons Upgrade to a different but compatible API version X.1 X.2 Add-ons which remain incompatible are listed as incompatible on upgrading. Preserves state of enabled incompatible add-ons Downgrade to a different but compatible API version X.2 X.1 Add-ons which remain incompatible are listed as incompatible on downgrading. Preserves state of enabled incompatible add-ons Upgrade to an API breaking version X.1 (X+1).1 All incompatible add-ons are listed as incompatible on upgrading, overridden compatibility is reset. Downgrade to an API breaking version (X+1).1 X.1 Add-ons which remain incompatible listed as incompatible on downgrading. Preserves state of enabled incompatible add-ons. Blocked add-ons which are now compatible are re-enabled. Description of user facing changes NVDA will reset compatibility overrides when updating to a different API breaking release, this means incompatible add-ons will be blocked again. If an add-on is blocked due to compatibility and becomes compatible, e.g. via downgrading, it will be re-enabled. Description of development approach Store the BACK_COMPAT_TO version in the addon state pickle. When updating the BACK_COMPAT_TO version, reset the incompatibility override state.
Author
Parents
Loading