All notable changes to this reference implementation are documented here.
Planned adapter release: 0.5.0, after lifecycle integration and final specification conformance.
- Added bounded typed expressions with variable references, numeric literals,
parentheses,
=,<,<=,>,>=,AND, andOR. String comparison and v0.2 string assignment fail closed pending exact portable semantics. - Added sequential SPSS-like
COMPUTEandIFassignment operations plusFORMATS,VARIABLE LEVEL, andEXECUTE. - Added atomic numeric target creation on SQLite and PostgreSQL. MySQL,
MariaDB, and Dolt fail closed on
target_mode=create; their targets must be provisioned physically and in the catalog by a separate versioned stage before this executor applies assignment and metadata operations. - Added synthetic exact-program, catalog, failure-boundary, and pre-existing target regression coverage.
- Bumped the canonical transformation-plan and SPSS frontend contracts to
v0.2; canonical JSON and hashes include every sequential operation. - In-place apply now records variable label, value labels,
Fprint/write format, and measurement level in both normative and compatibility catalogs. - Dolt still requires an exact branch, exact HEAD, and clean working set;
successful apply leaves an inspectable diff and never calls
DOLT_COMMIT. - Dolt declaration validation is implemented by the Python adapter. The specification remains a language-neutral source of JSON contracts and fixtures and is not installed as a Python distribution.
- Release validation is pinned to the untagged OpenStatSpec specification
release candidate at immutable commit
f2fdf687d8cb32b944ca55a3e9e7215ffc603019. Itsspecification_releaseremains null until that commit receives a stable tag.
- Added a public canonical transformation-plan in-place API accepting either typed plan objects or strictly validated mappings.
- Added apply-plan and install-in-place-schema CLI workflows alongside the compatible apply-spss command.
- Added explicit audit provenance distinguishing canonical plan documents from SPSS syntax sources.
- Added a transformation manual covering the canonical core, frontend boundary, execution invariants, CLI/API workflows, and extension rules.
- Moved the SPSS parser, binder, compiler, and convenience execution adapter to the dedicated openstatspec.frontends.spss package.
- Kept openstatspec.transform language-neutral with canonical plan, schema, and live-schema validation modules while preserving previous SPSS import paths.
- Reserved empty Stata and SAS frontend directories without exposing parsers, capabilities, CLI choices, or support claims.
- Strengthened pre-mutation target-type checks and target-scoped physical table identity guards. The executor continues to modify the same dataset and table without creating OpenStatSpec rollback, copy, snapshot, or history layers.
- Conformance and release validation continue to use OpenStatSpec specification release v0.2.0 at exact commit 79339ec3d8f8aa81789b7e85f6b8afa6f1374e50.
- Added a bounded SPSS-like
RECODE,VARIABLE LABELS, andVALUE LABELSparser with stable diagnostics and conformance fixtures. - Added canonical Transformation Plan serialization, RFC 8785 hashes, schema binding, deterministic typed operations, and an agent-facing CLI/API.
- Added product-neutral in-place execution with same dataset/table identity, direct data and metadata mutation, and compact operation audit. Dolt adds expected branch/HEAD and clean-working-set checks.
- Version history, diff, rollback, restoration, and commit remain database
responsibilities; the transformer creates no derived/copy/snapshot/recovery
layer and performs no
DOLT_COMMIT. - SQL server support now distinguishes conservative family claims from exact CI evidence: PostgreSQL 17.x/18.x at 17.10/18.4, MySQL 8.4.x/9.7.x at 8.4.11/9.7.2, and MariaDB 11.4.x/11.8.x/12.3.x at 11.4.12/11.8.8/12.3.2. Each service job verifies the live normalized version.
- Dolt remains an independent core profile, now claiming canonical stable
versions
>=2.2.2,<2.3.0and running its complete service suite at exact versions 2.2.2 and 2.2.3 from immutable container-image pins. SQLite retains its core>=3.24.0,<4.0.0and optional workflow>=3.35.0,<4.0.0tiers. MSSQL remains unsupported and roadmap-only.
- CI, release validation, and machine-readable capabilities use OpenStatSpec
specification release
v0.2.0at exact commit79339ec3d8f8aa81789b7e85f6b8afa6f1374e50.
This release extends the reference adapter while keeping imported source datasets immutable and all unsupported paths fail-closed.
- An optional SQLite-only Transformation Workflow for immutable, versioned, parameterized SELECT definitions; materialized derived datasets; lineage and weights; public catalog APIs; and CLI operations.
- An independent Dolt core SQL profile for exact product version 2.2.2, with service-backed coverage, conservative adapter limits, complete compensating cleanup, and pre-DDL rejection of unsupported values. Transformation Workflow support on Dolt is not claimed.
- SAV and ZSAV validation now rewrites legacy compatible names consistently across type-2 records and subtype-13/subtype-14 long-name metadata.
- Transformation publication, interrupted-run reconciliation, retirement, and physical-removal recovery now preserve auditable state and fail closed on catalog or relation drift.
- Release automation builds distributions before test-only source checkouts and supports idempotent rebuilds of an existing release tag.
- CI and release validation are pinned to OpenStatSpec specification release
v1.0.0-rc.1at exact commitfef0dc6f4b17ff7141dad3f49d0524c63efbfed5.
First public reference implementation of the OpenStatSpec strict wide-table SPSS profile.
- Import of unencrypted SAV and ZSAV sources into one dedicated wide SQL table and its metadata catalog.
- Export of supported dataset semantics to SAV and ZSAV.
- SQLite, PostgreSQL, MySQL, and MariaDB profiles, including service-backed PostgreSQL 17/18, MySQL 8.4/9.7, and MariaDB 11.4/11.8/12.3 CI coverage.
- Read-only positive Dolt identity and working-set inspection. Operational Dolt writes use adapter-owned declaration validation and remain fail-closed because the adapter ships no concrete declaration claim. The specification remains language-neutral and is consumed only as JSON contracts and fixtures.
- Added explicit packaged/directory conformance-source injection and exact single-match binding across active Dolt product version, adapter implementation and version, and specification commit before mutation.
- Explicit catalog initialization/migration through
initialize_catalogandopenstatspec init; data operations never auto-create catalog relations. - Read-only Dolt working-set evidence through
dolt_state_snapshotandopenstatspec dolt-state; core performs no Dolt version-control mutations. - Preflight checks for target profile limits, atomic imports, validation, a command-line interface, and machine-readable capability and loss reports.
- This release promises semantic round-trip equivalence only for supported features; it never promises byte-identical SAV/ZSAV output.
- The adapter requires explicit
allow_lossconsent before exporting known unsupported or lossy dictionary semantics. - Multiple-response sets, variable alignment, variable sets, and custom attributes have explicit capability diagnostics; see the SAV profile.
- Encrypted SPSS files are not supported.
- Dolt adapter-envelope values are not claims about Dolt server limits. Failure recovery is compensating and reports deterministic residual inventory; a verified catalog receives a best-effort failed-operation audit when cleanup itself fails.
- Export publication uses a durable, audit-recorded prior-file backup through SQL finalization. Post-success backup retention is reported separately and does not rewrite a successful export as failed; pre-success failures restore the prior destination and close the running operation as failed.