Skip to content

Commit d287c2c

Browse files
committed
Expand Dolt support across 2.2.x
1 parent e94ae83 commit d287c2c

6 files changed

Lines changed: 66 additions & 37 deletions

File tree

‎CHANGELOG.md‎

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,16 @@
11
# Changelog
22

3-
## Unreleased
3+
## v0.1.0 - 2026-07-31
44

55
- Defined conservative maintained release-series claims and exact CI targets
66
for MySQL 8.4.11/9.7.2, MariaDB 11.4.12/11.8.8/12.3.2 and PostgreSQL
77
17.10/18.4.
8-
- Preserved the independent exact Dolt 2.2.2 profile and clarified the
9-
non-conflicting SQLite core/optional-workflow policies.
8+
- Expanded the independent Dolt claim from exact 2.2.2 to the conservative
9+
`>=2.2.2,<2.3.0` portion of 2.2.x and added exact 2.2.3 CI
10+
evidence alongside retained 2.2.2 evidence.
11+
- Clarified the non-conflicting SQLite core/optional-workflow policies.
1012
- Added an explicitly unsupported Microsoft SQL Server dialect roadmap.
11-
12-
## v1.0.0-rc.1 - 2026-07-30
13+
- Prepared the initial specification release as `v0.1.0`.
1314

1415
- Defined the strict one-source-dataset to one-wide-table relational contract.
1516
- Added the normative operation and fidelity-event model.

‎README.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ The first profile targets IBM SPSS Statistics system files. It maps one source d
66

77
## Status
88

9-
The versioned [SPSS SAV/ZSAV Profile 1.0](docs/spss-sav-zsav-profile-1.0.md) is prepared as release candidate `v1.0.0-rc.1`, dated 2026-07-30, with normative conformance language, a canonical relational schema, generated fixtures, and reference-adapter coverage. The SQL layer includes independent SQLite, PostgreSQL, MySQL/MariaDB/InnoDB and Dolt profiles; Dolt claims only the exact tested 2.2.2 envelope and does not claim the optional SQL Transformation Workflow Profile 0.1. Implementations must pin the exact specification commit they test against and may identify `v1.0.0-rc.1` as `specification_release` only when the published tag targets that commit.
9+
The versioned [SPSS SAV/ZSAV Profile 1.0](docs/spss-sav-zsav-profile-1.0.md) is prepared for publication as OpenStatSpec `v0.1.0`, dated 2026-07-31, with normative conformance language, a canonical relational schema, generated fixtures, and reference-adapter coverage. The SQL layer includes independent SQLite, PostgreSQL, MySQL/MariaDB/InnoDB and Dolt profiles; Dolt supports the conservative `>=2.2.2,<2.3.0` portion of the 2.2.x family, with exact 2.2.2 and 2.2.3 CI evidence, and does not claim the optional SQL Transformation Workflow Profile 0.1. Implementations must pin the exact specification commit they test against and may identify `v0.1.0` as `specification_release` only when the published tag targets that commit.
1010

1111
The [server-version policy](sql/server-version-policy.md) covers the maintained
1212
MySQL 8.4.x/9.7.x, MariaDB 11.4.x/11.8.x/12.3.x and PostgreSQL 17.x/18.x

‎sql/dialect-profile-baseline.json‎

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,18 @@
5555
"18.4"
5656
],
5757
"latest_stable_version": "18.4"
58+
},
59+
"dolt": {
60+
"claimed_release_series": [
61+
"2.2.x"
62+
],
63+
"minimum_inclusive": "2.2.2",
64+
"maximum_exclusive": "2.3.0",
65+
"exact_ci_target_versions": [
66+
"2.2.2",
67+
"2.2.3"
68+
],
69+
"latest_stable_version": "2.2.3"
5870
}
5971
}
6072
},
@@ -143,10 +155,11 @@
143155
},
144156
"claimed_version_range": {
145157
"minimum_inclusive": "2.2.2",
146-
"maximum_inclusive": "2.2.2"
158+
"maximum_exclusive": "2.3.0"
147159
},
148160
"exact_ci_tested_versions": [
149-
"2.2.2"
161+
"2.2.2",
162+
"2.2.3"
150163
],
151164
"maximum_columns_default": 306,
152165
"maximum_source_variables_default": 305,

‎sql/dialect-profiles.md‎

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -127,12 +127,12 @@ MUST fail before catalog creation, migration or audit writes and before any
127127
dataset mutation. A non-Dolt product MUST NOT be probed with
128128
`DOLT_VERSION()`. Identity failure always leaves zero database mutation.
129129

130-
The initial claimed Dolt version range is exactly 2.2.2, and the exact
131-
CI-tested version list is independently `[2.2.2]`. An adapter MUST reject an
132-
active version outside its published claim before any catalog or dataset
133-
mutation. Until this profile is included in a tagged specification release,
134-
capabilities MUST name the immutable specification commit, report
135-
`release_candidate`, and publish a NULL release identifier.
130+
The claimed Dolt version range is `>=2.2.2,<2.3.0`, the conservative supported
131+
portion of the 2.2.x family, and the exact CI-tested version list is independently
132+
`[2.2.2, 2.2.3]`. An adapter MUST reject an active version outside its
133+
published claim before any catalog or dataset mutation. Capabilities MUST name
134+
the immutable specification commit and MAY report release `v0.1.0` only when
135+
that published tag targets the declared commit.
136136

137137
| Property | Requirement |
138138
| --- | --- |

‎sql/server-version-policy.md‎

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ preflight coverage and live conformance evidence.
2828
| MySQL | 8.4.x, 9.7.x | 8.4.11, 9.7.2 | 9.7.2 |
2929
| MariaDB | 11.4.x, 11.8.x, 12.3.x | 11.4.12, 11.8.8, 12.3.2 | 12.3.2 |
3030
| PostgreSQL | 17.x, 18.x | 17.10, 18.4 | 18.4 |
31+
| Dolt | 2.2.x (`>=2.2.2,<2.3.0`) | 2.2.2, 2.2.3 | 2.2.3 |
3132

3233
The retained older rows provide an actively exercised migration and
3334
compatibility baseline. The newest row for each engine covers the latest GA or
@@ -45,12 +46,18 @@ Images library definitions for [MySQL](https://github.com/docker-library/officia
4546
[MariaDB](https://github.com/docker-library/official-images/blob/master/library/mariadb)
4647
and [PostgreSQL](https://github.com/docker-library/official-images/blob/master/library/postgres).
4748

48-
## Dolt and SQLite are unchanged
49+
## Dolt family policy and SQLite
4950

50-
Dolt remains an independent, essential profile with an exact claim and exact
51-
CI target of 2.2.2. Its MySQL-compatible transport does not place it in the
52-
MySQL release-series policy, and none of its identity, evidence or cleanup
53-
gates are weakened by this matrix.
51+
Dolt remains an independent, essential profile. Its conservative 2.2.x claim
52+
starts at the previously validated 2.2.2 floor and ends before 2.3.0; runtime
53+
preflight MUST reject versions outside `>=2.2.2,<2.3.0` before mutation. Exact
54+
CI evidence covers 2.2.2 and 2.2.3. The family policy follows Dolt's
55+
patch-release compatibility contract while retaining exact-version evidence separately.
56+
Its MySQL-compatible transport does not place it in the MySQL release-series
57+
policy, and none of its identity, evidence or cleanup gates are weakened.
58+
The primary sources are the official
59+
[Dolt 2.2.3 release](https://github.com/dolthub/dolt/releases/tag/v2.2.3)
60+
and [versioning policy](https://www.dolthub.com/docs/other/versioning/).
5461

5562
SQLite is not a server-service row. The core adapter policy remains
5663
`>=3.24.0,<4.0.0`. The Python-only optional SQL Transformation Workflow has a

‎tools/validate_repository.py‎

Lines changed: 26 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -195,13 +195,28 @@ def validate_dialect_baseline() -> None:
195195
)
196196
targets = version_policy["reference_adapter_targets"]
197197
expected_targets = {
198-
"mysql": (["8.4.x", "9.7.x"], ["8.4.11", "9.7.2"], "9.7.2"),
199-
"mariadb": (
200-
["11.4.x", "11.8.x", "12.3.x"],
201-
["11.4.12", "11.8.8", "12.3.2"],
202-
"12.3.2",
203-
),
204-
"postgresql": (["17.x", "18.x"], ["17.10", "18.4"], "18.4"),
198+
"mysql": {
199+
"claimed_release_series": ["8.4.x", "9.7.x"],
200+
"exact_ci_target_versions": ["8.4.11", "9.7.2"],
201+
"latest_stable_version": "9.7.2",
202+
},
203+
"mariadb": {
204+
"claimed_release_series": ["11.4.x", "11.8.x", "12.3.x"],
205+
"exact_ci_target_versions": ["11.4.12", "11.8.8", "12.3.2"],
206+
"latest_stable_version": "12.3.2",
207+
},
208+
"postgresql": {
209+
"claimed_release_series": ["17.x", "18.x"],
210+
"exact_ci_target_versions": ["17.10", "18.4"],
211+
"latest_stable_version": "18.4",
212+
},
213+
"dolt": {
214+
"claimed_release_series": ["2.2.x"],
215+
"minimum_inclusive": "2.2.2",
216+
"maximum_exclusive": "2.3.0",
217+
"exact_ci_target_versions": ["2.2.2", "2.2.3"],
218+
"latest_stable_version": "2.2.3",
219+
},
205220
}
206221
require(
207222
isinstance(targets, dict) and set(targets) == set(expected_targets),
@@ -210,19 +225,12 @@ def validate_dialect_baseline() -> None:
210225
for engine, expected in expected_targets.items():
211226
target = targets[engine]
212227
require(
213-
isinstance(target, dict)
214-
and set(target)
215-
== {"claimed_release_series", "exact_ci_target_versions", "latest_stable_version"},
228+
isinstance(target, dict) and set(target) == set(expected),
216229
f"{engine} server target fields are incomplete.",
217230
)
218231
require_string_list(target["claimed_release_series"], f"{engine} claimed release series")
219232
require_string_list(target["exact_ci_target_versions"], f"{engine} exact CI targets")
220-
require(
221-
target["claimed_release_series"] == expected[0]
222-
and target["exact_ci_target_versions"] == expected[1]
223-
and target["latest_stable_version"] == expected[2],
224-
f"{engine} server target policy is unexpected.",
225-
)
233+
require(target == expected, f"{engine} server target policy is unexpected.")
226234
profiles = baseline.get("profiles")
227235
require(isinstance(profiles, dict) and profiles, "SQL dialect profiles are missing.")
228236
expected_modes = {
@@ -293,10 +301,10 @@ def validate_dialect_baseline() -> None:
293301
)
294302
require(
295303
dolt["claimed_version_range"]
296-
== {"minimum_inclusive": "2.2.2", "maximum_inclusive": "2.2.2"},
304+
== {"minimum_inclusive": "2.2.2", "maximum_exclusive": "2.3.0"},
297305
"Dolt claimed version range is unexpected.",
298306
)
299-
require(dolt["exact_ci_tested_versions"] == ["2.2.2"], "Dolt exact CI-tested versions are unexpected.")
307+
require(dolt["exact_ci_tested_versions"] == ["2.2.2", "2.2.3"], "Dolt exact CI-tested versions are unexpected.")
300308
require(dolt["maximum_columns_default"] == 306, "Dolt physical-column envelope is unexpected.")
301309
require(dolt["maximum_source_variables_default"] == 305, "Dolt source-variable envelope is unexpected.")
302310
require(dolt["identifier_quoting"] == "backtick", "Dolt identifier quoting is unexpected.")

0 commit comments

Comments
 (0)