Update graphj
This commit is contained in:
@@ -7,6 +7,10 @@
|
||||
"support_phase": "go-live",
|
||||
"security": true,
|
||||
"cve_count": 2,
|
||||
"cve_records": [
|
||||
"CVE-2025-55247",
|
||||
"CVE-2025-55315"
|
||||
],
|
||||
"sdk_version": "10.0.100-rc.2.25502.107",
|
||||
"sdk_feature_bands": [
|
||||
"10.0.100-rc.2.25502.107"
|
||||
@@ -35,6 +39,21 @@
|
||||
"href": "https://raw.githubusercontent.com/dotnet/core/release-index/release-notes/index.json",
|
||||
"title": "Release index"
|
||||
},
|
||||
"cve-json": {
|
||||
"href": "https://raw.githubusercontent.com/dotnet/core/release-index/release-notes/timeline/2025/10/cve.json",
|
||||
"title": "CVE records (JSON)",
|
||||
"type": "application/json"
|
||||
},
|
||||
"cve-markdown": {
|
||||
"href": "https://raw.githubusercontent.com/dotnet/core/release-index/release-notes/timeline/2025/10/cve.md",
|
||||
"title": "CVE records (JSON)",
|
||||
"type": "application/markdown"
|
||||
},
|
||||
"cve-markdown-rendered": {
|
||||
"href": "https://github.com/dotnet/core/blob/main/release-notes/timeline/2025/10/cve.md",
|
||||
"title": "CVE records (JSON) (Rendered)",
|
||||
"type": "application/markdown"
|
||||
},
|
||||
"release-json": {
|
||||
"href": "https://raw.githubusercontent.com/dotnet/core/release-index/release-notes/10.0/preview/rc2/release.json",
|
||||
"title": "10.0.0-rc.2 Release Information",
|
||||
@@ -97,6 +116,54 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"disclosures": [
|
||||
{
|
||||
"id": "CVE-2025-55247",
|
||||
"title": ".NET Denial of Service Vulnerability",
|
||||
"_links": {
|
||||
"self": {
|
||||
"href": "https://github.com/dotnet/announcements/issues/370"
|
||||
}
|
||||
},
|
||||
"cvss_score": 7.3,
|
||||
"cvss_severity": "HIGH",
|
||||
"disclosure_date": "2025-10-14",
|
||||
"affected_releases": [
|
||||
"10.0",
|
||||
"9.0",
|
||||
"8.0"
|
||||
],
|
||||
"affected_products": [
|
||||
"dotnet-sdk"
|
||||
],
|
||||
"platforms": [
|
||||
"linux"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "CVE-2025-55315",
|
||||
"title": ".NET Security Feature Bypass Vulnerability",
|
||||
"_links": {
|
||||
"self": {
|
||||
"href": "https://github.com/dotnet/announcements/issues/371"
|
||||
}
|
||||
},
|
||||
"cvss_score": 9.9,
|
||||
"cvss_severity": "CRITICAL",
|
||||
"disclosure_date": "2025-10-14",
|
||||
"affected_releases": [
|
||||
"10.0",
|
||||
"9.0",
|
||||
"8.0"
|
||||
],
|
||||
"affected_products": [
|
||||
"dotnet-aspnetcore"
|
||||
],
|
||||
"platforms": [
|
||||
"all"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
@@ -181,8 +181,9 @@
|
||||
"cvss_severity": "HIGH",
|
||||
"disclosure_date": "2025-10-14",
|
||||
"affected_releases": [
|
||||
"8.0",
|
||||
"9.0"
|
||||
"10.0",
|
||||
"9.0",
|
||||
"8.0"
|
||||
],
|
||||
"affected_products": [
|
||||
"dotnet-sdk"
|
||||
@@ -212,8 +213,8 @@
|
||||
"cvss_severity": "MEDIUM",
|
||||
"disclosure_date": "2025-10-14",
|
||||
"affected_releases": [
|
||||
"8.0",
|
||||
"9.0"
|
||||
"9.0",
|
||||
"8.0"
|
||||
],
|
||||
"affected_products": [
|
||||
"dotnet-runtime"
|
||||
@@ -243,8 +244,9 @@
|
||||
"cvss_severity": "CRITICAL",
|
||||
"disclosure_date": "2025-10-14",
|
||||
"affected_releases": [
|
||||
"8.0",
|
||||
"9.0"
|
||||
"10.0",
|
||||
"9.0",
|
||||
"8.0"
|
||||
],
|
||||
"affected_products": [
|
||||
"dotnet-aspnetcore"
|
||||
|
||||
@@ -158,8 +158,9 @@
|
||||
"cvss_severity": "HIGH",
|
||||
"disclosure_date": "2025-10-14",
|
||||
"affected_releases": [
|
||||
"8.0",
|
||||
"9.0"
|
||||
"10.0",
|
||||
"9.0",
|
||||
"8.0"
|
||||
],
|
||||
"affected_products": [
|
||||
"dotnet-sdk"
|
||||
@@ -189,8 +190,8 @@
|
||||
"cvss_severity": "MEDIUM",
|
||||
"disclosure_date": "2025-10-14",
|
||||
"affected_releases": [
|
||||
"8.0",
|
||||
"9.0"
|
||||
"9.0",
|
||||
"8.0"
|
||||
],
|
||||
"affected_products": [
|
||||
"dotnet-runtime"
|
||||
@@ -220,8 +221,9 @@
|
||||
"cvss_severity": "CRITICAL",
|
||||
"disclosure_date": "2025-10-14",
|
||||
"affected_releases": [
|
||||
"8.0",
|
||||
"9.0"
|
||||
"10.0",
|
||||
"9.0",
|
||||
"8.0"
|
||||
],
|
||||
"affected_products": [
|
||||
"dotnet-aspnetcore"
|
||||
|
||||
@@ -60,6 +60,8 @@
|
||||
"security": false,
|
||||
"cve_count": 0,
|
||||
"support_phase": "active",
|
||||
"supported": true,
|
||||
"eol_date": "2028-11-14",
|
||||
"sdk_version": "10.0.101",
|
||||
"_links": {
|
||||
"self": {
|
||||
@@ -68,6 +70,14 @@
|
||||
"latest-security": {
|
||||
"href": "https://raw.githubusercontent.com/dotnet/core/release-index/release-notes/10.0/preview/rc2/index.json",
|
||||
"title": "10.0.0-rc.2"
|
||||
},
|
||||
"release-major": {
|
||||
"href": "https://raw.githubusercontent.com/dotnet/core/release-index/release-notes/10.0/index.json",
|
||||
"title": ".NET 10.0"
|
||||
},
|
||||
"latest-sdk": {
|
||||
"href": "https://raw.githubusercontent.com/dotnet/core/release-index/release-notes/10.0/sdk/index.json",
|
||||
"title": ".NET 10.0 SDK Index"
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -81,6 +91,8 @@
|
||||
"security": false,
|
||||
"cve_count": 0,
|
||||
"support_phase": "active",
|
||||
"supported": true,
|
||||
"eol_date": "2026-11-10",
|
||||
"sdk_version": "9.0.308",
|
||||
"_links": {
|
||||
"self": {
|
||||
@@ -89,6 +101,14 @@
|
||||
"latest-security": {
|
||||
"href": "https://raw.githubusercontent.com/dotnet/core/release-index/release-notes/9.0/9.0.10/index.json",
|
||||
"title": "9.0.10"
|
||||
},
|
||||
"release-major": {
|
||||
"href": "https://raw.githubusercontent.com/dotnet/core/release-index/release-notes/9.0/index.json",
|
||||
"title": ".NET 9.0"
|
||||
},
|
||||
"latest-sdk": {
|
||||
"href": "https://raw.githubusercontent.com/dotnet/core/release-index/release-notes/9.0/sdk/index.json",
|
||||
"title": ".NET 9.0 SDK Index"
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -102,6 +122,8 @@
|
||||
"security": false,
|
||||
"cve_count": 0,
|
||||
"support_phase": "active",
|
||||
"supported": true,
|
||||
"eol_date": "2026-11-10",
|
||||
"sdk_version": "8.0.416",
|
||||
"_links": {
|
||||
"self": {
|
||||
@@ -110,24 +132,53 @@
|
||||
"latest-security": {
|
||||
"href": "https://raw.githubusercontent.com/dotnet/core/release-index/release-notes/8.0/8.0.21/index.json",
|
||||
"title": "8.0.21"
|
||||
},
|
||||
"release-major": {
|
||||
"href": "https://raw.githubusercontent.com/dotnet/core/release-index/release-notes/8.0/index.json",
|
||||
"title": ".NET 8.0"
|
||||
},
|
||||
"latest-sdk": {
|
||||
"href": "https://raw.githubusercontent.com/dotnet/core/release-index/release-notes/8.0/sdk/index.json",
|
||||
"title": ".NET 8.0 SDK Index"
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"latest_security_month": [
|
||||
{
|
||||
"release": "10.0",
|
||||
"release_type": "lts",
|
||||
"version": "10.0.0-rc.2",
|
||||
"sdk_version": "10.0.100-rc.2.25502.107",
|
||||
"date": "2025-10-14T00:00:00+00:00",
|
||||
"year": "2025",
|
||||
"month": "10",
|
||||
"security": true,
|
||||
"cve_count": 2,
|
||||
"cve_records": [
|
||||
"CVE-2025-55247",
|
||||
"CVE-2025-55315"
|
||||
],
|
||||
"_links": {
|
||||
"self": {
|
||||
"href": "https://raw.githubusercontent.com/dotnet/core/release-index/release-notes/timeline/2025/10/index.json"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"release": "9.0",
|
||||
"release_type": "sts",
|
||||
"version": "9.0.10",
|
||||
"sdk_version": "9.0.306",
|
||||
"date": "2025-10-14T00:00:00+00:00",
|
||||
"year": "2025",
|
||||
"month": "10",
|
||||
"security": true,
|
||||
"cve_count": 3,
|
||||
"cve_records": [
|
||||
"CVE-2025-55247",
|
||||
"CVE-2025-55248",
|
||||
"CVE-2025-55315"
|
||||
"CVE-2025-55315",
|
||||
"CVE-2025-55248"
|
||||
],
|
||||
"_links": {
|
||||
"self": {
|
||||
@@ -140,14 +191,15 @@
|
||||
"release_type": "lts",
|
||||
"version": "8.0.21",
|
||||
"sdk_version": "8.0.415",
|
||||
"date": "2025-10-14T00:00:00+00:00",
|
||||
"year": "2025",
|
||||
"month": "10",
|
||||
"security": true,
|
||||
"cve_count": 3,
|
||||
"cve_records": [
|
||||
"CVE-2025-55247",
|
||||
"CVE-2025-55248",
|
||||
"CVE-2025-55315"
|
||||
"CVE-2025-55315",
|
||||
"CVE-2025-55248"
|
||||
],
|
||||
"_links": {
|
||||
"self": {
|
||||
|
||||
606
release-notes/queries/acceptance.md
Normal file
606
release-notes/queries/acceptance.md
Normal file
@@ -0,0 +1,606 @@
|
||||
# Acceptance Criteria for .NET Release Metadata Graph
|
||||
|
||||
This document defines the acceptance criteria for the hal-index schema design. It establishes a prioritized set of query types, explicit technical assumptions, and quantitative targets that validate the design decisions.
|
||||
|
||||
See [overview.md](overview.md) for design context, file characteristics, and link relation discovery.
|
||||
|
||||
## Purpose
|
||||
|
||||
The hal-index schema exists to serve specific use cases better than the existing releases-index. This document:
|
||||
|
||||
1. **Prioritizes query types** — establishes which queries matter most, so design tradeoffs can be evaluated against priorities
|
||||
2. **Sets quantitative targets** — provides absolute thresholds for data efficiency, with releases-index comparisons as secondary context
|
||||
3. **Makes assumptions explicit** — surfaces the technical and scenario assumptions underlying the design
|
||||
4. **Enables principled feedback** — critics must engage with priorities before debating ergonomics
|
||||
|
||||
## Consumer Priorities
|
||||
|
||||
The schema serves multiple consumers with different needs. Design decisions favor higher-priority consumers when tradeoffs are required.
|
||||
|
||||
| Priority | Consumer | Characteristics |
|
||||
|----------|----------|-----------------|
|
||||
| 1 | **Cloud-native tooling** | Mission-critical, CDN-cached, requires cache coherency |
|
||||
| 2 | **Security operations** | Time-sensitive CVE queries, compliance reporting |
|
||||
| 3 | **Developer tooling** | Upgrade planning, breaking changes, TFM selection |
|
||||
| 4 | **AI assistants** | LLM consumption via `llms.json`, tolerates more frequent updates |
|
||||
|
||||
The hal-index (`index.json` and related files) applies strict rules to enable aggressive CDN caching and cache coherency for Priority 1-3 consumers. The `llms.json` file intentionally relaxes some of these rules to optimize for AI assistant workflows, accepting more frequent updates in exchange for embedded shortcuts.
|
||||
|
||||
## Query Categories
|
||||
|
||||
Queries are organized by user task, with 2-3 queries per category. CVE analysis has additional depth due to its operational importance.
|
||||
|
||||
### Category 1: Patch Currency and Lifecycle
|
||||
|
||||
*Task: "What patch should I be running? Is my version still supported?"*
|
||||
|
||||
| ID | Query | Target | Fetches |
|
||||
|----|-------|--------|---------|
|
||||
| L1 | What is the latest patch for .NET X? | ≤6 KB | 1 |
|
||||
| L2 | Is .NET X still supported? When does it EOL? | ≤6 KB | 1 |
|
||||
| L3 | What .NET versions are currently supported? | ≤6 KB | 1 |
|
||||
|
||||
**Design validation:**
|
||||
- Root index contains `supported`, `eol_date` for each version
|
||||
- `latest` and `latest_lts` properties enable single-field access
|
||||
- No patch version numbers in root (would require monthly updates)
|
||||
|
||||
### Category 2: Security Patch Motivation
|
||||
|
||||
*Task: "Should I update? Are there CVEs since I last patched?"*
|
||||
|
||||
| ID | Query | Target | Fetches |
|
||||
|----|-------|--------|---------|
|
||||
| M1 | Were there any CVEs fixed in the latest security patch for .NET X? | ≤15 KB | 1-2 |
|
||||
| M2 | What CVEs have been fixed since [date] for versions I use? | ≤60 KB | 1+n |
|
||||
| M3 | Is there a CRITICAL severity CVE this month? | ≤15 KB | 2 |
|
||||
|
||||
**Design validation:**
|
||||
- `llms.json` embeds `latest_security_month[]` with CVE counts and IDs per version
|
||||
- `prev-security` links enable efficient backward traversal (skips non-security releases)
|
||||
- CVE severity embedded in month/patch indexes (no external fetch required)
|
||||
|
||||
### Category 3: CVE Deep Analysis
|
||||
|
||||
*Task: "I need details about specific vulnerabilities for compliance or remediation."*
|
||||
|
||||
| ID | Query | Target | Fetches |
|
||||
|----|-------|--------|---------|
|
||||
| C1 | What CVEs were fixed in the latest .NET X security patch, with severity and titles? | ≤40 KB | 2-3 |
|
||||
| C2 | List all HIGH+ severity CVEs in the last 6 months | ≤60 KB | 1+n |
|
||||
| C3 | What CVEs were disclosed in [month/year] with full details? | ≤35 KB | 2-3 |
|
||||
| C4 | Which products/components are affected by CVE-XXXX-XXXXX? | ≤20 KB | 2-3 |
|
||||
| C5 | What are the fix commits for CVE-XXXX-XXXXX? | ≤20 KB | 2-3 |
|
||||
| C6 | Is runtime version X.Y.Z vulnerable to any known CVEs? | ≤20 KB | 2-3 |
|
||||
|
||||
**Design validation:**
|
||||
- `_embedded.disclosures[]` in patch/month indexes contains severity, title, affected products, fix commits
|
||||
- `cve.json` provides deep details (CVSS vectors, CWE, version ranges) when needed
|
||||
- Pre-computed lookup dictionaries in `cve.json` (`product_cves`, `severity_cves`, `package_cves`)
|
||||
|
||||
### Category 4: Breaking Changes for Upgrade
|
||||
|
||||
*Task: "What will break when I upgrade my app to .NET X?"*
|
||||
|
||||
| ID | Query | Target | Fetches |
|
||||
|----|-------|--------|---------|
|
||||
| B1 | How many breaking changes are in .NET X by category? | ≤160 KB | 2-3 |
|
||||
| B2 | What breaking changes affect [category] (e.g., ASP.NET Core, SDK)? | ≤160 KB | 2-3 |
|
||||
| B3 | Get documentation URLs for breaking changes in [category] | ≤160 KB | 2-3 |
|
||||
|
||||
**Design validation:**
|
||||
- `compatibility.json` linked from major version index (not embedded—large payload, infrequent access)
|
||||
- Pre-computed rollups: `categories`, `impact_breakdown`, `type_breakdown`
|
||||
- `references[]` includes `documentation-source` type for raw markdown URLs (LLM-friendly)
|
||||
|
||||
### Category 5: Downloads
|
||||
|
||||
*Task: "What do I download?"*
|
||||
|
||||
| ID | Query | Target | Fetches |
|
||||
|----|-------|--------|---------|
|
||||
| D1 | Where do I download the latest .NET X SDK? | ≤15 KB | 2 |
|
||||
| D2 | What are the evergreen (aka.ms) download links for .NET X? | ≤15 KB | 2-3 |
|
||||
|
||||
**Design validation:**
|
||||
- `manifest.json` links to `downloads-rendered` (dotnet.microsoft.com)
|
||||
- `sdk/index.json` provides evergreen `aka.ms` links per feature band
|
||||
|
||||
### Category 6: Linux Deployment
|
||||
|
||||
*Task: "Is my distro supported? What packages do I need to install?"*
|
||||
|
||||
These queries integrate with the local system, using `/etc/os-release` to identify the distro.
|
||||
|
||||
| ID | Query | Target | Fetches |
|
||||
|----|-------|--------|---------|
|
||||
| X1 | Is my Linux distro supported for .NET X? | ≤20 KB | 2-3 |
|
||||
| X2 | Generate an `apt-get install` command for .NET X dependencies on my system | ≤35 KB | 3-4 |
|
||||
| X3 | Is my libc new enough for the latest .NET? | ≤35 KB | 3-4 |
|
||||
| X4 | Which .NET versions support my OS? | ≤60 KB | 4-6 |
|
||||
|
||||
**Example flow for X2:**
|
||||
|
||||
```bash
|
||||
# Step 1: Read local OS info
|
||||
source /etc/os-release
|
||||
# ID=ubuntu, VERSION_ID=24.04
|
||||
|
||||
# Step 2: Navigate to os-packages.json
|
||||
ROOT="https://raw.githubusercontent.com/dotnet/core/release-index/release-notes/index.json"
|
||||
VERSION_HREF=$(curl -s "$ROOT" | jq -r '._embedded.releases[] | select(.version == "10.0") | ._links.self.href')
|
||||
MANIFEST_HREF=$(curl -s "$VERSION_HREF" | jq -r '._links["release-manifest"].href')
|
||||
PACKAGES_HREF=$(curl -s "$MANIFEST_HREF" | jq -r '._links["os-packages-json"].href')
|
||||
|
||||
# Step 3: Generate install command for this distro
|
||||
curl -s "$PACKAGES_HREF" | jq -r --arg distro "$ID" --arg ver "$VERSION_ID" '
|
||||
.distributions[] | select(.name | ascii_downcase == $distro) |
|
||||
.releases[] | select(.release == $ver) |
|
||||
"sudo apt-get install -y " + ([.packages[].name] | join(" "))'
|
||||
# sudo apt-get install -y libc6 libgcc-s1 ca-certificates libssl3t64 libstdc++6 libicu74 tzdata libgssapi-krb5-2
|
||||
```
|
||||
|
||||
**Example flow for X4:**
|
||||
|
||||
```bash
|
||||
# Step 1: Get local glibc version
|
||||
GLIBC_VERSION=$(ldd --version 2>&1 | head -1 | grep -oP '\d+\.\d+' | tail -1)
|
||||
# 2.23 (Ubuntu 16.04)
|
||||
|
||||
# Step 2: Check each supported .NET version's libc requirement
|
||||
for VERSION in 10.0 9.0 8.0; do
|
||||
REQUIRED=$(curl -s "https://raw.githubusercontent.com/dotnet/core/release-index/release-notes/$VERSION/supported-os.json" | \
|
||||
jq -r '.libc[] | select(.name == "glibc") | select(.architectures | index("x64")) | .version')
|
||||
|
||||
if [ "$(printf '%s\n' "$REQUIRED" "$GLIBC_VERSION" | sort -V | head -1)" = "$REQUIRED" ]; then
|
||||
echo ".NET $VERSION: ✅ Supported (requires glibc $REQUIRED)"
|
||||
else
|
||||
echo ".NET $VERSION: ❌ Not supported (requires glibc $REQUIRED)"
|
||||
fi
|
||||
done
|
||||
# .NET 10.0: ❌ Not supported (requires glibc 2.27)
|
||||
# .NET 9.0: ✅ Supported (requires glibc 2.23)
|
||||
# .NET 8.0: ✅ Supported (requires glibc 2.23)
|
||||
```
|
||||
|
||||
**Design validation:**
|
||||
- `supported-os.json` lists supported distros with version ranges
|
||||
- `supported-os.json` includes `libc[]` with minimum version per architecture
|
||||
- `os-packages.json` provides distro-specific package names (vary by distro: `libssl3t64` on Ubuntu 24.04 vs `openssl-libs` on RHEL)
|
||||
- Package names are the actual names in distro repos, not generic placeholders
|
||||
- Supports container Dockerfiles, CI/CD scripts, bare-metal deployment
|
||||
|
||||
### Category 7: SDK Feature Bands
|
||||
|
||||
*Task: "Which SDK should I use? Is my SDK still supported?"*
|
||||
|
||||
| ID | Query | Target | Fetches |
|
||||
|----|-------|--------|---------|
|
||||
| S1 | What SDK feature bands are available for .NET X? | ≤10 KB | 2 |
|
||||
| S2 | Is SDK feature band X.Y.Zxx still supported? | ≤10 KB | 2 |
|
||||
| S3 | What's the latest SDK in the 9.0.1xx feature band? | ≤10 KB | 2 |
|
||||
|
||||
**Design validation:**
|
||||
- `sdk/index.json` lists all feature bands with `support_phase`
|
||||
- Each band has `latest` version and links to downloads
|
||||
- Supports VS-integrated (1xx) vs standalone (3xx) SDK selection
|
||||
|
||||
### Category 8: TFM Selection for Upgrade
|
||||
|
||||
*Task: "What TFM should I target? How does platform versioning change?"*
|
||||
|
||||
| ID | Query | Target | Fetches |
|
||||
|----|-------|--------|---------|
|
||||
| T1 | What TFMs does .NET X support? | ≤25 KB | 2-3 |
|
||||
| T2 | What Android/iOS platform version does .NET X target? | ≤25 KB | 2-3 |
|
||||
| T3 | How has the Android TFM platform version changed across .NET versions? | ≤60 KB | 4-6 |
|
||||
|
||||
**Design validation:**
|
||||
- `target-frameworks.json` linked from major version index
|
||||
- TFM entries include `platform_version` for mobile platforms
|
||||
- Enables cross-version comparison for upgrade planning
|
||||
|
||||
### Category 9: Project Health Check (Hybrid)
|
||||
|
||||
*Task: "Is my project's .NET environment current, supported, and secure?"*
|
||||
|
||||
This category combines local system inspection with graph queries to provide a holistic assessment. It's intended for AI assistants and developer tooling that can read local files and execute commands.
|
||||
|
||||
| ID | Query | Target | Fetches |
|
||||
|----|-------|--------|---------|
|
||||
| H1 | Is the TFM in my `.csproj` still supported? | ≤10 KB | 1-2 |
|
||||
| H2 | Are any of my installed SDKs (`dotnet --list-sdks`) EOL or vulnerable? | ≤50 KB | 2-4 |
|
||||
| H3 | Are any of my installed runtimes (`dotnet --list-runtimes`) EOL or vulnerable? | ≤50 KB | 2-4 |
|
||||
| H4 | Are any `Microsoft.*` or `System.*` packages in my project affected by CVEs in the last 12 months? | ≤120 KB | 6-12 |
|
||||
|
||||
**Example flow for H1:**
|
||||
|
||||
```bash
|
||||
# Step 1: Extract TFM from csproj
|
||||
TFM=$(grep -oP '(?<=<TargetFramework>)[^<]+' MyProject.csproj)
|
||||
# net8.0
|
||||
|
||||
# Step 2: Parse major version
|
||||
VERSION=$(echo "$TFM" | grep -oP '\d+\.\d+')
|
||||
# 8.0
|
||||
|
||||
# Step 3: Check support status
|
||||
curl -s "https://raw.githubusercontent.com/dotnet/core/release-index/release-notes/index.json" | \
|
||||
jq -r --arg v "$VERSION" '._embedded.releases[] | select(.version == $v) |
|
||||
"Version: \(.version), Supported: \(.supported), EOL: \(.eol_date)"'
|
||||
# Version: 8.0, Supported: true, EOL: 2026-11-10T00:00:00+00:00
|
||||
```
|
||||
|
||||
**Example flow for H4:**
|
||||
|
||||
```bash
|
||||
# Step 1: Extract package references from csproj
|
||||
PACKAGES=$(grep -oP '(?<=PackageReference Include=")[^"]+' MyProject.csproj | grep -E '^(Microsoft|System)\.')
|
||||
|
||||
# Step 2: Walk last 12 security months via prev-security links
|
||||
# Step 3: For each month, check _embedded.disclosures[].affected_packages against $PACKAGES
|
||||
# Step 4: Report any matches with CVE ID, severity, and fixed version
|
||||
```
|
||||
|
||||
**Design validation:**
|
||||
- Root index provides support status for TFM version check
|
||||
- `prev-security` chain enables efficient 12-month CVE scan
|
||||
- `cve.json` contains `package_cves` lookup dictionary for package-level queries
|
||||
- Combines multiple simpler queries into actionable security assessment
|
||||
|
||||
## Technical Assumptions
|
||||
|
||||
These assumptions underlie the design. If an assumption is incorrect, the design may need revision.
|
||||
|
||||
### A1: CDN caching is critical for production scenarios
|
||||
|
||||
**Assumption:** The release metadata files are served via CDN and cache coherency across files with different TTLs causes production issues.
|
||||
|
||||
**Evidence:** The releases-index requires updating the root file ~30x/year, making aggressive caching impractical. Version-specific changes (EOL date corrections, metadata fixes) propagate to the root file. See [dotnet/core#9200](https://github.com/dotnet/core/issues/9200), [dotnet/core#10082](https://github.com/dotnet/core/issues/10082).
|
||||
|
||||
**Design response:** The hal-index root file updates ~1x/year (only for new major versions). Version-specific metadata is isolated to version files. The `_embedded` pattern ensures each file is a consistent snapshot. Rule: **the root `index.json` is never touched for version-specific changes**.
|
||||
|
||||
### A2: Security queries are time-sensitive
|
||||
|
||||
**Assumption:** Security operations teams need to assess exposure within hours of Patch Tuesday. "Do I need to patch urgently?" is the most common question.
|
||||
|
||||
**Evidence:** Patch Tuesday releases drive file updates. CVE severity determines urgency. Teams need to filter by severity without fetching external data.
|
||||
|
||||
**Design response:** CVE details (severity, title, affected versions, fix commits) embedded in index files. `prev-security` links enable efficient traversal. Severity filtering doesn't require external fetches.
|
||||
|
||||
### A3: AI assistants are important but secondary
|
||||
|
||||
**Assumption:** AI assistants will frequently query this data, but their needs should not compromise cache coherency for mission-critical cloud-native scenarios.
|
||||
|
||||
**Evidence:** LLMs benefit from embedded shortcuts and pre-computed results. They tolerate more frequent updates than CDN-cached production tooling.
|
||||
|
||||
**Design response:** `llms.json` provides an AI-optimized entry point with embedded shortcuts (`latest_patches[]`, `latest_security_month[]`). It can be updated more frequently (~12+/year) without impacting the hal-index root. The hal-index maintains strict update discipline; `llms.json` trades stability for convenience.
|
||||
|
||||
### A4: Breaking changes and TFMs are upgrade-time concerns
|
||||
|
||||
**Assumption:** Breaking changes and TFM data are accessed during upgrade planning, not routine operations. They can tolerate larger payloads and more fetches.
|
||||
|
||||
**Evidence:** Developers consult breaking changes when planning major version upgrades (1-2x/year per app). TFM selection happens at project creation or upgrade.
|
||||
|
||||
**Design response:** `compatibility.json` and `target-frameworks.json` are linked from version index, not embedded. This keeps the version index small for routine queries while providing rich data for upgrade planning.
|
||||
|
||||
### A5: snake_case enables better query ergonomics
|
||||
|
||||
**Assumption:** Property naming affects query complexity. `snake_case` enables dot notation; `kebab-case` requires bracket notation.
|
||||
|
||||
**Evidence:** Compare `.supported` vs `["support-phase"]` in jq. The hal-index query is 30% shorter for equivalent operations.
|
||||
|
||||
**Design response:** All hal-index properties use `snake_case`. Link relations use `kebab-case` (HAL convention) but are accessed via `._links["..."].href` regardless.
|
||||
|
||||
## Acceptance Testing
|
||||
|
||||
### Two Optimal Paths
|
||||
|
||||
Each query has two optimal paths reflecting the two consumption modes:
|
||||
|
||||
1. **Cloud-native path** — Starts from `index.json` or `timeline/index.json`. This is the primary test validating the overall schema design. These entry points update ~1x/year, enabling aggressive CDN caching.
|
||||
|
||||
2. **LLM path** — Starts from `llms.json`. This path must demonstrate measurable improvement over the cloud-native path to justify the existence of `llms.json` (which updates ~12x/year).
|
||||
|
||||
For each query, we document both paths. The cloud-native path validates the schema; the LLM path validates the optimization.
|
||||
|
||||
### Test Format
|
||||
|
||||
```
|
||||
Query ID: [from tables above]
|
||||
Query: [natural language]
|
||||
|
||||
Cloud-native path:
|
||||
Entry point: [index.json | timeline/index.json]
|
||||
Navigation:
|
||||
1. [file] ([size]) → [action]
|
||||
2. [file] ([size]) → [action]
|
||||
Fetches: [N]
|
||||
Transfer: [X KB]
|
||||
|
||||
LLM path:
|
||||
Entry point: llms.json
|
||||
Navigation:
|
||||
1. [file] ([size]) → [action]
|
||||
2. [file] ([size]) → [action]
|
||||
Fetches: [N]
|
||||
Transfer: [X KB]
|
||||
Improvement: [savings vs cloud-native, or "none"]
|
||||
```
|
||||
|
||||
### Scoring
|
||||
|
||||
**Schema validation (cloud-native path):**
|
||||
- The documented path *is* the target — it represents the optimal traversal
|
||||
- Any implementation that exceeds the documented fetch count or transfer size is suboptimal
|
||||
|
||||
**LLM optimization validation:**
|
||||
- `llms.json` must show improvement on at least 50% of Category 1-3 queries
|
||||
- Improvement means fewer fetches OR significantly less transfer (>30% reduction)
|
||||
- If `llms.json` shows no improvement for a query, the cloud-native path is preferred
|
||||
|
||||
**LLM benchmarking:**
|
||||
- Full credit: Matches optimal path (correct entry point, correct navigation, no URL construction)
|
||||
- Partial credit: Correct answer via suboptimal path (extra fetches or wrong entry point)
|
||||
- Zero credit: Wrong answer, URL construction, or hallucinated data
|
||||
|
||||
### Example: L1 — Latest Patch for .NET X
|
||||
|
||||
```
|
||||
Query ID: L1
|
||||
Query: "What is the latest patch for .NET 9?"
|
||||
|
||||
Cloud-native path:
|
||||
Entry point: index.json
|
||||
Navigation:
|
||||
1. index.json (5 KB) → follow _embedded.releases[] where version == "9.0" → ._links.self.href
|
||||
2. 9.0/index.json (20 KB) → read .latest field → "9.0.11"
|
||||
Fetches: 2
|
||||
Transfer: 25 KB
|
||||
|
||||
LLM path:
|
||||
Entry point: llms.json
|
||||
Navigation:
|
||||
1. llms.json (5 KB) → filter _embedded.latest_patches[] by release == "9.0" → read .version
|
||||
Fetches: 1
|
||||
Transfer: 5 KB
|
||||
Improvement: 1 fewer fetch, 80% less transfer
|
||||
```
|
||||
|
||||
### Example: M3 — Critical CVE This Month
|
||||
|
||||
```
|
||||
Query ID: M3
|
||||
Query: "Is there a CRITICAL severity CVE this month?"
|
||||
|
||||
Cloud-native path:
|
||||
Entry point: timeline/index.json
|
||||
Navigation:
|
||||
1. timeline/index.json (4 KB) → follow _embedded.years[0]._links["latest-security-month"].href
|
||||
2. timeline/2025/10/index.json (9 KB) → filter _embedded.disclosures[] by cvss_severity == "CRITICAL"
|
||||
Fetches: 2
|
||||
Transfer: 13 KB
|
||||
|
||||
LLM path:
|
||||
Entry point: llms.json
|
||||
Navigation:
|
||||
1. llms.json (5 KB) → follow _links["latest-security-month"].href
|
||||
2. timeline/2025/10/index.json (9 KB) → filter _embedded.disclosures[] by cvss_severity == "CRITICAL"
|
||||
Fetches: 2
|
||||
Transfer: 14 KB
|
||||
Improvement: none (cloud-native path is 1 KB smaller)
|
||||
```
|
||||
|
||||
### Example: C2 — HIGH+ CVEs Over 6 Months
|
||||
|
||||
```
|
||||
Query ID: C2
|
||||
Query: "List all HIGH+ severity CVEs in the last 6 months"
|
||||
|
||||
Cloud-native path:
|
||||
Entry point: timeline/index.json
|
||||
Navigation:
|
||||
1. timeline/index.json (4 KB) → follow _embedded.years[0]._links["latest-security-month"].href
|
||||
2. timeline/2025/10/index.json (9 KB) → filter, then follow _links["prev-security"].href
|
||||
3-6. Repeat for 5 more security months (~9 KB each)
|
||||
Fetches: 7
|
||||
Transfer: ~58 KB
|
||||
|
||||
LLM path:
|
||||
Entry point: llms.json
|
||||
Navigation:
|
||||
1. llms.json (5 KB) → follow _links["latest-security-month"].href
|
||||
2-6. timeline months via prev-security (~9 KB each)
|
||||
Fetches: 6
|
||||
Transfer: ~50 KB
|
||||
Improvement: 1 fewer fetch, 14% less transfer
|
||||
```
|
||||
|
||||
## Results Summary
|
||||
|
||||
These results validate the schema design and demonstrate where each entry point provides value.
|
||||
|
||||
### Two Design Points
|
||||
|
||||
The schema provides two entry points that represent fundamentally different design philosophies:
|
||||
|
||||
| | `index.json` | `llms.json` |
|
||||
|---|---|---|
|
||||
| **Design point** | High cacheability / low change | Embedded query results for "now" |
|
||||
| **Update frequency** | ~1x/year (new major version only) | ~12x/year (each patch Tuesday) |
|
||||
| **Optimal for** | CDN-cached cloud-native tooling | AI assistants, interactive queries |
|
||||
| **Failure mode** | Any monthly-changing value destroys cacheability | Missing data forces extra fetches |
|
||||
|
||||
Each file fully embraces its design point:
|
||||
|
||||
- **`index.json` (4.7 KB)** — Contains only data that changes ~1x/year. No patch versions, no CVE counts, no monthly data. A single monthly-changing field would force CDN TTL down to hours/days, destroying the value prop for all consumers.
|
||||
|
||||
- **`llms.json` (7.1 KB)** — Embeds everything an LLM needs for "current state" queries: latest patches, support status, EOL dates, CVE summaries, and navigation links. If an LLM has to make a second fetch for common data, you've paid the 7 KB cost without getting the benefit.
|
||||
|
||||
The `llms.json` file embeds two curated arrays:
|
||||
- `latest_patches[]` — "What's current?" (patch versions, support status, EOL dates, navigation links)
|
||||
- `latest_security_month[]` — "What's urgent?" (CVE counts, CVE IDs per version)
|
||||
|
||||
Each `latest_patches[]` object includes `release-major` and `latest-sdk` links for direct navigation to version-specific resources. These links are stable (keyed by major version, change ~1x/year).
|
||||
|
||||
### Category 1: Patch Currency and Lifecycle
|
||||
|
||||
| ID | Query | Cloud-native | LLM | Winner | Notes |
|
||||
|----|-------|--------------|-----|--------|-------|
|
||||
| L1 | Latest patch for .NET X | 2 fetches, 24.3 KB | 1 fetch, 7.1 KB | LLM | 71% less transfer |
|
||||
| L2 | Is .NET X supported? EOL? | 1 fetch, 4.7 KB | 1 fetch, 7.1 KB | Cloud | Both answer in 1 fetch |
|
||||
| L3 | What versions are supported? | 1 fetch, 4.7 KB | 1 fetch, 7.1 KB | Cloud | Both answer in 1 fetch |
|
||||
|
||||
*L2/L3: Cloud-native transfers less per query, but LLM path amortizes — a single `llms.json` fetch answers L1, L2, L3, and M1.*
|
||||
|
||||
### Category 2: Security Patch Motivation
|
||||
|
||||
| ID | Query | Cloud-native | LLM | Winner | LLM Improvement |
|
||||
|----|-------|--------------|-----|--------|-----------------|
|
||||
| M1 | CVEs in latest security patch | 3 fetches, 35.9 KB | 1 fetch, 7.1 KB | LLM | 80% less transfer |
|
||||
| M2 | CVEs since [date] | 5 fetches, 35.9 KB | 4 fetches, 31.2 KB | LLM | 13% less transfer |
|
||||
| M3 | CRITICAL CVE this month? | 3 fetches, 24.6 KB | 2 fetches, 15.7 KB | LLM | 36% less transfer |
|
||||
|
||||
### Category 3: CVE Deep Analysis
|
||||
|
||||
| ID | Query | Cloud-native | LLM | Winner | LLM Improvement |
|
||||
|----|-------|--------------|-----|--------|-----------------|
|
||||
| C1 | CVEs with severity/titles | 3 fetches, 35.9 KB | 2 fetches, 15.7 KB | LLM | 56% less transfer |
|
||||
| C2 | HIGH+ CVEs last 6 months | 8 fetches, 54.8 KB | 7 fetches, 45.9 KB | LLM | 16% less transfer |
|
||||
| C3 | CVEs in [month] with details | 4 fetches, 38.1 KB | 8 fetches, 57.4 KB | Cloud | (historical lookup) |
|
||||
| C4 | Products affected by CVE | 3 fetches, 24.6 KB | 2 fetches, 15.7 KB | LLM | 36% less transfer |
|
||||
| C5 | Fix commits for CVE | 3 fetches, 24.6 KB | 2 fetches, 15.7 KB | LLM | 36% less transfer |
|
||||
| C6 | Is version X vulnerable? | 4 fetches, 43.1 KB | 3 fetches, 34.2 KB | LLM | 21% less transfer |
|
||||
|
||||
### Category 4: Breaking Changes
|
||||
|
||||
| ID | Query | Cloud-native | LLM | Winner | LLM Improvement |
|
||||
|----|-------|--------------|-----|--------|-----------------|
|
||||
| B1 | Breaking changes by category | 3 fetches, 151.1 KB | 2 fetches, 153.6 KB | Cloud | 1 fewer fetch |
|
||||
| B2 | Breaking changes for [category] | 3 fetches, 151.1 KB | 2 fetches, 153.6 KB | Cloud | 1 fewer fetch |
|
||||
| B3 | Doc URLs for [category] | 3 fetches, 151.1 KB | 2 fetches, 153.6 KB | Cloud | 1 fewer fetch |
|
||||
|
||||
*LLM path uses `release-major` link to skip `index.json`, but `llms.json` is 2.4 KB larger.*
|
||||
|
||||
### Category 5: Downloads
|
||||
|
||||
| ID | Query | Cloud-native | LLM | Winner | LLM Improvement |
|
||||
|----|-------|--------------|-----|--------|-----------------|
|
||||
| D1 | Download latest SDK | 3 fetches, 26.4 KB | 2 fetches, 8.8 KB | LLM | 67% less transfer |
|
||||
| D2 | Evergreen aka.ms links | 4 fetches, 34.5 KB | 2 fetches, 8.8 KB | LLM | 74% less transfer |
|
||||
|
||||
*LLM path uses `latest-sdk` link: llms.json (7.1 KB) → sdk/index.json (1.7 KB)*
|
||||
|
||||
### Category 6: Linux Deployment
|
||||
|
||||
| ID | Query | Cloud-native | LLM | Winner | LLM Improvement |
|
||||
|----|-------|--------------|-----|--------|-----------------|
|
||||
| X1 | Is distro supported? | 3 fetches, 30.1 KB | 2 fetches, 27.9 KB | LLM | 7% less transfer |
|
||||
| X2 | apt-get install command | 4 fetches, 52.3 KB | 3 fetches, 50.3 KB | LLM | 4% less transfer |
|
||||
| X3 | Is libc new enough? | 3 fetches, 20.7 KB | 2 fetches, 18.5 KB | LLM | 11% less transfer |
|
||||
| X4 | Which .NET versions support my OS? | 6 fetches, 64.6 KB | 4 fetches, 46.0 KB | LLM | 29% less transfer |
|
||||
|
||||
*LLM path uses `release-major` link to navigate directly to each version's `supported-os.json`.*
|
||||
|
||||
### Category 7: SDK Feature Bands
|
||||
|
||||
| ID | Query | Cloud-native | LLM | Winner | LLM Improvement |
|
||||
|----|-------|--------------|-----|--------|-----------------|
|
||||
| S1 | SDK feature bands for .NET X | 3 fetches, 27.5 KB | 2 fetches, 10.5 KB | LLM | 62% less transfer |
|
||||
| S2 | Is SDK band supported? | 3 fetches, 27.5 KB | 2 fetches, 10.5 KB | LLM | 62% less transfer |
|
||||
| S3 | Latest SDK in band | 3 fetches, 27.5 KB | 2 fetches, 10.5 KB | LLM | 62% less transfer |
|
||||
|
||||
*LLM path uses `latest-sdk` link: llms.json (7.1 KB) → sdk/index.json (3.4 KB for 9.0)*
|
||||
|
||||
### Category 8: TFM Selection
|
||||
|
||||
| ID | Query | Cloud-native | LLM | Winner | LLM Improvement |
|
||||
|----|-------|--------------|-----|--------|-----------------|
|
||||
| T1 | TFMs for .NET X | 3 fetches, 26.0 KB | 2 fetches, 18.7 KB | LLM | 28% less transfer |
|
||||
| T2 | Android/iOS platform version | 3 fetches, 26.0 KB | 2 fetches, 18.7 KB | LLM | 28% less transfer |
|
||||
| T3 | Android TFM progression | 7 fetches, 61.2 KB | 5 fetches, 41.2 KB | LLM | 33% less transfer |
|
||||
|
||||
*LLM path uses `release-major` link to navigate directly to each version's `target-frameworks.json`.*
|
||||
|
||||
### Category 9: Project Health Check
|
||||
|
||||
| ID | Query | Cloud-native | LLM | Winner | Notes |
|
||||
|----|-------|--------------|-----|--------|-------|
|
||||
| H1 | Is TFM supported? | 1 fetch, 4.7 KB | 1 fetch, 7.1 KB | Cloud | Both answer in 1 fetch |
|
||||
| H2 | Are installed SDKs vulnerable? | 2 fetches, 24.1 KB | 2 fetches, 26.6 KB | Cloud | Same fetches, cloud smaller |
|
||||
| H3 | Are installed runtimes vulnerable? | 2 fetches, 24.1 KB | 2 fetches, 26.6 KB | Cloud | Same fetches, cloud smaller |
|
||||
| H4 | Package CVEs in last 12 months | 13 fetches, 84.1 KB | 13 fetches, 86.3 KB | Cloud | Same fetches, cloud smaller |
|
||||
|
||||
*Health check queries start from a known version (from csproj or `dotnet` CLI), so `index.json` (4.7 KB) is more efficient than `llms.json` (7.1 KB). No discovery needed.*
|
||||
|
||||
### Summary
|
||||
|
||||
**Schema validation:** All 31 queries are answerable via the cloud-native path with reasonable efficiency (1-13 fetches, 4.7-151 KB).
|
||||
|
||||
**LLM optimization validation:** `llms.json` improves 21 of 31 queries (68%) by either embedding data directly or providing navigation shortcuts. The file fully embraces its design point of "embedded query results for now."
|
||||
|
||||
**Where `llms.json` wins (21 queries):**
|
||||
- L1: Latest patch (71% less transfer)
|
||||
- M1-M3: Security queries (13-80% less transfer)
|
||||
- C1-C2, C4-C6: CVE analysis (16-56% less transfer)
|
||||
- D1-D2: Downloads (67-74% less transfer)
|
||||
- X1-X4: Linux deployment (4-29% less transfer)
|
||||
- S1-S3: SDK feature bands (62% less transfer)
|
||||
- T1-T3: TFM selection (28-33% less transfer)
|
||||
|
||||
**Where cloud-native wins (10 queries):**
|
||||
- L2-L3: Support status queries (both answer in 1 fetch, but `index.json` is smaller)
|
||||
- B1-B3: Breaking changes (LLM saves a fetch but transfers 2.5 KB more)
|
||||
- C3: Historical CVE lookup (requires timeline traversal)
|
||||
- H1-H4: Health checks (start from known version, no discovery needed)
|
||||
|
||||
**Key insight:** The two entry points serve different purposes and both fully embrace their design points:
|
||||
- `index.json` wins when you need minimal data that rarely changes, or when you already know your version
|
||||
- `llms.json` wins when you need current-state answers or version discovery, and amortizes across multiple queries
|
||||
|
||||
The 10 cloud-native wins fall into clear categories: root-only queries (L2-L3, H1), historical queries (C3), large payloads where entry point overhead is noise (B1-B3), and known-version queries (H2-H4).
|
||||
|
||||
## Comparison Baseline
|
||||
|
||||
While primary targets are absolute, comparison to releases-index provides context for improvement magnitude.
|
||||
|
||||
| Query Type | hal-index | releases-index | Notes |
|
||||
|------------|-----------|----------------|-------|
|
||||
| Supported versions (L3) | 4.6 KB | 6 KB | 23% smaller |
|
||||
| CVEs for latest patch (M1) | 4.9 KB | 1,240 KB | 253x smaller |
|
||||
| CVEs for last 6 months (C2) | 43.7 KB | 2,400 KB | 55x smaller |
|
||||
| Critical CVEs this month (M3) | 13.5 KB | N/A | releases-index lacks severity |
|
||||
| Breaking changes (B1) | ~160 KB | N/A | releases-index lacks data |
|
||||
| TFM platform versions (T2) | ~25 KB | N/A | releases-index lacks data |
|
||||
|
||||
"N/A" indicates the releases-index cannot answer the query.
|
||||
|
||||
## Non-Goals
|
||||
|
||||
The following are explicitly not acceptance criteria:
|
||||
|
||||
1. **Backward compatibility with releases-index** — This is a parallel schema, not a migration. Tools using releases-index continue to work.
|
||||
|
||||
2. **Optimal ergonomics for all queries** — Category 5-9 queries may require more complex navigation. The schema optimizes for Categories 1-3.
|
||||
|
||||
3. **Minimal file count** — The design trades more files for smaller files and better cache isolation.
|
||||
|
||||
4. **Real-time CVE disclosure** — The schema is designed for Patch Tuesday cadence (~monthly), not real-time updates.
|
||||
|
||||
5. **LLM optimization at the expense of cache coherency** — `llms.json` provides AI shortcuts; the hal-index maintains strict discipline.
|
||||
|
||||
## Feedback Framework
|
||||
|
||||
When evaluating feedback on the design:
|
||||
|
||||
1. **Which consumer priority does the feedback serve?** Priority 1-2 feedback deserves more weight than Priority 4.
|
||||
|
||||
2. **Which query category does the feedback affect?** Category 1-3 feedback is more impactful than Category 4-5.
|
||||
|
||||
3. **Does the feedback challenge an assumption?** If an assumption is wrong, the design may need revision.
|
||||
|
||||
4. **Does the feedback propose a different tradeoff?** Tradeoffs are explicit; changing one affects others.
|
||||
|
||||
5. **Does the feedback require breaking cache coherency rules?** Such changes require strong justification.
|
||||
|
||||
Feedback that optimizes for AI assistants at the expense of cloud-native cache coherency contradicts the design's primary purpose.
|
||||
@@ -4,6 +4,7 @@
|
||||
"title": ".NET Release Timeline Index - 2016-06",
|
||||
"year": "2016",
|
||||
"month": "06",
|
||||
"date": "2016-06-27T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"latest_release": "1.0",
|
||||
"releases": [
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
"title": ".NET Release Timeline Index - 2016-09",
|
||||
"year": "2016",
|
||||
"month": "09",
|
||||
"date": "2016-09-13T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"latest_release": "1.0",
|
||||
"releases": [
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
"title": ".NET Release Timeline Index - 2016-10",
|
||||
"year": "2016",
|
||||
"month": "10",
|
||||
"date": "2016-10-17T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"latest_release": "1.0",
|
||||
"releases": [
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
"title": ".NET Release Timeline Index - 2016-11",
|
||||
"year": "2016",
|
||||
"month": "11",
|
||||
"date": "2016-11-16T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"latest_release": "1.1",
|
||||
"releases": [
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
"title": ".NET Release Timeline Index - 2016-12",
|
||||
"year": "2016",
|
||||
"month": "12",
|
||||
"date": "2016-12-13T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"latest_release": "1.0",
|
||||
"releases": [
|
||||
|
||||
@@ -30,6 +30,7 @@
|
||||
"months": [
|
||||
{
|
||||
"month": "06",
|
||||
"date": "2016-06-27T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"cve_count": 0,
|
||||
"latest_release": "1.0",
|
||||
@@ -47,6 +48,7 @@
|
||||
},
|
||||
{
|
||||
"month": "09",
|
||||
"date": "2016-09-13T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"cve_count": 0,
|
||||
"latest_release": "1.0",
|
||||
@@ -64,6 +66,7 @@
|
||||
},
|
||||
{
|
||||
"month": "10",
|
||||
"date": "2016-10-17T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"cve_count": 0,
|
||||
"latest_release": "1.0",
|
||||
@@ -81,6 +84,7 @@
|
||||
},
|
||||
{
|
||||
"month": "11",
|
||||
"date": "2016-11-16T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"cve_count": 0,
|
||||
"latest_release": "1.1",
|
||||
@@ -98,6 +102,7 @@
|
||||
},
|
||||
{
|
||||
"month": "12",
|
||||
"date": "2016-12-13T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"cve_count": 0,
|
||||
"latest_release": "1.0",
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
"title": ".NET Release Timeline Index - 2017-03",
|
||||
"year": "2017",
|
||||
"month": "03",
|
||||
"date": "2017-03-07T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"latest_release": "1.1",
|
||||
"releases": [
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
"title": ".NET Release Timeline Index - 2017-05",
|
||||
"year": "2017",
|
||||
"month": "05",
|
||||
"date": "2017-05-10T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"latest_release": "1.1",
|
||||
"releases": [
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
"title": ".NET Release Timeline Index - 2017-06",
|
||||
"year": "2017",
|
||||
"month": "06",
|
||||
"date": "2017-06-28T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"latest_release": "2.0",
|
||||
"releases": [
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
"title": ".NET Release Timeline Index - 2017-08",
|
||||
"year": "2017",
|
||||
"month": "08",
|
||||
"date": "2017-08-14T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"latest_release": "2.0",
|
||||
"releases": [
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
"title": ".NET Release Timeline Index - 2017-09",
|
||||
"year": "2017",
|
||||
"month": "09",
|
||||
"date": "2017-09-21T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"latest_release": "1.1",
|
||||
"releases": [
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
"title": ".NET Release Timeline Index - 2017-11",
|
||||
"year": "2017",
|
||||
"month": "11",
|
||||
"date": "2017-11-14T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"latest_release": "2.0",
|
||||
"releases": [
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
"title": ".NET Release Timeline Index - 2017-12",
|
||||
"year": "2017",
|
||||
"month": "12",
|
||||
"date": "2017-12-04T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"latest_release": "2.0",
|
||||
"releases": [
|
||||
|
||||
@@ -35,6 +35,7 @@
|
||||
"months": [
|
||||
{
|
||||
"month": "03",
|
||||
"date": "2017-03-07T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"cve_count": 0,
|
||||
"latest_release": "1.1",
|
||||
@@ -54,6 +55,7 @@
|
||||
},
|
||||
{
|
||||
"month": "05",
|
||||
"date": "2017-05-10T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"cve_count": 0,
|
||||
"latest_release": "1.1",
|
||||
@@ -75,6 +77,7 @@
|
||||
},
|
||||
{
|
||||
"month": "06",
|
||||
"date": "2017-06-28T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"cve_count": 0,
|
||||
"latest_release": "2.0",
|
||||
@@ -92,6 +95,7 @@
|
||||
},
|
||||
{
|
||||
"month": "08",
|
||||
"date": "2017-08-14T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"cve_count": 0,
|
||||
"latest_release": "2.0",
|
||||
@@ -109,6 +113,7 @@
|
||||
},
|
||||
{
|
||||
"month": "09",
|
||||
"date": "2017-09-21T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"cve_count": 0,
|
||||
"latest_release": "1.1",
|
||||
@@ -128,6 +133,7 @@
|
||||
},
|
||||
{
|
||||
"month": "11",
|
||||
"date": "2017-11-14T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"cve_count": 0,
|
||||
"latest_release": "2.0",
|
||||
@@ -149,6 +155,7 @@
|
||||
},
|
||||
{
|
||||
"month": "12",
|
||||
"date": "2017-12-04T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"cve_count": 0,
|
||||
"latest_release": "2.0",
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
"title": ".NET Release Timeline Index - 2018-01",
|
||||
"year": "2018",
|
||||
"month": "01",
|
||||
"date": "2018-01-09T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"latest_release": "2.0",
|
||||
"releases": [
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
"title": ".NET Release Timeline Index - 2018-02",
|
||||
"year": "2018",
|
||||
"month": "02",
|
||||
"date": "2018-02-27T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"latest_release": "2.1",
|
||||
"releases": [
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
"title": ".NET Release Timeline Index - 2018-03",
|
||||
"year": "2018",
|
||||
"month": "03",
|
||||
"date": "2018-03-22T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"latest_release": "2.0",
|
||||
"releases": [
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
"title": ".NET Release Timeline Index - 2018-04",
|
||||
"year": "2018",
|
||||
"month": "04",
|
||||
"date": "2018-04-17T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"latest_release": "2.0",
|
||||
"releases": [
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
"title": ".NET Release Timeline Index - 2018-05",
|
||||
"year": "2018",
|
||||
"month": "05",
|
||||
"date": "2018-05-30T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"latest_release": "2.1",
|
||||
"releases": [
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
"title": ".NET Release Timeline Index - 2018-06",
|
||||
"year": "2018",
|
||||
"month": "06",
|
||||
"date": "2018-06-19T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"latest_release": "2.1",
|
||||
"releases": [
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
"title": ".NET Release Timeline Index - 2018-07",
|
||||
"year": "2018",
|
||||
"month": "07",
|
||||
"date": "2018-07-10T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"latest_release": "2.1",
|
||||
"releases": [
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
"title": ".NET Release Timeline Index - 2018-08",
|
||||
"year": "2018",
|
||||
"month": "08",
|
||||
"date": "2018-08-22T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"latest_release": "2.1",
|
||||
"releases": [
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
"title": ".NET Release Timeline Index - 2018-09",
|
||||
"year": "2018",
|
||||
"month": "09",
|
||||
"date": "2018-09-12T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"latest_release": "2.1",
|
||||
"releases": [
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
"title": ".NET Release Timeline Index - 2018-10",
|
||||
"year": "2018",
|
||||
"month": "10",
|
||||
"date": "2018-10-17T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"latest_release": "2.1",
|
||||
"releases": [
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
"title": ".NET Release Timeline Index - 2018-11",
|
||||
"year": "2018",
|
||||
"month": "11",
|
||||
"date": "2018-11-13T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"latest_release": "2.1",
|
||||
"releases": [
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
"title": ".NET Release Timeline Index - 2018-12",
|
||||
"year": "2018",
|
||||
"month": "12",
|
||||
"date": "2018-12-11T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"latest_release": "2.2",
|
||||
"releases": [
|
||||
|
||||
@@ -38,6 +38,7 @@
|
||||
"months": [
|
||||
{
|
||||
"month": "01",
|
||||
"date": "2018-01-09T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"cve_count": 0,
|
||||
"latest_release": "2.0",
|
||||
@@ -59,6 +60,7 @@
|
||||
},
|
||||
{
|
||||
"month": "02",
|
||||
"date": "2018-02-27T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"cve_count": 0,
|
||||
"latest_release": "2.1",
|
||||
@@ -76,6 +78,7 @@
|
||||
},
|
||||
{
|
||||
"month": "03",
|
||||
"date": "2018-03-22T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"cve_count": 0,
|
||||
"latest_release": "2.0",
|
||||
@@ -100,6 +103,7 @@
|
||||
},
|
||||
{
|
||||
"month": "04",
|
||||
"date": "2018-04-17T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"cve_count": 0,
|
||||
"latest_release": "2.0",
|
||||
@@ -124,6 +128,7 @@
|
||||
},
|
||||
{
|
||||
"month": "05",
|
||||
"date": "2018-05-30T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"cve_count": 0,
|
||||
"latest_release": "2.1",
|
||||
@@ -145,6 +150,7 @@
|
||||
},
|
||||
{
|
||||
"month": "06",
|
||||
"date": "2018-06-19T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"cve_count": 0,
|
||||
"latest_release": "2.1",
|
||||
@@ -162,6 +168,7 @@
|
||||
},
|
||||
{
|
||||
"month": "07",
|
||||
"date": "2018-07-10T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"cve_count": 0,
|
||||
"latest_release": "2.1",
|
||||
@@ -185,6 +192,7 @@
|
||||
},
|
||||
{
|
||||
"month": "08",
|
||||
"date": "2018-08-22T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"cve_count": 0,
|
||||
"latest_release": "2.1",
|
||||
@@ -204,6 +212,7 @@
|
||||
},
|
||||
{
|
||||
"month": "09",
|
||||
"date": "2018-09-12T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"cve_count": 0,
|
||||
"latest_release": "2.1",
|
||||
@@ -223,6 +232,7 @@
|
||||
},
|
||||
{
|
||||
"month": "10",
|
||||
"date": "2018-10-17T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"cve_count": 0,
|
||||
"latest_release": "2.1",
|
||||
@@ -246,6 +256,7 @@
|
||||
},
|
||||
{
|
||||
"month": "11",
|
||||
"date": "2018-11-13T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"cve_count": 0,
|
||||
"latest_release": "2.1",
|
||||
@@ -263,6 +274,7 @@
|
||||
},
|
||||
{
|
||||
"month": "12",
|
||||
"date": "2018-12-11T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"cve_count": 0,
|
||||
"latest_release": "2.2",
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
"title": ".NET Release Timeline Index - 2019-01",
|
||||
"year": "2019",
|
||||
"month": "01",
|
||||
"date": "2019-01-29T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"latest_release": "2.2",
|
||||
"releases": [
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
"title": ".NET Release Timeline Index - 2019-02",
|
||||
"year": "2019",
|
||||
"month": "02",
|
||||
"date": "2019-02-12T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"latest_release": "2.2",
|
||||
"releases": [
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
"title": ".NET Release Timeline Index - 2019-03",
|
||||
"year": "2019",
|
||||
"month": "03",
|
||||
"date": "2019-03-12T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"latest_release": "2.2",
|
||||
"releases": [
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
"title": ".NET Release Timeline Index - 2019-04",
|
||||
"year": "2019",
|
||||
"month": "04",
|
||||
"date": "2019-04-18T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"latest_release": "2.2",
|
||||
"releases": [
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
"title": ".NET Release Timeline Index - 2019-05",
|
||||
"year": "2019",
|
||||
"month": "05",
|
||||
"date": "2019-05-21T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"latest_release": "2.2",
|
||||
"releases": [
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
"title": ".NET Release Timeline Index - 2019-06",
|
||||
"year": "2019",
|
||||
"month": "06",
|
||||
"date": "2019-06-12T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"latest_release": "3.0",
|
||||
"releases": [
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
"title": ".NET Release Timeline Index - 2019-07",
|
||||
"year": "2019",
|
||||
"month": "07",
|
||||
"date": "2019-07-24T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"latest_release": "2.2",
|
||||
"releases": [
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
"title": ".NET Release Timeline Index - 2019-08",
|
||||
"year": "2019",
|
||||
"month": "08",
|
||||
"date": "2019-08-13T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"latest_release": "3.0",
|
||||
"releases": [
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
"title": ".NET Release Timeline Index - 2019-09",
|
||||
"year": "2019",
|
||||
"month": "09",
|
||||
"date": "2019-09-23T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"latest_release": "3.0",
|
||||
"releases": [
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
"title": ".NET Release Timeline Index - 2019-10",
|
||||
"year": "2019",
|
||||
"month": "10",
|
||||
"date": "2019-10-15T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"latest_release": "3.1",
|
||||
"releases": [
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
"title": ".NET Release Timeline Index - 2019-11",
|
||||
"year": "2019",
|
||||
"month": "11",
|
||||
"date": "2019-11-19T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"latest_release": "3.0",
|
||||
"releases": [
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
"title": ".NET Release Timeline Index - 2019-12",
|
||||
"year": "2019",
|
||||
"month": "12",
|
||||
"date": "2019-12-03T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"latest_release": "3.1",
|
||||
"releases": [
|
||||
|
||||
@@ -38,6 +38,7 @@
|
||||
"months": [
|
||||
{
|
||||
"month": "01",
|
||||
"date": "2019-01-29T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"cve_count": 0,
|
||||
"latest_release": "2.2",
|
||||
@@ -60,6 +61,7 @@
|
||||
},
|
||||
{
|
||||
"month": "02",
|
||||
"date": "2019-02-12T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"cve_count": 0,
|
||||
"latest_release": "2.2",
|
||||
@@ -83,6 +85,7 @@
|
||||
},
|
||||
{
|
||||
"month": "03",
|
||||
"date": "2019-03-12T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"cve_count": 0,
|
||||
"latest_release": "2.2",
|
||||
@@ -108,6 +111,7 @@
|
||||
},
|
||||
{
|
||||
"month": "04",
|
||||
"date": "2019-04-18T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"cve_count": 0,
|
||||
"latest_release": "2.2",
|
||||
@@ -131,6 +135,7 @@
|
||||
},
|
||||
{
|
||||
"month": "05",
|
||||
"date": "2019-05-21T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"cve_count": 0,
|
||||
"latest_release": "2.2",
|
||||
@@ -156,6 +161,7 @@
|
||||
},
|
||||
{
|
||||
"month": "06",
|
||||
"date": "2019-06-12T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"cve_count": 0,
|
||||
"latest_release": "3.0",
|
||||
@@ -173,6 +179,7 @@
|
||||
},
|
||||
{
|
||||
"month": "07",
|
||||
"date": "2019-07-24T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"cve_count": 0,
|
||||
"latest_release": "2.2",
|
||||
@@ -194,6 +201,7 @@
|
||||
},
|
||||
{
|
||||
"month": "08",
|
||||
"date": "2019-08-13T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"cve_count": 0,
|
||||
"latest_release": "3.0",
|
||||
@@ -211,6 +219,7 @@
|
||||
},
|
||||
{
|
||||
"month": "09",
|
||||
"date": "2019-09-23T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"cve_count": 0,
|
||||
"latest_release": "3.0",
|
||||
@@ -234,6 +243,7 @@
|
||||
},
|
||||
{
|
||||
"month": "10",
|
||||
"date": "2019-10-15T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"cve_count": 0,
|
||||
"latest_release": "3.1",
|
||||
@@ -251,6 +261,7 @@
|
||||
},
|
||||
{
|
||||
"month": "11",
|
||||
"date": "2019-11-19T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"cve_count": 0,
|
||||
"latest_release": "3.0",
|
||||
@@ -275,6 +286,7 @@
|
||||
},
|
||||
{
|
||||
"month": "12",
|
||||
"date": "2019-12-03T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"cve_count": 0,
|
||||
"latest_release": "3.1",
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
"title": ".NET Release Timeline Index - 2020-01",
|
||||
"year": "2020",
|
||||
"month": "01",
|
||||
"date": "2020-01-14T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"latest_release": "3.1",
|
||||
"releases": [
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
"title": ".NET Release Timeline Index - 2020-02",
|
||||
"year": "2020",
|
||||
"month": "02",
|
||||
"date": "2020-02-18T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"latest_release": "3.0",
|
||||
"releases": [
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
"title": ".NET Release Timeline Index - 2020-03",
|
||||
"year": "2020",
|
||||
"month": "03",
|
||||
"date": "2020-03-24T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"latest_release": "3.1",
|
||||
"releases": [
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
"title": ".NET Release Timeline Index - 2020-04",
|
||||
"year": "2020",
|
||||
"month": "04",
|
||||
"date": "2020-04-23T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"latest_release": "5.0",
|
||||
"releases": [
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
"title": ".NET Release Timeline Index - 2020-05",
|
||||
"year": "2020",
|
||||
"month": "05",
|
||||
"date": "2020-05-19T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"latest_release": "3.1",
|
||||
"releases": [
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
"title": ".NET Release Timeline Index - 2020-06",
|
||||
"year": "2020",
|
||||
"month": "06",
|
||||
"date": "2020-06-25T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"latest_release": "3.1",
|
||||
"releases": [
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
"title": ".NET Release Timeline Index - 2020-07",
|
||||
"year": "2020",
|
||||
"month": "07",
|
||||
"date": "2020-07-21T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"latest_release": "3.1",
|
||||
"releases": [
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
"title": ".NET Release Timeline Index - 2020-08",
|
||||
"year": "2020",
|
||||
"month": "08",
|
||||
"date": "2020-08-25T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"latest_release": "3.1",
|
||||
"releases": [
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
"title": ".NET Release Timeline Index - 2020-09",
|
||||
"year": "2020",
|
||||
"month": "09",
|
||||
"date": "2020-09-14T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"latest_release": "3.1",
|
||||
"releases": [
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
"title": ".NET Release Timeline Index - 2020-10",
|
||||
"year": "2020",
|
||||
"month": "10",
|
||||
"date": "2020-10-13T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"latest_release": "3.1",
|
||||
"releases": [
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
"title": ".NET Release Timeline Index - 2020-11",
|
||||
"year": "2020",
|
||||
"month": "11",
|
||||
"date": "2020-11-10T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"latest_release": "5.0",
|
||||
"releases": [
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
"title": ".NET Release Timeline Index - 2020-12",
|
||||
"year": "2020",
|
||||
"month": "12",
|
||||
"date": "2020-12-08T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"latest_release": "5.0",
|
||||
"releases": [
|
||||
|
||||
@@ -36,6 +36,7 @@
|
||||
"months": [
|
||||
{
|
||||
"month": "01",
|
||||
"date": "2020-01-14T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"cve_count": 0,
|
||||
"latest_release": "3.1",
|
||||
@@ -57,6 +58,7 @@
|
||||
},
|
||||
{
|
||||
"month": "02",
|
||||
"date": "2020-02-18T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"cve_count": 0,
|
||||
"latest_release": "3.0",
|
||||
@@ -76,6 +78,7 @@
|
||||
},
|
||||
{
|
||||
"month": "03",
|
||||
"date": "2020-03-24T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"cve_count": 0,
|
||||
"latest_release": "3.1",
|
||||
@@ -98,6 +101,7 @@
|
||||
},
|
||||
{
|
||||
"month": "04",
|
||||
"date": "2020-04-23T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"cve_count": 0,
|
||||
"latest_release": "5.0",
|
||||
@@ -116,6 +120,7 @@
|
||||
},
|
||||
{
|
||||
"month": "05",
|
||||
"date": "2020-05-19T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"cve_count": 0,
|
||||
"latest_release": "3.1",
|
||||
@@ -137,6 +142,7 @@
|
||||
},
|
||||
{
|
||||
"month": "06",
|
||||
"date": "2020-06-25T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"cve_count": 0,
|
||||
"latest_release": "3.1",
|
||||
@@ -159,6 +165,7 @@
|
||||
},
|
||||
{
|
||||
"month": "07",
|
||||
"date": "2020-07-21T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"cve_count": 0,
|
||||
"latest_release": "3.1",
|
||||
@@ -180,6 +187,7 @@
|
||||
},
|
||||
{
|
||||
"month": "08",
|
||||
"date": "2020-08-25T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"cve_count": 0,
|
||||
"latest_release": "3.1",
|
||||
@@ -201,6 +209,7 @@
|
||||
},
|
||||
{
|
||||
"month": "09",
|
||||
"date": "2020-09-14T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"cve_count": 0,
|
||||
"latest_release": "3.1",
|
||||
@@ -222,6 +231,7 @@
|
||||
},
|
||||
{
|
||||
"month": "10",
|
||||
"date": "2020-10-13T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"cve_count": 0,
|
||||
"latest_release": "3.1",
|
||||
@@ -243,6 +253,7 @@
|
||||
},
|
||||
{
|
||||
"month": "11",
|
||||
"date": "2020-11-10T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"cve_count": 0,
|
||||
"latest_release": "5.0",
|
||||
@@ -262,6 +273,7 @@
|
||||
},
|
||||
{
|
||||
"month": "12",
|
||||
"date": "2020-12-08T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"cve_count": 0,
|
||||
"latest_release": "5.0",
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
"title": ".NET Release Timeline Index - 2021-01",
|
||||
"year": "2021",
|
||||
"month": "01",
|
||||
"date": "2021-01-12T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"latest_release": "5.0",
|
||||
"releases": [
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
"title": ".NET Release Timeline Index - 2021-02",
|
||||
"year": "2021",
|
||||
"month": "02",
|
||||
"date": "2021-02-17T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"latest_release": "3.1",
|
||||
"releases": [
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
"title": ".NET Release Timeline Index - 2021-03",
|
||||
"year": "2021",
|
||||
"month": "03",
|
||||
"date": "2021-03-11T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"latest_release": "5.0",
|
||||
"releases": [
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
"title": ".NET Release Timeline Index - 2021-04",
|
||||
"year": "2021",
|
||||
"month": "04",
|
||||
"date": "2021-04-13T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"latest_release": "5.0",
|
||||
"releases": [
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
"title": ".NET Release Timeline Index - 2021-05",
|
||||
"year": "2021",
|
||||
"month": "05",
|
||||
"date": "2021-05-25T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"latest_release": "5.0",
|
||||
"releases": [
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
"title": ".NET Release Timeline Index - 2021-06",
|
||||
"year": "2021",
|
||||
"month": "06",
|
||||
"date": "2021-06-17T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"latest_release": "5.0",
|
||||
"releases": [
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
"title": ".NET Release Timeline Index - 2021-07",
|
||||
"year": "2021",
|
||||
"month": "07",
|
||||
"date": "2021-07-14T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"latest_release": "5.0",
|
||||
"releases": [
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
"title": ".NET Release Timeline Index - 2021-08",
|
||||
"year": "2021",
|
||||
"month": "08",
|
||||
"date": "2021-08-19T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"latest_release": "5.0",
|
||||
"releases": [
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
"title": ".NET Release Timeline Index - 2021-09",
|
||||
"year": "2021",
|
||||
"month": "09",
|
||||
"date": "2021-09-14T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"latest_release": "5.0",
|
||||
"releases": [
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
"title": ".NET Release Timeline Index - 2021-10",
|
||||
"year": "2021",
|
||||
"month": "10",
|
||||
"date": "2021-10-12T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"latest_release": "5.0",
|
||||
"releases": [
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
"title": ".NET Release Timeline Index - 2021-11",
|
||||
"year": "2021",
|
||||
"month": "11",
|
||||
"date": "2021-11-08T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"latest_release": "6.0",
|
||||
"releases": [
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
"title": ".NET Release Timeline Index - 2021-12",
|
||||
"year": "2021",
|
||||
"month": "12",
|
||||
"date": "2021-12-14T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"latest_release": "6.0",
|
||||
"releases": [
|
||||
|
||||
@@ -36,6 +36,7 @@
|
||||
"months": [
|
||||
{
|
||||
"month": "01",
|
||||
"date": "2021-01-12T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"cve_count": 0,
|
||||
"latest_release": "5.0",
|
||||
@@ -57,6 +58,7 @@
|
||||
},
|
||||
{
|
||||
"month": "02",
|
||||
"date": "2021-02-17T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"cve_count": 0,
|
||||
"latest_release": "3.1",
|
||||
@@ -78,6 +80,7 @@
|
||||
},
|
||||
{
|
||||
"month": "03",
|
||||
"date": "2021-03-11T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"cve_count": 0,
|
||||
"latest_release": "5.0",
|
||||
@@ -102,6 +105,7 @@
|
||||
},
|
||||
{
|
||||
"month": "04",
|
||||
"date": "2021-04-13T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"cve_count": 0,
|
||||
"latest_release": "5.0",
|
||||
@@ -125,6 +129,7 @@
|
||||
},
|
||||
{
|
||||
"month": "05",
|
||||
"date": "2021-05-25T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"cve_count": 0,
|
||||
"latest_release": "5.0",
|
||||
@@ -148,6 +153,7 @@
|
||||
},
|
||||
{
|
||||
"month": "06",
|
||||
"date": "2021-06-17T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"cve_count": 0,
|
||||
"latest_release": "5.0",
|
||||
@@ -169,6 +175,7 @@
|
||||
},
|
||||
{
|
||||
"month": "07",
|
||||
"date": "2021-07-14T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"cve_count": 0,
|
||||
"latest_release": "5.0",
|
||||
@@ -190,6 +197,7 @@
|
||||
},
|
||||
{
|
||||
"month": "08",
|
||||
"date": "2021-08-19T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"cve_count": 0,
|
||||
"latest_release": "5.0",
|
||||
@@ -213,6 +221,7 @@
|
||||
},
|
||||
{
|
||||
"month": "09",
|
||||
"date": "2021-09-14T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"cve_count": 0,
|
||||
"latest_release": "5.0",
|
||||
@@ -234,6 +243,7 @@
|
||||
},
|
||||
{
|
||||
"month": "10",
|
||||
"date": "2021-10-12T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"cve_count": 0,
|
||||
"latest_release": "5.0",
|
||||
@@ -255,6 +265,7 @@
|
||||
},
|
||||
{
|
||||
"month": "11",
|
||||
"date": "2021-11-08T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"cve_count": 0,
|
||||
"latest_release": "6.0",
|
||||
@@ -276,6 +287,7 @@
|
||||
},
|
||||
{
|
||||
"month": "12",
|
||||
"date": "2021-12-14T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"cve_count": 0,
|
||||
"latest_release": "6.0",
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
"title": ".NET Release Timeline Index - 2022-02",
|
||||
"year": "2022",
|
||||
"month": "02",
|
||||
"date": "2022-02-17T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"latest_release": "6.0",
|
||||
"releases": [
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
"title": ".NET Release Timeline Index - 2022-03",
|
||||
"year": "2022",
|
||||
"month": "03",
|
||||
"date": "2022-03-15T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"latest_release": "6.0",
|
||||
"releases": [
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
"title": ".NET Release Timeline Index - 2022-04",
|
||||
"year": "2022",
|
||||
"month": "04",
|
||||
"date": "2022-04-13T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"latest_release": "6.0",
|
||||
"releases": [
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
"title": ".NET Release Timeline Index - 2022-05",
|
||||
"year": "2022",
|
||||
"month": "05",
|
||||
"date": "2022-05-10T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"latest_release": "6.0",
|
||||
"releases": [
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
"title": ".NET Release Timeline Index - 2022-06",
|
||||
"year": "2022",
|
||||
"month": "06",
|
||||
"date": "2022-06-14T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"latest_release": "6.0",
|
||||
"releases": [
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
"title": ".NET Release Timeline Index - 2022-07",
|
||||
"year": "2022",
|
||||
"month": "07",
|
||||
"date": "2022-07-12T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"latest_release": "6.0",
|
||||
"releases": [
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
"title": ".NET Release Timeline Index - 2022-08",
|
||||
"year": "2022",
|
||||
"month": "08",
|
||||
"date": "2022-08-09T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"latest_release": "6.0",
|
||||
"releases": [
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
"title": ".NET Release Timeline Index - 2022-09",
|
||||
"year": "2022",
|
||||
"month": "09",
|
||||
"date": "2022-09-14T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"latest_release": "6.0",
|
||||
"releases": [
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
"title": ".NET Release Timeline Index - 2022-10",
|
||||
"year": "2022",
|
||||
"month": "10",
|
||||
"date": "2022-10-11T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"latest_release": "6.0",
|
||||
"releases": [
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
"title": ".NET Release Timeline Index - 2022-11",
|
||||
"year": "2022",
|
||||
"month": "11",
|
||||
"date": "2022-11-08T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"latest_release": "7.0",
|
||||
"releases": [
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
"title": ".NET Release Timeline Index - 2022-12",
|
||||
"year": "2022",
|
||||
"month": "12",
|
||||
"date": "2022-12-13T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"latest_release": "7.0",
|
||||
"releases": [
|
||||
|
||||
@@ -36,6 +36,7 @@
|
||||
"months": [
|
||||
{
|
||||
"month": "02",
|
||||
"date": "2022-02-17T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"cve_count": 0,
|
||||
"latest_release": "6.0",
|
||||
@@ -57,6 +58,7 @@
|
||||
},
|
||||
{
|
||||
"month": "03",
|
||||
"date": "2022-03-15T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"cve_count": 0,
|
||||
"latest_release": "6.0",
|
||||
@@ -80,6 +82,7 @@
|
||||
},
|
||||
{
|
||||
"month": "04",
|
||||
"date": "2022-04-13T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"cve_count": 0,
|
||||
"latest_release": "6.0",
|
||||
@@ -103,6 +106,7 @@
|
||||
},
|
||||
{
|
||||
"month": "05",
|
||||
"date": "2022-05-10T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"cve_count": 0,
|
||||
"latest_release": "6.0",
|
||||
@@ -126,6 +130,7 @@
|
||||
},
|
||||
{
|
||||
"month": "06",
|
||||
"date": "2022-06-14T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"cve_count": 0,
|
||||
"latest_release": "6.0",
|
||||
@@ -147,6 +152,7 @@
|
||||
},
|
||||
{
|
||||
"month": "07",
|
||||
"date": "2022-07-12T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"cve_count": 0,
|
||||
"latest_release": "6.0",
|
||||
@@ -168,6 +174,7 @@
|
||||
},
|
||||
{
|
||||
"month": "08",
|
||||
"date": "2022-08-09T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"cve_count": 0,
|
||||
"latest_release": "6.0",
|
||||
@@ -189,6 +196,7 @@
|
||||
},
|
||||
{
|
||||
"month": "09",
|
||||
"date": "2022-09-14T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"cve_count": 0,
|
||||
"latest_release": "6.0",
|
||||
@@ -210,6 +218,7 @@
|
||||
},
|
||||
{
|
||||
"month": "10",
|
||||
"date": "2022-10-11T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"cve_count": 0,
|
||||
"latest_release": "6.0",
|
||||
@@ -231,6 +240,7 @@
|
||||
},
|
||||
{
|
||||
"month": "11",
|
||||
"date": "2022-11-08T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"cve_count": 0,
|
||||
"latest_release": "7.0",
|
||||
@@ -252,6 +262,7 @@
|
||||
},
|
||||
{
|
||||
"month": "12",
|
||||
"date": "2022-12-13T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"cve_count": 0,
|
||||
"latest_release": "7.0",
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
"title": ".NET Release Timeline Index - 2023-01",
|
||||
"year": "2023",
|
||||
"month": "01",
|
||||
"date": "2023-01-10T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"latest_release": "7.0",
|
||||
"releases": [
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
"title": ".NET Release Timeline Index - 2023-02",
|
||||
"year": "2023",
|
||||
"month": "02",
|
||||
"date": "2023-02-21T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"latest_release": "7.0",
|
||||
"releases": [
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
"title": ".NET Release Timeline Index - 2023-03",
|
||||
"year": "2023",
|
||||
"month": "03",
|
||||
"date": "2023-03-14T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"latest_release": "7.0",
|
||||
"releases": [
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
"title": ".NET Release Timeline Index - 2023-04",
|
||||
"year": "2023",
|
||||
"month": "04",
|
||||
"date": "2023-04-11T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"latest_release": "7.0",
|
||||
"releases": [
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
"title": ".NET Release Timeline Index - 2023-05",
|
||||
"year": "2023",
|
||||
"month": "05",
|
||||
"date": "2023-05-16T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"latest_release": "8.0",
|
||||
"releases": [
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
"title": ".NET Release Timeline Index - 2023-06",
|
||||
"year": "2023",
|
||||
"month": "06",
|
||||
"date": "2023-06-22T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"latest_release": "7.0",
|
||||
"releases": [
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
"title": ".NET Release Timeline Index - 2023-07",
|
||||
"year": "2023",
|
||||
"month": "07",
|
||||
"date": "2023-07-11T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"latest_release": "7.0",
|
||||
"releases": [
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
"title": ".NET Release Timeline Index - 2023-08",
|
||||
"year": "2023",
|
||||
"month": "08",
|
||||
"date": "2023-08-08T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"latest_release": "7.0",
|
||||
"releases": [
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
"title": ".NET Release Timeline Index - 2023-09",
|
||||
"year": "2023",
|
||||
"month": "09",
|
||||
"date": "2023-09-14T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"latest_release": "7.0",
|
||||
"releases": [
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
"title": ".NET Release Timeline Index - 2023-10",
|
||||
"year": "2023",
|
||||
"month": "10",
|
||||
"date": "2023-10-24T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"latest_release": "7.0",
|
||||
"releases": [
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
"title": ".NET Release Timeline Index - 2023-11",
|
||||
"year": "2023",
|
||||
"month": "11",
|
||||
"date": "2023-11-14T00:00:00\u002B00:00",
|
||||
"security": true,
|
||||
"cve_count": 3,
|
||||
"cve_records": [
|
||||
|
||||
@@ -40,6 +40,7 @@
|
||||
"months": [
|
||||
{
|
||||
"month": "01",
|
||||
"date": "2023-01-10T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"cve_count": 0,
|
||||
"latest_release": "7.0",
|
||||
@@ -59,6 +60,7 @@
|
||||
},
|
||||
{
|
||||
"month": "02",
|
||||
"date": "2023-02-21T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"cve_count": 0,
|
||||
"latest_release": "7.0",
|
||||
@@ -80,6 +82,7 @@
|
||||
},
|
||||
{
|
||||
"month": "03",
|
||||
"date": "2023-03-14T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"cve_count": 0,
|
||||
"latest_release": "7.0",
|
||||
@@ -101,6 +104,7 @@
|
||||
},
|
||||
{
|
||||
"month": "04",
|
||||
"date": "2023-04-11T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"cve_count": 0,
|
||||
"latest_release": "7.0",
|
||||
@@ -122,6 +126,7 @@
|
||||
},
|
||||
{
|
||||
"month": "05",
|
||||
"date": "2023-05-16T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"cve_count": 0,
|
||||
"latest_release": "8.0",
|
||||
@@ -139,6 +144,7 @@
|
||||
},
|
||||
{
|
||||
"month": "06",
|
||||
"date": "2023-06-22T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"cve_count": 0,
|
||||
"latest_release": "7.0",
|
||||
@@ -162,6 +168,7 @@
|
||||
},
|
||||
{
|
||||
"month": "07",
|
||||
"date": "2023-07-11T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"cve_count": 0,
|
||||
"latest_release": "7.0",
|
||||
@@ -183,6 +190,7 @@
|
||||
},
|
||||
{
|
||||
"month": "08",
|
||||
"date": "2023-08-08T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"cve_count": 0,
|
||||
"latest_release": "7.0",
|
||||
@@ -204,6 +212,7 @@
|
||||
},
|
||||
{
|
||||
"month": "09",
|
||||
"date": "2023-09-14T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"cve_count": 0,
|
||||
"latest_release": "7.0",
|
||||
@@ -225,6 +234,7 @@
|
||||
},
|
||||
{
|
||||
"month": "10",
|
||||
"date": "2023-10-24T00:00:00\u002B00:00",
|
||||
"security": false,
|
||||
"cve_count": 0,
|
||||
"latest_release": "7.0",
|
||||
@@ -248,6 +258,7 @@
|
||||
},
|
||||
{
|
||||
"month": "11",
|
||||
"date": "2023-11-14T00:00:00\u002B00:00",
|
||||
"security": true,
|
||||
"cve_count": 3,
|
||||
"cve_records": [
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
"title": ".NET Release Timeline Index - 2024-01",
|
||||
"year": "2024",
|
||||
"month": "01",
|
||||
"date": "2024-01-09T00:00:00\u002B00:00",
|
||||
"security": true,
|
||||
"cve_count": 3,
|
||||
"cve_records": [
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
"title": ".NET Release Timeline Index - 2024-02",
|
||||
"year": "2024",
|
||||
"month": "02",
|
||||
"date": "2024-02-13T00:00:00\u002B00:00",
|
||||
"security": true,
|
||||
"cve_count": 2,
|
||||
"cve_records": [
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
"title": ".NET Release Timeline Index - 2024-03",
|
||||
"year": "2024",
|
||||
"month": "03",
|
||||
"date": "2024-03-12T00:00:00\u002B00:00",
|
||||
"security": true,
|
||||
"cve_count": 2,
|
||||
"cve_records": [
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
"title": ".NET Release Timeline Index - 2024-04",
|
||||
"year": "2024",
|
||||
"month": "04",
|
||||
"date": "2024-04-11T00:00:00\u002B00:00",
|
||||
"security": true,
|
||||
"cve_count": 1,
|
||||
"cve_records": [
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
"title": ".NET Release Timeline Index - 2024-05",
|
||||
"year": "2024",
|
||||
"month": "05",
|
||||
"date": "2024-05-28T00:00:00\u002B00:00",
|
||||
"security": true,
|
||||
"cve_count": 2,
|
||||
"cve_records": [
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user