apache / apache/incubator-pegasus
Introduce IWYU
- Dominant language
- C++
- Stars
- 2.1k
- Forks
- 328
- PR merge metrics
- No merged PRs in 30d
Description
# Why include what you use?
See [Why include what you use?](https://github.com/include-what-you-use/include-what-you-use/blob/master/docs/WhyIWYU.md)
# How ?
- [x] Introduce Ubuntu 22.04 to supported OS list
- [x] Use clang-14 on Ubuntu 22.04 to run IWYU, fix issues, add CI and make sure CI passed
- [ ] Use Pegasus special `fix_includes.py`
- [ ] Add mapping rules (see: https://github.com/include-what-you-use/include-what-you-use/blob/master/docs/IWYUMappings.md)
- [ ] Try to use C++ standard headers instead of C standard headers (e.g. `stdint.h` -> `cstdint`)
- [ ] Separate C standard, C++ standard and thirdparty headers
- [ ] Speed up the workflow
Contributor guide
Research direction
Start with the linked IWYU documentation, especially WhyIWYU.md and IWYUMappings.md, then review the existing Ubuntu 22.04 and clang-14 CI setup. The unchecked scope includes fix_includes.py, mapping rules, standard-header changes, header separation, and workflow speed; confirm which item is still wanted before defining done.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- build-system, ci-cd, tooling
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 20/100