A bunch of long-overdue modernizations 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#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#171)
- NOLINT and NOLINTNEXTLINE comments now support a comma-separated list of categories, courtesy of @n3world (cpplint#220)
- NOLINT and NOLINTNEXTLINE will now ignore categories known to be from clang-tidy thanks to @xatier (cpplint#231)
- Fixed behavior with nested source repositories by @groegeorg (cpplint#78)
- 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
- build/include-what-you-use now supports a plethora of new functions, courtesy of @geoffviola (cpplint#94)
- build/include-what-you-use will no longer err on similarly-named classes from other namespaces thanks to @geoffviola (cpplint#273)
- Indented functions inside namespaces will now be correctly erred on, courtesy of @Yujinmon (cpplint#235)
- [[(un)likely]] no longer clouds readability/braces's super spy−scanning of braces, courtesy of @aaronliu0130 (cpplint#265)
- C++20 headers will no longer be flagged as C headers thanks to @miker2 (cpplint#216)
- Same goes for C++23 and C23 headers, thanks to @aaronliu0130 (cpplint#239)
- "complex.h" will be treated as the C99 header instead of the legacy C++ header by @tkruse (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#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#198)
- The new __VA_OPT__(,) will now be recognized by the Whitespace linter as a function thanks to @elrinor (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#104)
- build/class and build/namespaces no longer check for whether a namespace or class has a closing brace from @geoffviola (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#265)
- Usages of the deprecated sre_compile were refectored by @jspricke (cpplint#214)
- Usages of deprecated unittest aliases were refactored by @tirkarthi (cpplint#182), @aaronliu0130 and @jayvdb
- Typos in this changelog, comments and functions were fixed by @jayvdb (cpplint#245), @aaronliu0130 and @tkruse
- %-strings were modernized into f-strings by @aaronliu0130
- Fix #195 Fix post increment/decrement operator causing a false positive.
- Fix #202 .hh files should not be considered system headers
- Fix #207 Python2 incompatibility for loading CPPLINT.cfg file
- Fix #184 NOLINT(clang-analyzer) comments should not cause warnings
- Fix #188: "Include the directory when naming header files" also for header files with other names like "*.hpp"
- Fix #172: Added 'size_t' to typecasts detected by CheckCStyleCast
- Fixed wrong CLI help text: Each filter needs + or -
- Fix #164: add elif as an exception for CheckSpacingForFunctionCall()
- Fix google#346: --root option not working on Windows due to slashes in path
- Fix google#166, Allow space before C++11 attributes
- Fix #156: sed/gsed output parameter rejected
- Fix #156: sed/gsed output without other stdout information
- improvements to regression tests
- Fix #83, output formats "sed" and "gsed" to auto-fix some issues
- Fix #92, new category "build/namespaces_headers" for unnamed namespaces in header file
- Sort list of files before processing
- Fix #144 False positive for indent when using QT macros "signals" and "slots"
- Fix #76 Parsing of class decorators that also use digits
- Fix #139 Add message "Relative paths like . and .. are not allowed"
- Revert #43 behavior change for include order from 1.5.0, and hide it behind command-line-flag --includeorder=standardcfirst. It turns out there is no easy objective way to tell c system headers from certain c++ library headers, and Google cpplint intentionally classifies some C++ header includes as C system header for simplicity.
- Libraries considered as C system headers using --includeorder=standardcfirst now also includes linux-specific headers (glibc-devel, glibc-kernheaders, linux-libc-dev).
- Fix #43 false positives in header include order by checking includes against a list of c headers. Since this interprets certain include lines different than before, output about header include order changes.
- Fix #135: allow 'if constexpr' in readability/braces.
- Fix runtime warning: Close files after reading contents
- Avoid false positive for [build/include_what_you_use] in case of foo.set<type> and foo->set<type> usage.
- Avoid false positive for [build/include_what_you_use] in case of map is user defined function
- Escape backslashes in pydoc strings to get rid of DeprecationWarning.
- Fix false positive "should include its header" for 3rd party headers
- Add support for c++17 tuple destructuring
- fix #123: Inconsistent behavior of --headers and --extensions
- Fix #114: --exclude not working recursively
- fix #112, identifying of copy constructors should allow combinations of volatile and const
Another cleanup release
- NOBUG: fix unit/cli tests for source release
- NOBUG: reduce diff to upstream by intentionally using deprecated functions where upstream uses them
- add --version command (cpplint#27)
- Revert "Fix the build/endif_comment check", same as reverted in upstream
- Cleanup release, fixes further issues with tests and source distribution
- Cleanup release, only adds test support files to source dist
- Incorporate cpplint updates from google (e5d807c6a0d, 2018-05-03)
- Fix the build/endif_comment check (google/styleguide#169)
- Teach the explicit constructor check about constexpr (#56)
- Changed vs7 output format (#57)
- Remove presubmit check for DISALLOW_* macros (#54)
- add --quiet flag as in upstream (google/styleguide#293)
- support --root argument to run in different folder (google/styleguide#291)
- Fix 16bit Unicode issue (google/styleguide#337)
- Incorporate cpplint updates from google (6d3a7d8a2, 2016-07-14)
- Add --headers flag to choose which extensions are header files.
- Add regression testing.
- Fixes bug causing RValue detection with namespaces to fail.
- Fixes error in setup.py.
- Adds .cu and .cuh as supported file extensions by default.
- Moves the warning "Include the directory when naming .h files" from the build/include category to the build/include_subdir category.
- Adds quiet option to suppress non error-related output.
- Updates PyPi README.
- Fixes a --repository flag bug.
- Adds the --exclude flag to exclude files from being linted.
- Adds the --repository flag to set the location of the project root for header guard calculations.
- Adds support for
#pragma onceas an alternative to header include guards.
- Fixes a Windows include guard bug.
- Adds escaping and more detail to JUnit XML output.
- Adds the --recursive flag.
- Adds JUnit XML output.
- Maintenance release, undoes earlier project folder structure changes to remain as true to upstream as possible.
- Merged with upstream revision r141 (2014-12-04)
- This includes many new checks, see commit messages for details
- This also reverts some renaming of files, to stay close to the original project
- python 3 compatibility
- fixed and extended allowed extensions
- import from googlecode, added setup.py
- imported revision r83 (2012-05-11)