C++ APIView generation for Azure Core needs to include optional transport adapter which include public API
- Dominant language
- C#
- Stars
- 135
- Forks
- 260
- Avg merge
- 1d 22h
- Merged PRs (30d)
- 115
Description
Trying to include the optional headers explicitly results in APIs **duplicated**. The APIs should only show up once, so that needs to be fixed to track public API changes in the transport headers:
> clang++ .\sdk\core\azure-core\inc\azure\core.hpp .\sdk\core\azure-core\inc\azure\core\http\curl_transport.hpp .\sdk\core\azure-core\inc\azure\core\http\win_http_transport.hpp .\sdk\core\azure-core\inc\azure\core\rtti.hpp -I .\sdk\core\azure-core\inc\ -Xclang -ast-dump > Azure_Core.ast
Since `core.hpp` doesn't include the curl and winhttp transport headers, because they are behind opt-in build flags, this seems to be the only way to get them visible in APIView.
https://github.com/Azure/azure-sdk-for-cpp/blob/b16ff00d98a3fa2ad7c0966462ee44068f847b0d/sdk/core/azure-core/CMakeLists.txt#L39-L53
https://apiview.dev/Assemblies/Review/3226949419594af785233c8289dd76ef?diffRevisionId=0c75c79b3a554344b1e7dd16a723f10e&doc=False&diffOnly=False&revisionId=716cc5948f9f4d40bea5fc9cca680d32
https://github.com/Azure/azure-sdk-for-cpp/blob/b16ff00d98a3fa2ad7c0966462ee44068f847b0d/sdk/core/azure-core/inc/azure/core.hpp#L41-L45
cc @LarryOsterman, @vhvb1989
Contributor guide
Research direction
Start with the referenced sdk/core/azure-core/CMakeLists.txt lines 39-53 and the inclusion rules in azure/core.hpp. Reproduce the APIView input with the listed clang++ command and the curl_transport.hpp and win_http_transport.hpp headers. Done means the optional transport APIs are visible for public API tracking without being duplicated.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cmake, cpp
- Domain
- tooling
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100