# Latest CMake preset schema file is not up to date?

**URL:** https://discourse.cmake.org/t/latest-cmake-preset-schema-file-is-not-up-to-date/10013
**Category:** Development
**Created:** [February 6, 2024, 9:17am UTC](https://discourse.cmake.org/t/latest-cmake-preset-schema-file-is-not-up-to-date/10013 "2024-02-06T09:17:01Z")
**Posts on this page:** 8
**Page:** 1

<div class="post-metadata">

### Author: ![ClausKlein](https://discourse.cmake.org/user_avatar/discourse.cmake.org/clausklein/32/352_2.png) [@ClausKlein](https://discourse.cmake.org/u/ClausKlein)
#### Post date: [February 6, 2024, 9:17am UTC](https://discourse.cmake.org/t/latest-cmake-preset-schema-file-is-not-up-to-date/10013/1 "2024-02-06T09:17:01Z")

</div>

The [CMake presets schema](https://cmake.org/cmake/help/v3.28/manual/cmake-presets.7.html#schema) is not the **version 8**?

bash-5.2$ diff -cw ~/Downloads/schema.json ./Help/manual/presets/schema.json

```diff
*** /Users/clausklein/Downloads/schema.json	Tue Aug 15 16:27:45 2023
--- ./Help/manual/presets/schema.json	Tue Feb 6 09:45:52 2024
***************
 ***106,117****
--- 106,140 ----
          "include": { "$ref": "#/definitions/include" }
        },
        "additionalProperties": false
+ },
+ {
+ "properties": {
+ "$schema": { "$ref": "#/definitions/$schema" },
+ "version": {
+ "const": 8,
+ "description": "A required integer representing the version of the JSON schema."
+ },
+ "cmakeMinimumRequired": { "$ref": "#/definitions/cmakeMinimumRequired" },
+ "vendor": { "$ref": "#/definitions/vendor" },
+ "configurePresets": { "$ref": "#/definitions/configurePresetsV7" },
+ "buildPresets": { "$ref": "#/definitions/buildPresetsV4" },
+ "testPresets": { "$ref": "#/definitions/testPresetsV6" },
+ "packagePresets": { "$ref": "#/definitions/packagePresetsV6" },
+ "workflowPresets": { "$ref": "#/definitions/workflowPresetsV6" },
+ "include": { "$ref": "#/definitions/include" }
+ },
+ "additionalProperties": false
      }
    ],
    "required": [
      "version"
    ],
    "definitions": {
+ "$schema": {
+ "type": "string",
+ "description": "The schema against which to verify this document.",
+ "format": "uri-reference"
+ },
      "cmakeMinimumRequired": {
        "type": "object",
        "description": "An optional object representing the minimum version of CMake needed to build this project.",

```

---

<div class="post-metadata">

### Author: ![brad.king](https://discourse.cmake.org/user_avatar/discourse.cmake.org/brad.king/32/11_2.png) [@brad.king](https://discourse.cmake.org/u/brad.king)
#### Post date: [February 6, 2024, 1:34pm UTC](https://discourse.cmake.org/t/latest-cmake-preset-schema-file-is-not-up-to-date/10013/2 "2024-02-06T13:34:34Z")

</div>

The “This file” link at the bottom of the manual for 3.28 looks correct to me. Note that the actual file’s URL changes every time the documentation is rebuilt for a patch release. Currently for 3.28.3 it is:

```console
$ curl -O https://cmake.org/cmake/help/v3.28/_downloads/3e2d73bff478d88a7de0de736ba5e361/schema.json
$ grep '"const": 8' schema.json
          "const": 8,

```

---

<div class="post-metadata">

### Author: ![ClausKlein](https://discourse.cmake.org/user_avatar/discourse.cmake.org/clausklein/32/352_2.png) [@ClausKlein](https://discourse.cmake.org/u/ClausKlein)
#### Post date: [February 6, 2024, 3:00pm UTC](https://discourse.cmake.org/t/latest-cmake-preset-schema-file-is-not-up-to-date/10013/3 "2024-02-06T15:00:02Z")

</div>

Yes, my fault! My download dir contains both, old and current version. sorry gain.

---

<div class="post-metadata">

### Author: ![ClausKlein](https://discourse.cmake.org/user_avatar/discourse.cmake.org/clausklein/32/352_2.png) [@ClausKlein](https://discourse.cmake.org/u/ClausKlein)
#### Post date: [February 6, 2024, 3:12pm UTC](https://discourse.cmake.org/t/latest-cmake-preset-schema-file-is-not-up-to-date/10013/4 "2024-02-06T15:12:25Z")

</div>

> [@brad.king](#):
>
> `https://cmake.org/cmake/help/v3.28/_downloads/3e2d73bff478d88a7de0de736ba5e361/schema.json`

so I guess this is right now:

```diff
diff --git a/CMakePresets.json b/CMakePresets.json
index 9e62aa3..837cee3 100644
--- a/CMakePresets.json
+++ b/CMakePresets.json
@@ -1,8 +1,9 @@
 {
- "version": 6,
+ "version": 8,
+ "$schema": "https://cmake.org/cmake/help/v3.28/_downloads/3e2d73bff478d88a7de0de736ba5e361/schema.json",
     "cmakeMinimumRequired": {
         "major": 3,
- "minor": 25,
+ "minor": 28,
         "patch": 0
     },
     "include": [

```

---

<div class="post-metadata">

### Author: ![brad.king](https://discourse.cmake.org/user_avatar/discourse.cmake.org/brad.king/32/11_2.png) [@brad.king](https://discourse.cmake.org/u/brad.king)
#### Post date: [February 6, 2024, 3:35pm UTC](https://discourse.cmake.org/t/latest-cmake-preset-schema-file-is-not-up-to-date/10013/5 "2024-02-06T15:35:41Z")

</div>

The `_downloads` URLs are not stable. Don’t reference them in document `$schema` fields.

---

<div class="post-metadata">

### Author: ![RampantDespair](https://discourse.cmake.org/user_avatar/discourse.cmake.org/rampantdespair/32/6168_2.png) [@RampantDespair](https://discourse.cmake.org/u/RampantDespair)
#### Post date: [July 7, 2026, 10:53pm UTC](https://discourse.cmake.org/t/latest-cmake-preset-schema-file-is-not-up-to-date/10013/6 "2026-07-07T22:53:18Z")

</div>

Given that `_downloads` links aren’t stable, what’s the correct way to reference the schema for a specific CMake version (e.g. 4.4.0)? Is there a stable versioned URL?

Edit: something like this perhaps?

[https://gitlab.kitware.com/cmake/cmake/-/raw/v4.4.0-rc3/Help/manual/presets/schema.json](https://gitlab.kitware.com/cmake/cmake/-/raw/v4.4.0-rc3/Help/manual/presets/schema.json)

Is that a better candidate in your opinion?

---

<div class="post-metadata">

### Author: ![brad.king](https://discourse.cmake.org/user_avatar/discourse.cmake.org/brad.king/32/11_2.png) [@brad.king](https://discourse.cmake.org/u/brad.king)
#### Post date: [July 8, 2026, 1:01pm UTC](https://discourse.cmake.org/t/latest-cmake-preset-schema-file-is-not-up-to-date/10013/7 "2026-07-08T13:01:48Z")

</div>

> [@RampantDespair](#):
>
> Edit: something like this perhaps? `https://gitlab.kitware.com/cmake/cmake/-/raw/...`

Try the GitHub equivalent [preset schema](https://raw.githubusercontent.com/Kitware/CMake/refs/tags/v4.4.0-rc3/Help/manual/presets/schema.json) URL, which is served by a CDN.

---

<div class="post-metadata">

### Author: ![RampantDespair](https://discourse.cmake.org/user_avatar/discourse.cmake.org/rampantdespair/32/6168_2.png) [@RampantDespair](https://discourse.cmake.org/u/RampantDespair)
#### Post date: [July 8, 2026, 5:20pm UTC](https://discourse.cmake.org/t/latest-cmake-preset-schema-file-is-not-up-to-date/10013/8 "2026-07-08T17:20:39Z")

</div>

Understood, thank you.
