A large long-overdue modernization of the codebase!
Python 2 is no longer supported. Python 3.12 support was added along with fixed CI for 3.7 and 3.8, courtesy of @jayvdb
As a result of all this, setup.py's lint subcommand was removed. Please run the commands directly instead.
You can now specify blocks of code that exclude linting with NOLINTBEGIN and NOLINTEND, courtesy of @n3world (cpplint/cpplint#213)
The --filter option can now be only applied to a specific file or even a specific line through utilizing colons, e.g. -filter=-whitespace:foo.h,+whitespace/braces:foo.h:418. Courtesy of @PhilLab (cpplint/cpplint#171)
NOLINT and NOLINTNEXTLINE comments now support a comma-separated list of categories, courtesy of @n3world (cpplint/cpplint#220)
NOLINT and NOLINTNEXTLINE will now ignore categories known to be from clang-tidy thanks to @xatier (cpplint/cpplint#231)
build/include-what-you-use no longer supports transitive headers from the header for the current module for parity with the style guide by @aaronliu0130
The check for C-style casts now looks for the standard fixed-width integer typenames instead of non-standard ones (e.g. int32_t instead of int32) thanks to @nate-thirdwave (cpplint/cpplint#282)
"complex.h" will be treated as the C99 header instead of the legacy C++ header by @tkruse (cpplint/cpplint#219)
Many features not blocked in Google's style guide will no longer be erred own thanks to @aaronliu0130
As part of this, the build/c++14 and build/c++tr1 categories were removed.
The filesystem header will now also be blocked, and the build/c++17 category has been added.
We will no longer bother you if you mark a no-arg constructor as explicit thanks to @markww (cpplint/cpplint#227)
In the same PR, @aaronliu0130 also decreased the verbosity of nagging to mark single-arg constructors as explicit to 4, as the styleguide includes a major exception to this rule that would be very hard to detect.
You can now specify the name of the CPPLINT.cfg file through --config as long as it is in the same directory, thanks to @gedankenexperimenter (cpplint/cpplint#198)
The new VA_OPT(,) will now be recognized by the Whitespace linter as a function thanks to @elrinor (cpplint/cpplint#237)
The check for including a source file's header file will now scan all files with the same base name. Thanks to @crogre for figuring out what code needed to be changed and @aaronliu0130 for fixing it (cpplint/cpplint#104)
build/class and build/namespaces no longer check for whether a namespace or class has a closing brace from @geoffviola (cpplint/cpplint#272). This should be done in a more efficient manner by a compiler or language server instead. As part of this, the build/class category was removed.
Fixed false positive when an if/else statement has braces everywhere but one of the closing braces before the final block is on a separate line by @aaronliu0130 (cpplint/cpplint#265)
For header files, the check for a header guard's name will now be cached and only run once, as opposed to previously being run on every line. This results in a ~5.6% reduction in run time thanks to @matyalatte, who figured it out, and @aaronliu0130 for implementing it (cpplint/cpplint#291)
Black is now officially tested with Python 3.13 and provides Python 3.13
mypyc-compiled wheels. (#4436) (#4449)
Black will issue an error when used with Python 3.12.5, due to an upstream memory
safety issue in Python 3.12.5 that can cause Black's AST safety checks to fail. Please
use Python 3.12.6 or Python 3.12.4 instead. (#4447)
Black no longer supports running with Python 3.8 (#4452)
Stable style
Fix crashes involving comments in parenthesised return types or X | Y style unions.
(#4453)
Fix skipping Jupyter cells with unknown %% magic (#4462)
Preview style
Fix type annotation spacing between * and more complex type variable tuple (i.e. def fn(*args: *tuple[*Ts, T]) -> None: pass) (#4440)
Caching
Fix bug where the cache was shared between runs with and without --unstable (#4466)
Packaging
Upgrade version of mypyc used to 1.12 beta (#4450) (#4449)
blackd now requires a newer version of aiohttp. (#4451)
Output
Added Python target version information on parse error (#4378)
Add information about Black version to internal error messages (#4457)
Black is now officially tested with Python 3.13 and provides Python 3.13
mypyc-compiled wheels. (#4436) (#4449)
Black will issue an error when used with Python 3.12.5, due to an upstream memory
safety issue in Python 3.12.5 that can cause Black's AST safety checks to fail. Please
use Python 3.12.6 or Python 3.12.4 instead. (#4447)
Black no longer supports running with Python 3.8 (#4452)
Stable style
Fix crashes involving comments in parenthesised return types or X | Y style unions.
(#4453)
Fix skipping Jupyter cells with unknown %% magic (#4462)
Preview style
Fix type annotation spacing between * and more complex type variable tuple (i.e. def fn(*args: *tuple[*Ts, T]) -> None: pass) (#4440)
Caching
Fix bug where the cache was shared between runs with and without --unstable (#4466)
Packaging
Upgrade version of mypyc used to 1.12 beta (#4450) (#4449)
blackd now requires a newer version of aiohttp. (#4451)
Output
Added Python target version information on parse error (#4378)
Add information about Black version to internal error messages (#4457)
Add CLI option --pyink-ipynb-indentation to specify the number of spaces
with which JSON content of Jupyter notebooks will be formatted.
Add CLI option --pyink-annotation-pragmas to specify a list of annotation
pragmas. Whenever any of them appears in a comment that line won't be split
into multiple lines or joined with any other line.
Fix formatting of Jupyter notebook cells with magic methods and any empty
lines at the beginning or end of a cell.
Add CLI option --pyink-ipynb-indentation to specify the number of spaces
with which JSON content of Jupyter notebooks will be formatted.
Add CLI option --pyink-annotation-pragmas to specify a list of annotation
pragmas. Whenever any of them appears in a comment that line won't be split
into multiple lines or joined with any other line.
Fix formatting of Jupyter notebook cells with magic methods and any empty
lines at the beginning or end of a cell.
Check out the blog post for a migration guide and overview of the changes!
Breaking changes
The pytest rules PT001 and PT023 now default to omitting the decorator parentheses when there are no arguments
(#12838, #13292).
This was a change that we attempted to make in Ruff v0.6.0, but only partially made due to an error on our part.
See the blog post for more details.
The useless-try-except rule (in our tryceratops category) has been recoded from TRY302 to
TRY203 (#13502). This ensures Ruff's code is consistent with
the same rule in the tryceratops linter.
[flake8-simplify] Stabilize preview behavior for SIM115 so that the rule can detect files
being opened from a wider range of standard-library functions (#12959).
CLI
Add explanation of fixable in --statistics command (#13774)
Check out the blog post for a migration guide and overview of the changes!
Breaking changes
The pytest rules PT001 and PT023 now default to omitting the decorator parentheses when there are no arguments
(#12838, #13292).
This was a change that we attempted to make in Ruff v0.6.0, but only partially made due to an error on our part.
See the blog post for more details.
The useless-try-except rule (in our tryceratops category) has been recoded from TRY302 to
TRY203 (#13502). This ensures Ruff's code is consistent with
the same rule in the tryceratops linter.
[flake8-simplify] Stabilize preview behavior for SIM115 so that the rule can detect files
being opened from a wider range of standard-library functions (#12959).
CLI
Add explanation of fixable in --statistics command (#13774)
Bumps the pip group with 11 updates in the /dependencies/python directory:
3.2.236
3.2.269
1.10.3
1.17.2
1.6.1
2.0.0
24.8.0
24.10.0
24.3.0
24.10.0
0.6.2
0.7.0
3.2.6
3.3.1
1.11.2
1.12.1
8.18.2
8.24.0
3.1.1
3.2.4
24.7.0
24.9.2
Updates
checkov
from 3.2.236 to 3.2.269Release notes
Sourced from checkov's releases.
... (truncated)
Changelog
Sourced from checkov's changelog.
... (truncated)
Commits
1da7e33
fix(terraform): Fix crash when version isn't a float (#6783)a873b20
fix(terraform): Fix crash when version isn't a float (#6783)398496e
chore: update release notesc7146bf
feat(terraform_plan): Support after_unknown evaluation of complex attributes ...20e9faa
feat(terraform_plan): Support after_unknown evaluation of complex attributes ...cbb7316
chore: update release notesf177b20
fix(terraform): Added applicable resources for CKV_AZURE_72 (#6144)65ddc8b
chore: update release notescae981d
fix(terraform): Added applicable resources for CKV_AZURE_72 (#6144)9e99247
chore: update release notesUpdates
cfn-lint
from 1.10.3 to 1.17.2Release notes
Sourced from cfn-lint's releases.
... (truncated)
Changelog
Sourced from cfn-lint's changelog.
... (truncated)
Commits
7e514f4
Release v1.17.2 (#3766)a720df9
Support Python 3.13 (#3765)41061fd
Update language extensions for empty lists (#3764)0d7df03
Release v1.17.1 (#3760)93fd15e
Make an exception for DocDB Cluster Port return type (#3759)03c8c46
Release v1.17.0 (#3756)1dcb514
Update CloudFormation schemas to 2024-10-17 (#3748)d06f3f5
Update HealthCheckType enum for AWS::AutoScaling::AutoScalingGroup (#3755)42429be
Update lambda lifecycle runtimes (#3753)a33106f
Update graph labels (#3752)Updates
cpplint
from 1.6.1 to 2.0.0Release notes
Sourced from cpplint's releases.
Changelog
Sourced from cpplint's changelog.
Commits
f4363d7
Releasing 2.0.0 (#292)bb925ad
Add piping and cached cppvar to changelog3af1d2e
Fix reading from stdin07f8730
Cache cppvar to improve performance5b2d885
Disable "too-many-positional-arguments"b29d3ee
Fix false positive on concept declaration (#288)820df48
Remove readability/fn_size error throw (#287)a3afd5c
Update silly-sample + gitignore vscode (#253) (#285)b2d18ad
Use standard fixed-width typenames for cast checks (#282)3d9c9d0
fix tox.ini after #277 (#279)Updates
black
from 24.8.0 to 24.10.0Release notes
Sourced from black's releases.
Changelog
Sourced from black's changelog.
Commits
1b2427a
Prepare release 24.10.0 (#4471)a22b1eb
Add mypyc 3.13 wheel build (#4449)b7d0e72
Bump AndreMiras/coveralls-python-action from 65c1672f0b8a201702d86c81b79187df...f1a2f92
Include --unstable in cache key (#4466)8d9d18c
Fix skipping Jupyter cells with unknown %% magic (#4462)bbfdba3
Fix docs CI: use venv for uv to fix 'failed to create directory' (#4460)8fb2add
Use builtin generics (#4458)2a45cec
Fix crashes with comments in parentheses (#4453)b4d6d86
Drop Python 3.8 support (#4452)ac018c1
Require newer aiohttp for blackd (#4451)Updates
pyink
from 24.3.0 to 24.10.0Release notes
Sourced from pyink's releases.
Changelog
Sourced from pyink's changelog.
Commits
5e82867
Reduce number of patches6e6cac0
Update Changelog in preparation to release Pyink v24.10.0.83f0ba5
Rebase Pyink to Black v24.10.0.f209fd8
Fix formatting cells with starting or trailing empty linesa143558
Improve detection of non-Python language in notebooks5d3e6e6
Handle comments with annotationsd61d957
Update Pyink patches441ac2b
Fix magic methods failing to be unmasked8dfd235
Handle cases where unknown %% magic command is preceded by empty linesde42336
Add an optional parameter to use 2-space indentation for formattingUpdates
ruff
from 0.6.2 to 0.7.0Release notes
Sourced from ruff's releases.
... (truncated)
Changelog
Sourced from ruff's changelog.
... (truncated)
Commits
5e6de4e
Changelog for Ruff v0.7 (#13794)70e5c4a
RecodeTRY302
toTRY203
(#13502)9218d6b
Removeallow-unused-imports
setting from the common lint options (#13677)1b79ae9
[ruff-0.7] Stabilise the expansion ofopen-file-with-context-handler
to wor...2b87587
[flake8-pytest-style
] Fix defaults whenlint.flake8-pytest-style
config s...d1e15f6
Remove tab-size setting (#12835)89a8215
Remove error messages for removed CLI aliases (#12833)202c6a6
Removeoutput-format=text
setting (#12836)5c3c0c4
[red-knot] Inference for comparison of union types (#13781)6b7a738
Add explanation of fixable in--statistics
command (#13774)Updates
pylint
from 3.2.6 to 3.3.1Commits
76bce72
Bump pylint to 3.3.1, update changelog (#9954)55ee816
Bump astroid to 3.3.4 (#9951) (#9952)6350dfa
Bump pylint to 3.3.0, update changelog78f3dfa
Bump astroid to 3.3.3 (#9939)b28c1f6
Add check forunnecessary-default-type-args
(#9938)bd97b93
[doc framework] Assert that the good and bad example exists in the doc (#9936)7aa4436
Fix duplicate workflow step ids (#9934)0950916
[pre-commit] Add codespell, and fix some existing typos (#9912)3b4a7f9
Add details.rs... _Description has been truncated_