Azure / Azure/azure-sdk-tools

C++ APIView generation for Azure Core needs to include optional transport adapter which include public API

Open
#3,073 1 comment 0 reactions 0 assignees View on GitHub
APIView bug C++
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.