Skip to content

Releases: netromdk/vermin

Version 1.3.0

17 Oct 15:08
b070c99
Compare
Choose a tag to compare
  • Python 3.10 support
    • Added 134 rules specific to Python 3.10
    • Structural pattern matching (PEP-0634)
    • Support optional length-checking of zip (PEP-0618)
    • Union types written as X | Y (PEP-0604)
    • Detect mapping attribute of dict views (bpo-40890)
    • Additionally testing and analyzing using Python 3.10 with GitHub Actions
  • Optionally exclude parsing comments for 30-40%+ speedup. The --no-parse-comments argument or parse_comments = no config setting, can be used to disable it.
  • Not scanning symlinks to folders can incur huge speedups for certain projects, especially if they
    point inside a project's hierarchy. These symlinks can be included in analysis via the --scan-symlink-folders argument or scan_symlink_folders = yes config setting.

Deprecations

  • Lax mode has been deprecated in favor of specific analysis exclusions. Will be removed in v. 1.4.

Full Changelog: v1.2.2...v1.3.0

Version 1.2.2

26 Aug 18:48
1acfafa
Compare
Choose a tag to compare

1.2.2:

  • Support exclusion of multi-line strings (#76)
  • Fixed erroneous detection of nested curly braces in string formatting (#75)
  • Fixed reported line numbers for variable/final/literal annotations
  • Regularly scanning code with CodeQL via GitHub Actions

Appreciated feedback from @adamjstewart.

1.2.1:

  • Fix for only showing files with violating results when using --violations (#74)

Advisories:

1.2.0:

  • Target versions violations linting mode: --violations (#57, README section)
  • Fix crash on adding exclusion after overriding config from another (#68)
  • Fix member detection in exception handlers and raise expressions (#69)
  • Detect nonlocal and user-defined long (#70)
  • Capture assignment targets as user-defines
  • Detect ellipsis literal out of slices (#71)
  • Detect set literals and set comprehensions (#72)
  • Detect multiple context expressions in a with statement (#73)

Version 1.2.1

30 Jun 06:02
646d6ff
Compare
Choose a tag to compare

1.2.1:

  • Fix for only showing files with violating results when using --violations (#74)

Advisories:

Appreciated feedback from @alalazo.

1.2.0:

  • Target versions violations linting mode: --violations (#57, README section)
  • Fix crash on adding exclusion after overriding config from another (#68)
  • Fix member detection in exception handlers and raise expressions (#69)
  • Detect nonlocal and user-defined long (#70)
  • Capture assignment targets as user-defines
  • Detect ellipsis literal out of slices (#71)
  • Detect set literals and set comprehensions (#72)
  • Detect multiple context expressions in a with statement (#73)

Version 1.2.0

08 May 11:08
5612421
Compare
Choose a tag to compare
  • Target versions violations linting mode: --violations (#57, README section)
  • Fix crash on adding exclusion after overriding config from another (#68)
  • Fix member detection in exception handlers and raise expressions (#69)
  • Detect nonlocal and user-defined long (#70)
  • Capture assignment targets as user-defines
  • Detect ellipsis literal out of slices (#71)
  • Detect set literals and set comprehensions (#72)
  • Detect multiple context expressions in a with statement (#73)

Appreciated feedback and contributions from @gousaiyang.

Version 1.1.1

18 Apr 18:35
5566d87
Compare
Choose a tag to compare

1.1.1:

  • Don't evaluate annotations by default, added --eval-annotations (#66)
  • Detect user function decorators (#67)
  • Stop using Python 3.4 which isn't supported with GitHub Actions anymore

Advisories:

Appreciated feedback from @gousaiyang, @TylerYep, and @tobbez

1.1.0:

  • Config file support (#56)

Vermin automatically tries to detect a config file, starting in the current working directory where it is run, following parent folders until either the root or project boundary files/folders are reached. However, if --config-file is specified, no config is auto-detected and loaded.

Config file names being looked for: vermin.ini, vermin.conf, .vermin, setup.cfg

Project boundary files/folders: .git, .svn, .hg, .bzr, _darcs, .fslckout

A sample config file can be found here.

  • Added new arguments:
    • --no-backport
    • --no-dump
    • --no-exclude
    • --no-feature
    • --no-hidden
    • --no-ignore
    • --no-lax
    • --no-pessimistic
    • --no-quiet
    • --no-target
    • --show-tips to have an opposite of --no-tips
    • --dump long form of -d
  • Extended comment exclusion support (#59)
  • Added and fixed backports (#61)
  • Detect unpacking assignment (3.0)
  • Fixed false positive generalized unpacking cases (#63)
  • Fixed magic line Python detection
  • Incompatible interpretation on syntax errors using --pessimistic (#48)
  • Fixed exception cause related minimum versions (#60)
  • Fixed reported line of with statement
  • Fixed solitary #novermin border case with newline before it
  • Added txt as excluded extension for detection
  • GitHub Actions fixes
    • Test and analyze on PRs too
    • Finish coveralls session when all parallel tests are done
  • Renamed lax mode to lax (internal)
  • Extend lax mode support
  • Tidy up Makefile

Version 1.1.0

27 Dec 15:06
4462ea3
Compare
Choose a tag to compare

1.1.0:

  • Config file support (#56)

Vermin automatically tries to detect a config file, starting in the current working directory where it is run, following parent folders until either the root or project boundary files/folders are reached. However, if --config-file is specified, no config is auto-detected and loaded.

Config file names being looked for: vermin.ini, vermin.conf, .vermin, setup.cfg

Project boundary files/folders: .git, .svn, .hg, .bzr, _darcs, .fslckout

A sample config file can be found here.

  • Added new arguments:
    • --no-backport
    • --no-dump
    • --no-exclude
    • --no-feature
    • --no-hidden
    • --no-ignore
    • --no-lax
    • --no-pessimistic
    • --no-quiet
    • --no-target
    • --show-tips to have an opposite of --no-tips
    • --dump long form of -d
  • Extended comment exclusion support (#59)
  • Added and fixed backports (#61)
  • Detect unpacking assignment (3.0)
  • Fixed false positive generalized unpacking cases (#63)
  • Fixed magic line Python detection
  • Incompatible interpretation on syntax errors using --pessimistic (#48)
  • Fixed exception cause related minimum versions (#60)
  • Fixed reported line of with statement
  • Fixed solitary #novermin border case with newline before it
  • Added txt as excluded extension for detection
  • GitHub Actions fixes
    • Test and analyze on PRs too
    • Finish coveralls session when all parallel tests are done
  • Renamed lax mode to lax (internal)
  • Extend lax mode support
  • Tidy up Makefile

Appreciated feedback and contributions from @gousaiyang

Version 1.0.3

12 Nov 18:36
f235c31
Compare
Choose a tag to compare

1.0.3:

  • Fixed a file paths detection issue when using parsable format on Windows

1.0.2:

  • Fixed parsable format Windows bug related to file paths
  • Running tests on macOS and Windows in addition to Linux, with pip and virtualenv caching
  • Improved internal testing framework with parameterized arguments for test cases
  • Using version tuples in tests rather than float values in preparation for Python 3.10

1.0.1:

  • Fixed regression when using --versions (#58)
  • Added project linters: pylint and pyroma
  • Improvements based on new linter findings
  • Switched from Travis CI to GitHub Actions that are much faster to start and complete

Appreciated feedback from @ThomDietrich.

1.0.0:

  • Python 3.9 language support and rules
    • Added 253 rules
    • Detect dict union and dict union merge
    • Support detection | and |= of builtin types
    • Detect removeprefix and removesuffix on str, bytes, and bytearray
    • Detect builtin generic type annotations
    • Detect relaxed decorators (#51)
  • Detect novermin/novm comments correctly on indented single lines (#47)
  • Display problematic context when incompatible versions are found (#49)
  • Fixed cases of incorrect member-to-module resolving (#53)
  • Fixed builtin generic type annotations detection for FQNs (#54)
  • Add minimum versions for function decorators and class decorators (#55)
  • Parsable format that can be used with third-party software: --format parsable (#48)
  • Expose detection and source code visitation API (experimental!)
  • Detect async for-loops (3.6)
  • Detect module __dir__() and __getattr__(name)
  • Added long arguments: --quiet, --target, --processes, --ignore, --lax
  • Added -V short form of --version
  • Convert Config to not be a singleton
  • Fixed line numbers of annotations and literal variable annotations
  • Sort verbose output results for line/column numbers when present
  • General processing speedups
  • Improved unit test framework

Appreciated feedback and contributions from @gousaiyang and @CendioOssman.

Version 1.0.2

09 Nov 19:20
75eda8b
Compare
Choose a tag to compare

1.0.2:

  • Fixed parsable format Windows bug related to file paths
  • Running tests on macOS and Windows in addition to Linux, with pip and virtualenv caching
  • Improved internal testing framework with parameterized arguments for test cases
  • Using version tuples in tests rather than float values in preparation for Python 3.10

1.0.1:

  • Fixed regression when using --versions (#58)
  • Added project linters: pylint and pyroma
  • Improvements based on new linter findings
  • Switched from Travis CI to GitHub Actions that are much faster to start and complete

Appreciated feedback from @ThomDietrich.

1.0.0:

  • Python 3.9 language support and rules
    • Added 253 rules
    • Detect dict union and dict union merge
    • Support detection | and |= of builtin types
    • Detect removeprefix and removesuffix on str, bytes, and bytearray
    • Detect builtin generic type annotations
    • Detect relaxed decorators (#51)
  • Detect novermin/novm comments correctly on indented single lines (#47)
  • Display problematic context when incompatible versions are found (#49)
  • Fixed cases of incorrect member-to-module resolving (#53)
  • Fixed builtin generic type annotations detection for FQNs (#54)
  • Add minimum versions for function decorators and class decorators (#55)
  • Parsable format that can be used with third-party software: --format parsable (#48)
  • Expose detection and source code visitation API (experimental!)
  • Detect async for-loops (3.6)
  • Detect module __dir__() and __getattr__(name)
  • Added long arguments: --quiet, --target, --processes, --ignore, --lax
  • Added -V short form of --version
  • Convert Config to not be a singleton
  • Fixed line numbers of annotations and literal variable annotations
  • Sort verbose output results for line/column numbers when present
  • General processing speedups
  • Improved unit test framework

Appreciated feedback and contributions from @gousaiyang and @CendioOssman.

Version 1.0.1

31 Oct 13:07
1f56407
Compare
Choose a tag to compare

1.0.1:

  • Fixed regression when using --versions (#58)
  • Added project linters: pylint and pyroma
  • Improvements based on new linter findings
  • Switched from Travis CI to GitHub Actions that are much faster to start and complete

Appreciated feedback from @ThomDietrich.

1.0.0:

  • Python 3.9 language support and rules
    • Added 253 rules
    • Detect dict union and dict union merge
    • Support detection | and |= of builtin types
    • Detect removeprefix and removesuffix on str, bytes, and bytearray
    • Detect builtin generic type annotations
    • Detect relaxed decorators (#51)
  • Detect novermin/novm comments correctly on indented single lines (#47)
  • Display problematic context when incompatible versions are found (#49)
  • Fixed cases of incorrect member-to-module resolving (#53)
  • Fixed builtin generic type annotations detection for FQNs (#54)
  • Add minimum versions for function decorators and class decorators (#55)
  • Parsable format that can be used with third-party software: --format parsable (#48)
  • Expose detection and source code visitation API (experimental!)
  • Detect async for-loops (3.6)
  • Detect module __dir__() and __getattr__(name)
  • Added long arguments: --quiet, --target, --processes, --ignore, --lax
  • Added -V short form of --version
  • Convert Config to not be a singleton
  • Fixed line numbers of annotations and literal variable annotations
  • Sort verbose output results for line/column numbers when present
  • General processing speedups
  • Improved unit test framework

Appreciated feedback and contributions from @gousaiyang and @CendioOssman.

Version 1.0.0

29 Oct 23:24
833fed8
Compare
Choose a tag to compare

Since the project is almost 3 years old, it's time for version 1.0.0!

  • Python 3.9 language support and rules
    • Added 253 rules
    • Detect dict union and dict union merge
    • Support detection | and |= of builtin types
    • Detect removeprefix and removesuffix on str, bytes, and bytearray
    • Detect builtin generic type annotations
    • Detect relaxed decorators (#51)
  • Detect novermin/novm comments correctly on indented single lines (#47)
  • Display problematic context when incompatible versions are found (#49)
  • Fixed cases of incorrect member-to-module resolving (#53)
  • Fixed builtin generic type annotations detection for FQNs (#54)
  • Add minimum versions for function decorators and class decorators (#55)
  • Parsable format that can be used with third-party software: --format parsable (#48)
  • Expose detection and source code visitation API (experimental!)
  • Detect async for-loops (3.6)
  • Detect module __dir__() and __getattr__(name)
  • Added long arguments: --quiet, --target, --processes, --ignore, --lax
  • Added -V short form of --version
  • Convert Config to not be a singleton
  • Fixed line numbers of annotations and literal variable annotations
  • Sort verbose output results for line/column numbers when present
  • General processing speedups
  • Improved unit test framework

Appreciated feedback and contributions from @gousaiyang and @CendioOssman.