Comments (8)
The action is on me to produce a pull request. I will try to get that done by the end of next week.
from ament_lint.
ament_clang_tidy
is essentially a wrapped call to clang-tidy
so it may be necessary to create a compile_commands.json
file in order for extraneous header files to be found and other corrections to be made (see also here).
from ament_lint.
My current understanding is that even if we do have compile_commands.json
present, ament_clang_tidy
does not pass the relevant -p
option to the underlying clang-tidy
.
@dirk-thomas and @JShep1, I propose we enhance ament_clang_tidy --fix-errors
to do the following:
- Run
colcon configure --cmake-args -DCMAKE_EXPORT_COMPILE_COMMANDS=ON
to run the CMake configuration step for generating the relevantcompile_commands.json
file. (If theconfigure
verb doesn't exist incolcon
, we should add it. It will perform a subset of whatbuild
currently does.) ament_clang_tidy --fix-errors
will search subdirectories forcompile_commands.json
and make calls torun-clang-tidy -fix -p <path_to_db>
1
1: Why call run-clang-tidy
instead of clang-tidy
? The clang project provided this script to dedupe fixes to header files, which could be analyzed and otherwise "fixed" multiple times per project.
from ament_lint.
@mm318 I'd discourage using colcon
as part of any ament
functionality since ament
packages should not have to depend on or have knowledge of colcon
. Can the compile_commands.json
be generated independently for your project? We can likely still improve ament_clang_tidy
to accept the compilation database file.
from ament_lint.
@mm318 I'd discourage using
colcon
as part of anyament
functionality sinceament
packages should not have to depend on or have knowledge ofcolcon
.
Okay, that's reasonable.
We can likely still improve
ament_clang_tidy
to accept the compilation database file.
I already have a script that makes clang-tidy
use a compilation database file to find lint issues correctly (but it can't fix issues). I can contribute that to ament_clang_tidy
.
To use this script currently, I am indeed independently generating the compile_commands.json
file for my project through colcon build
before running the script.
from ament_lint.
@mm318 What is the status of this ticket?
from ament_lint.
The pull request at #213 is ready for review, @JShep1, @jacobperron, and @dirk-thomas.
from ament_lint.
Connected PR has been merged, closing
from ament_lint.
Related Issues (20)
- [ament_cppcheck] provide libraries
- Update humble ament_pep257 package HOT 5
- Please tag a new release of `ament_lint` for `foxy` HOT 2
- Ament-flake8 attributeError Humble HOT 4
- Support for other filetypes for ament_copyright HOT 2
- ament_uncrustify is incompatible with uncrustify >= 0.75 HOT 1
- ament_pep257 crashes during xunit generation when non-pep257 errors occur
- What is the general release strategy? HOT 1
- ament_xmllint stuck when no internet
- Feature Rquest: ament_cmake_clang_tidy, specify --header-filter and --jobs options to ament_clang_tidy
- (ament_xmllint) add extension argument
- ament_cmake_pep257, ament_cmake_lint_cmake, ament_cmake_xmllint ignores value of AMENT_LINT_AUTO_FILE_EXCLUDE HOT 1
- ament_flake8 fails with flake8>=6.0.0 HOT 5
- ament_lint_auto finds recursive test dependencies causing downstream packages to inherit conflicting linters
- ament_copyright does not recognize REUSE-compliant copyright headers
- TypeError on debian11 HOT 1
- EXCLUDE argument parsed differently in different linters HOT 2
- BSD 3 license (and maybe others) require a copyright notice at the top of the license file HOT 2
- ament_lint_cmake doesn't display reasons for error when run through pre-commit HOT 1
- xmllint Requires member_of_group to be before export HOT 8
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from ament_lint.