{
 "generated": "2026-07-19",
 "description": "endoflife.ai vendor verification records: products cross-checked against official vendor lifecycle documentation, plus published corrections applied over upstream data. See https://endoflife.ai/accuracy",
 "products": {
  "postgresql": {
   "vendor": "PostgreSQL Global Development Group",
   "sourceUrl": "https://www.postgresql.org/support/versioning/",
   "checkedAt": "2026-07-17",
   "status": "verified",
   "versionsChecked": [
    "14",
    "15",
    "16",
    "17",
    "18"
   ],
   "notes": "All five supported-version EOL dates match the vendor table exactly (14: 2026-11-12, 15: 2027-11-11, 16: 2028-11-09, 17: 2029-11-08, 18: 2030-11-14), consistent with the stated 5-year support policy.",
   "discrepancies": []
  },
  "mysql": {
   "vendor": "Oracle Corporation",
   "sourceUrl": "https://www.mysql.com/support/eol-notice.html",
   "checkedAt": "2026-07-17",
   "status": "discrepancy",
   "versionsChecked": [
    "5.7",
    "8.0",
    "8.4",
    "9.7"
   ],
   "notes": "Vendor confirms 8.4 LTS and 9.7 LTS are the actively supported releases (matching our support status), but the EOL notice gives day-level transition dates for 5.7 and 8.0 that differ from our month-end dates, and Oracle publishes no future EOL dates for 8.4/9.7 on reachable pages (Oracle Lifetime Support PDF at oracle.com returned HTTP 403), so our 8.4 (2032-04-30) and 9.7 (2034-04-21) dates remain uncorroborated at day precision.",
   "discrepancies": [
    {
     "version": "8.0",
     "ours": "2026-04-30",
     "vendor": "Entered Oracle Lifetime Sustaining Support as of April 21, 2026",
     "detail": "We publish month-end 2026-04-30; the vendor EOL notice states the sustaining-support transition occurred April 21, 2026 (9 days earlier)."
    },
    {
     "version": "5.7",
     "ours": "2023-10-31",
     "vendor": "Transitioned to sustaining support as of October 25, 2023",
     "detail": "We publish month-end 2023-10-31; the vendor EOL notice states October 25, 2023 (the date of the final 5.7 release)."
    }
   ]
  },
  "mariadb": {
   "vendor": "MariaDB Foundation",
   "sourceUrl": "https://mariadb.org/about/",
   "checkedAt": "2026-07-17",
   "status": "corrected",
   "versionsChecked": [
    "10.6",
    "10.11",
    "11.4",
    "11.8",
    "12.3"
   ],
   "notes": "Community EOL dates for 10.6 (2026-07-06), 10.11 (2028-02-16), 11.4 (2029-05-29), and 11.8 (2028-06-04) match the vendor maintenance table exactly, but we publish a hard EOL date for 12.3 LTS that the vendor lists as TBC. Site data corrected to vendor-published values via overrides on 2026-07-18.",
   "discrepancies": [
    {
     "version": "12.3",
     "ours": "2029-06-30",
     "vendor": "GA date and Community/Enterprise/Extended EOL all listed as TBC (to be confirmed)",
     "detail": "Our 12.3 pages state EOL June 30, 2029 as a firm date; the mariadb.org maintenance table has not yet confirmed any EOL date for the 12.3 series."
    }
   ]
  },
  "mongodb": {
   "vendor": "MongoDB, Inc.",
   "sourceUrl": "https://www.mongodb.com/legal/support-policy/lifecycles",
   "checkedAt": "2026-07-17",
   "status": "verified",
   "versionsChecked": [
    "6.0",
    "7.0",
    "8.0",
    "8.2",
    "8.3"
   ],
   "notes": "All checked EOL dates match the vendor lifecycle table exactly (6.0: 2025-07-31, 7.0: 2027-08-31, 8.0: 2029-10-31, 8.2 rapid: 2026-07-31, 8.3: 2029-10-31), including the imminent 8.2 EOL on July 31, 2026.",
   "discrepancies": []
  },
  "redis": {
   "vendor": "Redis Ltd.",
   "sourceUrl": "https://redis.io/about/releases/",
   "checkedAt": "2026-07-17",
   "status": "unconfirmed",
   "versionsChecked": [
    "6.2",
    "7.2",
    "7.4",
    "8.0",
    "8.2",
    "8.8"
   ],
   "notes": "Redis publishes no per-version EOL dates for Redis Open Source, only a policy (latest stable fully supported; previous minor and previous major on maintenance; older versions not supported), so our hard dates for 8.0 (2026-02-11) and 8.2 (2026-05-25) could not be corroborated, and the policy appears to contradict our claim that 6.2 through 8.8 are all actively supported; the dated EOL schedule at redis.io/docs/latest/operate/rs/installing-upgrading/product-lifecycle/ covers only the separate Redis Software (enterprise) product line and does not map to these open-source versions.",
   "discrepancies": [
    {
     "version": "6.2",
     "ours": "actively supported, EOL TBD (checker-db lists Redis 6.2-8.8 as supported)",
     "vendor": "Release policy: only the latest stable release is fully supported; the previous minor and previous stable major receive maintenance only; older versions are not supported",
     "detail": "With 8.8 as latest stable, the vendor policy would leave 6.2 (and likely 7.2/7.4) unsupported in July 2026, conflicting with our supported-range claim; no explicit vendor EOL date exists to cite."
    }
   ]
  },
  "angular": {
   "vendor": "Google (Angular team)",
   "sourceUrl": "https://angular.dev/reference/releases",
   "checkedAt": "2026-07-17",
   "status": "discrepancy",
   "versionsChecked": [
    "18",
    "19",
    "20",
    "21",
    "22"
   ],
   "notes": "Official policy: ~6 months active + 12 months LTS = 18 months total per major. Official table (fetched 2026-07-17) lists only v20-v22 as supported and states 'Angular versions v2 to v19 are no longer supported.' Matches confirmed: v20 released 2025-05-28 with LTS end 2026-11-28 (exact match to our data); v21 released 2025-11-19, active ended 2026-06-03; v22 released 2026-06-03. Our historical dates for v18 (rel 2024-05-22, EOL 2025-11-21) and v19 (rel 2024-11-19, EOL 2026-05-19) are consistent with the published 18-month policy, though Angular no longer lists per-version dates for retired majors. Checker-db product-level eolDate 2026-11-28 correctly reflects next EOL (v20).",
   "discrepancies": [
    "Angular 21: our page publishes LTS end / EOL 2027-05-19, but the official table lists v21 LTS end as 'To be announced'. Our date is a projection (release 2025-11-19 + 18 months) consistent with the stated policy, but it is not an officially announced date. Recommend labeling it as projected until Google publishes the date."
   ]
  },
  "angularjs": {
   "vendor": "Google (AngularJS team)",
   "sourceUrl": "https://docs.angularjs.org/misc/version-support-status",
   "checkedAt": "2026-07-17",
   "status": "verified",
   "versionsChecked": [
    "1.2",
    "1.7",
    "1.8"
   ],
   "notes": "Official docs state: 'AngularJS support has officially ended as of January 2022', i.e. long-term support ran through December 31, 2021 — the date announced in Google's EOL announcement. Our data lists EOL 2021-12-31 for all 1.x branches (1.2, 1.7, 1.8 checked), matching the official framework-wide EOL. AngularJS never published per-minor EOL dates; the single framework-wide date applies to every 1.x version, which is how our pages present it. Note: the Google blog announcement (blog.angular.dev / Medium) is behind a login redirect and could not be fetched directly; the docs.angularjs.org statement was used as the official source.",
   "discrepancies": []
  },
  "react": {
   "vendor": "Meta (React team)",
   "sourceUrl": "https://react.dev/versions",
   "checkedAt": "2026-07-17",
   "status": "unconfirmed",
   "versionsChecked": [
    "16",
    "17",
    "18",
    "19"
   ],
   "notes": "React publishes NO formal per-version end-of-life or end-of-support dates and no formal support policy — confirmed on react.dev/versions (fetched 2026-07-17): the page lists versions and release dates only. Our checker-db correctly has eolDate: null. Release dates cross-check cleanly: 19.0.0 December 2024 (ours 2024-12-05), 18.0.0 March 2022 (ours 2022-03-29), 17.0.0 October 2020 (ours 2020-10-20), 16.0 September 2017 (ours 2017-09-26). Caveat on our own copy: the summary 'React 15-19 are supported' overstates what Meta says — in practice only the latest major receives active development and older majors receive no guaranteed patches; React makes no formal support commitment for 15-18. There is no official date to verify against, hence 'unconfirmed' rather than 'verified'.",
   "discrepancies": []
  },
  "vue": {
   "vendor": "Vue.js team (Evan You / Vue core team)",
   "sourceUrl": "https://v2.vuejs.org/eol/ and https://vuejs.org/about/releases",
   "checkedAt": "2026-07-17",
   "status": "verified",
   "versionsChecked": [
    "2.6",
    "2.7",
    "3.4",
    "3.5"
   ],
   "notes": "The only officially published Vue EOL date is Vue 2: 'Vue 2 has reached End of Life on December 31st, 2023' (v2.vuejs.org/eol/, final release 2.7.16). Our vue/2.7 page shows EOL 2023-12-31 — exact match. vuejs.org/about/releases publishes release cadence (minors every 3-6 months) but NO end-of-support dates for Vue 3 minors. Our per-minor dates for superseded minors (2.6 EOL 2022-07-01 = 2.7 release date; 3.4 EOL 2024-09-03 = 3.5 release date) follow the de facto convention that only the latest minor receives fixes; they are reasonable derivations but are NOT dates the Vue team publishes. Checker-db product-level eolDate 2024-09-03 is one of these derived dates. Official Vue 2 extended-support referral is HeroDevs NES.",
   "discrepancies": []
  },
  "spring-framework": {
   "vendor": "Broadcom (Spring / VMware Tanzu)",
   "sourceUrl": "https://spring.io/projects/spring-framework#support (data via https://api.spring.io/projects/spring-framework/generations)",
   "checkedAt": "2026-07-17",
   "status": "verified",
   "versionsChecked": [
    "5.3",
    "6.1",
    "6.2",
    "7.0"
   ],
   "notes": "Our published dates map to OSS (open source) support end dates, and all four checked branches match the official Spring generations data exactly: 5.3.x rel 2020-10-31 / OSS end 2024-08-31; 6.1.x rel 2023-11-30 / OSS end 2025-06-30; 6.2.x rel 2024-11-30 / OSS end 2026-06-30; 7.0.x rel 2025-11-30 / OSS end 2027-07-31. Commercial/enterprise support runs much longer and is NOT what our dates represent: 5.2.x-5.3.x commercial ends 2029-06-30, 6.0.x-6.2.x commercial ends 2032-06-30, 7.0.x commercial listed as 2028-07-31. Checker-db product-level eolDate 2027-07-31 = 7.0 OSS end, consistent. Recommend our pages state explicitly that dates are OSS support end, since paid commercial support extends 3-6 years beyond them.",
   "discrepancies": []
  },
  "spring-boot": {
   "vendor": "Broadcom (Spring / VMware Tanzu)",
   "sourceUrl": "https://spring.io/projects/spring-boot#support (data via https://api.spring.io/projects/spring-boot/generations)",
   "checkedAt": "2026-07-17",
   "status": "verified",
   "versionsChecked": [
    "2.7",
    "3.4",
    "3.5",
    "4.0",
    "4.1"
   ],
   "notes": "Our published dates map to OSS support end dates; all five checked branches match official data exactly: 2.7.x rel 2022-05-31 / OSS end 2023-06-30; 3.4.x rel 2024-11-30 / OSS end 2025-12-31; 3.5.x rel 2025-05-31 / OSS end 2026-06-30; 4.0.x rel 2025-11-30 / OSS end 2026-12-31; 4.1.x rel 2026-06-30 / OSS end 2027-07-31. Commercial support differs substantially: 2.7.x commercial ends 2029-06-30 and 3.5.x commercial ends 2032-06-30 (extended-support branches); 3.4.x commercial 2026-12-31; 4.0.x commercial 2027-12-31; 4.1.x commercial 2028-07-31. Checker-db product-level eolDate 2026-12-31 = 4.0 OSS end (next EOL among supported), consistent. As with Spring Framework, dates should be labeled OSS support end to avoid confusion with commercial support.",
   "discrepancies": []
  },
  "django": {
   "vendor": "Django Software Foundation",
   "sourceUrl": "https://www.djangoproject.com/download/",
   "checkedAt": "2026-07-17",
   "status": "verified",
   "versionsChecked": [
    "4.2",
    "5.1",
    "5.2",
    "6.0"
   ],
   "notes": "Official supported-versions table (fetched 2026-07-17): 4.2 LTS extended support ended 'April 7, 2026' — exact-day match to our 2026-04-07. 5.1 extended support ended December 2025; our 2025-12-03 equals the 6.0 release date (2025-12-03), consistent with Django's practice of ending support at the successor feature release. 5.2 LTS extended support 'April 2028' and 6.0 extended support 'April 2027' are published at month precision only; our dates 2028-04-30 and 2027-04-30 assume end-of-month — direction and month verified, exact day is our assumption (Django historically cuts the final release in early-to-mid April, cf. 4.2 on April 7). Checker-db product-level eolDate 2027-04-30 = 6.0 extended end, consistent. Policy confirmed: feature releases ~every 8 months; LTS releases get ~3 years of security/data-loss fixes.",
   "discrepancies": []
  },
  "kubernetes": {
   "vendor": "Kubernetes (CNCF)",
   "sourceUrl": "https://kubernetes.io/releases/ ; https://kubernetes.io/releases/patch-releases/",
   "checkedAt": "2026-07-17",
   "status": "corrected",
   "versionsChecked": [
    "1.31",
    "1.32",
    "1.33",
    "1.34",
    "1.35",
    "1.36"
   ],
   "notes": "Official pages publish explicit per-minor-version EOL dates (~14 months support: 12 standard + 2 maintenance). Five of six checked versions match exactly: 1.32 (2026-02-28), 1.33 (2026-06-28), 1.34 (2026-10-27), 1.35 (2027-02-28), 1.36 (2027-06-28). One discrepancy on 1.31. Site data corrected to vendor-published values via overrides on 2026-07-18.",
   "discrepancies": [
    {
     "version": "1.31",
     "ourDate": "2025-10-28",
     "officialDate": "2025-11-11",
     "detail": "kubernetes.io/releases/ and the patch-releases non-active-branches table both list 1.31 End of Life as 2025-11-11 (final patch 1.31.14). Our page shows Oct 28, 2025, which appears to be the originally scheduled EOL date; the actual EOL slipped to 2025-11-11."
    }
   ]
  },
  "docker-engine": {
   "vendor": "Docker, Inc.",
   "sourceUrl": "https://docs.docker.com/engine/release-notes/ ; https://docs.docker.com/engine/",
   "checkedAt": "2026-07-17",
   "status": "unconfirmed",
   "versionsChecked": [
    "25.0",
    "26.1",
    "27",
    "28",
    "29"
   ],
   "notes": "Docker publishes NO formal per-version end-of-life dates for Docker Engine. The release-notes page lists versions and release dates only (latest 29.6.2, released 2026-07-16 — matches our latestVersion 29.6.2), and the engine docs page contains no support-lifecycle statements. Our dated EOLs (26.1 -> 2025-02-17, 27 -> 2025-05-03, 28 -> 2026-05-13) cannot be confirmed against any official Docker source and should not be presented as vendor-published. Also noted an internal inconsistency: checker-db.json summary says 'Docker Engine 25.0-29 are supported' while our own version pages show 26.1 and 27 as already past EOL and 25.0 as 'Supported Until TBD'.",
   "discrepancies": []
  },
  "openssl": {
   "vendor": "OpenSSL Library",
   "sourceUrl": "https://openssl-library.org/policies/releasestrat/",
   "checkedAt": "2026-07-17",
   "status": "verified",
   "versionsChecked": [
    "3.0",
    "3.2",
    "3.3",
    "3.4",
    "3.5",
    "3.6",
    "4.0"
   ],
   "notes": "Official release strategy publishes explicit support-end dates; all seven checked versions match exactly: 3.0 LTS (2026-09-07), 3.2 (2025-11-23), 3.3 (2026-04-09), 3.4 (2026-10-22), 3.5 LTS (2030-04-08), 3.6 (2026-11-01), 4.0 (2027-05-14). Page also confirms 1.1.1 and 1.0.2 are no longer supported (our 1.1.1 EOL 2023-09-11 is consistent with that status, though the page no longer lists the historical date). 3.1 (our EOL 2025-03-14) is no longer itemized on the current page.",
   "discrepancies": []
  },
  "nginx": {
   "vendor": "F5 / nginx.org",
   "sourceUrl": "https://nginx.org/en/download.html",
   "checkedAt": "2026-07-17",
   "status": "unconfirmed",
   "versionsChecked": [
    "1.26",
    "1.27",
    "1.28",
    "1.29",
    "1.30",
    "1.31"
   ],
   "notes": "nginx.org publishes NO formal per-version end-of-life dates and no written support-policy text on the download page; it only distinguishes the current mainline (1.31.3) and stable (1.30.4) branches. Current-branch facts match ours: mainline 1.31.3 equals our latestVersion, and our 1.30/1.31 pages correctly show no EOL date (TBD). Our dated EOLs for retired branches (1.26 -> 2025-04-23, 1.27 -> 2025-06-24, 1.28 -> 2026-04-14, 1.29 -> 2026-05-13) cannot be confirmed from any official nginx page — they are inferences from when branches stopped receiving releases, not vendor-published dates.",
   "discrepancies": []
  },
  "apache-http-server": {
   "vendor": "Apache Software Foundation (HTTP Server Project)",
   "sourceUrl": "https://httpd.apache.org/",
   "checkedAt": "2026-07-17",
   "status": "verified",
   "versionsChecked": [
    "2.4",
    "2.2",
    "2.0"
   ],
   "notes": "2.4.x is a rolling stable branch with no published EOL date — our 2.4 page correctly shows no EOL (TBD) and our latestVersion 2.4.68 matches the official current release (2.4.68, released 2026-06-08). Official site states 2.2 is end-of-life with final release 2.2.34 (July 2017); our 2.2 EOL of 2017-07-11 is the 2.2.34 release date — consistent, though the day-level precision is derived from the final release date rather than a vendor-published EOL date. The current homepage does not mention 2.0.x; our 2.0 EOL of 2013-07-10 matches the final 2.0.65 release date but is likewise derived, not on the live page.",
   "discrepancies": []
  },
  "tomcat": {
   "vendor": "Apache Software Foundation (Tomcat Project)",
   "sourceUrl": "https://tomcat.apache.org/whichversion.html ; https://tomcat.apache.org/tomcat-9.0.x-eos.html",
   "checkedAt": "2026-07-17",
   "status": "verified",
   "versionsChecked": [
    "8.5",
    "9.0",
    "10.0",
    "10.1",
    "11.0"
   ],
   "notes": "Official pages match ours on all five checked versions: 8.5.x EOL 2024-03-31, 10.0.x EOL 2022-10-31, 9.0.x end of support 31 March 2027 (formally announced in the Tomcat 9.0.x end-of-support announcement; a 9.1.x branch will then carry Tomcat 9 support until 31 December 2030), and 10.1.x / 11.0.x actively supported with no EOL announced (our pages show TBD). Note the whichversion page phrases 9.0.x as supported 'no earlier than 31 March 2027' while the dedicated EOS announcement fixes the date at 31 March 2027 — our 2027-03-31 matches the announcement.",
   "discrepancies": []
  },
  "oracle-jdk": {
   "vendor": "Oracle",
   "sourceUrl": "https://www.oracle.com/java/technologies/java-se-support-roadmap.html",
   "checkedAt": "2026-07-17",
   "status": "verified",
   "versionsChecked": [
    "8",
    "11",
    "17",
    "21",
    "25",
    "26"
   ],
   "notes": "Official roadmap (page header: 'Updated April 2, 2026') fetched via browser rendering; direct WebFetch of oracle.com returns HTTP 403. Our EOL dates map to Oracle PREMIER Support end, not Extended Support: 8 -> our 2022-03-31 = Premier 'March 2022' (Extended runs to Dec 2030, uplift fee waived); 11 -> our 2023-09-30 = Premier 'September 2023' (Extended to Jan 2032, uplift fee waived); 17 -> our 2026-09-30 = Premier 'September 2026' (Extended to Sep 2029); 21 -> our 2028-09-30 = Premier 'September 2028' (Extended to Sep 2031); 25 -> our 2030-09-30 = Premier 'September 2030' (Extended to Sep 2033); 26 (non-LTS) -> our 2026-09-18 = Premier 'September 2026', no Extended. Oracle publishes month-level dates ('Or later' caveat on 17/21/25); our end-of-month day-level convention is consistent with them. Non-LTS 18-24 also consistent with the roadmap's six-month supersession model. Roadmap confirms next LTS is Java 29 planned September 2027.",
   "discrepancies": []
  },
  "openjdk-builds-from-oracle": {
   "vendor": "Oracle (OpenJDK builds, jdk.java.net)",
   "sourceUrl": "https://jdk.java.net/",
   "checkedAt": "2026-07-17",
   "status": "verified",
   "versionsChecked": [
    "17",
    "21",
    "25",
    "26"
   ],
   "notes": "Cross-checked jdk.java.net (fetched via browser; WebFetch 403) plus the Oracle Java SE Support Roadmap. jdk.java.net lists 'Ready for use: JDK 26' only, with JDK 27/28 in early access — confirming Oracle's OpenJDK builds receive updates only until the next feature release GA (six-month cycle, no LTS for these builds). Our dates match that model exactly: 17 -> 2022-03-22 (JDK 18 GA), 21 -> 2024-03-19 (JDK 22 GA), 25 -> 2026-03-17 (JDK 26 GA, roadmap 'March 2026'), 26 -> 2026-09-18 (JDK 27 GA, roadmap 'September 2026'). Only major 26 currently supported, matching our checker-db summary. Oracle does not publish per-version EOL dates for these builds as a table; verification is against the supersession policy stated on the roadmap plus the live 'Ready for use' listing.",
   "discrepancies": []
  },
  "eclipse-temurin": {
   "vendor": "Eclipse Adoptium",
   "sourceUrl": "https://adoptium.net/support/",
   "checkedAt": "2026-07-17",
   "status": "verified",
   "versionsChecked": [
    "8",
    "11",
    "17",
    "21",
    "25",
    "26"
   ],
   "notes": "Adoptium publishes minimum ('at least') end-of-support dates. All match ours at month level: 8 -> 'At least Dec 2030' vs our 2030-12-31; 11 -> 'At least Oct 2027' vs our 2027-10-31; 17 -> 'At least Oct 2027' vs our 2027-10-31; 21 -> 'At least Dec 2029' vs our 2029-12-31; 25 -> 'At least Sep 2031' vs our 2031-09-30; 26 (non-LTS) -> Sep 2026 vs our 2026-09-15. Because Adoptium frames LTS dates as minimums ('as long as the corresponding upstream source is actively maintained'), actual support may extend beyond our published dates — our dates are the vendor-committed floor, which is the honest reading.",
   "discrepancies": []
  },
  "amazon-corretto": {
   "vendor": "Amazon Web Services",
   "sourceUrl": "https://aws.amazon.com/corretto/faqs/",
   "checkedAt": "2026-07-17",
   "status": "verified",
   "versionsChecked": [
    "8",
    "11",
    "17",
    "21",
    "25",
    "26"
   ],
   "notes": "AWS Corretto support calendar (FAQ page, linked from docs.aws.amazon.com/corretto) matches all EOL dates at month level: 8 -> Dec 2030 vs our 2030-12-31; 11 -> Jan 2032 vs our 2032-01-31; 17 -> Oct 2029 vs our 2029-10-31; 21 -> Oct 2030 vs our 2030-10-31; 25 -> Oct 2032 vs our 2032-10-31; 26 (feature release) -> Oct 2026 vs our 2026-10-31. AWS publishes month-level end dates; our end-of-month convention is consistent. Minor non-EOL observation: AWS lists Corretto 11 GA as March 15, 2019 while our page shows release 2019-02-18 (likely preview date) — release-date nuance only, EOL data correct.",
   "discrepancies": []
  },
  "azul-zulu": {
   "vendor": "Azul Systems",
   "sourceUrl": "https://www.azul.com/products/azul-support-roadmap/",
   "checkedAt": "2026-07-17",
   "status": "verified",
   "versionsChecked": [
    "6",
    "7",
    "8",
    "11",
    "17",
    "21",
    "25",
    "26"
   ],
   "notes": "Azul support roadmap matches all checked versions at month level; our dates map to end of Azul Premium/Production Support: 6 -> Dec 2018 vs our 2018-12-31; 7 -> Jul 2022 vs our 2022-07-31; 8 -> Dec 2030 vs our 2030-12-31; 11 -> Jan 2032 vs our 2032-01-31; 17 -> Sep 2029 vs our 2029-09-30; 21 -> Sep 2031 vs our 2031-09-30; 25 -> Sep 2033 vs our 2033-09-30; 26 (STS) -> Sep 2026 vs our 2026-09-30. For 6 and 7 Azul offers 'Legacy Production Support' to Dec 2029 as a separately purchased add-on (builds not TCK-tested in that period) — our dates correctly reflect standard production support end, not the paid legacy tier. MTS releases 13/15 (our 2023-03-31) not re-confirmed in this pass as they no longer appear in the summary table.",
   "discrepancies": []
  },
  "oracle-database": {
   "vendor": "Oracle",
   "sourceUrl": "https://www.oracle.com/us/assets/lifetime-support-technology-069183.pdf",
   "checkedAt": "2026-07-17",
   "status": "discrepancy",
   "versionsChecked": [
    "9.2",
    "10.1",
    "10.2",
    "11.1",
    "11.2",
    "12.1",
    "12.2",
    "18",
    "19",
    "21",
    "23"
   ],
   "notes": "Lifetime Support Policy: Oracle Technology Products PDF, effective May 1, 2026 (oracle.com 403s WebFetch; PDF retrieved and parsed directly). Verified against Premier Support end: 9.2 -> Jul 2007 vs our 2007-07-31; 10.1 -> Jan 2009 vs our 2009-01-31; 10.2 -> Jul 2010 vs our 2010-07-31; 11.1 -> Aug 2012 vs our 2012-08-31; 11.2 -> Jan 2015 vs our 2015-01-31; 12.1 EE -> Jul 2018 vs our 2018-07-31; 18c -> Jun 2021 vs our 2021-06-30; 19c -> Dec 2029 vs our 2029-12-31 (Extended now runs to Dec 2032, our date = Premier end); 21c -> Jul 2027 vs our 2027-07-31 (no Extended offered). All those match. Two issues recorded in discrepancies: version 23 no longer appears in the official table, and 12.2 maps to the limited-error-correction end rather than Premier end. Our 9.0 page (eol 2003-12-31) could not be confirmed — the current PDF starts at 8.1.7/9.2 and omits 9.0.1.",
   "discrepancies": [
    "Version 23 (23ai): the current official table contains NO row for Oracle Database 23ai. It now lists '26ai Enterprise Edition (Long Term Support Release), GA Oct 2025, Premier Support Ends Dec 2031, Extended TBD'. Our 23 page shows eol 2031-12-31 — that Dec 2031 date matches the 26ai row, not any published 23ai commitment. Our checker-db also calls 23 the latest version, but Oracle's latest LTS is now 26ai. The 23 page and 'latest' designation need review/remapping to 26ai.",
    "Version 12.2: our eol 2022-03-31 corresponds to the end of the Limited Error Correction period (Dec 1, 2020 - Mar 31, 2022, Severity 1 + security fixes only, limited platforms), not Premier Support end, which was Nov 30, 2020. Defensible mapping but should be footnoted on the page; Extended Support was 'Not Available' for 12.2.0.1."
   ]
  },
  "ubuntu": {
   "vendor": "Canonical",
   "sourceUrl": "https://ubuntu.com/about/release-cycle",
   "checkedAt": "2026-07-17",
   "status": "corrected",
   "versionsChecked": [
    "20.04",
    "22.04",
    "24.04",
    "25.10",
    "26.04"
   ],
   "notes": "Our dates map to end of STANDARD security maintenance, not ESM (ESM for 22.04 runs to May 2032, 24.04 to May 2034, 26.04 to May 2036) and not the Legacy add-on. Canonical publishes month granularity only. Matches: 20.04 ours 2025-05-31 vs official 'May 2025'; 24.04 ours 2029-05-31 vs 'May 2029'. Interim release 25.10 (ours 2026-07-01) is not listed on the release-cycle page and wiki.ubuntu.com/Releases returned no table content, so 25.10 could not be confirmed. Two versions end a month early relative to Canonical's stated end month (see discrepancies). Site data corrected to vendor-published values via overrides on 2026-07-18.",
   "discrepancies": [
    "22.04: our EOL 2027-04-01, official standard security maintenance ends 'May 2027' (~2 months later than our date). Ours is conservative/early. Also drives the product-level next-EOL date in checker-db.json (2027-04-01).",
    "26.04: our EOL 2031-04-30, official standard security maintenance ends 'May 2031' (our date is one month early)."
   ]
  },
  "debian": {
   "vendor": "Debian Project",
   "sourceUrl": "https://wiki.debian.org/DebianReleases",
   "checkedAt": "2026-07-17",
   "status": "discrepancy",
   "versionsChecked": [
    "10",
    "11",
    "12",
    "13"
   ],
   "notes": "Debian's own sources disagree by one day on bookworm's security-support end (debian.org releases index: 2026-07-11; wiki.debian.org table: 2026-07-12). We follow upstream until Debian resolves it; trixie's EOL remains a projection.",
   "discrepancies": [
    "12 (bookworm): our EOL 2026-07-11, official wiki table shows 2026-07-12 (linked to debian.org/News/2026/20260712). One-day discrepancy; ours is one day early.",
    "13 (trixie): our EOL 2028-08-09 is projected; official wiki lists no EOL date yet. Not contradicted, but not officially confirmed."
   ]
  },
  "alpine-linux": {
   "vendor": "Alpine Linux",
   "sourceUrl": "https://alpinelinux.org/releases/",
   "checkedAt": "2026-07-17",
   "status": "verified",
   "versionsChecked": [
    "3.19",
    "3.20",
    "3.21",
    "3.22",
    "3.23",
    "3.24"
   ],
   "notes": "Exact day-level match on all six branches checked against the official releases table: 3.19 EOL 2025-11-01, 3.20 EOL 2026-04-01, 3.21 EOL 2026-11-01, 3.22 EOL 2027-05-01, 3.23 EOL 2027-11-01, 3.24 EOL 2028-06-01 (released 2026-06-09). Alpine branches from edge each May and November with ~2-year support windows; official page confirms this cadence.",
   "discrepancies": []
  },
  "linux": {
   "vendor": "Linux Kernel Organization (kernel.org)",
   "sourceUrl": "https://www.kernel.org/category/releases.html",
   "checkedAt": "2026-07-17",
   "status": "verified",
   "versionsChecked": [
    "5.10",
    "5.15",
    "6.1",
    "6.6",
    "6.12",
    "6.18"
   ],
   "notes": "All six longterm branches match the official projected-EOL table at month granularity (kernel.org publishes 'Mon, YYYY'; we render the last day of that month): 5.10 ours 2026-12-31 vs 'Dec, 2026'; 5.15 ours 2026-12-31 vs 'Dec, 2026'; 6.1 ours 2027-12-31 vs 'Dec, 2027'; 6.6 ours 2027-12-31 vs 'Dec, 2027'; 6.12 ours 2028-12-31 vs 'Dec, 2028'; 6.18 ours 2028-12-31 vs 'Dec, 2028'. IMPORTANT CAVEAT: kernel.org explicitly states projected EOL dates 'are not set in stone' and are frequently extended with industry interest — these are projections, not commitments. Our 5.4 page (EOL Dec 3, 2025) could not be re-verified because branches drop off the official table once EOL. The checker-db 'latest 7.1.3 / supported 5.10-7.1' summary covers stable/mainline branches beyond the longterm table and was not part of this EOL-date verification.",
   "discrepancies": []
  },
  "linuxmint": {
   "vendor": "Linux Mint",
   "sourceUrl": "https://linuxmint.com/download_all.php",
   "checkedAt": "2026-07-17",
   "status": "verified",
   "versionsChecked": [
    "20",
    "20.1",
    "20.3",
    "21",
    "21.3",
    "22",
    "22.3"
   ],
   "notes": "Official page publishes month granularity; we render the last day of the month. Matches: 21/21.3 (and the whole 21.x series) ours 2027-04-30 vs official 'supported until April 2027'; 22/22.3 (whole 22.x series) ours 2029-04-30 vs official 'supported until April 2029'. Mint 20/20.1/20.3 (ours 2025-04-30) are already EOL and delisted from the current official download page, so those exact dates could not be re-confirmed from the live page — consistent with the historically documented 'April 2025' window tied to the Ubuntu 20.04 base. Verification status rests on the currently listed 21.x and 22.x series.",
   "discrepancies": []
  },
  "rhel": {
   "vendor": "Red Hat",
   "sourceUrl": "https://access.redhat.com/support/policy/updates/errata",
   "checkedAt": "2026-07-17",
   "status": "verified",
   "versionsChecked": [
    "6",
    "7",
    "8",
    "9",
    "10"
   ],
   "notes": "Verified against the live lifecycle table on access.redhat.com/support/policy/updates/errata (rendered in browser; table is a JS component fed by Red Hat's product-life-cycles API), plus https://access.redhat.com/articles/4038291 (Retired Life Cycle Dates) for RHEL 6 and the Red Hat product-life-cycles API ('Red Hat Enterprise Linux Legacy Offerings') for RHEL 7. PHASE MAPPING: our published EOL dates map to END OF MAINTENANCE SUPPORT (the 10-year mark), NOT end of Full Support and NOT end of ELS/ELC. Official per-phase dates: RHEL 8 GA 2019-05-07, Full Support ends 2024-05-31, Maintenance Support ends 2029-05-31 (ours: 2029-05-31, match), ELC to 2033-05-31. RHEL 9 GA 2022-05-18, Full 2027-05-31, Maintenance 2032-05-31 (ours: 2032-05-31, match), ELC 2036-05-31. RHEL 10 GA 2025-05-20, Full 2030-05-31, Maintenance 2035-05-31 (ours: 2035-05-31, match), ELC 2039-05-31. RHEL 7 GA 2014-06-10, Full 2019-08-06, Maintenance ends 2024-06-30 (ours: 2024-06-30, match); note RHEL 7 ELS add-on runs to 2029-05-31, so paying ELS customers still receive patches -- our page's 'no more security patches' framing is true only for standard subscriptions. RHEL 6 GA 2010-11-10, End of Maintenance Support 2 (product retirement) 2020-11-30 (ours: 2020-11-30, match); RHEL 6 ELS ended 2024-06-30. Release dates in our pages (2010-11-10, 2014-06-10, 2019-05-07, 2022-05-18, 2025-05-20) all match official GA dates. Red Hat marks all future dates as 'close approximations, non definitive, and subject to change.'",
   "discrepancies": []
  },
  "centos": {
   "vendor": "CentOS Project",
   "sourceUrl": "https://www.centos.org/centos-linux-eol/",
   "checkedAt": "2026-07-17",
   "status": "verified",
   "versionsChecked": [
    "5",
    "6",
    "7",
    "8"
   ],
   "notes": "All four tracked versions match official CentOS Project sources. CentOS Linux 8: 'will reach End Of Life (EOL) on December 31st, 2021' per centos.org/centos-linux-eol/ (ours: 2021-12-31, match). CentOS Linux 7: 'End of Life: June 30, 2024' per https://blog.centos.org/2023/04/end-dates-are-coming-for-centos-stream-8-and-centos-linux-7/ and wiki.centos.org About/Product table (ours: 2024-06-30, match). CentOS 6: 'CentOS-6 updates until November 30, 2020' per wiki.centos.org FAQ, corroborated by the official EOL reminder on lists.centos.org (ours: 2020-11-30, match). CentOS 5: EOL March 31, 2017 per wiki.centos.org FAQ (ours: 2017-03-31, match).",
   "discrepancies": []
  },
  "centos-stream": {
   "vendor": "CentOS Project",
   "sourceUrl": "https://www.centos.org/download/",
   "checkedAt": "2026-07-17",
   "status": "corrected",
   "versionsChecked": [
    "8",
    "9",
    "10"
   ],
   "notes": "Stream 8 and 9 match official sources; Stream 10 does not. Stream 8: 'End of Builds: May 31, 2024' per https://blog.centos.org/2023/04/end-dates-are-coming-for-centos-stream-8-and-centos-linux-7/ (ours: 2024-05-31, match). Stream 9: centos.org/download states 'End-of-life 2027-05-31 (End of RHEL 9 full support phase)', also confirmed on centos.org/stream9/ as 'Expected EOL: End of RHEL9 full support phase (Estimated 2027)' (ours: 2027-05-31, match). Stream 10: centos.org/download states 'End-of-life 2030-05-31 (End of RHEL 10 full support phase)' but our page publishes 2030-01-01 -- looks like a year-only approximation ('2030') that was stored as January 1. Note Stream EOL is tied to the end of the corresponding RHEL FULL SUPPORT phase (not the 10-year maintenance end), and CentOS labels these dates as expected/estimated. Site data corrected to vendor-published values via overrides on 2026-07-18.",
   "discrepancies": [
    {
     "version": "10",
     "ourDate": "2030-01-01",
     "officialDate": "2030-05-31",
     "field": "eolDate",
     "detail": "centos.org/download lists CentOS Stream 10 'End-of-life 2030-05-31 (End of RHEL 10 full support phase)'. Our page endoflife/centos-stream/10.html shows January 1, 2030 -- 5 months earlier than the official date. Likely a '2030' year placeholder serialized as 2030-01-01."
    }
   ]
  },
  "fedora": {
   "vendor": "Fedora Project",
   "sourceUrl": "https://docs.fedoraproject.org/en-US/releases/eol/",
   "checkedAt": "2026-07-17",
   "status": "verified",
   "versionsChecked": [
    "41",
    "42",
    "43",
    "44"
   ],
   "notes": "Past EOLs verified against the official docs.fedoraproject.org EOL table (fetched in-browser past the Anubis bot check): Fedora 41 EOL 2025-12-15 (ours: 2025-12-15, match); Fedora 42 EOL 2026-05-27 (ours: 2026-05-27, match). Future EOLs verified against the official fedorapeople.org schedules: f-43 key-tasks lists 'Fedora Linux 43 End of Life: Wed 2026-12-09' (ours: 2026-12-09, match) and f-44 key-tasks lists 'Fedora Linux 44 End of Life: Wed 2027-06-02' (ours: 2027-06-02, match). Caveats: Fedora explicitly marks these future EOL rows 'This is a changeable date and currently based off the Early Target Date', and Fedora's own F45 schedule carries a slightly different 'Fedora Linux 43 EOL auto closure' task on 2026-12-02 -- an internal inconsistency between Fedora schedule files, not an error in our data. F43/F44 dates should be re-checked after F45 ships (targeted 2026-10-20).",
   "discrepancies": []
  },
  "almalinux": {
   "vendor": "AlmaLinux OS Foundation",
   "sourceUrl": "https://wiki.almalinux.org/release-notes/",
   "checkedAt": "2026-07-17",
   "status": "verified",
   "versionsChecked": [
    "8",
    "9",
    "10"
   ],
   "notes": "Official wiki states: AlmaLinux OS 8 'active support until 31 May 2024, and security support until 31 May 2029'; AlmaLinux OS 9 'active support until 31 May 2027, and security support until 31 May 2032'; AlmaLinux OS 10 'active support until 31 May 2030, and security support until 31 May 2035'. Our dates (8: 2029-05-31, 9: 2032-05-31, 10: 2035-05-31) all match the SECURITY SUPPORT end dates, which is the correct EOL analog (mirrors RHEL end of Maintenance Support). Note each minor release goes EOL when the next minor ships; our pages track the major-version line, which is consistent with vendor framing.",
   "discrepancies": []
  },
  "rocky-linux": {
   "vendor": "Rocky Enterprise Software Foundation",
   "sourceUrl": "https://wiki.rockylinux.org/rocky/version/",
   "checkedAt": "2026-07-17",
   "status": "verified",
   "versionsChecked": [
    "8",
    "9",
    "10"
   ],
   "notes": "Official version policy wiki: Rocky 8 release May 1, 2021, active support ends May 31, 2024, end of life May 31, 2029 (ours: EOL 2029-05-31, release 2021-05-01, match). Rocky 9 release July 14, 2022, active support ends May 31, 2027, end of life May 31, 2032 (ours: 2032-05-31 / 2022-07-14, match). Rocky 10 release June 11, 2025, active support ends May 31, 2030, end of life May 31, 2035 (ours: 2035-05-31 / 2025-06-11, match). Our EOL dates map to the wiki's 'End of Life' (end of maintenance/security updates), not the earlier 'active support' end -- consistent with how we treat RHEL and AlmaLinux.",
   "discrepancies": []
  },
  "windows": {
   "vendor": "Microsoft",
   "sourceUrl": "https://learn.microsoft.com/en-us/lifecycle/products/windows-11-home-and-pro",
   "checkedAt": "2026-07-17",
   "status": "verified",
   "versionsChecked": [
    "11-24h2-w",
    "11-24h2-e",
    "11-25h2-w",
    "11-23h2-e",
    "11-26h1-e",
    "10-22h2",
    "10-21h2-e-lts"
   ],
   "notes": "All seven checked releases match Microsoft exactly, including the newest 26H1 Enterprise end date 2029-03-13; Enterprise/Education dates verified at /windows-11-enterprise-and-education, Windows 10 at /windows-10-enterprise-and-education, and LTSC 2021 at /windows-10-enterprise-ltsc-2021.",
   "discrepancies": []
  },
  "windows-server": {
   "vendor": "Microsoft",
   "sourceUrl": "https://learn.microsoft.com/en-us/lifecycle/products/windows-server-2025",
   "checkedAt": "2026-07-17",
   "status": "corrected",
   "versionsChecked": [
    "2016",
    "2019",
    "2022",
    "2025",
    "2012-r2"
   ],
   "notes": "2016 (2027-01-12), 2019 (2029-01-09), 2022 (2031-10-14), and 2012 R2 (2023-10-10) all match Microsoft's fixed-lifecycle pages, but our Windows Server 2025 EOL predates the vendor's revised extended end date by roughly one month. Site data corrected to vendor-published values via overrides on 2026-07-18.",
   "discrepancies": [
    {
     "version": "2025",
     "ours": "2034-10-10",
     "vendor": "2034-11-14",
     "detail": "Microsoft's Windows Server 2025 lifecycle page (updated 2025-07-08) lists Extended End Date 2034-11-14 and Mainstream End Date 2029-11-13, aligned to the 2024-11-01 GA; our page still shows the pre-GA projection of 2034-10-10."
    }
   ]
  },
  "windows-server-core": {
   "vendor": "Microsoft",
   "sourceUrl": "https://learn.microsoft.com/en-us/lifecycle/products/windows-server-2025",
   "checkedAt": "2026-07-17",
   "status": "corrected",
   "versionsChecked": [
    "2016",
    "2019",
    "2022",
    "2025"
   ],
   "notes": "Server Core is an installation option governed by the same Windows Server lifecycle pages; 2016, 2019, and 2022 match, but 2025 carries the same stale extended end date as our windows-server page. Site data corrected to vendor-published values via overrides on 2026-07-18.",
   "discrepancies": [
    {
     "version": "2025",
     "ours": "2034-10-10",
     "vendor": "2034-11-14",
     "detail": "Microsoft lists Windows Server 2025 Extended End Date as 2034-11-14 (Mainstream 2029-11-13); our Server Core 2025 page shows 2034-10-10."
    }
   ]
  },
  "msexchange": {
   "vendor": "Microsoft",
   "sourceUrl": "https://learn.microsoft.com/en-us/lifecycle/products/exchange-server-2019",
   "checkedAt": "2026-07-17",
   "status": "verified",
   "versionsChecked": [
    "2013",
    "2016",
    "2019",
    "subscription"
   ],
   "notes": "Exchange 2016 and 2019 extended end 2025-10-14, Exchange 2013 extended end 2023-04-11, and Subscription Edition (start 2025-07-01, Modern policy, In Support) all match the official pages at /exchange-server-2016, /exchange-server-2013, and /exchange-server-subscription-edition.",
   "discrepancies": []
  },
  "sharepoint": {
   "vendor": "Microsoft",
   "sourceUrl": "https://learn.microsoft.com/en-us/lifecycle/products/sharepoint-server-2019",
   "checkedAt": "2026-07-17",
   "status": "verified",
   "versionsChecked": [
    "2013",
    "2016",
    "2019",
    "subscription"
   ],
   "notes": "SharePoint 2016 and 2019 extended end 2026-07-14, SharePoint 2013 extended end 2023-04-11, and Subscription Edition (start 2021-11-02, Modern policy, In Support) all match the official pages at /sharepoint-server-2016, /sharepoint-server-2013, and /sharepoint-server-subscription-edition.",
   "discrepancies": []
  },
  "mssqlserver": {
   "vendor": "Microsoft",
   "sourceUrl": "https://learn.microsoft.com/en-us/lifecycle/products/sql-server-2025",
   "checkedAt": "2026-07-17",
   "status": "verified",
   "versionsChecked": [
    "14.0",
    "15.0",
    "16.0",
    "17.0"
   ],
   "notes": "SQL Server 2017/14.0 (2027-10-12), 2019/15.0 (2030-01-08), 2022/16.0 (2033-01-11), and 2025/17.0 (2036-01-06, start 2025-11-18) all match the extended end dates on the official pages at /sql-server-2017, /sql-server-2019, /sql-server-2022, and /sql-server-2025.",
   "discrepancies": []
  },
  "dotnet": {
   "vendor": "Microsoft",
   "sourceUrl": "https://learn.microsoft.com/en-us/lifecycle/products/microsoft-net-and-net-core",
   "checkedAt": "2026-07-17",
   "status": "verified",
   "versionsChecked": [
    "6",
    "8",
    "9",
    "10"
   ],
   "notes": ".NET 6 (2024-11-12), .NET 8 LTS (2026-11-10), .NET 9 (2026-11-10), and .NET 10 (2028-11-14) all match the releases table on Microsoft's combined .NET lifecycle page, including start dates.",
   "discrepancies": []
  },
  "nodejs": {
   "vendor": "OpenJS Foundation / Node.js Release Working Group",
   "sourceUrl": "https://raw.githubusercontent.com/nodejs/Release/main/schedule.json",
   "checkedAt": "2026-07-17",
   "status": "verified",
   "versionsChecked": [
    "18",
    "20",
    "21",
    "22",
    "23",
    "24",
    "25",
    "26"
   ],
   "notes": "All eight checked lines match the official schedule.json 'end' dates exactly: 18=2025-04-30, 20=2026-04-30, 21=2024-06-01, 22=2027-04-30, 23=2025-06-01, 24=2028-04-30, 25=2026-06-01, 26=2029-04-30. Unrelated to EOL dates: the checker-db summary string reads 'Node.js 1-26 are supported', which misstates support breadth (only 22 LTS, 24 LTS, and 26 are in support as of 2026-07); the eolDate/date fields themselves are correct.",
   "discrepancies": []
  },
  "python": {
   "vendor": "Python Software Foundation",
   "sourceUrl": "https://devguide.python.org/versions/",
   "checkedAt": "2026-07-17",
   "status": "verified",
   "versionsChecked": [
    "3.8",
    "3.9",
    "3.10",
    "3.11",
    "3.12",
    "3.13",
    "3.14"
   ],
   "notes": "EOL'd branches match the devguide exactly: 3.9=2025-10-31, 3.8=2024-10-07. Supported branches match at the granularity the devguide publishes (month only): 3.10=2026-10, 3.11=2027-10, 3.12=2028-10, 3.13=2029-10, 3.14=2030-10 versus our 2026-10-31 through 2030-10-31. Our day-of-month (Oct 31) is a rendering choice consistent with recent practice (3.9's actual final EOL was 2025-10-31) but the devguide does not state an exact day for future EOLs.",
   "discrepancies": []
  },
  "php": {
   "vendor": "The PHP Group",
   "sourceUrl": "https://www.php.net/supported-versions.php",
   "checkedAt": "2026-07-17",
   "status": "verified",
   "versionsChecked": [
    "7.4",
    "8.0",
    "8.1",
    "8.2",
    "8.3",
    "8.4",
    "8.5"
   ],
   "notes": "Supported branches match php.net/supported-versions.php security-support end dates exactly: 8.2=2026-12-31, 8.3=2027-12-31, 8.4=2028-12-31, 8.5=2029-12-31. EOL'd branches match php.net/eol.php exactly: 8.1=2025-12-31, 8.0=2023-11-26, 7.4=2022-11-28.",
   "discrepancies": []
  },
  "ruby": {
   "vendor": "Ruby core team (ruby-lang.org)",
   "sourceUrl": "https://www.ruby-lang.org/en/downloads/branches/",
   "checkedAt": "2026-07-17",
   "status": "corrected",
   "versionsChecked": [
    "3.0",
    "3.1",
    "3.2",
    "3.3",
    "3.4",
    "4.0"
   ],
   "notes": "3.0 (2024-04-23) and 3.3 (expected EOL 2027-03-31, security maintenance) match the official branches page. Four issues: exact-date mismatches on 3.1 and 3.2, and projected dates published for 3.4 and 4.0 where the official page says EOL is TBD (both are in normal maintenance). Ruby does not commit to EOL dates for branches in normal maintenance; our ~3-years-plus-security-window projection should be labeled as projected, not presented as fact. Site data corrected to vendor-published values via overrides on 2026-07-18.",
   "discrepancies": [
    {
     "version": "3.1",
     "ours": "2025-03-31",
     "vendor": "2025-03-26",
     "detail": "ruby-lang.org branches page lists Ruby 3.1 EOL as 2025-03-26 (date of final release 3.1.7); our page shows 2025-03-31, five days late."
    },
    {
     "version": "3.2",
     "ours": "2026-03-31",
     "vendor": "2026-04-01",
     "detail": "ruby-lang.org branches page lists Ruby 3.2 EOL as 2026-04-01; our page shows 2026-03-31, one day early."
    },
    {
     "version": "3.4",
     "ours": "2028-03-31",
     "vendor": "TBD",
     "detail": "Official page shows Ruby 3.4 in normal maintenance with no EOL date; our 2028-03-31 is a projection not published by the vendor."
    },
    {
     "version": "4.0",
     "ours": "2029-03-31",
     "vendor": "TBD",
     "detail": "Official page shows Ruby 4.0 in normal maintenance with no EOL date; our 2029-03-31 is a projection not published by the vendor."
    }
   ]
  },
  "go": {
   "vendor": "Go project (Google)",
   "sourceUrl": "https://go.dev/doc/devel/release",
   "checkedAt": "2026-07-17",
   "status": "corrected",
   "versionsChecked": [
    "1.21",
    "1.22",
    "1.23",
    "1.24",
    "1.25",
    "1.26"
   ],
   "notes": "Go publishes no explicit EOL dates; policy is 'each major Go release is supported until there are two newer major releases'. Our EOL dates are correctly derived as the release date of N+2 for 1.21 (2024-08-13 = 1.23.0), 1.22 (2025-02-11 = 1.24.0), and 1.23 (2025-08-12 = 1.25.0). 1.25 and 1.26 correctly show TBD, so we do not publish projected dates beyond policy. One derivation error found on 1.24. The checker-db top-level eolDate 2026-02-11 carries the same off-by-one and is also in the past despite being surfaced as current. Site data corrected to vendor-published values via overrides on 2026-07-18.",
   "discrepancies": [
    {
     "version": "1.24",
     "ours": "2026-02-11",
     "vendor": "2026-02-10",
     "detail": "Go 1.26.0 was released 2026-02-10 per go.dev/doc/devel/release, which is when Go 1.24 left support under the two-release policy; our page shows 2026-02-11, one day late. checker-db.json go.eolDate has the same value."
    }
   ]
  },
  "rust": {
   "vendor": "Rust project",
   "sourceUrl": "https://www.rust-lang.org/policies/security",
   "checkedAt": "2026-07-17",
   "status": "corrected",
   "versionsChecked": [
    "1.92",
    "1.93",
    "1.94",
    "1.95",
    "1.96",
    "1.97"
   ],
   "notes": "Rust publishes no per-version EOL dates. The official security policy states the project 'only provides support and security updates for the most recent stable release'. Our model (each version EOLs on the release date of its successor) is a reasonable inference consistent with that policy, and it is honest that only 1.97 shows as supported with EOL TBD. Cross-checked against release dates in the official RELEASES.md (github.com/rust-lang/rust): 1.92 EOL 2026-01-22 = 1.93.0 release, 1.94 EOL 2026-04-16 = 1.95.0 release, 1.95 EOL 2026-05-28 = 1.96.0 release, 1.96 EOL 2026-07-09 = 1.97.0 release, all correct under the model. One date error found on 1.93. Recommend labeling all per-version Rust EOL dates as inferred (superseded-by-next-stable) rather than vendor-published. Site data corrected to vendor-published values via overrides on 2026-07-18.",
   "discrepancies": [
    {
     "version": "1.93",
     "ours": "2026-03-06",
     "vendor": "2026-03-05",
     "detail": "Rust 1.94.0 was released 2026-03-05 per the official RELEASES.md, so under our own superseded-on-next-release model 1.93's EOL should be 2026-03-05; our page shows 2026-03-06, one day late (also breaks the six-week cadence)."
    }
   ]
  },
  "esxi": {
   "vendor": "Broadcom (VMware)",
   "sourceUrl": "https://knowledge.broadcom.com/external/article/326984/ ; https://knowledge.broadcom.com/external/article/415405/end-of-general-support-for-vsphere-70.html ; https://blogs.vmware.com/cloud-foundation/2025/08/01/sap-customers-running-on-vmware-vsphere-7-call-to-action/",
   "checkedAt": "2026-07-17",
   "status": "verified",
   "versionsChecked": [
    "6.7",
    "7.0",
    "8.0",
    "9.0",
    "9.1"
   ],
   "notes": "Broadcom's interactive Product Lifecycle matrix (support.broadcom.com/group/ecx/productlifecycle) is JavaScript-gated and returns no data to non-browser fetches, so verification used official Broadcom KB articles and the official VMware (Broadcom) blog. Exact matches from official KBs: ESXi 6.5/6.7 End of General Support 'October 15, 2022' (KB 326984) = our Oct 15, 2022; ESXi 7.0 EoGS 'October 2, 2025' (KB 415405 and KB 326984) = our Oct 2, 2025. ESXi 8.0: official VMware blog states vSphere 8 'will be supported until October 2027' (month-level); our exact day Oct 11, 2027 matches the widely reported EoGS date (8.0 GA Oct 11, 2022 + 5 years) but the exact day could not be re-read from the JS-gated lifecycle matrix on this pass. ESXi 9.0 (our EOL 2027-09-17) and 9.1 (our EOL 2028-08-12) are not covered by any fetchable official KB yet; blog only says VCF 9 support planned into 2031. Verified status rests on the exact 6.7 and 7.0 KB matches plus month-level official confirmation of 8.0; 9.x dates remain matrix-derived and were not independently re-confirmed.",
   "discrepancies": []
  },
  "veeam-backup-and-replication": {
   "vendor": "Veeam",
   "sourceUrl": "https://www.veeam.com/product-lifecycle.html",
   "checkedAt": "2026-07-17",
   "status": "corrected",
   "versionsChecked": [
    "10",
    "11",
    "12",
    "13"
   ],
   "notes": "Official lifecycle table publishes month/year only (no day). Matches at month level: v11 End of Support 'February 2024' = our Feb 1, 2024; v12 End of Fix 'November 2025' and End of Support 'February 2027' = our Feb 1, 2027 (also checker-db eolDate 2027-02-01). Our day-of-month ('1st') is our own convention, not vendor-published. v10 is no longer listed anywhere on the current official page, so our Feb 1, 2023 date for v10 cannot be confirmed from the live source. Genuine gap found on v13: see discrepancies. Site data corrected to vendor-published values via overrides on 2026-07-18.",
   "discrepancies": [
    {
     "version": "13",
     "ourDate": "TBD",
     "officialDate": "November 2028",
     "detail": "Our version page (endoflife/veeam-backup-and-replication/13.html) shows 'EOL date is TBD', but the official Veeam lifecycle table already publishes v13 (released November 2025) with End of Fix 'November 2028' and End of Support and Security Fix 'November 2028'. Our data is missing a vendor-published date."
    }
   ]
  },
  "gitlab": {
   "vendor": "GitLab",
   "sourceUrl": "https://docs.gitlab.com/ee/policy/maintenance.html",
   "checkedAt": "2026-07-17",
   "status": "unconfirmed",
   "versionsChecked": [
    "17.11",
    "18.0",
    "19.0",
    "19.1"
   ],
   "notes": "GitLab publishes NO per-version end-of-life dates. Official policy: monthly minor releases on the third Thursday; bug fixes for the current stable release only; security fixes for the current stable plus the previous two monthly releases. Our per-version EOL dates (17.11 -> Jul 17, 2025; 18.0 -> Aug 21, 2025; 19.0 -> Aug 20, 2026; 19.1 -> Sep 17, 2026) are policy-derived projections (the third-Thursday release date on which the version drops out of the 3-release security window), not vendor-published dates. They are consistent with the stated policy but cannot be verified against any official table because none exists. Staleness note: the official docs page lists 19.2 as the current stable release (bug + security fixes) with 19.1 and 19.0 on security fixes only, while our checker-db still shows latestVersion 19.1.2 and 'GitLab 19.0-19.1 are supported' -- our data appears one monthly release behind (19.2 shipped ~Jul 16, 2026).",
   "discrepancies": []
  },
  "jenkins": {
   "vendor": "Jenkins project",
   "sourceUrl": "https://www.jenkins.io/download/lts/ ; https://www.jenkins.io/changelog-stable/",
   "checkedAt": "2026-07-17",
   "status": "unconfirmed",
   "versionsChecked": [
    "2.492",
    "2.504",
    "2.516",
    "2.528",
    "2.541",
    "2.555"
   ],
   "notes": "Jenkins publishes NO formal end-of-life dates. Official LTS policy: a new LTS baseline is chosen every 12 weeks and the prior line is simply superseded. Our per-line EOL dates are the official release date of the successor LTS baseline, and every one checked matches the official changelog exactly: 2.492 EOL Apr 30, 2025 = 2.504.1 release; 2.504 EOL Jul 23, 2025 = 2.516.1 release; 2.516 EOL Oct 15, 2025 = 2.528.1 release; 2.528 EOL Jan 21, 2026 = 2.541.1 release; 2.541 EOL Apr 15, 2026 = 2.555.1 release. So the derivation is sound and anchored to official jenkins.io release dates, but these are policy-derived supersession dates, not vendor-published EOL dates -- hence unconfirmed per verification rules. Staleness found on 2.555: see discrepancies.",
   "discrepancies": [
    {
     "version": "2.555",
     "ourDate": "TBD",
     "officialDate": "2026-07-08 (supersession by 2.568.1, policy-derived)",
     "detail": "Official changelog shows LTS 2.568.1 released July 8, 2026, which supersedes the 2.555 line under Jenkins' rolling-LTS model. Our 2.555 page still shows 'EOL date is TBD' and we have no 2.568 page; data is one LTS cycle (12 weeks) behind. Not a vendor-published EOL date, but our own policy-derived dataset has not been rolled forward."
    }
   ]
  },
  "elasticsearch": {
   "vendor": "Elastic",
   "sourceUrl": "https://www.elastic.co/support/eol",
   "checkedAt": "2026-07-17",
   "status": "verified",
   "versionsChecked": [
    "7.17",
    "8.18",
    "8.19",
    "9.0",
    "9.1"
   ],
   "notes": "Elastic publishes explicit EOL dates per major/final-minor. Exact matches: 7.17 End of Support '15-Jan-2026' = our Jan 15, 2026 (endoflife/elasticsearch/7.html); 8.x series End of Support '15-Jul-2027' = our 8.19 (final 8.x minor) Jul 15, 2027, also checker-db eolDate 2027-07-15. Elastic does not publish individual dates for intermediate minors; official policy states each minor is maintained until a defined later minor ships (e.g. '8.18 will be maintained until the release date of version 9.2'). Our intermediate-minor dates (8.18 -> Oct 21, 2025; 9.0 -> Oct 2, 2025; 9.1 -> Feb 3, 2026) follow that stated policy using actual Elastic release dates and are consistent with it; the vendor-published table dates that do exist (7.17, 8.x series end, 9.x End of Maintenance 15-Oct-2027) all match our data. 9.x End of Support is officially TBD (18 months after 10.0).",
   "discrepancies": []
  },
  "wordpress": {
   "vendor": "WordPress.org",
   "sourceUrl": "https://wordpress.org/download/releases/ ; https://wordpress.org/about/security/",
   "checkedAt": "2026-07-17",
   "status": "unconfirmed",
   "versionsChecked": [
    "4.1",
    "6.8",
    "6.9",
    "7.0"
   ],
   "notes": "WordPress publishes NO end-of-life dates. Official position (wordpress.org/about/security): 'While only the latest version of WordPress is officially supported, the Security Team also backports fixes to older versions as a courtesy' -- historically back to roughly the 4.x era. Releases page confirms latest is 7.0.2 (Jul 17, 2026), matching our checker-db latestVersion 7.0.2, and 7.0 released May 20, 2026 = the supersession date we use as 6.9's EOL. Our per-branch EOL dates are 'superseded by next release' dates (6.8 -> Dec 2, 2025 = 6.9 release; 6.9 -> May 20, 2026 = 7.0 release; 4.1 -> Apr 23, 2015 = 4.2 release), which is a defensible editorial convention but not vendor-published. Honest caveat: WordPress shipped security release 6.9.5 on Jul 17, 2026 -- AFTER our stated 6.9 EOL of May 20, 2026 -- because courtesy security backports continue past supersession. Our dates model 'no longer the supported branch', not 'no more security patches'; the site should be careful not to present them as vendor EOL dates.",
   "discrepancies": []
  }
 },
 "corrections": {
  "windows-server": {
   "2025": {
    "eol": "2034-11-14",
    "_source": "https://learn.microsoft.com/en-us/lifecycle/products/windows-server-2025",
    "_reason": "Microsoft revised the extended end date after GA (page updated 2025-07-08); upstream carries the pre-GA projection 2034-10-10.",
    "_appliedAt": "2026-07-18"
   }
  },
  "windows-server-core": {
   "2025": {
    "eol": "2034-11-14",
    "_source": "https://learn.microsoft.com/en-us/lifecycle/products/windows-server-2025",
    "_reason": "Server Core follows the Windows Server 2025 lifecycle; same post-GA revision as windows-server/2025.",
    "_appliedAt": "2026-07-18"
   }
  },
  "centos-stream": {
   "10": {
    "eol": "2030-05-31",
    "_source": "https://www.centos.org/download/",
    "_reason": "centos.org states end-of-life 2030-05-31 (end of RHEL 10 full-support phase); upstream 2030-01-01 appears to be a year placeholder.",
    "_appliedAt": "2026-07-18"
   }
  },
  "kubernetes": {
   "1.31": {
    "eol": "2025-11-11",
    "_source": "https://kubernetes.io/releases/patch-releases/",
    "_reason": "Actual EOL slipped from the scheduled 2025-10-28; kubernetes.io lists final patch 1.31.14 on 2025-11-11.",
    "_appliedAt": "2026-07-18"
   }
  },
  "ubuntu": {
   "22.04": {
    "eol": "2027-05-31",
    "_source": "https://ubuntu.com/about/release-cycle",
    "_reason": "Canonical lists standard support for 22.04 LTS ending May 2027; upstream 2027-04-01 is two months early. End-of-month day per site convention for month-precision vendor dates.",
    "_appliedAt": "2026-07-18"
   }
  },
  "ruby": {
   "3.1": {
    "eol": "2025-03-26",
    "_source": "https://www.ruby-lang.org/en/downloads/branches/",
    "_reason": "Official branch page lists 3.1 EOL 2025-03-26; upstream shows 2025-03-31.",
    "_appliedAt": "2026-07-18"
   },
   "3.2": {
    "eol": "2026-04-01",
    "_source": "https://www.ruby-lang.org/en/downloads/branches/",
    "_reason": "Official branch page lists 3.2 EOL 2026-04-01; upstream shows 2026-03-31.",
    "_appliedAt": "2026-07-18"
   }
  },
  "go": {
   "1.24": {
    "eol": "2026-02-10",
    "_source": "https://go.dev/doc/devel/release",
    "_reason": "Per Go support policy 1.24 ended when 1.26.0 shipped (2026-02-10); upstream shows 2026-02-11.",
    "_appliedAt": "2026-07-18"
   }
  },
  "rust": {
   "1.93": {
    "eol": "2026-03-05",
    "_source": "https://github.com/rust-lang/rust/blob/master/RELEASES.md",
    "_reason": "Rust supports only the latest stable; 1.94.0 shipped 2026-03-05, ending 1.93. Upstream shows 2026-03-06.",
    "_appliedAt": "2026-07-18"
   }
  },
  "veeam-backup-and-replication": {
   "13": {
    "eol": "2028-11-01",
    "_source": "https://www.veeam.com/product-lifecycle.html",
    "_reason": "Vendor publishes v13 End of Support November 2028; upstream still shows TBD. First-of-month day matches the site's existing Veeam convention.",
    "_appliedAt": "2026-07-18"
   }
  },
  "mariadb": {
   "12.3": {
    "eol": false,
    "_source": "https://mariadb.org/about/",
    "_reason": "Vendor lists 12.3 GA and EOL dates as to-be-confirmed; upstream publishes a firm 2029-06-30 that MariaDB has not committed to. Set to TBD until the vendor confirms (also reported upstream: endoflife.date issue #10508).",
    "_appliedAt": "2026-07-18"
   }
  }
 }
}