You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@nifi.apache.org by "Adam Hunyadi (Jira)" <ji...@apache.org> on 2020/07/24 08:05:00 UTC

[jira] [Updated] (MINIFICPP-1203) Set up cpplint so that it can be configured per-directory and use #pragma once

     [ https://issues.apache.org/jira/browse/MINIFICPP-1203?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Adam Hunyadi updated MINIFICPP-1203:
------------------------------------
    Summary: Set up cpplint so that it can be configured per-directory and use #pragma once  (was: Set up cpplint so that it can be configured per-directory)

> Set up cpplint so that it can be configured per-directory and use #pragma once
> ------------------------------------------------------------------------------
>
>                 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
>            Priority: Minor
>              Labels: MiNiFi-CPP-Hygiene
>             Fix For: 0.8.0
>
>          Time Spent: 18h
>  Remaining Estimate: 0h
>
> *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.
> *Update:*
> We decided to replace header guards with {{{color:#403294}{{#pragma once}}{color}}}. It is not standardized, but all the compilers we support have it, and we already have it scattered in our headers, so we can consider this update safe.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)