Issue 1135 in include-what-you-use: Match Included Mappings with OS Package Versions

0 views
Skip to first unread message

notifi...@include-what-you-use.org

unread,
Nov 3, 2022, 4:59:08 PM11/3/22
to include-wh...@googlegroups.com
New issue 1135 by DaAwesomeP: Match Included Mappings with OS Package Versions
https://github.com/include-what-you-use/include-what-you-use/issues/1135

I do not know if the Debian packages or other OS packages are maintained by the maintainers of this project or external maintainers; please close this if it is not relevant.

IWYU for Debian 11 Bullseye is v0.15 (https://packages.debian.org/bullseye/iwyu). The version of Boost included with Debian 11 is Boost v1.74, but the mapping files associated with IWYU v0.15 are only for Boost v1.64. Debian is just one example; I have not checked other distributions.

Right now the Boost mappings are tied to the IWYU version, but I am not sure how practical this is because of OS distribution inconsistencies like the one mentioned above. If these mappings were auto-generated at package build time, then they could be matched to the correct version provided by the OS (or manually provided by the user's project). I see in various other issues that various people are working on this but it seems there is not a concrete solution yet.

Another option would be to release a patch (either v0.15.1 or Debian build 8.15-3) that provides new mappings as they become available (or once for Debian 11 to fix this inconsistency). If the mapping syntax changed between versions of IWYU then this could become difficult to maintain, but I do think it is possible since the mappings are independent of the actual IWYU codebase.

It would also be possible to release separate packages for each mapping (i.e. `iwyu-mapping-boost`), but I think this is much more cumbersome and it doesn't solve the issue with the current OS versions that do not allow new packages in stable.

Another related issue is that of course a mapping for every version of Boost is not available, and knowing the path to the mapping file requires knowledge of which Boost version mappings are included with your version of IWYU. It is a bit confusing that `boost-all.imp` is actually out of date and not just a symlink to the most recent version.

At the very least, it would be good to look at the current library versions supported by all distributions with officially supported IWYU packages and ensure the required mappings are available.


Reply all
Reply to author
Forward
0 new messages