Skip to content

Make runningAsSource a global variable#14015

Merged
seanbudd merged 4 commits into
masterfrom
runningAsSourceVar
Aug 19, 2022
Merged

Make runningAsSource a global variable#14015
seanbudd merged 4 commits into
masterfrom
runningAsSourceVar

Conversation

@seanbudd

@seanbudd seanbudd commented Aug 15, 2022

Copy link
Copy Markdown
Member

Link to issue number:

Blocking #13254, as this PR needs to check if NVDA is running as source

Summary of the issue:

NVDA checks in various places if it is running as source.
This check should be abstracted out, as the check is dependent on py2exe behaviour.
When viewing code, it is also not immediately clear what getattr(sys, 'frozen') means, whereas a named variable will be clearer.

Description of user facing changes

A named variable with documentation for code contributors.

Description of development approach

Checked what import sys; getattr(sys, 'frozen', None) returns in the python console of an installed copy of NVDA and a source copy of NVDA.

Testing strategy:

Smoke test running NVDA from installed and source.

Known issues with pull request:

None

Change log entries:

N/A

Code Review Checklist:

  • Pull Request description:
    • description is up to date
    • change log entries
  • Testing:
    • Unit tests
    • System (end to end) tests
    • Manual testing
  • API is compatible with existing add-ons.
  • Documentation:
    • User Documentation
    • Developer / Technical Documentation
    • Context sensitive help for GUI changes
  • UX of all users considered:
    • Speech
    • Braille
    • Low Vision
    • Different web browsers
    • Localization in other languages / culture than English

@seanbudd seanbudd requested a review from a team as a code owner August 15, 2022 02:10
@seanbudd seanbudd requested a review from feerrenrut August 15, 2022 02:10
@seanbudd seanbudd mentioned this pull request Aug 15, 2022
34 tasks

@lukaszgo1 lukaszgo1 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It looks like there are some checks for source VS binary copy in nvda.pyw and nvda_slave.pyw. Have you considered converting these to the new approach while at it?

@seanbudd

Copy link
Copy Markdown
Member Author

Thanks @lukaszgo1 missed these the first time around, fixed now

Comment thread source/globalVars.py Outdated
@AppVeyorBot

Copy link
Copy Markdown

See test results for failed build of commit 7fc478d2c8

@seanbudd seanbudd merged commit f71c232 into master Aug 19, 2022
@seanbudd seanbudd deleted the runningAsSourceVar branch August 19, 2022 00:42
@nvaccessAuto nvaccessAuto added this to the 2022.4 milestone Aug 19, 2022
@seanbudd seanbudd mentioned this pull request Aug 26, 2022
6 tasks
seanbudd added a commit that referenced this pull request Aug 30, 2022
Supersedes #14037
See also #14049

Summary of the issue:
#14037 was closed because there was no way to preserve backwards compatibility.
This is the case for any module level variable which the NVDA API expects to support assignment (see also #14049).

globalVars contains many NVDA state variables which should not be changed by add-on authors.
As a result, globalVars should eventually be deprecated, in favour of encapsulation of these variables.
This will make retaining backwards compatibility possible in the future.

Description of user facing changes
None

Description of development approach
Added a deprecation warning and strategy to the docstring of globalVars.

Encapsulated some less used globalVars to provide an example of what the future API should look like.

runningAsSource was moved from globalVars as this is an unreleased variable. (#14015)
_allowDeprecatedAPI was moved as it is internal code.
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.

5 participants