Adam Hunyadi created MINIFICPP-1203:
---------------------------------------
Summary: Set up cpplint so that it can be configured per-directory
Key: MINIFICPP-1203
URL: https://issues.apache.org/jira/browse/MINIFICPP-1203
Project: Apache NiFi MiNiFi C++
Issue Type: Bug
Affects Versions: 0.7.0
Reporter: Adam Hunyadi
Assignee: Adam Hunyadi
Fix For: 0.8.0
*Background:*
Currently cpplink checks are not checking all the files correctly and are
hiding some errors that are meant to be displayed. Manually running the
following cpplint check shows overreports the number of errors but it is a
decent estimate on the number of errors ignored:
{code:bash}
# This command shows some errors that we otherwise suppress in the project
cpplint --linelength=200
filter=-runtime/reference,-runtime/string,-build/c++11,-build/include_order,-build/include_alpha
`find libminifi/ -name \.cpp -o -name \*.h`
(...)
Total errors found: 1730
{code}
When running {{{color:#403294}{{make linter}}{color}}} these errors are
supressed. It runs the following command in
{{{color:#403294}run_linter.sh{color}}}:
{code:bash}
python ${SCRIPT_DIR}/cpplint.py --linelength=200 --headers=${HEADERS} ${SOURCES}
{code}
For some reason, it seems like the files specified in the
{{{color:#403294}{{--headers}}{color}}} flag are ignored altogether. For example
{code:bash}
# Running w/ headers option set
cpplint --filter="-runtime/reference,-runtime/string,-build/c++11"
--linelength=200 --headers=`find . -name "*.h" | tr '\n' ','`
libminifi/include/processors/ProcessorUtils.h 2>/dev/null
Done processing libminifi/include/processors/ProcessorUtils.h
# Running w/ unspecified headers
cpplint --filter="-runtime/reference,-runtime/string,-build/c++11"
--linelength=200 libminifi/include/processors/ProcessorUtils.h 2>/dev/null
Done processing libminifi/include/processors/ProcessorUtils.h
Total errors found: 6
{code}
*Proposal:*
We should remove the header specification from {{{color:#403294}{{make
linter}}{color}}} and set up linter configuration files in the project
directories that set all the rules to be applied on the specific directory
contents recursively.
There is to approach for doing this: we can either specify files or rules to be
ignored when doing the linter check. The latter is preferable, so that when we
want to clear them up later, we can have separate commits/pull request for each
of the warning fixed (and potentially automatize fixes (eg. writing clang-tidy
rules or applying linter fixes).
(!) The commits on this Jira are not expected to fix any warnings reported by
the linter, but to have all the checks disabled.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)