1- # 0.7.1 release readiness
1+ # 0.8.0 release readiness
22
33This page records the expected release contract, not a publication event.
44Creating a version tag remains a separate maintainer action.
55
6+ The release selects SAV/ZSAV 1.0 with the optional Database I/O Execution
7+ Policy ` openstatspec-database-io-v1 ` . Reads and exports, including failures,
8+ write no database audit records; export results omit ` operation_id ` and return
9+ diagnostics to the caller. Reads must not create missing SQLite files or apply
10+ Dolt write-variable-count ceilings. This release does not claim implementation
11+ of the optional Transformation Workflow 0.3 profile.
12+
613## Supported workflow
714
815For a supported unencrypted SAV or ZSAV source, the adapter imports one source
@@ -20,15 +27,17 @@ database contract.
2027| PostgreSQL | ` postgresql+psycopg://… ` | 17.x and 18.x | 17.10 and 18.4 |
2128| MySQL | ` mysql+pymysql://… ` | 8.4.x and 9.7.x | 8.4.11 and 9.7.2 |
2229| MariaDB | ` mysql+pymysql://… ` | 11.4.x, 11.8.x, and 12.3.x | 11.4.12, 11.8.8, and 12.3.2 |
23- | Dolt | ` mysql+pymysql://… ` | 2.2.x with ` >= 2.2.2,<2.3.0 ` | 2.2.2 and 2.2.3 |
30+ | Dolt writes | ` mysql+pymysql://… ` | Exactly 2.2.2 and 2.2.3 | 2.2.2 and 2.2.3 |
2431
2532Separate service matrices test the shared MySQL/MariaDB profile contract while
2633retaining distinct active-server identities and version claims. Dolt is an
27- independent core profile that accepts only canonical stable versions in
28- ` >=2.2.2,<2.3.0 ` ; the optional Transformation Workflow remains SQLite-only. This does not
29- claim coverage for every server configuration. The machine-readable capability
30- declaration reports both the theoretical profile boundaries and effective
31- limits observed from the active connection.
34+ independent core profile with a packaged exact-version write policy; normal
35+ callers supply no conformance files. An explicit external declaration source
36+ remains a strict override. Read-only validation/export has no write-version gate.
37+ The optional Transformation Workflow remains SQLite-only. This does not claim
38+ coverage for every server configuration or proven Dolt native limit ceilings.
39+ Dolt capabilities report adapter safety budgets and active packet constraints;
40+ full boundary conformance remains pending.
3241Every server service job compares the normalized live product version with its
3342exact matrix entry, so a moved or mismatched image cannot substantiate the CI
3443declaration. SQLite's optional Transformation Workflow retains its narrower
@@ -102,6 +111,51 @@ implemented openstatspec.frontends.spss package. Stata and SAS remain empty
102111source-tree placeholders and must expose no compiler, apply API, CLI choice,
103112capability claim, or implied support.
104113
114+ ## Prior default Dolt write verification (before the 0.8.0 pin)
115+
116+ Local release verification used the exact 2.2.2 and 2.2.3 image digests in
117+ ` .github/workflows/ci.yml ` , isolated ports 13482/13483, and disposable ` /tmp `
118+ database directories. With ` PYTHONPATH=src:../pyspssio ` ,
119+ ` OPENSTATSPEC_SPECIFICATION_DIR=/tmp/oss-php-spec-cd8f198 ` , and each matching
120+ ` OPENSTATSPEC_DOLT_URL ` / ` OPENSTATSPEC_EXPECTED_DOLT_VERSION ` :
121+
122+ - ` ../python/.venv/bin/python -m pytest ` : ** 366 passed, 49 skipped per pin** .
123+ - CI selection ` -m 'services and not candidate_evidence' ` : ** 7 passed,
124+ 41 skipped per pin** ; other database services were not configured locally.
125+ - Dolt 2.3.0 on port 13387: read-only export and unknown-version write rejection
126+ checks passed (** 19 passed** ) using disposable fixture databases/users.
127+ - ` python -m compileall -q src tests ` and ` git diff --check ` passed.
128+
129+ Live failures exposed and now cover two previously dormant write blockers:
130+ owned table additions being misclassified as unrelated diffs, and Dolt retaining
131+ ` @@autocommit=1 ` despite the driver's setting. Writes now explicitly begin their
132+ transaction. The candidate storage/identifier/column smoke probe also passed on
133+ both pins; it does ** not** establish full value/row/statement limit conformance.
134+
135+ ## 0.8.0 local verification
136+
137+ Using ` ../python/.venv/bin/python ` , ` PYTHONPATH=src:../pyspssio ` , and
138+ ` OPENSTATSPEC_SPECIFICATION_DIR=/tmp/oss-python-spec-v050-5dSTna ` (an archive
139+ of exact ` 864e84479f554b8ee250ffed44c4dfb963750d4a ` ):
140+
141+ - ` python -m pytest -ra ` : ** 381 passed, 49 skipped** , with
142+ ` OPENSTATSPEC_TEST_DOLT_ADMIN_URL=mysql+pymysql://root@127.0.0.1:13387/ `
143+ exercising live Dolt 2.3.0 through disposable SELECT-only users.
144+ - Both immutable CI images, exact Dolt 2.2.2/2.2.3, bootstrapped with the
145+ unchanged service user and separate global fixture admin on ports 13582/13583:
146+ ` python -m pytest -m 'services and not candidate_evidence' ` : ** 7 passed,
147+ 41 skipped, 382 deselected per pin** ; explicit
148+ ` python -m pytest tests/test_read_only_export.py ` : ** 33 passed per pin** .
149+ - ` python -m compileall -q src tests ` , ` git diff --check ` , wheel/sdist build,
150+ and ` python -m twine check /tmp/oss-python-v080-dist/* ` passed.
151+ - A clean wheel install resolved the required engine from PyPI. Isolated
152+ imports came only from the smoke environment's ` site-packages ` ; installed
153+ capabilities reported adapter 0.8.0, the selected policy, released v0.5.0
154+ provenance, and exactly 2.2.2/2.2.3 for default Dolt writes.
155+
156+ Other database services were not configured locally. This is local evidence,
157+ not a claim that the updated remote CI or release publication has completed.
158+
105159## Maintainer checks before tagging
106160
1071611 . Publish the pinned ` openstatspec-pyspssio==0.5.1.post2 ` engine distribution
@@ -110,14 +164,28 @@ capability claim, or implied support.
1101642 . Run ` python -m pytest -m "not services" ` .
1111653 . Confirm the GitHub Actions matrix is green for exact PostgreSQL 17.10/18.4,
112166 MySQL 8.4.11/9.7.2, MariaDB 11.4.12/11.8.8/12.3.2, and exact Dolt
113- 2.2.2/2.2.3 service evidence from the immutable image pins in CI.
167+ 2.2.2/2.2.3 service evidence from the immutable image pins in CI. The Dolt
168+ jobs must perform default import/validate/SAV+ZSAV export, in-place recode
169+ and labels with unchanged dataset/table counts and HEAD, injected data,
170+ catalog, and audit rollback checks, and failed-import cleanup. Release/CI
171+ owns this evidence, not per-user runtime declaration files. Candidate limit
172+ probes remain non-claiming and separate from these write gates.
173+ Each Dolt job must also run ` python -m pytest tests/test_read_only_export.py `
174+ explicitly, outside the ` services ` marker filter. Bootstrap a separate
175+ ` openstatspec_test_admin ` on the isolated CI server with global database/user
176+ creation and grant privileges, and set ` OPENSTATSPEC_TEST_DOLT_ADMIN_URL ` .
177+ The fixture creates its own database and SELECT-only reader and removes
178+ both afterward; the normal service user remains unchanged.
1141794 . Build with ` python -m build ` and install the generated wheel in a clean
115- environment.
180+ environment, resolving ` openstatspec-pyspssio==0.5.1.post2 ` from PyPI.
181+ Run the installed CLI outside the source checkout with ` PYTHONPATH ` unset;
182+ verify adapter version ` 0.8.0 ` and the selected database I/O policy.
1161835 . Confirm ` openstatspec capabilities ` reflects the intended support boundary.
1171846 . Confirm CI, release fixtures, and capabilities use the published OpenStatSpec
118- specification ` v0.3.0 ` at exact commit
119- ` cd8f198c68b849eb8ed018a894670a0904c2181d ` , publish
120- ` specification_status=stable ` , and set ` specification_release ` to ` v0.3.0 ` .
185+ specification ` v0.5.0 ` at exact commit
186+ ` 864e84479f554b8ee250ffed44c4dfb963750d4a ` , publish
187+ ` specification_status=released ` , and set ` specification_release ` to ` v0.5.0 ` .
188+ Use an exact checkout via ` OPENSTATSPEC_SPECIFICATION_DIR ` for local tests.
1211897 . Review this document, the README, and CHANGELOG for accurate scope.
122190
123191The tag-triggered release workflow repeats the non-service test suite, builds
0 commit comments