Azure / Azure/azure-sdk-for-rust

Refine native-driver pipeline architecture

Open
#5,236 1 comment 1 reaction 0 assignees View on GitHub
Client Cosmos EngSys
Dominant language
Rust
Stars
884
Forks
365
Avg merge
2d 19h
Merged PRs (30d)
109

Description

### Feature Summary

Address the actionable, non-blocking engineering-system feedback deferred from #4991 after the initial Cosmos native-driver pipeline is operational.

### Feature Description

PR #4991 intentionally delivered a first-cut pipeline while deferring broader integration improvements. Follow up on Daniel Jurek’s review suggestions:

- Make the shared EngSys job matrix the clear source of build configurations: operating system, hardware architecture, target identifier, agent pool, and target-specific configuration.
- Remove duplicated matrix concepts between pipeline job generation and per-target build scripts. Build scripts should derive compiler details from the selected target where appropriate.
- Move stable Linux apt dependencies into build-configuration metadata rather than branching over target IDs in the job template.
- Remove build-irrelevant `risk` metadata from the executable matrix and track support risks in documentation or planning artifacts instead.
- Confirm and document the final supported target matrix, including the policy for Intel macOS.
- Evaluate whether the local end-to-end supply-chain rehearsal remains necessary for the developer workflow; keep it only if its distinct purpose is documented and tested.
- Revisit whether reusable job and step templates should live under `eng/pipelines/templates` and whether a standard Rust CI archetype can replace pipeline-local wiring.
- Keep new cSpell entries sorted according to repository conventions.

The manual `/azp run` model is not part of this follow-up: PR #4991 already resolved the blocker by keeping the main Cosmos pipeline off PR triggers because public PR builds cannot access the required internal resources.

### Use Case

Reduce pipeline-specific machinery and align the native-driver build with the Rust repository’s established EngSys patterns, making future target additions easier to review and maintain.

### Alternatives

Keep the first-cut pipeline unchanged. This remains functional but preserves duplicated configuration and increases maintenance cost as the target matrix grows.

### Additional Context

Follow-up to #4991 and related to #4967. Source review threads include Daniel’s matrix architecture, apt dependency, support-matrix, local rehearsal, template-location, and CI archetype suggestions.

Contributor guide

Open the contributing guide

Research direction

Start by comparing the shared EngSys job matrix, pipeline job generation, per-target build scripts, and eng/pipelines/templates with PR #4991 and its review feedback. Define the supported target matrix and document the decisions around dependencies, risk metadata, templates, local rehearsal, and Intel macOS; done means duplicated configuration is removed and the final policy is documented and validated.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
build-system, ci-cd, devops
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
38/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.