Skip to content

Commit ce97fb9

Browse files
richlanderclaude
andcommitted
Add target frameworks query to metrics.md
- Add query showing Android platform versions across supported .NET versions - Demonstrates target-frameworks-json link navigation - Update capability table with target frameworks row 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
1 parent 3a45d58 commit ce97fb9

File tree

1 file changed

+56
-16
lines changed

1 file changed

+56
-16
lines changed

release-notes/queries/metrics.md

Lines changed: 56 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -24,10 +24,10 @@ The tables below show theoretical update frequency based on practice and design,
2424
|------|------|--------------|-------------|
2525
| `index.json` | 5 KB | ~1 | Root index with all major versions |
2626
| `10.0/index.json` | 10 KB | ~12 | All 10.0 patches (fewer releases so far) |
27-
| `9.0/index.json` | 21 KB | ~12 | All 9.0 patches with CVE references |
28-
| `8.0/index.json` | 24 KB | ~12 | All 8.0 patches with CVE references |
29-
| `timeline/index.json` | 5 KB | ~1 | Timeline root (all years) |
30-
| `timeline/2025/index.json` | 13 KB | ~12 | Year index (all months) |
27+
| `9.0/index.json` | 20 KB | ~12 | All 9.0 patches with CVE references |
28+
| `8.0/index.json` | 23 KB | ~12 | All 8.0 patches with CVE references |
29+
| `timeline/index.json` | 4 KB | ~1 | Timeline root (all years) |
30+
| `timeline/2025/index.json` | 12 KB | ~12 | Year index (all months) |
3131
| `timeline/2025/10/index.json` | 9 KB | ~1 | Month index with embedded CVE summaries |
3232
| `timeline/2025/01/cve.json` | 14 KB | ~1 | Full CVE details for a month |
3333

@@ -185,13 +185,52 @@ curl -s "$ROOT" | jq -r '.["releases-index"][] | select(.["support-phase"] == "a
185185

186186
**Note on URL length:** The hal-index currently uses long GitHub raw URLs (91 chars per URL). With equivalent short CDN URLs, the hal-index would be **4.4 KB**—31% smaller than releases-index.
187187

188+
### Target Framework Queries
189+
190+
#### Query: "What Android platform version does each supported .NET version target?"
191+
192+
| Schema | Files Required | Total Transfer |
193+
|--------|----------------|----------------|
194+
| hal-index | `index.json``{version}/target-frameworks.json` per version | **~20 KB** |
195+
| releases-index | N/A | N/A (not available) |
196+
197+
**hal-index:**
198+
199+
```bash
200+
ROOT="https://raw.githubusercontent.com/dotnet/core/release-index/release-notes/index.json"
201+
202+
# Get target-frameworks.json for each supported version and extract Android TFM
203+
curl -s "$ROOT" | jq -r '._embedded.releases[] | select(.supported) | ._links.self.href' | while read VERSION_HREF; do
204+
TFM_HREF=$(curl -s "$VERSION_HREF" | jq -r '._links["target-frameworks-json"].href')
205+
curl -s "$TFM_HREF" | jq -r '.frameworks[] | select(.platform == "android") | "\(.tfm) (Android \(.platform_version))"'
206+
done
207+
```
208+
209+
**Output:**
210+
211+
```text
212+
net10.0-android (Android 36.0)
213+
net9.0-android (Android 35.0)
214+
net8.0-android (Android 34.0)
215+
```
216+
217+
**releases-index:** Not available.
218+
219+
**Analysis:**
220+
221+
- **Platform versioning:** Each .NET version targets a specific Android API level. This query reveals the progression: .NET 8 → Android 34, .NET 9 → Android 35, .NET 10 → Android 36.
222+
- **Upgrade planning:** Knowing the platform version helps teams plan SDK requirements when upgrading .NET versions.
223+
- **Discoverability:** The `target-frameworks-json` link makes this data accessible through HAL navigation.
224+
225+
**Winner:** hal-index only
226+
188227
### CVE Queries for Latest Security Patch
189228

190229
#### Query: "What CVEs were fixed in the latest .NET 8.0 security patch?"
191230

192231
| Schema | Files Required | Total Transfer |
193232
|--------|----------------|----------------|
194-
| hal-index | `index.json``8.0/index.json``8.0/8.0.21/index.json` | **39 KB** |
233+
| hal-index | `index.json``8.0/index.json``8.0/8.0.21/index.json` | **37 KB** |
195234
| releases-index | `releases-index.json` + `8.0/releases.json` | **1,240 KB** |
196235

197236
**hal-index:**
@@ -245,7 +284,7 @@ curl -s "$RELEASES_URL" | jq -r '[.releases[] | select(.security == true)] | .[0
245284

246285
| Schema | Files Required | Total Transfer |
247286
|--------|----------------|----------------|
248-
| hal-index | `index.json``8.0/index.json``8.0/8.0.21/index.json` | **39 KB** |
287+
| hal-index | `index.json``8.0/index.json``8.0/8.0.21/index.json` | **37 KB** |
249288
| releases-index | `releases-index.json` + `8.0/releases.json` | **1,240 KB** (cannot answer) |
250289

251290
**hal-index:**
@@ -293,7 +332,7 @@ curl -s "$RELEASES_URL" | jq -r '[.releases[] | select(.security == true)] | .[0
293332

294333
| Schema | Files Required | Total Transfer |
295334
|--------|----------------|----------------|
296-
| hal-index | `index.json``8.0/index.json` → 3 patch indexes (via `prev-security`) | **51 KB** |
335+
| hal-index | `index.json``8.0/index.json` → 3 patch indexes (via `prev-security`) | **55 KB** |
297336
| releases-index | `releases-index.json` + `8.0/releases.json` | **1,240 KB** |
298337

299338
**hal-index:**
@@ -356,7 +395,7 @@ curl -s "$RELEASES_URL" | jq -r '
356395

357396
| Schema | Files Required | Total Transfer |
358397
|--------|----------------|----------------|
359-
| hal-index | `timeline/index.json``timeline/2025/index.json``timeline/2025/01/cve.json` | **32 KB** |
398+
| hal-index | `timeline/index.json``timeline/2025/index.json``timeline/2025/01/cve.json` | **30 KB** |
360399
| releases-index | All releases.json (13 versions) | **8.2 MB** (cannot answer) |
361400

362401
**hal-index:**
@@ -413,7 +452,7 @@ done | sort -u
413452

414453
| Schema | Files Required | Total Transfer |
415454
|--------|----------------|----------------|
416-
| hal-index | `timeline/index.json``timeline/2025/index.json` → 6 month indexes (via `prev-security`) | **60 KB** |
455+
| hal-index | `timeline/index.json``timeline/2025/index.json` → 6 month indexes (via `prev-security`) | **55 KB** |
417456
| releases-index | All version releases.json files | **2.4 MB** |
418457

419458
**hal-index:**
@@ -478,7 +517,7 @@ done | sort -u | head -12
478517

479518
| Schema | Files Required | Total Transfer |
480519
|--------|----------------|----------------|
481-
| hal-index | `timeline/index.json``timeline/2025/index.json``timeline/2025/10/index.json` | **27 KB** |
520+
| hal-index | `timeline/index.json``timeline/2025/index.json``timeline/2025/10/index.json` | **25 KB** |
482521
| releases-index | `releases-index.json` + all supported releases.json | **2.4 MB** (incomplete—no severity data) |
483522

484523
**hal-index:**
@@ -532,7 +571,7 @@ done | sort -u
532571

533572
| Schema | Files Required | Total Transfer |
534573
|--------|----------------|----------------|
535-
| hal-index | `index.json``10.0/index.json``10.0/compatibility.json` | **155 KB** |
574+
| hal-index | `index.json``10.0/index.json``10.0/compatibility.json` | **151 KB** |
536575
| releases-index | N/A | N/A (not available) |
537576

538577
**hal-index:**
@@ -579,7 +618,7 @@ curl -s "$BC_HREF" | jq -r '[.breaks[].category] | group_by(.) | map({category:
579618

580619
| Schema | Files Required | Total Transfer |
581620
|--------|----------------|----------------|
582-
| hal-index | `index.json``10.0/index.json``10.0/compatibility.json` | **155 KB** |
621+
| hal-index | `index.json``10.0/index.json``10.0/compatibility.json` | **151 KB** |
583622
| releases-index | N/A | N/A (not available) |
584623

585624
**hal-index:**
@@ -628,7 +667,7 @@ curl -s "$BC_HREF" | jq -r --arg cat "core-libraries" '.breaks[] | select(.categ
628667

629668
| Schema | Files Required | Total Transfer |
630669
|--------|----------------|----------------|
631-
| hal-index | `index.json``10.0/index.json``10.0/compatibility.json` | **155 KB** |
670+
| hal-index | `index.json``10.0/index.json``10.0/compatibility.json` | **151 KB** |
632671
| releases-index | N/A | N/A (not available) |
633672

634673
**hal-index:**
@@ -726,6 +765,7 @@ curl -s "$PACKAGES_URL" | jq -r '
726765
| Timeline navigation ||||
727766
| Security history navigation (`prev-security`) ||||
728767
| SDK-first navigation ||||
768+
| Target frameworks (TFMs, platform versions) ||| hal-index only |
729769
| Breaking changes by category ||| hal-index only |
730770
| OS package dependencies ||| hal-index only |
731771

@@ -762,9 +802,9 @@ The HAL `_embedded` pattern ensures that any data referenced within a document i
762802
| Metric | hal-index | releases-index |
763803
|--------|-------------|----------------|
764804
| Basic version queries | 5 KB | 6 KB |
765-
| CVE queries (latest security patch) | 39 KB | 1,240 KB |
766-
| Last 3 security releases (version) | 51 KB | 1,240 KB |
767-
| Last 6 security months (timeline) | 60 KB | 2.4 MB |
805+
| CVE queries (latest security patch) | 37 KB | 1,240 KB |
806+
| Last 3 security releases (version) | 55 KB | 1,240 KB |
807+
| Last 6 security months (timeline) | 55 KB | 2.4 MB |
768808
| Cache coherency | ✅ Atomic | ❌ TTL mismatch risk |
769809
| Query syntax | snake_case (dot notation) | kebab-case (bracket notation) |
770810
| Link traversal | `._links.self.href` | `.["releases.json"]` |

0 commit comments

Comments
 (0)