Azure / Azure/azure-sdk-tools

C++ APIView - The type `PathSetAccessControlRecursiveMode` isn't showing up which comes from the protocol header file.

Open
#1,183 0 comments 0 reactions 0 assignees View on GitHub
APIView bug C++
Dominant language
C#
Stars
135
Forks
260
Avg merge
3d 1h
Merged PRs (30d)
143

Description

From https://apiview.dev/Assemblies/Review/427b38f4cc7d41b49159ede265ef5cce#Azure::Storage::Files::DataLake::DirectoryClient

Things from the protocol layer aren't showing up in the APIView. For example:
`PathSetAccessControlRecursiveMode`

![image](https://user-images.githubusercontent.com/6527137/98583068-aaafcd00-2278-11eb-9207-f32620fa9d84.png)

Steps to generate:
```text
clang++ .\sdk\storage\azure-storage-files-datalake\inc\azure\storage\files\datalake.hpp -I .\sdk\storage\azure-storage-files-datalake\inc -I .\sdk\core\azure-core\inc -I .\sdk\storage\azure-storage-common\inc -I .\sdk\storage\azure-storage-blobs\inc -I .\sdk\identity\azure-identity\inc -Xclang -ast-dump > az_datalake.ast

Archive the file Compress-Archive az_datalake.ast -DestinationPath az_datalake.zip
Rename the file Rename-Item az_datalake.zip -NewName az_datalake.cppast
Upload the resulting archive.
```

This enum is defined in the protocol layer which the client APIs take a dependency on:
https://github.com/Azure/azure-sdk-for-cpp/blob/a7672f67f6fbc7db1a81666e0cf2370625572b2e/sdk/storage/azure-storage-files-datalake/inc/azure/storage/files/datalake/protocol/datalake_rest_client.hpp#L127-L133
https://github.com/Azure/azure-sdk-for-cpp/blob/6bb5cd788cd8f7e034a9fc65b121d7963ee07e48/sdk/storage/azure-storage-files-datalake/inc/azure/storage/files/datalake/datalake_directory_client.hpp#L13

**This header isn't explicitly included when generating the APIView since other headers include them. Does it need to be?**

cc @praveenkuttappan, @RickWinter

Contributor guide

Open the contributing guide

Research direction

Start by reproducing the APIView upload with the supplied clang++ AST-generation command. Compare sdk/storage/azure-storage-files-datalake/inc/azure/storage/files/datalake/protocol/datalake_rest_client.hpp with datalake_directory_client.hpp and trace how the APIView processes the resulting AST. Done means PathSetAccessControlRecursiveMode appears in the generated C++ APIView.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
devtools
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
32/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.