Go to file
2024-10-27 15:05:51 +11:00
_misc Add help text to the readme 2024-08-22 12:33:15 +10:00
.gitignore Extension review utility 2024-08-07 23:08:29 +10:00
extensions_review Cleanup: remove deprecated use of "typing" 2024-10-27 15:05:51 +11:00
pyproject.toml Extension review utility 2024-08-07 23:08:29 +10:00
readme.rst Update help text, include checks that are off by default 2024-08-23 15:49:55 +10:00

Extension Review Utility

Report issues with extensions, optionally downloading extensions for review.

Usage

Download all extensions for review into output/.

./extensions_review --update

To print warnings for all, simply run:

./extensions_review

To limit the checks to a single directory, use:

./extensions_review /extension/to/check

To run a single check on all extensions, use:

./extensions_review --checks=filesystem_lint

To run multiple checks on all extensions, use:

./extensions_review --checks=filesystem_lint,error_parsing

Help Text

Output of extensions_review --help

usage:

extensions_review [-h] [--output-dir DIR] [--update] [--no-info]
                  [--checks CHECKS]
                  [EXTENSIONS ...]

Run checks on extensions to review.

positional arguments:
EXTENSIONS Optionally pass in trailing positional arguments for the extension(s) to check.
  • An extension ID.

  • A path (containing slashes), to allow pointing to any directories.

When unset, check all downloaded extensions.

options:
-h, --help

show this help message and exit

--output-dir DIR

The output directory to write to. defaults to “./output” in the current directory.

WARNING: when setting this manually, never point this to a directory containing unrelated files as they will be cleared as part of ensuring extensions are removed which are no longer in the approval queue.

--update

Run an update (without running any further checks)

--no-info

Dont show the explanation when printing warnings

--checks CHECKS

Optionally specify the checks to run. Otherwise the defaults are used.

error_parsing

Check the file can be parsed by Python.

error_prone_bpy_data_iteration

Iteration over all items in some bpy.data.* is error prone.

error_prone_bpy_data_literals

Literal lookups on bpy.data.*.["*"] is error prone!

error_prone_builtins

Calls to potentially insecure functions exec() & eval().

error_prone_dunder_file

Use of __file__.

error_prone_no_string_escape

Use of error prone quoting.

error_prone_string_strip

Use of (str.strip, str.lstrip, str.rstrip) which may be incorrect.

error_prone_sys_executable

Use of sys.executable should forward Blenders environment.

filesystem_lint

Check for file-system lint (files that should not have been included).

invalid_addon_preferences

Invalid access for add-on preferences from legacy add-ons.

non_portable_backslash

Use of back-slash (often used for non-portable MS-Windows paths).

non_portable_win32_drive_letter

Use of MS-Windows drive letters, non-portable paths.

policy_for_online_modules

Modules associated with online access.

policy_for_online_url

URL literals may be used for unauthorized online access.

policy_for_sys_modules

Use of sys module that may violate policies.

Multiple checks may be passed at once (comma separated, no spaces).

Any checks that result in a large number of false positives are off by default.

Notes

On MS-Windows you will need to run python3 ./extensions_review.