Skip to content

DO NOT MERGE testing for API VIew: STG105 with parser 20261009.3 - #7465

Closed
JinmingHu (Jinming-Hu) wants to merge 14 commits into
mainfrom
jinming-hu-apiview-combined-test-pr
Closed

JinmingHu (Jinming-Hu) wants to merge 14 commits into
mainfrom
jinming-hu-apiview-combined-test-pr

Conversation

@Jinming-Hu

Copy link
Copy Markdown
Member

Temporary test PR — DO NOT MERGE. This non-draft PR exists only to generate Storage APIView JSON through automatic PR CI for comparison in a local test environment. It is intentionally not a release or merge candidate.

Combines the exact current changes from #7448 at 6079cfd47e5d5ce08f0193054cdb6f80e4208810 with the parser-version update from #7464 at f9f1db0d906c8012d957b52bda6b85775b231b25, based on current main at e0016580d2e7c30aeb1d3bc50cba7b570d72621b. Both original PRs remain unchanged. The net scope is 78 source-PR files plus one pipeline template (79 files total).

Production APIView safeguard: eng/pipelines/templates/jobs/archetype-sdk-client.yml passes Condition: false to detect-api-changes.yml. This skips both the production endpoint setup and Detect-Api-Changes.ps1 revision submission tasks. Existing create-apireview.yml excludes PullRequest runs, and the release-stage caller is Manual-only. No endpoints are redirected and no APIView files are uploaded to production or shared staging by this PR. Generate APIReview Token Files and publication of the packages artifact remain intact; generated JSON is under packages/<package>/<package>_cpp.json. The intended consumer downloads CI artifacts and uploads them only to the local test environment.

Validation performed: pinned clang-format 11.0.0 ran on all integrated modified C++ files with no additional formatting changes. git diff --check — passed. git merge-tree --write-tree origin/main 6079cfd47e5d5ce08f0193054cdb6f80e4208810 and git diff --exit-code <resulting-tree> HEAD -- sdk .vscode — passed, confirming exact source integration. Inline Python/PyYAML safety assertions — passed: YAML parses, parser pin is 20261009.3, guard disables both detection tasks, other production callers exclude PR runs, JSON generation and packages publication are preserved, and no other pipeline edits exist. Local SDK build/unit tests were not run; automatic Storage PR CI is the intended artifact producer. No manual CI runs have been requested.

Pull Request Checklist

Please leverage this checklist as a reminder to address commonly occurring feedback when submitting a pull request to make sure your PR can be reviewed quickly:

See the detailed list in the contributing guide.

  • C++ Guidelines
  • Doxygen docs
  • Unit tests
  • No unwanted commits/changes
  • Descriptive title/description
    • PR is single purpose
    • Related issue listed
  • Comments in source
  • No typos
  • Update changelog
  • Not work-in-progress
  • External references or docs updated
  • Self review of PR done
  • Any breaking changes?

JinmingHu (Jinming-Hu) and others added 14 commits October 14, 2026 17:31
Preserve the requested Prefix in Arrow flat-list responses.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Normalize hostname casing for service/account inference without changing URL casing.

Use CMake automatic DLL exports for session providers without exporting STL members.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Reduce default initial transfer sizes to 4 MiB and overlap remaining downloads
with consumption of the initial response for Blob and Files transfers.

Add Blob and DataLake layout APIs, download hints, and locality routing.
Keep managed locality routing disabled by default while supporting explicit
Auto and Enabled selection. Include both features' changelogs and layout
member documentation.

Expose the layout ranges directly as vectors in BlobLayoutInfo and
FileLayoutInfo, without redundant range-container wrapper types.

Preserve the explicit false legal-hold initializer through the generation
customization and regenerated BlobProperties declaration.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Collect standalone deletion remarks, existing API descriptions, and generated-model documentation without changing executable behavior.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Recognize the sovereign-cloud endpoint suffixes and service-defined xfiles header.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Collect feature tests, fixture migrations, regression assertions, shared test helpers,
test build definitions, and the published recording pin. Include default-disabled
locality coverage and playback-only Files cases pending production enablement.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Initialize the nullable policy before assigning either Arrow immutability column without clearing a value parsed from the other column.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Move the default XML-to-Arrow listing response format note out of Breaking Changes because the public blob listing behavior is unchanged.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Combine parser pin from PR #7464 with the exact PR #7448 Storage head. Keep APIReview token generation and packages publication, but disable both production revision detection steps via Condition: false.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines:
Successfully started running 2 pipeline(s).
8 pipeline(s) were filtered out due to trigger conditions.
There may be pipelines that require an authorized user to comment /azp run to run.

@github-actions github-actions Bot added the Storage Storage Service (Queues, Blobs, Files) label Oct 15, 2026

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

Download coordination and session-version handling need corrections, and this temporary PR is explicitly not a merge candidate.

3 open findings
What changed in this PR

Temporary, do-not-merge integration of STG105 Storage features with APIView parser 20261009.3, intended to generate CI artifacts for local API comparison.

Changes:

  • Adds session authentication, locality APIs, and updated transfer/listing defaults.
  • Extends Files Shares with change feed, creation timestamps, and file-ID addressing.
  • Updates tests, generation inputs, and APIView tooling while disabling production revision submission.
File Description
sdk/​storage/​azure-storage-files-shares/​test/​ut/​share_service_client_test.cpp Checks share creation timestamps in playback.
sdk/​storage/​azure-storage-files-shares/​test/​ut/​share_file_client_test.cpp Tests file-ID addressing and adjusts NFS fixtures.
sdk/​storage/​azure-storage-files-shares/​test/​ut/​share_client_test.cpp Tests addressing restrictions and change feed.
sdk/​storage/​azure-storage-files-shares/​swagger/​README.md Updates specification and generation customizations.
sdk/​storage/​azure-storage-files-shares/​src/​share_options.cpp Adds file-ID parsing and operation guards.
sdk/​storage/​azure-storage-files-shares/​src/​share_lease_client.cpp Rejects leases on ID-addressed files.
sdk/​storage/​azure-storage-files-shares/​src/​share_file_client.cpp Implements ID addressing, links, and overlapping downloads.
sdk/​storage/​azure-storage-files-shares/​src/​share_directory_client.cpp Supports ID-addressed directory properties and guards.
sdk/​storage/​azure-storage-files-shares/​src/​share_client.cpp Creates ID-addressed clients and handles change feed.
sdk/​storage/​azure-storage-files-shares/​inc/​azure/​storage/​files/​shares/​share_responses.hpp Adds file names and hard-link results.
sdk/​storage/​azure-storage-files-shares/​inc/​azure/​storage/​files/​shares/​share_options.hpp Adds change-feed and link options.
sdk/​storage/​azure-storage-files-shares/​inc/​azure/​storage/​files/​shares/​share_file_client.hpp Exposes file-ID and hard-link APIs.
sdk/​storage/​azure-storage-files-shares/​inc/​azure/​storage/​files/​shares/​share_directory_client.hpp Exposes directory file IDs.
sdk/​storage/​azure-storage-files-shares/​inc/​azure/​storage/​files/​shares/​share_constants.hpp Defines the file-ID query parameter.
sdk/​storage/​azure-storage-files-shares/​inc/​azure/​storage/​files/​shares/​share_client.hpp Declares ID-addressed client factories.
sdk/​storage/​azure-storage-files-shares/​inc/​azure/​storage/​files/​shares/​rest_client.hpp Updates protocol version, models, and operations.
sdk/​storage/​azure-storage-files-shares/​CHANGELOG.md Records new Shares features.
sdk/​storage/​azure-storage-files-datalake/​test/​ut/​session_authentication_test.cpp Tests session use and pipeline preservation.
sdk/​storage/​azure-storage-files-datalake/​test/​ut/​datalake_file_client_test.cpp Checks new transfer defaults.
sdk/​storage/​azure-storage-files-datalake/​test/​ut/​data_locality_test.cpp Tests layouts, routing, and download hints.
sdk/​storage/​azure-storage-files-datalake/​test/​ut/​CMakeLists.txt Registers locality and session tests.
sdk/​storage/​azure-storage-files-datalake/​src/​private/​datalake_utilities.hpp Declares shared property conversion.
sdk/​storage/​azure-storage-files-datalake/​src/​datalake_utilities.cpp Maps Blob properties and session options.
sdk/​storage/​azure-storage-files-datalake/​src/​datalake_responses.cpp Implements layout pagination.
sdk/​storage/​azure-storage-files-datalake/​src/​datalake_path_client.cpp Reuses property conversion.
sdk/​storage/​azure-storage-files-datalake/​src/​datalake_file_system_client.cpp Preserves Blob pipelines after rename.
sdk/​storage/​azure-storage-files-datalake/​src/​datalake_file_client.cpp Implements layouts and forwards routing information.
sdk/​storage/​azure-storage-files-datalake/​src/​datalake_directory_client.cpp Preserves Blob client configuration after rename.
sdk/​storage/​azure-storage-files-datalake/​inc/​azure/​storage/​files/​datalake/​datalake_responses.hpp Adds layout responses and download hints.
sdk/​storage/​azure-storage-files-datalake/​inc/​azure/​storage/​files/​datalake/​datalake_options.hpp Adds session/layout options and transfer defaults.
sdk/​storage/​azure-storage-files-datalake/​inc/​azure/​storage/​files/​datalake/​datalake_file_system_client.hpp Documents deletion timing.
sdk/​storage/​azure-storage-files-datalake/​inc/​azure/​storage/​files/​datalake/​datalake_file_client.hpp Declares GetLayout.
sdk/​storage/​azure-storage-files-datalake/​CHANGELOG.md Records features and default changes.
sdk/​storage/​azure-storage-common/​test/​ut/​test_base.hpp Shares request-inspection test policy.
sdk/​storage/​azure-storage-common/​test/​ut/​storage_url_test.cpp Tests Storage endpoint parsing.
sdk/​storage/​azure-storage-common/​test/​ut/​CMakeLists.txt Registers URL tests.
sdk/​storage/​azure-storage-common/​src/​storage_url.cpp Parses Storage accounts and endpoints.
sdk/​storage/​azure-storage-common/​src/​storage_pipeline.cpp Integrates optional locality routing policy.
sdk/​storage/​azure-storage-common/​src/​storage_data_locality_policy.cpp Routes requests while preserving original Host.
sdk/​storage/​azure-storage-common/​src/​storage_bearer_token_authentication_policy.cpp Separates authorization from request sending.
sdk/​storage/​azure-storage-common/​src/​shared_key_policy.cpp Generalizes signing for session reuse.
sdk/​storage/​azure-storage-common/​inc/​azure/​storage/​common/​internal/​storage_url.hpp Declares Storage URL parsing types.
sdk/​storage/​azure-storage-common/​inc/​azure/​storage/​common/​internal/​storage_pipeline.hpp Adds locality-policy configuration.
sdk/​storage/​azure-storage-common/​inc/​azure/​storage/​common/​internal/​storage_data_locality_policy.hpp Declares routing policy and context helpers.
sdk/​storage/​azure-storage-common/​inc/​azure/​storage/​common/​internal/​storage_bearer_token_auth.hpp Enables session-policy specialization.
sdk/​storage/​azure-storage-common/​inc/​azure/​storage/​common/​internal/​shared_key_policy.hpp Exposes reusable internal signing method.
sdk/​storage/​azure-storage-common/​CMakeLists.txt Registers routing and URL sources.
sdk/​storage/​azure-storage-blobs/​test/​ut/​storage_timeout_test.cpp Uses shared request-inspection helper.
sdk/​storage/​azure-storage-blobs/​test/​ut/​storage_retry_policy_test.cpp Explicitly disables locality routing.
sdk/​storage/​azure-storage-blobs/​test/​ut/​CMakeLists.txt Registers locality and session tests.
sdk/​storage/​azure-storage-blobs/​test/​ut/​block_blob_client_test.cpp Checks new transfer defaults.
sdk/​storage/​azure-storage-blobs/​test/​ut/​blob_container_client_test.cpp Tests Arrow defaults and explicit XML selection.
sdk/​storage/​azure-storage-blobs/​swagger/​README.md Adds layout and download-hint generation mappings.
sdk/​storage/​azure-storage-blobs/​src/​private/​token_credential_session_provider.hpp Declares session provider and cache state.
sdk/​storage/​azure-storage-blobs/​src/​private/​token_credential_session_provider.cpp Implements session creation, refresh, and invalidation.
sdk/​storage/​azure-storage-blobs/​src/​private/​session_authentication_policy.hpp Declares authentication-policy factory.
sdk/​storage/​azure-storage-blobs/​src/​private/​session_authentication_policy.cpp Implements session signing and bearer fallback.
sdk/​storage/​azure-storage-blobs/​src/​private/​data_locality.hpp Declares layout cache and endpoint selection.
sdk/​storage/​azure-storage-blobs/​src/​private/​data_locality.cpp Implements endpoint selection and asynchronous refresh.
sdk/​storage/​azure-storage-blobs/​src/​blob_service_client.cpp Configures session authentication and locality routing.
sdk/​storage/​azure-storage-blobs/​src/​blob_responses.cpp Implements layout pagination.
sdk/​storage/​azure-storage-blobs/​src/​blob_options.cpp Constructs public session providers.
sdk/​storage/​azure-storage-blobs/​src/​blob_container_client.cpp Enables Arrow defaults and session/locality policies.
sdk/​storage/​azure-storage-blobs/​inc/​azure/​storage/​blobs/​rest_client.hpp Adds layout protocol models and download hints.
sdk/​storage/​azure-storage-blobs/​inc/​azure/​storage/​blobs/​blob_service_client.hpp Documents container deletion timing.
sdk/​storage/​azure-storage-blobs/​inc/​azure/​storage/​blobs/​blob_responses.hpp Adds public layout response types.
sdk/​storage/​azure-storage-blobs/​inc/​azure/​storage/​blobs/​blob_options.hpp Adds session/routing options and changes defaults.
sdk/​storage/​azure-storage-blobs/​inc/​azure/​storage/​blobs/​blob_container_client.hpp Documents container deletion timing.
sdk/​storage/​azure-storage-blobs/​inc/​azure/​storage/​blobs/​blob_client.hpp Declares GetLayout.
sdk/​storage/​azure-storage-blobs/​CMakeLists.txt Registers session and locality implementation sources.
sdk/​storage/​azure-storage-blobs/​CHANGELOG.md Records new features and default changes.
sdk/​storage/​assets.json Updates the recordings pin.
eng/​pipelines/​templates/​jobs/​archetype-sdk-client.yml Updates parser and disables APIView revision submission.
.vscode/​cspell.json Adds Storage terminology to spelling allowlist.

🧠 Review effort: Balanced

_internal::BuildStoragePipelineOptions pipelineOptions;
pipelineOptions.PackageName = _internal::BlobServicePackageName;
pipelineOptions.PackageVersion = PackageVersion::ToString();
pipelineOptions.ApiVersion = Blobs::_detail::ApiVersion;
std::future<void> remainingDownload;
if (remainingSize > 0 && options.TransferOptions.Concurrency > 1)
{
const int remainingConcurrency = options.TransferOptions.Concurrency - 1;
Comment on lines +1320 to +1321
int64_t bytesRead = firstChunk.Value.BodyStream->ReadToCount(
buffer, static_cast<size_t>(firstChunkLength), context);
@Jinming-Hu
JinmingHu (Jinming-Hu) deleted the jinming-hu-apiview-combined-test-pr branch October 15, 2026 01:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Storage Storage Service (Queues, Blobs, Files)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants