Skip to content

Commit e91f56b

Browse files
johnbattyclaude
andauthored
Add SKILL.md for updating azure_core/azure_identity (microsoft#742)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
1 parent 7b18ee4 commit e91f56b

1 file changed

Lines changed: 79 additions & 0 deletions

File tree

SKILL.md

Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
# Updating azure_core and azure_identity
2+
3+
## Overview
4+
5+
The `azure_devops_rust_api` crate depends on `azure_core` (runtime) and `azure_identity` (dev/examples). These are updated periodically to track the latest Azure SDK for Rust releases.
6+
7+
## Process
8+
9+
### 1. Find the latest versions
10+
11+
Check crates.io for the latest versions. They are released in lockstep and should use the same version.
12+
- https://crates.io/crates/azure_core
13+
- https://crates.io/crates/azure_identity
14+
15+
Watch out for yanked versions (e.g. 0.30.0 was yanked, 0.30.1 replaced it).
16+
17+
### 2. Update version strings
18+
19+
Edit `azure_devops_rust_api/Cargo.toml`:
20+
- `azure_core = { version = "X.Y", ... }` in `[dependencies]`
21+
- `azure_identity = "X.Y"` in `[dev-dependencies]`
22+
23+
### 3. Build and fix
24+
25+
```sh
26+
cargo check --all-features
27+
cargo check --all-features --examples
28+
```
29+
30+
If there are no compilation errors, you're done with code changes.
31+
32+
If there are errors, fixes may be needed in two places:
33+
34+
**Code generator** (for generated code errors — do NOT edit generated files directly):
35+
- `autorust/codegen/src/codegen_operations/create_client_and_builder.rs` — Pipeline, Transport, RetryOptions usage
36+
- `autorust/codegen/src/codegen_operations/request_builder_send.rs` — Pipeline::send() calls, api-version parameter
37+
- `autorust/codegen/src/codegen_operations/request_builder_into_future.rs` — into_body()/into_model() calls
38+
- `autorust/codegen/src/codegen_operations/response_code.rs` — Response type definitions
39+
40+
After fixing codegen, regenerate with `./build.sh`, then re-check.
41+
42+
**Hand-written source** (fix directly):
43+
- `azure_devops_rust_api/src/auth.rs` — TokenCredential, error handling
44+
- `azure_devops_rust_api/src/date_time.rs` — error handling
45+
- `azure_devops_rust_api/src/telemetry.rs` — Policy trait, Response types
46+
47+
### 4. Update CHANGELOG.md
48+
49+
Add an entry under `## [Unreleased]`:
50+
51+
```markdown
52+
### Changes
53+
54+
- Update `azure_core` and `azure_identity` to X.Y.
55+
```
56+
57+
If code changes were needed, list them (see the 0.33.0 entry for a detailed example).
58+
59+
### 5. Branch, commit, push
60+
61+
```sh
62+
git checkout -b azure_core-X.Y
63+
git add CHANGELOG.md azure_devops_rust_api/Cargo.toml [any other changed files]
64+
git commit -m "Update azure_core, azure_identity to X.Y"
65+
git push -u origin azure_core-X.Y
66+
```
67+
68+
The README (`azure_devops_rust_api/README.md`) version string is only updated at release time, not during dependency updates.
69+
70+
## Key azure_core types used by this crate
71+
72+
These are the areas most likely to break across versions:
73+
- `azure_core::http::Pipeline` — HTTP pipeline for sending requests
74+
- `azure_core::http::Request` / `RawResponse` — request/response types
75+
- `azure_core::http::RetryOptions` / `Transport` — client configuration
76+
- `azure_core::http::Context` — request context
77+
- `azure_core::http::policies::Policy` — pipeline policies (telemetry.rs)
78+
- `azure_core::credentials::TokenCredential` — authentication (auth.rs)
79+
- `azure_core::error::{Error, ErrorKind, Result}` — error types

0 commit comments

Comments
 (0)