--- title: WebKit release → macOS version mapping tags: [webkit, safari, macos, reference] created: 2026-10-06 source: ~/Downloads/WebKit_sparse (git checkout of github.com/WebKit/WebKit, main @ 99051d5d08) --- # WebKit release → macOS version mapping ## TL;DR Готовой опубликованной таблицы «релиз WebKit → macOS-релиз» не существует. Маппинг **выводится из исходников** — он в самом дереве WebKit, а не на сайте. ## Механизм (ground truth) AppleWebKit-версия в User-Agent собирается из двух частей: ``` AppleWebKit = SYSTEM_VERSION_PREFIX (зависит от macOS) + FULL_VERSION WebKit ``` ### 1. macOS → SYSTEM_VERSION_PREFIX Файл: `Configurations/Version.xcconfig`, строки 35–53. | macOS | SYSTEM_VERSION_PREFIX | |---|---| | 15 Sequoia | 20 | | 16 | 21 | | 26 Tahoe | 21 | | 27 Golden Gate | 22 | | 28 | 23 | | 29 | 24 | | 30 | 25 | | (default) | 22 | ### 2. FULL_VERSION WebKit (текущий main) `Configurations/Version.xcconfig`: - MAJOR = 627, MINOR = 1, TINY = 2 → FULL_VERSION = `627.1.2` ### Пример сборки UA-токена | macOS | prefix | AppleWebKit/… | |---|---|---| | 15 Sequoia | 20 | `20627.1.2` | | 16 | 21 | `21627.1.2` | | 26 Tahoe | 21 | `21627.1.2` | | 27 Golden Gate | 22 | `22627.1.2` | | 30 | 25 | `25627.1.2` | > Примечание: префиксы 21 у macOS 16 и 26 — это одно и то же системное поколение нумерации, отсюда совпадение. ## Что есть в дереве | Что | Путь | Содержимое | |---|---|---| | macOS → prefix + текущая версия | `Configurations/Version.xcconfig` | таблица префиксов + MAJOR/MINOR/TINY | | macOS ↔ кодовые имена | `Tools/Scripts/webkitpy/common/version_name_map.py` | Leopard … Tahoe, Golden Gate | | таймлайн релизов WebKit | `git log Configurations/Version.xcconfig` | коммиты «Versioning. WebKit-XXXX.Y.Z» | | отгруженные релизы | `git ls-remote --heads origin` | 498 веток `safari-XXXX-branch` | | генератор deployment target | `Configurations/Scripts/generate-deployment-target-xcconfig.py` | 6-значные minor-версии → semver | ## Чего в дереве НЕТ Готовой таблицы «релиз WebKit → macOS-релиз». Она собирается из трёх источников: 1. prefix-таблица (в дереве, `Version.xcconfig`); 2. Apple Safari/iOS release notes — какая версия вошла в какой macOS; 3. `git log Configurations/Version.xcconfig` — таймлайн бампов версии. ## Источники (проверено) - Файл: `~/Downloads/WebKit_sparse/Configurations/Version.xcconfig` — 76 строк, 3640 байт. - Строки 35–53 — таблица префиксов и `SYSTEM_VERSION_PREFIX_macosx_*`. - Строки 24–29 — MAJOR/MINOR/TINY/FULL. - Источник: рабочий чекаут Alex (`WebKit_sparse`), не внешний сайт. ## Pitfalls - Префикс `SYSTEM_VERSION_PREFIX_macosx_` (пустой) = `22` — это default для неизвестного macOS; не путать с реальным. - `Version.xcconfig` есть **только** в `Configurations/` (один файл); вложенных копий в `Source/` нет. - Sparse/shallow клоны содержат лишь ~10 последних бампов версии — полная история требует полного клона. - Ветки `origin` содержат `integration/...safari-XXX-branch` (мусор от CI) — фильтровать по чистому `^safari-[0-9.]*-branch$`.