Releases: netromdk/vermin
Releases · netromdk/vermin
Version 1.7.0 - Python 3.13 support
- Python 3.13 support and 144 new rules (#305; @wchistow, #267)
- 1 module
- 106 classes/functions/constants members etc.
- 36 kwargs
- Detect type alias statement within class scope using lambdas or comprehensions
class C[T]: type Alias = lambda: T
- Add GitHub annotation and colored output formats (@Azmisov, #299)
- Solve deprecated AST nodes to be removed in Python 3.14 (@timsu92, #304, #297)
- Improve readability of incompatible version reports (#303, #279)
- Show tip if
.arg and--no-make-paths-absoluteused with no detected paths (#276, #263)
Version 1.6.0 - Python 3.12 support
Outdated Python 2.x execution support of Vermin has been removed. (#200)
But 2.x detections still function as before!
- Python 3.12 support and 120 new rules (#204)
- 104 classes/functions/constants members etc.
- 16 kwargs
- Detect type alias statement
type X = SomeType(PEP-695)
- No longer require that the number of targets match requirements in relation to
--violationsmode (@brenns10, #234, #230) - Fix overriding config exclusion regexes from other instance (#237)
- Added
zoneinfobackport (!2, 3.6, #196) - Add more project boundaries (#201)
- Perforce Helix Core:
.p4root - Pijul:
.pijul
- Perforce Helix Core:
- Correct a typo in
CONTRIBUTING.md(@felixonmars , #214) - Fixed execution of ps script (#209)
- Semgrep improvements (#206)
- Semgrep fixes (#208)
- [actions] SAST with Semgrep (#205)
- Security fixes (#227)
v1.5.2
Note: Vermin 1.6 will end support for running via py2.7
1.5.2:
- Union types (
X | Y) detection turned into opt-in feature (#176 fixes #103)- See the caveats section for more information.
- Added missing rules and fixed some existing ones (#155 fixes #144)
- Added 120 new rules
- 31 modules
- 68 members
- 21 kwargs
- Fixed 17 rules
- Thanks to @cpAdm for reporting the rules issues!
- Added 120 new rules
- Fixed error reporting that broke parsable format (#156 fixes #150)
- Fixed reported versions for built-in
type()(#172 fixes #171) - Visit keyword values if not excluded/ignored (#173 fixes #168)
- Union types detection also considers attributes (#174 fixes #159)
- Improved usage section of README (#175 fixes #158)
- Fixed a typo in the
--helpdocumentation (#169, @Eutropios) - [actions] Don't test using EOL Python 3.6 (#134)
- Security (does not affect Vermin in production, only deps for CI testing and analysis)
- Upgrade certifi to 2022.12.07 (#135, GHSA-43fp-rhv2-5gv8)
- Update GitPython to 3.1.30 (#157, GHSA-hcpj-qp55-gfph)
1.5.1:
1.5.0:
- Python 3.11 support (#124)
- Added 124 rules specific to Python 3.11
- Detect
except*(PEP-654) - Updated list of built-in generic annotation types
- More stringent rules for detecting union types (#108 fixes #103)
- Don't visit
returnsannotations if not evaluating annotations (#110 fixes #109) typing_extensionsbackport and versioned backports support (#111 fixes #100)- Added
--exclude-regexand--no-make-paths-absoluteto exclude specific file paths (#115, @cosmicexplorer) - Plurality method of results messages with overridability
- General project tweaks
- Don't test using end-of-life Python versions (3.4 and 3.5)
- Added security policy and vulnerability report template
- Added
CODEOWNERSfile - Added
CONTRIBUTINGfile - Added OpenSSF best practices emblem to README
- Check GitHub Actions and Pip deps every sunday via dependabot
- Check CodeQL on PRs and Sundays. Not when pushing to master because PRs are required and otherwise it'll run two times: once for the PR and again when the accepted PR is merged to master.
v1.5.1
Note: Vermin 1.6 will end support for py2.7
1.5.1:
1.5.0:
- Python 3.11 support (#124)
- Added 124 rules specific to Python 3.11
- Detect
except*(PEP-654) - Updated list of built-in generic annotation types
- More stringent rules for detecting union types (#108 fixes #103)
- Don't visit
returnsannotations if not evaluating annotations (#110 fixes #109) typing_extensionsbackport and versioned backports support (#111 fixes #100)- Added
--exclude-regexand--no-make-paths-absoluteto exclude specific file paths (#115, @cosmicexplorer) - Plurality method of results messages with overridability
- General project tweaks
- Don't test using end-of-life Python versions (3.4 and 3.5)
- Added security policy and vulnerability report template
- Added
CODEOWNERSfile - Added
CONTRIBUTINGfile - Added OpenSSF best practices emblem to README
- Check GitHub Actions and Pip deps every sunday via dependabot
- Check CodeQL on PRs and Sundays. Not when pushing to master because PRs are required and otherwise it'll run two times: once for the PR and again when the accepted PR is merged to master.
Version 1.5.0 - Python 3.11 support
Note: Vermin 1.6 will end support for py2.7
- Python 3.11 support (#124)
- Added 124 rules specific to Python 3.11
- Detect
except*(PEP-654) - Updated list of built-in generic annotation types
- More stringent rules for detecting union types (#108 fixes #103)
- Don't visit
returnsannotations if not evaluating annotations (#110 fixes #109) typing_extensionsbackport and versioned backports support (#111 fixes #100)- Added
--exclude-regexand--no-make-paths-absoluteto exclude specific file paths (#115, @cosmicexplorer) - Plurality method of results messages with overridability
- General project tweaks
- Don't test using end-of-life Python versions (3.4 and 3.5)
- Added security policy and vulnerability report template
- Added
CODEOWNERSfile - Added
CONTRIBUTINGfile - Added OpenSSF best practices emblem to README
- Check GitHub Actions and Pip deps every sunday via dependabot
- Check CodeQL on PRs and Sundays. Not when pushing to master because PRs are required and otherwise it'll run two times: once for the PR and again when the accepted PR is merged to master.
Version 1.4.2
1.4.2:
- Show tip for assignments with type annotations (
AnnAssign) if annotations are disabled:Tips: - Generic or literal annotations might be in use. If so, try using: --eval-annotations But check the caveat section: https://github.com/netromdk/vermin#caveats
1.4.1:
- Fixed union types detection when either are
None, likedef foo(n: int | None):
1.4.0:
- Removed deprecated lax mode entirely
- Vermin 1.6 will end support for py2.7
- An actual quiet
--quietmode --violationscan be used with--quietsuch that nothing is shown except rule violations (#85)- Added violations aliases
--lintand--no-lint - Detect
withstatements grouped with parentheses (py3.9, #84) - Show tip when generic/literal annotations might be in use (#84)
- Add support for pre-commit by @loganswartz (#81)
- Handle
async withsimilarly towith async foris py3.5 instead of py3.6- Restructured tips display for better readability
- Lazy parsing of source code when needed outside the Python parser
- Don't throw away duplicates when visiting nodes (
--dump)
Full Changelog: https://github.com/netromdk/vermin/compare/v1.4.0..v1.4.2
Version 1.4.1
1.4.1:
- Fixed union types detection when either are
None, likedef foo(n: int | None):
1.4.0:
- Removed deprecated lax mode entirely
- Vermin 1.6 will end support for py2.7
- An actual quiet
--quietmode --violationscan be used with--quietsuch that nothing is shown except rule violations (#85)- Added violations aliases
--lintand--no-lint - Detect
withstatements grouped with parentheses (py3.9, #84) - Show tip when generic/literal annotations might be in use (#84)
- Add support for pre-commit by @loganswartz (#81)
- Handle
async withsimilarly towith async foris py3.5 instead of py3.6- Restructured tips display for better readability
- Lazy parsing of source code when needed outside the Python parser
- Don't throw away duplicates when visiting nodes (
--dump)
Full Changelog: https://github.com/netromdk/vermin/compare/v1.4.0..v1.4.1
Version 1.4.0
- Removed deprecated lax mode entirely
- Vermin 1.6 will end support for py2.7
- An actual quiet
--quietmode --violationscan be used with--quietsuch that nothing is shown except rule violations (#85)- Added violations aliases
--lintand--no-lint - Detect
withstatements grouped with parentheses (py3.9, #84) - Show tip when generic/literal annotations might be in use (#84)
- Add support for pre-commit by @loganswartz (#81)
- Handle
async withsimilarly towith async foris py3.5 instead of py3.6- Restructured tips display for better readability
- Lazy parsing of source code when needed outside the Python parser
- Don't throw away duplicates when visiting nodes (
--dump)
Full Changelog: v1.3.3...v1.4.0
Version 1.3.3
1.3.3:
1.3.2:
super()without arguments requires v3+
1.3.1:
- Don't suppress test errors for Python 2.7, 3.4, and 3.5 with GitHub Actions
- Added kwargs rules specific to the change from v2 to v3
- With inconclusivity when using
--violationsand--targetexit code is0(#79) - Yield note when not enough evidence to conclude minimum versions
- Scan top-level folders in all cases. The recent implementation of
--no-symlink-foldersdidn't scan top-level folders - or input folders. That's a problem if the input folder is/tmpwhich is a symlink to/private/tmpon macOS, for instance. Cases such as that will now be handled correctly. - Added and fixed rules (mostly 3.10 related) (#78)
1.3.0:
- Python 3.10 support
- Optionally exclude parsing comments for 30-40%+ speedup. The
--no-parse-commentsargument orparse_comments = noconfig 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-foldersargument orscan_symlink_folders = yesconfig setting.
Deprecations
- Lax mode has been deprecated in favor of specific analysis exclusions. Will be removed in v. 1.4.
Version 1.3.2
1.3.2:
super()without arguments requires v3+
1.3.1:
- Don't suppress test errors for Python 2.7, 3.4, and 3.5 with GitHub Actions
- Added kwargs rules specific to the change from v2 to v3
- With inconclusivity when using
--violationsand--targetexit code is0(#79) - Yield note when not enough evidence to conclude minimum versions
- Scan top-level folders in all cases. The recent implementation of
--no-symlink-foldersdidn't scan top-level folders - or input folders. That's a problem if the input folder is/tmpwhich is a symlink to/private/tmpon macOS, for instance. Cases such as that will now be handled correctly. - Added and fixed rules (mostly 3.10 related) (#78)
1.3.0:
- Python 3.10 support
- Optionally exclude parsing comments for 30-40%+ speedup. The
--no-parse-commentsargument orparse_comments = noconfig 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-foldersargument orscan_symlink_folders = yesconfig setting.
Deprecations
- Lax mode has been deprecated in favor of specific analysis exclusions. Will be removed in v. 1.4.