diff --git a/CHANGELOG.md b/CHANGELOG.md index fd2f28e..e4b0e2e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,13 @@ ## [Unreleased] +### Changed + +- Updated the installed and exact CI-tested `openstatspec/spss-sav` codec from + 3.0.2 to 3.0.3, and aligned the reported engine identity and codec + documentation with the separately versioned OpenStatSpec package. +- Made the transformation capability boundary explicit: the current PHP API uses the package-local legacy `openstatspec-transformation-plan-v1` contract and does not yet claim official Transformation Plan or SPSS Frontend profile 0.1/0.2 conformance. + ## [0.4.0] - 2026-07-31 ### Added diff --git a/README.md b/README.md index a0d013f..4a300c8 100644 --- a/README.md +++ b/README.md @@ -119,9 +119,7 @@ Pass only loss codes consciously accepted for that conversion. `operation_catalo - `src/Spss` - SAV/ZSAV gating, typed V3 engine bridge and public adapter API. See [docs/architecture.md](docs/architecture.md) for the complete relational contract. -See [docs/transformations.md](docs/transformations.md) for the canonical -transformation plan, frontend boundaries, in-place guarantees, supported -syntax, and development commands. +See [docs/transformations.md](docs/transformations.md) for the current package-local legacy transformation plan, frontend boundaries, in-place guarantees, supported syntax, and the required migration path to the official OpenStatSpec plan profiles. The capability declaration exposes no official plan or frontend contract claim yet. ## Upgrading an existing catalogue diff --git a/docs/transformations.md b/docs/transformations.md index ee41622..cd83a7b 100644 --- a/docs/transformations.md +++ b/docs/transformations.md @@ -2,6 +2,12 @@ ## Purpose and boundary +> Status: this PHP layer currently uses the package-local legacy contract +> `openstatspec-transformation-plan-v1`. It does not claim conformance with +> OpenStatSpec Transformation Plan or SPSS Frontend profile 0.1 or 0.2. +> Migration to official 0.1 is required before the additive 0.2 conditional +> profile can be implemented or claimed. + The transformation layer applies small, deterministic edits to an existing OpenStatSpec dataset. Its canonical `TransformationPlan`, validation, and SQL executor do not depend on SPSS, Stata, SAS, or another statistics package. diff --git a/src/Core/CapabilityDeclaration.php b/src/Core/CapabilityDeclaration.php index 35055a5..e9c2273 100644 --- a/src/Core/CapabilityDeclaration.php +++ b/src/Core/CapabilityDeclaration.php @@ -13,6 +13,7 @@ use OpenStatSpec\Sql\PdoSqlProfile; use OpenStatSpec\Sql\PostgreSqlProfile; use OpenStatSpec\Sql\SqliteProfile; +use OpenStatSpec\Transformation\Model\TransformationPlan; use PDO; /** Machine-readable SPSS 1.0 and SQL-profile capability declaration. */ @@ -54,6 +55,16 @@ public function toArray(): array 'maximum_source_file_bytes' => null, 'limit_basis' => 'runtime_memory_limit', ], + 'transformation_contracts' => [ + 'status' => 'legacy_contract_only', + 'legacy_plan_contracts' => [TransformationPlan::CONTRACT], + 'official_plan_contracts' => [], + 'official_frontend_contracts' => [], + 'migration_order' => [ + 'openstatspec-transformation-plan-v0.1', + 'openstatspec-transformation-plan-v0.2', + ], + ], 'active_connection' => [ 'profile' => $activeProfile, 'server_version' => $serverVersion, diff --git a/tests/Core/CapabilityDeclarationTest.php b/tests/Core/CapabilityDeclarationTest.php index 79aa455..4392ba1 100644 --- a/tests/Core/CapabilityDeclarationTest.php +++ b/tests/Core/CapabilityDeclarationTest.php @@ -46,6 +46,16 @@ public function testDeclarationIsMachineReadableAndIncludesEveryProfileLimit(): 'maximum_source_file_bytes' => null, 'limit_basis' => 'runtime_memory_limit', ], $declaration['resource_behavior']); + self::assertSame([ + 'status' => 'legacy_contract_only', + 'legacy_plan_contracts' => ['openstatspec-transformation-plan-v1'], + 'official_plan_contracts' => [], + 'official_frontend_contracts' => [], + 'migration_order' => [ + 'openstatspec-transformation-plan-v0.1', + 'openstatspec-transformation-plan-v0.2', + ], + ], $declaration['transformation_contracts']); self::assertSame('3.0.3', $declaration['engine']['active_version']); self::assertSame('>=3.0.0 <4.0.0', $declaration['engine']['claimed_version_range']); self::assertSame(['3.0.3'], $declaration['engine']['ci_tested_versions']);