From a6a686c5e12ef9b1e0d2408951d85c462766a4ce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?T=C3=B5nis=20Ormisson?= Date: Sun, 2 Aug 2026 16:55:26 +0300 Subject: [PATCH 1/2] docs: update SPSS codec references --- docs/architecture.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/architecture.md b/docs/architecture.md index b44edd5..0372a4b 100644 --- a/docs/architecture.md +++ b/docs/architecture.md @@ -102,9 +102,9 @@ feature. Dolt owns history and rollback. See the [transformation manual](transformations.md) for the complete contract and operational guidance. -## External engine +## SPSS codec -The selected engine is [TonisOrmisson/php-spss](https://github.com/TonisOrmisson/php-spss), Composer dependency `tiamo/spss` 3.x. It is external. If a compatible reader or writer is unavailable, the adapter produces an explicit `external_engine_unavailable` diagnostic rather than pretending conversion succeeded. +The selected engine is [OpenStatSpec/php-spss](https://github.com/OpenStatSpec/php-spss), installed as Composer dependency `openstatspec/spss-sav` 3.x and maintained by OpenStatSpec. It remains a separately versioned package. If a compatible reader or writer is unavailable, the adapter produces an explicit `external_engine_unavailable` diagnostic rather than pretending conversion succeeded. ## Framework boundary From ff892b56d9fe0949fad4a8b05d42ba4b04c0cbf1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?T=C3=B5nis=20Ormisson?= Date: Mon, 3 Aug 2026 11:38:15 +0300 Subject: [PATCH 2/2] chore: update SPSS codec to 3.0.3 --- composer.lock | 16 ++++++---------- src/Spss/PhpSpssEngine.php | 2 +- tests/Core/CapabilityDeclarationTest.php | 4 ++-- .../OfficialSpssConformanceManifestTest.php | 2 +- tests/Spss/SpssAdapterTest.php | 6 +++--- 5 files changed, 13 insertions(+), 17 deletions(-) diff --git a/composer.lock b/composer.lock index b63191e..6eea277 100644 --- a/composer.lock +++ b/composer.lock @@ -8,16 +8,16 @@ "packages": [ { "name": "openstatspec/spss-sav", - "version": "3.0.2", + "version": "3.0.3", "source": { "type": "git", "url": "https://github.com/OpenStatSpec/php-spss.git", - "reference": "07a5f4a100700f9b049dddbffedb1df94518db47" + "reference": "6c42f7273c741c4117a841cd767eb4434ac92a4b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/OpenStatSpec/php-spss/zipball/07a5f4a100700f9b049dddbffedb1df94518db47", - "reference": "07a5f4a100700f9b049dddbffedb1df94518db47", + "url": "https://api.github.com/repos/OpenStatSpec/php-spss/zipball/6c42f7273c741c4117a841cd767eb4434ac92a4b", + "reference": "6c42f7273c741c4117a841cd767eb4434ac92a4b", "shasum": "" }, "require": { @@ -26,9 +26,6 @@ "ext-zlib": "*", "php": "^8.4.1" }, - "replace": { - "tiamo/spss": "self.version" - }, "require-dev": { "friendsofphp/php-cs-fixer": "^3.95", "infection/infection": "^0.34", @@ -130,7 +127,6 @@ "authors": [ { "name": "Korniienko Vladyslav", - "email": "vk.tiamo@gmail.com", "role": "Original author" }, { @@ -158,7 +154,7 @@ "issues": "https://github.com/OpenStatSpec/php-spss/issues", "source": "https://github.com/OpenStatSpec/php-spss" }, - "time": "2026-07-31T17:34:01+00:00" + "time": "2026-08-03T08:08:43+00:00" } ], "packages-dev": [ @@ -4679,5 +4675,5 @@ "platform-overrides": { "php": "8.4.1" }, - "plugin-api-version": "2.6.0" + "plugin-api-version": "2.9.0" } diff --git a/src/Spss/PhpSpssEngine.php b/src/Spss/PhpSpssEngine.php index 042f085..9f6a45a 100644 --- a/src/Spss/PhpSpssEngine.php +++ b/src/Spss/PhpSpssEngine.php @@ -17,7 +17,7 @@ final class PhpSpssEngine implements SpssEngine public const READER_CLASS = 'SPSS\\Sav\\Reader'; public const WRITER_CLASS = 'SPSS\\Sav\\Writer'; public const CLAIMED_VERSION_RANGE = '>=3.0.0 <4.0.0'; - public const CI_TESTED_VERSIONS = ['3.0.2']; + public const CI_TESTED_VERSIONS = ['3.0.3']; public function isAvailable(): bool { diff --git a/tests/Core/CapabilityDeclarationTest.php b/tests/Core/CapabilityDeclarationTest.php index d2ae146..79aa455 100644 --- a/tests/Core/CapabilityDeclarationTest.php +++ b/tests/Core/CapabilityDeclarationTest.php @@ -46,9 +46,9 @@ public function testDeclarationIsMachineReadableAndIncludesEveryProfileLimit(): 'maximum_source_file_bytes' => null, 'limit_basis' => 'runtime_memory_limit', ], $declaration['resource_behavior']); - self::assertSame('3.0.2', $declaration['engine']['active_version']); + 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.2'], $declaration['engine']['ci_tested_versions']); + self::assertSame(['3.0.3'], $declaration['engine']['ci_tested_versions']); self::assertTrue($declaration['engine']['claimed_supported']); self::assertNotEmpty($declaration['required_capabilities']); foreach ($declaration['required_capabilities'] as $supported) { diff --git a/tests/Integration/OfficialSpssConformanceManifestTest.php b/tests/Integration/OfficialSpssConformanceManifestTest.php index e095728..ac3540c 100644 --- a/tests/Integration/OfficialSpssConformanceManifestTest.php +++ b/tests/Integration/OfficialSpssConformanceManifestTest.php @@ -134,7 +134,7 @@ private function assertRequiredCapabilities(array $manifest, SpssAdapter $adapte self::assertTrue($declaration['active_connection']['claimed_supported'], $profile . ': active server version is outside the claimed profile'); self::assertSame($declaration['sql_profiles'][$profile]['claimed_server_versions'], $declaration['active_connection']['matched_claim']); self::assertTrue($declaration['engine']['claimed_supported']); - self::assertSame(['3.0.2'], $declaration['engine']['ci_tested_versions']); + self::assertSame(['3.0.3'], $declaration['engine']['ci_tested_versions']); self::assertContains($profile, array_keys($declaration['sql_profiles'] ?? [])); self::assertContains('import', $declaration['directions'] ?? []); self::assertContains('export', $declaration['directions'] ?? []); diff --git a/tests/Spss/SpssAdapterTest.php b/tests/Spss/SpssAdapterTest.php index aa72307..0237625 100644 --- a/tests/Spss/SpssAdapterTest.php +++ b/tests/Spss/SpssAdapterTest.php @@ -46,10 +46,10 @@ public function testComposerInstallsTheOfficialPhpSpssV3Engine(): void self::assertTrue(class_exists(Dataset::class)); self::assertSame([ 'package' => 'openstatspec/spss-sav', - 'version' => '3.0.2', - 'active_version' => '3.0.2', + 'version' => '3.0.3', + 'active_version' => '3.0.3', 'claimed_version_range' => '>=3.0.0 <4.0.0', - 'ci_tested_versions' => ['3.0.2'], + 'ci_tested_versions' => ['3.0.3'], 'claimed_supported' => true, ], (new PhpSpssEngine())->identity()); }