From 282c1d0c4342b322b1d882228478a736f14e93fa Mon Sep 17 00:00:00 2001 From: "Vladyslav M." Date: Tue, 25 Aug 2026 18:19:23 +0300 Subject: [PATCH] refactor(tooling): graduate shared support out of spikes --- framework/composer.json | 3 +- framework/composer.lock | 24 +++---- .../src/Command/DeptracGraphCommand.php | 2 +- .../cli-spikes/src/Command/DoctorCommand.php | 2 +- .../src/Command/SpikeConfigDebugCommand.php | 6 +- .../src/Command/SpikeFingerprintCommand.php | 2 +- .../src/Command/WorkspaceSyncApplyCommand.php | 2 +- .../Command/WorkspaceSyncDryRunCommand.php | 2 +- .../ConsoleOutputReservedForGatesOnlyTest.php | 4 -- .../ToolsSpikesDoNotWriteToStdoutTest.php | 4 -- .../Support/SupervisorIntegrationTestCase.php | 16 ++++- framework/tools/build/build_icons.php | 20 +++--- framework/tools/build/deptrac_generate.php | 29 ++++---- framework/tools/build/new-package.php | 16 ++--- framework/tools/build/package_index.php | 18 ++--- .../build/sync_composer_repositories.php | 22 +++--- .../tools/build/sync_package_scaffold.php | 20 +++--- .../tools/config/atomic_write_allowlist.php | 2 +- .../gates/artifact_header_schema_gate.php | 14 ++-- framework/tools/gates/atomic_write_gate.php | 16 ++--- framework/tools/gates/composer_audit_gate.php | 14 ++-- .../tools/gates/contracts_only_ports_gate.php | 14 ++-- .../gates/cross_cutting_contract_gate.php | 14 ++-- .../tools/gates/doc_version_drift_gate.php | 14 ++-- framework/tools/gates/dto_gate.php | 14 ++-- .../gates/dto_marker_consistency_gate.php | 14 ++-- framework/tools/gates/dto_no_logic_gate.php | 14 ++-- framework/tools/gates/dto_shape_gate.php | 14 ++-- .../gates/internal_toolkit_no_dup_gate.php | 10 +-- .../tools/gates/kernel_public_api_gate.php | 14 ++-- framework/tools/gates/license_header_gate.php | 14 ++-- .../no_runtime_tooling_artifacts_gate.php | 14 ++-- .../no_skeleton_bundles_default_gate.php | 14 ++-- .../gates/no_skeleton_http_default_gate.php | 14 ++-- .../no_skeleton_mode_presets_default_gate.php | 14 ++-- .../no_skeleton_modules_default_gate.php | 14 ++-- .../observability_metric_catalog_gate.php | 14 ++-- .../tools/gates/observability_naming_gate.php | 14 ++-- .../gates/observability_span_naming_gate.php | 14 ++-- .../tools/gates/package_compliance_gate.php | 14 ++-- .../gates/package_phpunit_config_gate.php | 10 +-- .../gates/package_publish_safety_gate.php | 14 ++-- .../gates/repo_text_normalization_gate.php | 16 ++--- .../gates/reserved_tags_registry_gate.php | 14 ++-- framework/tools/gates/secret_leakage_gate.php | 14 ++-- .../tools/gates/spikes_boundary_gate.php | 20 +++--- .../gates/spikes_canonical_paths_gate.php | 10 +-- .../tools/gates/spikes_io_policy_gate.php | 10 +-- framework/tools/gates/spikes_output_gate.php | 16 ++--- .../tools_invalid_argument_exception_gate.php | 12 ++-- framework/tools/phpstan/phpstan.neon | 2 +- .../sync_package_public_constraints.php | 20 +++--- .../release/sync_workspace_release_line.php | 20 +++--- framework/tools/spikes/README.md | 12 ++-- .../spikes/_support/DeterminismRunner.php | 7 +- .../tools/spikes/_support/FixtureRoot.php | 3 + framework/tools/spikes/_support/bootstrap.php | 6 +- .../config_merge/ConfigDebugWorkflow.php | 4 +- .../spikes/config_merge/ConfigExplainer.php | 4 +- .../spikes/config_merge/ConfigMerger.php | 4 +- .../config_merge/DirectiveProcessor.php | 4 +- .../tests/DirectivesTypingRulesTest.php | 2 +- .../tools/spikes/deptrac/DeptracGenerate.php | 10 +-- .../spikes/deptrac/DeptracGraphWorkflow.php | 8 +-- .../spikes/deptrac/GraphArtifactBuilder.php | 6 +- .../tests/DeptracAllowlistPolicyTest.php | 4 +- .../deptrac/tests/DeptracDetectsCycleTest.php | 4 +- ...tracYamlRejectsAbsoluteIdentifiersTest.php | 4 +- ...sNotInvokeExternalProcessFunctionsTest.php | 2 +- ...aphArtifactsContainNoAbsolutePathsTest.php | 6 +- .../tests/RerunGeneratorNoDiffTest.php | 2 +- .../fingerprint/DeterministicFileLister.php | 6 +- .../fingerprint/FingerprintCalculator.php | 6 +- .../fingerprint/FingerprintExplainer.php | 4 +- .../fingerprint/FingerprintWorkflow.php | 4 +- .../spikes/fingerprint/StableJsonEncoder.php | 4 +- .../FileListingDeterministicOrderTest.php | 2 +- .../tests/FingerprintExplainIsSafeTest.php | 2 +- ...logIsFullyUsedInHttpConfigFixturesTest.php | 2 +- .../tests/PathSeparatorNormalizationTest.php | 2 +- .../tests/SymlinkForbiddenTest.php | 6 +- ...TrackedEnvAllowlistHasNoDuplicatesTest.php | 6 +- .../TrackedEnvAllowlistIsCementedTest.php | 2 +- .../tools/spikes/payload/FloatPolicy.php | 4 +- .../spikes/payload/StableJsonEncoder.php | 4 +- .../spikes/payload/tests/FloatPolicyTest.php | 4 +- .../DeterminismRunnerSafeIntegrationTest.php | 4 +- .../FixtureRootRejectsParentTraversalTest.php | 4 +- .../SpikeModulesDoNotUseConsoleOutputTest.php | 2 +- ...oundaryGateDetectsForbiddenImportsTest.php | 2 +- .../SpikesOutputGateDetectsBypassTest.php | 10 +-- ...erprintDeterministicExceptionCodesTest.php | 10 +-- .../workspace/ComposerJsonCanonicalizer.php | 4 +- .../workspace/ComposerRepositoriesSync.php | 14 ++-- .../spikes/workspace/NewPackageWorkflow.php | 34 ++++----- .../spikes/workspace/PackageIndexBuilder.php | 8 +-- .../spikes/workspace/WorkspacePolicy.php | 4 +- .../workspace/WorkspaceSyncEntryWorkflow.php | 4 +- .../workspace/WorkspaceSyncWorkflow.php | 8 +-- .../ComposerSyncIdempotentNoDiffTest.php | 2 +- .../ComposerSyncUpdatesManagedOnlyTest.php | 2 +- .../tests/ComposerSyncWritesBackupsTest.php | 2 +- .../NewPackageAtomicWorkflowPrototypeTest.php | 4 +- .../tests/NoImplicitCwdEvidenceTest.php | 2 +- .../tests/PackageIndexDeterministicTest.php | 2 +- .../_support => support}/ConsoleOutput.php | 6 +- .../DeterministicException.php | 4 +- .../DeterministicFile.php | 42 +++++------ .../_support => support}/ErrorCodes.php | 14 ++-- .../RepoTextNormalizationScanner.php | 2 +- framework/tools/support/bootstrap.php | 69 +++++++++++++++++++ .../tools/testing/run_packages_phpunit.php | 18 ++--- .../ObservabilityMetricCatalogGateTest.php | 12 ++-- .../ObservabilitySpanNamingGateTest.php | 12 ++-- .../CrossCuttingContractGateTest.php | 4 +- .../DtoMarkerConsistencyGateTest.php | 6 +- .../tests/Integration/DtoNoLogicGateTest.php | 6 +- .../tests/Integration/DtoShapeGateTest.php | 6 +- ...ToolkitNoDupGateDetectsDuplicationTest.php | 4 +- .../NoRuntimeToolingArtifactsGateTest.php | 4 +- .../RepoTextNormalizationGateBehaviorTest.php | 4 +- .../Unit}/ConsoleOutputSanitizePolicyTest.php | 4 +- .../DeterministicExceptionIsSafeTest.php | 6 +- .../Unit/DeterministicFileAtomicWriteTest.php | 2 +- ...nisticFileEolNormalizationContractTest.php | 26 +++---- .../ErrorCodesRegistryIsConsistentTest.php | 14 ++-- .../RepoTextNormalizationScannerTest.php | 4 +- 127 files changed, 653 insertions(+), 566 deletions(-) rename framework/tools/{spikes/_support => support}/ConsoleOutput.php (97%) rename framework/tools/{spikes/_support => support}/DeterministicException.php (95%) rename framework/tools/{spikes/_support => support}/DeterministicFile.php (89%) rename framework/tools/{spikes/_support => support}/ErrorCodes.php (97%) rename framework/tools/{spikes/_support => support}/RepoTextNormalizationScanner.php (99%) create mode 100644 framework/tools/support/bootstrap.php rename framework/tools/{spikes/tests => tests/Integration}/InternalToolkitNoDupGateDetectsDuplicationTest.php (98%) rename framework/tools/{spikes/tests => tests/Integration}/RepoTextNormalizationGateBehaviorTest.php (97%) rename framework/tools/{spikes/tests => tests/Unit}/ConsoleOutputSanitizePolicyTest.php (98%) rename framework/tools/{spikes/tests => tests/Unit}/DeterministicExceptionIsSafeTest.php (96%) rename framework/tools/{spikes/tests => tests/Unit}/DeterministicFileEolNormalizationContractTest.php (92%) rename framework/tools/{spikes/tests => tests/Unit}/ErrorCodesRegistryIsConsistentTest.php (93%) rename framework/tools/{spikes/tests => tests/Unit}/RepoTextNormalizationScannerTest.php (98%) diff --git a/framework/composer.json b/framework/composer.json index 8f8551d..6ad4374 100644 --- a/framework/composer.json +++ b/framework/composer.json @@ -51,7 +51,8 @@ "autoload-dev": { "psr-4": { "Coretsia\\Tools\\Tests\\": "tools/tests/", - "Coretsia\\Tools\\Spikes\\": "tools/spikes/" + "Coretsia\\Tools\\Spikes\\": "tools/spikes/", + "Coretsia\\Tools\\Support\\": "tools/support/" }, "exclude-from-classmap": [ "tools/spikes/fixtures/", diff --git a/framework/composer.lock b/framework/composer.lock index ba4fb2f..ab7fdb7 100644 --- a/framework/composer.lock +++ b/framework/composer.lock @@ -3731,16 +3731,16 @@ }, { "name": "symfony/polyfill-intl-normalizer", - "version": "v1.38.0", + "version": "v1.42.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-normalizer.git", - "reference": "2d446c214bdbe5b71bde5011b060a05fece3ae6b" + "reference": "aa20edea75bd9c48cfecc8360922e5a6e5c44502" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/2d446c214bdbe5b71bde5011b060a05fece3ae6b", - "reference": "2d446c214bdbe5b71bde5011b060a05fece3ae6b", + "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/aa20edea75bd9c48cfecc8360922e5a6e5c44502", + "reference": "aa20edea75bd9c48cfecc8360922e5a6e5c44502", "shasum": "" }, "require": { @@ -3792,7 +3792,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.38.0" + "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.42.0" }, "funding": [ { @@ -3812,7 +3812,7 @@ "type": "tidelift" } ], - "time": "2026-05-25T13:48:31+00:00" + "time": "2026-08-07T06:33:24+00:00" }, { "name": "symfony/polyfill-mbstring", @@ -4233,16 +4233,16 @@ }, { "name": "symplify/easy-coding-standard", - "version": "13.2.18", + "version": "13.2.19", "source": { "type": "git", "url": "https://github.com/ecsphp/ecs.git", - "reference": "14449735108430e3f2c4d9e58699b95d6855240b" + "reference": "a2af21c295837302b095180659971029a8294200" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ecsphp/ecs/zipball/14449735108430e3f2c4d9e58699b95d6855240b", - "reference": "14449735108430e3f2c4d9e58699b95d6855240b", + "url": "https://api.github.com/repos/ecsphp/ecs/zipball/a2af21c295837302b095180659971029a8294200", + "reference": "a2af21c295837302b095180659971029a8294200", "shasum": "" }, "require": { @@ -4277,9 +4277,9 @@ "static analysis" ], "support": { - "source": "https://github.com/ecsphp/ecs/tree/13.2.18" + "source": "https://github.com/ecsphp/ecs/tree/13.2.19" }, - "time": "2026-08-20T16:49:05+00:00" + "time": "2026-08-24T17:02:37+00:00" }, { "name": "theseer/tokenizer", diff --git a/framework/packages/devtools/cli-spikes/src/Command/DeptracGraphCommand.php b/framework/packages/devtools/cli-spikes/src/Command/DeptracGraphCommand.php index e87f7f0..968f4e3 100644 --- a/framework/packages/devtools/cli-spikes/src/Command/DeptracGraphCommand.php +++ b/framework/packages/devtools/cli-spikes/src/Command/DeptracGraphCommand.php @@ -26,8 +26,8 @@ use Coretsia\Devtools\CliSpikes\Spikes\SpikesExitCodeMapper; use Coretsia\Devtools\CliSpikes\Spikes\SpikesPaths; use Coretsia\Platform\Cli\Error\ErrorCodes as CliErrorCodes; -use Coretsia\Tools\Spikes\_support\DeterministicException; use Coretsia\Tools\Spikes\deptrac\DeptracGraphWorkflow; +use Coretsia\Tools\Support\DeterministicException; final class DeptracGraphCommand implements CommandInterface { diff --git a/framework/packages/devtools/cli-spikes/src/Command/DoctorCommand.php b/framework/packages/devtools/cli-spikes/src/Command/DoctorCommand.php index 7592fca..3af89ff 100644 --- a/framework/packages/devtools/cli-spikes/src/Command/DoctorCommand.php +++ b/framework/packages/devtools/cli-spikes/src/Command/DoctorCommand.php @@ -26,7 +26,7 @@ use Coretsia\Devtools\CliSpikes\Spikes\SpikesExitCodeMapper; use Coretsia\Devtools\CliSpikes\Spikes\SpikesPaths; use Coretsia\Platform\Cli\Error\ErrorCodes as CliErrorCodes; -use Coretsia\Tools\Spikes\_support\DeterministicException; +use Coretsia\Tools\Support\DeterministicException; final class DoctorCommand implements CommandInterface { diff --git a/framework/packages/devtools/cli-spikes/src/Command/SpikeConfigDebugCommand.php b/framework/packages/devtools/cli-spikes/src/Command/SpikeConfigDebugCommand.php index 8b447ec..057a0de 100644 --- a/framework/packages/devtools/cli-spikes/src/Command/SpikeConfigDebugCommand.php +++ b/framework/packages/devtools/cli-spikes/src/Command/SpikeConfigDebugCommand.php @@ -25,9 +25,9 @@ use Coretsia\Devtools\CliSpikes\Spikes\SpikesBootstrapFailedException; use Coretsia\Devtools\CliSpikes\Spikes\SpikesExitCodeMapper; use Coretsia\Platform\Cli\Error\ErrorCodes as CliErrorCodes; -use Coretsia\Tools\Spikes\_support\DeterministicException; -use Coretsia\Tools\Spikes\_support\ErrorCodes as SpikeErrorCodes; use Coretsia\Tools\Spikes\config_merge\ConfigDebugWorkflow; +use Coretsia\Tools\Support\DeterministicException; +use Coretsia\Tools\Support\ErrorCodes as ToolsErrorCodes; /** * Phase 0 spike command: debug config merge trace for a dot-key. @@ -110,7 +110,7 @@ public function run(InputInterface $input, OutputInterface $output): int return SpikesExitCodeMapper::success(); } catch (DeterministicException $e) { if ( - $e->code() === SpikeErrorCodes::CORETSIA_SPIKES_FIXTURE_PATH_INVALID + $e->code() === ToolsErrorCodes::CORETSIA_SPIKES_FIXTURE_PATH_INVALID && self::isCliConfigInvalidMessage($e->getMessage()) ) { $output->error(CliErrorCodes::CORETSIA_CLI_CONFIG_INVALID, $e->getMessage()); diff --git a/framework/packages/devtools/cli-spikes/src/Command/SpikeFingerprintCommand.php b/framework/packages/devtools/cli-spikes/src/Command/SpikeFingerprintCommand.php index c026892..7d183e7 100644 --- a/framework/packages/devtools/cli-spikes/src/Command/SpikeFingerprintCommand.php +++ b/framework/packages/devtools/cli-spikes/src/Command/SpikeFingerprintCommand.php @@ -26,8 +26,8 @@ use Coretsia\Devtools\CliSpikes\Spikes\SpikesExitCodeMapper; use Coretsia\Devtools\CliSpikes\Spikes\SpikesPaths; use Coretsia\Platform\Cli\Error\ErrorCodes as CliErrorCodes; -use Coretsia\Tools\Spikes\_support\DeterministicException; use Coretsia\Tools\Spikes\fingerprint\FingerprintWorkflow; +use Coretsia\Tools\Support\DeterministicException; /** * `coretsia spike:fingerprint` diff --git a/framework/packages/devtools/cli-spikes/src/Command/WorkspaceSyncApplyCommand.php b/framework/packages/devtools/cli-spikes/src/Command/WorkspaceSyncApplyCommand.php index 85f283d..0211337 100644 --- a/framework/packages/devtools/cli-spikes/src/Command/WorkspaceSyncApplyCommand.php +++ b/framework/packages/devtools/cli-spikes/src/Command/WorkspaceSyncApplyCommand.php @@ -26,8 +26,8 @@ use Coretsia\Devtools\CliSpikes\Spikes\SpikesExitCodeMapper; use Coretsia\Devtools\CliSpikes\Spikes\SpikesPaths; use Coretsia\Platform\Cli\Error\ErrorCodes as CliErrorCodes; -use Coretsia\Tools\Spikes\_support\DeterministicException; use Coretsia\Tools\Spikes\workspace\WorkspaceSyncEntryWorkflow; +use Coretsia\Tools\Support\DeterministicException; final class WorkspaceSyncApplyCommand implements CommandInterface { diff --git a/framework/packages/devtools/cli-spikes/src/Command/WorkspaceSyncDryRunCommand.php b/framework/packages/devtools/cli-spikes/src/Command/WorkspaceSyncDryRunCommand.php index 081783d..c88e24a 100644 --- a/framework/packages/devtools/cli-spikes/src/Command/WorkspaceSyncDryRunCommand.php +++ b/framework/packages/devtools/cli-spikes/src/Command/WorkspaceSyncDryRunCommand.php @@ -26,8 +26,8 @@ use Coretsia\Devtools\CliSpikes\Spikes\SpikesExitCodeMapper; use Coretsia\Devtools\CliSpikes\Spikes\SpikesPaths; use Coretsia\Platform\Cli\Error\ErrorCodes as CliErrorCodes; -use Coretsia\Tools\Spikes\_support\DeterministicException; use Coretsia\Tools\Spikes\workspace\WorkspaceSyncEntryWorkflow; +use Coretsia\Tools\Support\DeterministicException; final class WorkspaceSyncDryRunCommand implements CommandInterface { diff --git a/framework/packages/devtools/cli-spikes/tests/Contract/ConsoleOutputReservedForGatesOnlyTest.php b/framework/packages/devtools/cli-spikes/tests/Contract/ConsoleOutputReservedForGatesOnlyTest.php index eb0fc71..4c816e1 100644 --- a/framework/packages/devtools/cli-spikes/tests/Contract/ConsoleOutputReservedForGatesOnlyTest.php +++ b/framework/packages/devtools/cli-spikes/tests/Contract/ConsoleOutputReservedForGatesOnlyTest.php @@ -126,10 +126,6 @@ private function shouldSkipFile(string $absPath): bool { $path = \str_replace('\\', '/', $absPath); - if (\str_ends_with($path, '/framework/tools/spikes/_support/ConsoleOutput.php')) { - return true; - } - if (\str_ends_with($path, '/framework/tools/spikes/_support/DeterminismRunner.php')) { return true; } diff --git a/framework/packages/devtools/cli-spikes/tests/Contract/ToolsSpikesDoNotWriteToStdoutTest.php b/framework/packages/devtools/cli-spikes/tests/Contract/ToolsSpikesDoNotWriteToStdoutTest.php index aab9d94..41c6779 100644 --- a/framework/packages/devtools/cli-spikes/tests/Contract/ToolsSpikesDoNotWriteToStdoutTest.php +++ b/framework/packages/devtools/cli-spikes/tests/Contract/ToolsSpikesDoNotWriteToStdoutTest.php @@ -227,10 +227,6 @@ private function shouldSkipFile(string $absPath): bool { $path = \str_replace('\\', '/', $absPath); - if (\str_ends_with($path, '/framework/tools/spikes/_support/ConsoleOutput.php')) { - return true; - } - if (\str_contains($path, '/framework/tools/spikes/tests/')) { return true; } diff --git a/framework/packages/platform/worker/tests/Support/SupervisorIntegrationTestCase.php b/framework/packages/platform/worker/tests/Support/SupervisorIntegrationTestCase.php index 8617f84..ea3af75 100644 --- a/framework/packages/platform/worker/tests/Support/SupervisorIntegrationTestCase.php +++ b/framework/packages/platform/worker/tests/Support/SupervisorIntegrationTestCase.php @@ -98,6 +98,13 @@ protected function newHarness(array $workerOverride = [], array $behavior = []): 'control' => ['transport' => 'unix'], ]; + $effectiveDriver = $workerOverride['driver'] + ?? ( + \PHP_OS_FAMILY === 'Windows' + ? 'proc' + : 'pcntl' + ); + $platformTimeouts = \PHP_OS_FAMILY === 'Windows' ? [ /* @@ -110,7 +117,14 @@ protected function newHarness(array $workerOverride = [], array $behavior = []): 'force_kill_timeout_ms' => 2_000, ] : [ - 'start_timeout_ms' => 2_000, + /* + * PCNTL startup is intentionally kept tight. Proc startup also owns + * process-host and child PHP initialization, which can be materially + * slower under scheduler or filesystem contention (notably WSL). + */ + 'start_timeout_ms' => $effectiveDriver === 'proc' + ? 10_000 + : 2_000, 'stop_timeout_ms' => 500, 'force_kill_timeout_ms' => 250, ]; diff --git a/framework/tools/build/build_icons.php b/framework/tools/build/build_icons.php index 40de683..5afe0d7 100644 --- a/framework/tools/build/build_icons.php +++ b/framework/tools/build/build_icons.php @@ -17,10 +17,10 @@ * See LICENSE and NOTICE in the project root for full license information. */ -require_once __DIR__ . '/../spikes/_support/ConsoleOutput.php'; -require_once __DIR__ . '/../spikes/_support/ErrorCodes.php'; -require_once __DIR__ . '/../spikes/_support/DeterministicException.php'; -require_once __DIR__ . '/../spikes/_support/DeterministicFile.php'; +require_once __DIR__ . '/../support/ConsoleOutput.php'; +require_once __DIR__ . '/../support/ErrorCodes.php'; +require_once __DIR__ . '/../support/DeterministicException.php'; +require_once __DIR__ . '/../support/DeterministicFile.php'; final class BuildIconsTool { @@ -133,14 +133,14 @@ public static function main(array $argv): int if ($check) { if ($changedFiles !== []) { - \Coretsia\Tools\Spikes\_support\ConsoleOutput::codeWithDiagnostics( + \Coretsia\Tools\Support\ConsoleOutput::codeWithDiagnostics( self::CODE_OUT_OF_DATE, $changedFiles, ); return 1; } - \Coretsia\Tools\Spikes\_support\ConsoleOutput::line('OK', false); + \Coretsia\Tools\Support\ConsoleOutput::line('OK', false); return 0; } @@ -152,8 +152,8 @@ public static function main(array $argv): int } } - \Coretsia\Tools\Spikes\_support\ConsoleOutput::line('OK', false); - \Coretsia\Tools\Spikes\_support\ConsoleOutput::lines($changedFiles, false); + \Coretsia\Tools\Support\ConsoleOutput::line('OK', false); + \Coretsia\Tools\Support\ConsoleOutput::lines($changedFiles, false); return 0; } @@ -347,7 +347,7 @@ private static function writeBytes(string $path, string $bytes): void throw new RuntimeException('Cannot create directory: ' . $dir); } - \Coretsia\Tools\Spikes\_support\DeterministicFile::writeBytesExact($path, $bytes); + \Coretsia\Tools\Support\DeterministicFile::writeBytesExact($path, $bytes); } private static function findExecutable(string $name): ?string @@ -513,6 +513,6 @@ private static function repoRootUnsafe(): string exit(BuildIconsTool::main($argv)); } catch (Throwable $e) { $msg = str_replace(["\r\n", "\r"], "\n", $e->getMessage()); - \Coretsia\Tools\Spikes\_support\ConsoleOutput::line(BuildIconsTool::CODE_FAILED . ": {$msg}"); + \Coretsia\Tools\Support\ConsoleOutput::line(BuildIconsTool::CODE_FAILED . ": {$msg}"); exit(1); } diff --git a/framework/tools/build/deptrac_generate.php b/framework/tools/build/deptrac_generate.php index 4f32e2c..97336b1 100644 --- a/framework/tools/build/deptrac_generate.php +++ b/framework/tools/build/deptrac_generate.php @@ -17,10 +17,10 @@ * See LICENSE and NOTICE in the project root for full license information. */ -require_once __DIR__ . '/../spikes/_support/ConsoleOutput.php'; -require_once __DIR__ . '/../spikes/_support/ErrorCodes.php'; -require_once __DIR__ . '/../spikes/_support/DeterministicException.php'; -require_once __DIR__ . '/../spikes/_support/DeterministicFile.php'; +require_once __DIR__ . '/../support/ConsoleOutput.php'; +require_once __DIR__ . '/../support/ErrorCodes.php'; +require_once __DIR__ . '/../support/DeterministicException.php'; +require_once __DIR__ . '/../support/DeterministicFile.php'; final class DeptracGenerateTool { @@ -98,7 +98,7 @@ public static function main(array $argv): int $diagnostics[] = 'Run: php framework/tools/build/deptrac_generate.php --apply'; - \Coretsia\Tools\Spikes\_support\ConsoleOutput::codeWithDiagnostics( + \Coretsia\Tools\Support\ConsoleOutput::codeWithDiagnostics( self::CODE_OUT_OF_DATE, $diagnostics, ); @@ -118,17 +118,17 @@ public static function main(array $argv): int self::writeGraphArtifacts($artifactsDir, $model['nodes'], $model['edges']); } - \Coretsia\Tools\Spikes\_support\ConsoleOutput::line('OK', false); + \Coretsia\Tools\Support\ConsoleOutput::line('OK', false); if ($allowlistMissing) { - \Coretsia\Tools\Spikes\_support\ConsoleOutput::line(self::rel($repoRoot, $allowlistPath), false); + \Coretsia\Tools\Support\ConsoleOutput::line(self::rel($repoRoot, $allowlistPath), false); } if ($changed) { - \Coretsia\Tools\Spikes\_support\ConsoleOutput::line(self::rel($repoRoot, $outPath), false); + \Coretsia\Tools\Support\ConsoleOutput::line(self::rel($repoRoot, $outPath), false); } - \Coretsia\Tools\Spikes\_support\ConsoleOutput::line(self::rel($repoRoot, $artifactsDir), false); + \Coretsia\Tools\Support\ConsoleOutput::line(self::rel($repoRoot, $artifactsDir), false); return 0; } @@ -159,7 +159,7 @@ public static function emitFailure(Throwable $e): void $code = array_shift($lines); if (!is_string($code) || $code === '') { - \Coretsia\Tools\Spikes\_support\ConsoleOutput::line(self::CODE_GENERATE_FAILED); + \Coretsia\Tools\Support\ConsoleOutput::line(self::CODE_GENERATE_FAILED); return; } @@ -174,7 +174,7 @@ public static function emitFailure(Throwable $e): void } } - \Coretsia\Tools\Spikes\_support\ConsoleOutput::codeWithDiagnostics($code, $diagnostics); + \Coretsia\Tools\Support\ConsoleOutput::codeWithDiagnostics($code, $diagnostics); } /** @@ -706,14 +706,15 @@ private static function buildRuleset( /** * Temporal bootstrap rule: * when a SSoT package depends on not-yet-materialized owner packages, allow direct composer edges - * to materialized transitive SSoT dependencies. This keeps early Phase 0 packages analyzable while - * foundation/kernel owner packages are still absent, without opening arbitrary package edges. + * to materialized transitive SSoT dependencies. This keeps packages analyzable while declared + * owner packages are not yet materialized, without opening arbitrary package edges. * * @param array{id:string,packageId:string,layer:string,slug:string,composerName:string,path:string,srcPath:string,psr4:string,requireNames:list} $package * @param list $allowedPackageIds * @param array $activePackageIds * @param array $composerNameToPackageId * @param array> $ssotRuleset + * * @return list */ private static function applyTemporalMissingDependencyCompat( @@ -1311,7 +1312,7 @@ private static function writeFile(string $path, string $content): void $content .= "\n"; } - \Coretsia\Tools\Spikes\_support\DeterministicFile::writeTextLf($path, $content); + \Coretsia\Tools\Support\DeterministicFile::writeTextLf($path, $content); } /** diff --git a/framework/tools/build/new-package.php b/framework/tools/build/new-package.php index 40202b3..324e29c 100644 --- a/framework/tools/build/new-package.php +++ b/framework/tools/build/new-package.php @@ -17,10 +17,10 @@ * See LICENSE and NOTICE in the project root for full license information. */ -require_once __DIR__ . '/../spikes/_support/ConsoleOutput.php'; -require_once __DIR__ . '/../spikes/_support/ErrorCodes.php'; -require_once __DIR__ . '/../spikes/_support/DeterministicException.php'; -require_once __DIR__ . '/../spikes/_support/DeterministicFile.php'; +require_once __DIR__ . '/../support/ConsoleOutput.php'; +require_once __DIR__ . '/../support/ErrorCodes.php'; +require_once __DIR__ . '/../support/DeterministicException.php'; +require_once __DIR__ . '/../support/DeterministicFile.php'; final class NewPackage { @@ -82,8 +82,8 @@ public static function main(array $argv): int self::runPackageScaffoldSync($repoRoot, $packageDir); - \Coretsia\Tools\Spikes\_support\ConsoleOutput::line('OK', false); - \Coretsia\Tools\Spikes\_support\ConsoleOutput::line("framework/packages/$layer/$slug", false); + \Coretsia\Tools\Support\ConsoleOutput::line('OK', false); + \Coretsia\Tools\Support\ConsoleOutput::line("framework/packages/$layer/$slug", false); return 0; } @@ -457,7 +457,7 @@ private static function writeTextLf(string $path, string $content): void { $content = self::normalizeToLfFinalNewline($content); - \Coretsia\Tools\Spikes\_support\DeterministicFile::writeTextLf($path, $content); + \Coretsia\Tools\Support\DeterministicFile::writeTextLf($path, $content); } private static function mkdir(string $path): void @@ -601,6 +601,6 @@ private static function repoRootUnsafe(): string exit(NewPackage::main($argv)); } catch (Throwable $e) { $msg = \str_replace(["\r\n", "\r"], "\n", $e->getMessage()); - \Coretsia\Tools\Spikes\_support\ConsoleOutput::line(NewPackage::CODE_FAILED . ": {$msg}"); + \Coretsia\Tools\Support\ConsoleOutput::line(NewPackage::CODE_FAILED . ": {$msg}"); exit(1); } diff --git a/framework/tools/build/package_index.php b/framework/tools/build/package_index.php index ace9aed..6fe8abb 100644 --- a/framework/tools/build/package_index.php +++ b/framework/tools/build/package_index.php @@ -17,10 +17,10 @@ * See LICENSE and NOTICE in the project root for full license information. */ -require_once __DIR__ . '/../spikes/_support/ConsoleOutput.php'; -require_once __DIR__ . '/../spikes/_support/ErrorCodes.php'; -require_once __DIR__ . '/../spikes/_support/DeterministicException.php'; -require_once __DIR__ . '/../spikes/_support/DeterministicFile.php'; +require_once __DIR__ . '/../support/ConsoleOutput.php'; +require_once __DIR__ . '/../support/ErrorCodes.php'; +require_once __DIR__ . '/../support/DeterministicException.php'; +require_once __DIR__ . '/../support/DeterministicFile.php'; final class PackageIndexTool { @@ -52,7 +52,7 @@ public static function main(array $argv): int if ($check) { if ($changed) { - \Coretsia\Tools\Spikes\_support\ConsoleOutput::codeWithDiagnostics( + \Coretsia\Tools\Support\ConsoleOutput::codeWithDiagnostics( self::CODE_OUT_OF_DATE, [self::rel($repoRoot, $outPath)], ); @@ -66,9 +66,9 @@ public static function main(array $argv): int self::writeFile($outPath, $php); } - \Coretsia\Tools\Spikes\_support\ConsoleOutput::line('OK', false); + \Coretsia\Tools\Support\ConsoleOutput::line('OK', false); if ($changed) { - \Coretsia\Tools\Spikes\_support\ConsoleOutput::line(self::rel($repoRoot, $outPath), false); + \Coretsia\Tools\Support\ConsoleOutput::line(self::rel($repoRoot, $outPath), false); } return 0; @@ -329,7 +329,7 @@ private static function writeFile(string $path, string $content): void $content .= "\n"; } - \Coretsia\Tools\Spikes\_support\DeterministicFile::writeTextLf($path, $content); + \Coretsia\Tools\Support\DeterministicFile::writeTextLf($path, $content); } /** @@ -492,6 +492,6 @@ private static function repoRootUnsafe(): string exit(PackageIndexTool::main($argv)); } catch (Throwable $e) { $msg = str_replace(["\r\n", "\r"], "\n", $e->getMessage()); - \Coretsia\Tools\Spikes\_support\ConsoleOutput::line(PackageIndexTool::CODE_FAILED . ": {$msg}"); + \Coretsia\Tools\Support\ConsoleOutput::line(PackageIndexTool::CODE_FAILED . ": {$msg}"); exit(1); } diff --git a/framework/tools/build/sync_composer_repositories.php b/framework/tools/build/sync_composer_repositories.php index 1a19c09..78282a8 100644 --- a/framework/tools/build/sync_composer_repositories.php +++ b/framework/tools/build/sync_composer_repositories.php @@ -17,10 +17,10 @@ * See LICENSE and NOTICE in the project root for full license information. */ -require_once __DIR__ . '/../spikes/_support/ConsoleOutput.php'; -require_once __DIR__ . '/../spikes/_support/ErrorCodes.php'; -require_once __DIR__ . '/../spikes/_support/DeterministicException.php'; -require_once __DIR__ . '/../spikes/_support/DeterministicFile.php'; +require_once __DIR__ . '/../support/ConsoleOutput.php'; +require_once __DIR__ . '/../support/ErrorCodes.php'; +require_once __DIR__ . '/../support/DeterministicException.php'; +require_once __DIR__ . '/../support/DeterministicFile.php'; final class SyncComposerRepositories { @@ -80,7 +80,7 @@ public static function main(array $argv): int if ($check) { if ($invalidBlockFiles !== []) { - \Coretsia\Tools\Spikes\_support\ConsoleOutput::codeWithDiagnostics( + \Coretsia\Tools\Support\ConsoleOutput::codeWithDiagnostics( self::CODE_MANAGED_BLOCK_INVALID, $invalidBlockFiles, ); @@ -88,7 +88,7 @@ public static function main(array $argv): int } if ($changedFiles !== []) { - \Coretsia\Tools\Spikes\_support\ConsoleOutput::codeWithDiagnostics( + \Coretsia\Tools\Support\ConsoleOutput::codeWithDiagnostics( self::CODE_MANAGED_REPOS_OUT_OF_SYNC, $changedFiles, ); @@ -98,8 +98,8 @@ public static function main(array $argv): int return 0; } - \Coretsia\Tools\Spikes\_support\ConsoleOutput::line('OK', false); - \Coretsia\Tools\Spikes\_support\ConsoleOutput::lines($changedFiles, false); + \Coretsia\Tools\Support\ConsoleOutput::line('OK', false); + \Coretsia\Tools\Support\ConsoleOutput::lines($changedFiles, false); return 0; } @@ -193,7 +193,7 @@ private static function syncOne( if ($apply) { self::writeBackupIfNeeded($composerJsonPath, $originalBytes, $repoRoot); - \Coretsia\Tools\Spikes\_support\DeterministicFile::writeTextLf($composerJsonPath, $newJson); + \Coretsia\Tools\Support\DeterministicFile::writeTextLf($composerJsonPath, $newJson); } return ['changed' => true, 'invalidManagedBlock' => $invalidManagedBlock]; @@ -683,7 +683,7 @@ private static function writeBackupIfNeeded(string $composerJsonPath, string $or } // writeBytesExact: do not normalize EOL/BOM/etc. - \Coretsia\Tools\Spikes\_support\DeterministicFile::writeBytesExact($dst, $originalBytes); + \Coretsia\Tools\Support\DeterministicFile::writeBytesExact($dst, $originalBytes); } private static function normalizeEol(string $s): string @@ -830,6 +830,6 @@ private static function repoRootUnsafe(): string exit(SyncComposerRepositories::main($argv)); } catch (Throwable $e) { $msg = str_replace(["\r\n", "\r"], "\n", $e->getMessage()); - \Coretsia\Tools\Spikes\_support\ConsoleOutput::line(SyncComposerRepositories::CODE_FAILED . ": {$msg}"); + \Coretsia\Tools\Support\ConsoleOutput::line(SyncComposerRepositories::CODE_FAILED . ": {$msg}"); exit(1); } diff --git a/framework/tools/build/sync_package_scaffold.php b/framework/tools/build/sync_package_scaffold.php index a005efc..5364bc5 100644 --- a/framework/tools/build/sync_package_scaffold.php +++ b/framework/tools/build/sync_package_scaffold.php @@ -43,11 +43,11 @@ }); if ($toolsRootRuntime === null) { - $fallbackConsole = __DIR__ . '/../spikes/_support/ConsoleOutput.php'; + $fallbackConsole = __DIR__ . '/../support/ConsoleOutput.php'; if (\is_file($fallbackConsole) && \is_readable($fallbackConsole)) { require_once $fallbackConsole; - \Coretsia\Tools\Spikes\_support\ConsoleOutput::codeWithDiagnostics( + \Coretsia\Tools\Support\ConsoleOutput::codeWithDiagnostics( 'CORETSIA_PACKAGE_SCAFFOLD_SYNC_FAILED', [], ); @@ -56,17 +56,17 @@ exit(1); } - $bootstrap = $toolsRootRuntime . '/spikes/_support/bootstrap.php'; - $consoleFile = $toolsRootRuntime . '/spikes/_support/ConsoleOutput.php'; - $errorCodesFile = $toolsRootRuntime . '/spikes/_support/ErrorCodes.php'; - $deterministicExceptionFile = $toolsRootRuntime . '/spikes/_support/DeterministicException.php'; - $deterministicFileFile = $toolsRootRuntime . '/spikes/_support/DeterministicFile.php'; + $bootstrap = $toolsRootRuntime . '/support/bootstrap.php'; + $consoleFile = $toolsRootRuntime . '/support/ConsoleOutput.php'; + $errorCodesFile = $toolsRootRuntime . '/support/ErrorCodes.php'; + $deterministicExceptionFile = $toolsRootRuntime . '/support/DeterministicException.php'; + $deterministicFileFile = $toolsRootRuntime . '/support/DeterministicFile.php'; /** @var class-string $ConsoleOutput */ - $ConsoleOutput = 'Coretsia\\Tools\\Spikes\\_support\\ConsoleOutput'; + $ConsoleOutput = 'Coretsia\\Tools\\Support\\ConsoleOutput'; /** @var class-string $ErrorCodes */ - $ErrorCodes = 'Coretsia\\Tools\\Spikes\\_support\\ErrorCodes'; + $ErrorCodes = 'Coretsia\\Tools\\Support\\ErrorCodes'; $fallbackOutOfSync = 'CORETSIA_PACKAGE_SCAFFOLD_OUT_OF_SYNC'; $fallbackSyncFailed = 'CORETSIA_PACKAGE_SCAFFOLD_SYNC_FAILED'; @@ -861,7 +861,7 @@ function coretsia_sync_package_scaffold_write_file_exact(string $path, string $c { coretsia_sync_package_scaffold_ensure_dir(\dirname($path)); - \Coretsia\Tools\Spikes\_support\DeterministicFile::writeBytesExact($path, $contents); + \Coretsia\Tools\Support\DeterministicFile::writeBytesExact($path, $contents); } function coretsia_sync_package_scaffold_ensure_dir(string $dir): void diff --git a/framework/tools/config/atomic_write_allowlist.php b/framework/tools/config/atomic_write_allowlist.php index 22812c3..2e0dca4 100644 --- a/framework/tools/config/atomic_write_allowlist.php +++ b/framework/tools/config/atomic_write_allowlist.php @@ -18,7 +18,7 @@ return [ [ - 'path' => 'tools/spikes/_support/ConsoleOutput.php', + 'path' => 'tools/support/ConsoleOutput.php', 'reason' => 'owned-console-writer', ], ]; diff --git a/framework/tools/gates/artifact_header_schema_gate.php b/framework/tools/gates/artifact_header_schema_gate.php index 4f179ed..e7dd358 100644 --- a/framework/tools/gates/artifact_header_schema_gate.php +++ b/framework/tools/gates/artifact_header_schema_gate.php @@ -42,11 +42,11 @@ }); if ($toolsRootRuntime === null) { - $fallbackConsole = __DIR__ . '/../spikes/_support/ConsoleOutput.php'; + $fallbackConsole = __DIR__ . '/../support/ConsoleOutput.php'; if (\is_file($fallbackConsole) && \is_readable($fallbackConsole)) { require_once $fallbackConsole; - \Coretsia\Tools\Spikes\_support\ConsoleOutput::codeWithDiagnostics( + \Coretsia\Tools\Support\ConsoleOutput::codeWithDiagnostics( 'CORETSIA_ARTIFACT_HEADER_SCHEMA_GATE_FAILED', [], ); @@ -55,15 +55,15 @@ exit(1); } - $bootstrap = $toolsRootRuntime . '/spikes/_support/bootstrap.php'; - $consoleFile = $toolsRootRuntime . '/spikes/_support/ConsoleOutput.php'; - $errorCodesFile = $toolsRootRuntime . '/spikes/_support/ErrorCodes.php'; + $bootstrap = $toolsRootRuntime . '/support/bootstrap.php'; + $consoleFile = $toolsRootRuntime . '/support/ConsoleOutput.php'; + $errorCodesFile = $toolsRootRuntime . '/support/ErrorCodes.php'; /** @var class-string $ConsoleOutput */ - $ConsoleOutput = 'Coretsia\\Tools\\Spikes\\_support\\ConsoleOutput'; + $ConsoleOutput = 'Coretsia\\Tools\\Support\\ConsoleOutput'; /** @var class-string $ErrorCodes */ - $ErrorCodes = 'Coretsia\\Tools\\Spikes\\_support\\ErrorCodes'; + $ErrorCodes = 'Coretsia\\Tools\\Support\\ErrorCodes'; $fallbackViolation = 'CORETSIA_ARTIFACT_HEADER_SCHEMA_DRIFT'; $fallbackScanFailed = 'CORETSIA_ARTIFACT_HEADER_SCHEMA_GATE_FAILED'; diff --git a/framework/tools/gates/atomic_write_gate.php b/framework/tools/gates/atomic_write_gate.php index e8779f0..fe38297 100644 --- a/framework/tools/gates/atomic_write_gate.php +++ b/framework/tools/gates/atomic_write_gate.php @@ -43,11 +43,11 @@ }); if ($toolsRootRuntime === null) { - $fallbackConsole = __DIR__ . '/../spikes/_support/ConsoleOutput.php'; + $fallbackConsole = __DIR__ . '/../support/ConsoleOutput.php'; if (\is_file($fallbackConsole) && \is_readable($fallbackConsole)) { require_once $fallbackConsole; - \Coretsia\Tools\Spikes\_support\ConsoleOutput::codeWithDiagnostics( + \Coretsia\Tools\Support\ConsoleOutput::codeWithDiagnostics( 'CORETSIA_ATOMIC_WRITE_GATE_FAILED', [], ); @@ -56,15 +56,15 @@ exit(1); } - $bootstrap = $toolsRootRuntime . '/spikes/_support/bootstrap.php'; - $consoleFile = $toolsRootRuntime . '/spikes/_support/ConsoleOutput.php'; - $errorCodesFile = $toolsRootRuntime . '/spikes/_support/ErrorCodes.php'; + $bootstrap = $toolsRootRuntime . '/support/bootstrap.php'; + $consoleFile = $toolsRootRuntime . '/support/ConsoleOutput.php'; + $errorCodesFile = $toolsRootRuntime . '/support/ErrorCodes.php'; /** @var class-string $ConsoleOutput */ - $ConsoleOutput = 'Coretsia\\Tools\\Spikes\\_support\\ConsoleOutput'; + $ConsoleOutput = 'Coretsia\\Tools\\Support\\ConsoleOutput'; /** @var class-string $ErrorCodes */ - $ErrorCodes = 'Coretsia\\Tools\\Spikes\\_support\\ErrorCodes'; + $ErrorCodes = 'Coretsia\\Tools\\Support\\ErrorCodes'; $fallbackViolation = 'CORETSIA_ATOMIC_WRITE_VIOLATION'; $fallbackGateFailed = 'CORETSIA_ATOMIC_WRITE_GATE_FAILED'; @@ -404,7 +404,7 @@ function coretsia_atomic_write_gate_should_skip_file( return true; } - if ($frameworkRelative === 'tools/spikes/_support/DeterministicFile.php') { + if ($frameworkRelative === 'tools/support/DeterministicFile.php') { return true; } diff --git a/framework/tools/gates/composer_audit_gate.php b/framework/tools/gates/composer_audit_gate.php index bab013d..fa62ec6 100644 --- a/framework/tools/gates/composer_audit_gate.php +++ b/framework/tools/gates/composer_audit_gate.php @@ -43,11 +43,11 @@ }); if ($toolsRootRuntime === null) { - $fallbackConsole = __DIR__ . '/../spikes/_support/ConsoleOutput.php'; + $fallbackConsole = __DIR__ . '/../support/ConsoleOutput.php'; if (\is_file($fallbackConsole) && \is_readable($fallbackConsole)) { require_once $fallbackConsole; - \Coretsia\Tools\Spikes\_support\ConsoleOutput::codeWithDiagnostics( + \Coretsia\Tools\Support\ConsoleOutput::codeWithDiagnostics( 'CORETSIA_COMPOSER_AUDIT_SCAN_FAILED', [], ); @@ -56,15 +56,15 @@ exit(1); } - $bootstrap = $toolsRootRuntime . '/spikes/_support/bootstrap.php'; - $consoleFile = $toolsRootRuntime . '/spikes/_support/ConsoleOutput.php'; - $errorCodesFile = $toolsRootRuntime . '/spikes/_support/ErrorCodes.php'; + $bootstrap = $toolsRootRuntime . '/support/bootstrap.php'; + $consoleFile = $toolsRootRuntime . '/support/ConsoleOutput.php'; + $errorCodesFile = $toolsRootRuntime . '/support/ErrorCodes.php'; /** @var class-string $ConsoleOutput */ - $ConsoleOutput = 'Coretsia\\Tools\\Spikes\\_support\\ConsoleOutput'; + $ConsoleOutput = 'Coretsia\\Tools\\Support\\ConsoleOutput'; /** @var class-string $ErrorCodes */ - $ErrorCodes = 'Coretsia\\Tools\\Spikes\\_support\\ErrorCodes'; + $ErrorCodes = 'Coretsia\\Tools\\Support\\ErrorCodes'; $fallbackAuditFailed = 'CORETSIA_COMPOSER_AUDIT_FAILED'; $fallbackScanFailed = 'CORETSIA_COMPOSER_AUDIT_SCAN_FAILED'; diff --git a/framework/tools/gates/contracts_only_ports_gate.php b/framework/tools/gates/contracts_only_ports_gate.php index a99d02d..1763b70 100644 --- a/framework/tools/gates/contracts_only_ports_gate.php +++ b/framework/tools/gates/contracts_only_ports_gate.php @@ -42,11 +42,11 @@ }); if ($toolsRootRuntime === null) { - $fallbackConsole = __DIR__ . '/../spikes/_support/ConsoleOutput.php'; + $fallbackConsole = __DIR__ . '/../support/ConsoleOutput.php'; if (\is_file($fallbackConsole) && \is_readable($fallbackConsole)) { require_once $fallbackConsole; - \Coretsia\Tools\Spikes\_support\ConsoleOutput::codeWithDiagnostics( + \Coretsia\Tools\Support\ConsoleOutput::codeWithDiagnostics( 'CORETSIA_CONTRACTS_ONLY_PORTS_GATE_FAILED', [], ); @@ -55,15 +55,15 @@ exit(1); } - $bootstrap = $toolsRootRuntime . '/spikes/_support/bootstrap.php'; - $consoleFile = $toolsRootRuntime . '/spikes/_support/ConsoleOutput.php'; - $errorCodesFile = $toolsRootRuntime . '/spikes/_support/ErrorCodes.php'; + $bootstrap = $toolsRootRuntime . '/support/bootstrap.php'; + $consoleFile = $toolsRootRuntime . '/support/ConsoleOutput.php'; + $errorCodesFile = $toolsRootRuntime . '/support/ErrorCodes.php'; /** @var class-string $ConsoleOutput */ - $ConsoleOutput = 'Coretsia\\Tools\\Spikes\\_support\\ConsoleOutput'; + $ConsoleOutput = 'Coretsia\\Tools\\Support\\ConsoleOutput'; /** @var class-string $ErrorCodes */ - $ErrorCodes = 'Coretsia\\Tools\\Spikes\\_support\\ErrorCodes'; + $ErrorCodes = 'Coretsia\\Tools\\Support\\ErrorCodes'; $fallbackViolation = 'CORETSIA_CONTRACTS_ONLY_PORTS_FORBIDDEN'; $fallbackScanFailed = 'CORETSIA_CONTRACTS_ONLY_PORTS_GATE_FAILED'; diff --git a/framework/tools/gates/cross_cutting_contract_gate.php b/framework/tools/gates/cross_cutting_contract_gate.php index 395a9b0..85a5557 100644 --- a/framework/tools/gates/cross_cutting_contract_gate.php +++ b/framework/tools/gates/cross_cutting_contract_gate.php @@ -42,11 +42,11 @@ }); if ($toolsRootRuntime === null) { - $fallbackConsole = __DIR__ . '/../spikes/_support/ConsoleOutput.php'; + $fallbackConsole = __DIR__ . '/../support/ConsoleOutput.php'; if (\is_file($fallbackConsole) && \is_readable($fallbackConsole)) { require_once $fallbackConsole; - \Coretsia\Tools\Spikes\_support\ConsoleOutput::codeWithDiagnostics( + \Coretsia\Tools\Support\ConsoleOutput::codeWithDiagnostics( 'CORETSIA_CROSS_CUTTING_CONTRACT_GATE_FAILED', [], ); @@ -55,15 +55,15 @@ exit(1); } - $bootstrap = $toolsRootRuntime . '/spikes/_support/bootstrap.php'; - $consoleFile = $toolsRootRuntime . '/spikes/_support/ConsoleOutput.php'; - $errorCodesFile = $toolsRootRuntime . '/spikes/_support/ErrorCodes.php'; + $bootstrap = $toolsRootRuntime . '/support/bootstrap.php'; + $consoleFile = $toolsRootRuntime . '/support/ConsoleOutput.php'; + $errorCodesFile = $toolsRootRuntime . '/support/ErrorCodes.php'; /** @var class-string $ConsoleOutput */ - $ConsoleOutput = 'Coretsia\\Tools\\Spikes\\_support\\ConsoleOutput'; + $ConsoleOutput = 'Coretsia\\Tools\\Support\\ConsoleOutput'; /** @var class-string $ErrorCodes */ - $ErrorCodes = 'Coretsia\\Tools\\Spikes\\_support\\ErrorCodes'; + $ErrorCodes = 'Coretsia\\Tools\\Support\\ErrorCodes'; $fallbackViolation = 'CORETSIA_CROSS_CUTTING_CONTRACT_DRIFT'; $fallbackScanFailed = 'CORETSIA_CROSS_CUTTING_CONTRACT_GATE_FAILED'; diff --git a/framework/tools/gates/doc_version_drift_gate.php b/framework/tools/gates/doc_version_drift_gate.php index 33042fc..a3b488c 100644 --- a/framework/tools/gates/doc_version_drift_gate.php +++ b/framework/tools/gates/doc_version_drift_gate.php @@ -46,11 +46,11 @@ $fallbackGateFailed = 'CORETSIA_DOC_VERSION_GATE_FAILED'; if ($toolsRootRuntime === null) { - $fallbackConsole = __DIR__ . '/../spikes/_support/ConsoleOutput.php'; + $fallbackConsole = __DIR__ . '/../support/ConsoleOutput.php'; if (\is_file($fallbackConsole) && \is_readable($fallbackConsole)) { require_once $fallbackConsole; - \Coretsia\Tools\Spikes\_support\ConsoleOutput::codeWithDiagnostics( + \Coretsia\Tools\Support\ConsoleOutput::codeWithDiagnostics( $fallbackGateFailed, [], ); @@ -59,15 +59,15 @@ exit(1); } - $bootstrap = $toolsRootRuntime . '/spikes/_support/bootstrap.php'; - $consoleFile = $toolsRootRuntime . '/spikes/_support/ConsoleOutput.php'; - $errorCodesFile = $toolsRootRuntime . '/spikes/_support/ErrorCodes.php'; + $bootstrap = $toolsRootRuntime . '/support/bootstrap.php'; + $consoleFile = $toolsRootRuntime . '/support/ConsoleOutput.php'; + $errorCodesFile = $toolsRootRuntime . '/support/ErrorCodes.php'; /** @var class-string $ConsoleOutput */ - $ConsoleOutput = 'Coretsia\\Tools\\Spikes\\_support\\ConsoleOutput'; + $ConsoleOutput = 'Coretsia\\Tools\\Support\\ConsoleOutput'; /** @var class-string $ErrorCodes */ - $ErrorCodes = 'Coretsia\\Tools\\Spikes\\_support\\ErrorCodes'; + $ErrorCodes = 'Coretsia\\Tools\\Support\\ErrorCodes'; if (!\is_file($bootstrap) || !\is_readable($bootstrap)) { if (\is_file($consoleFile) && \is_readable($consoleFile)) { diff --git a/framework/tools/gates/dto_gate.php b/framework/tools/gates/dto_gate.php index 8a12bde..f05ae37 100644 --- a/framework/tools/gates/dto_gate.php +++ b/framework/tools/gates/dto_gate.php @@ -42,11 +42,11 @@ }); if ($toolsRootRuntime === null) { - $fallbackConsole = __DIR__ . '/../spikes/_support/ConsoleOutput.php'; + $fallbackConsole = __DIR__ . '/../support/ConsoleOutput.php'; if (\is_file($fallbackConsole) && \is_readable($fallbackConsole)) { require_once $fallbackConsole; - \Coretsia\Tools\Spikes\_support\ConsoleOutput::codeWithDiagnostics( + \Coretsia\Tools\Support\ConsoleOutput::codeWithDiagnostics( 'CORETSIA_DTO_GATE_FAILED', [], ); @@ -55,15 +55,15 @@ exit(1); } - $bootstrap = $toolsRootRuntime . '/spikes/_support/bootstrap.php'; - $consoleFile = $toolsRootRuntime . '/spikes/_support/ConsoleOutput.php'; - $errorCodesFile = $toolsRootRuntime . '/spikes/_support/ErrorCodes.php'; + $bootstrap = $toolsRootRuntime . '/support/bootstrap.php'; + $consoleFile = $toolsRootRuntime . '/support/ConsoleOutput.php'; + $errorCodesFile = $toolsRootRuntime . '/support/ErrorCodes.php'; /** @var class-string $ConsoleOutput */ - $ConsoleOutput = 'Coretsia\\Tools\\Spikes\\_support\\ConsoleOutput'; + $ConsoleOutput = 'Coretsia\\Tools\\Support\\ConsoleOutput'; /** @var class-string $ErrorCodes */ - $ErrorCodes = 'Coretsia\\Tools\\Spikes\\_support\\ErrorCodes'; + $ErrorCodes = 'Coretsia\\Tools\\Support\\ErrorCodes'; $fallbackGateFailed = 'CORETSIA_DTO_GATE_FAILED'; diff --git a/framework/tools/gates/dto_marker_consistency_gate.php b/framework/tools/gates/dto_marker_consistency_gate.php index e45e7d9..da00c2f 100644 --- a/framework/tools/gates/dto_marker_consistency_gate.php +++ b/framework/tools/gates/dto_marker_consistency_gate.php @@ -42,11 +42,11 @@ }); if ($toolsRootRuntime === null) { - $fallbackConsole = __DIR__ . '/../spikes/_support/ConsoleOutput.php'; + $fallbackConsole = __DIR__ . '/../support/ConsoleOutput.php'; if (\is_file($fallbackConsole) && \is_readable($fallbackConsole)) { require_once $fallbackConsole; - \Coretsia\Tools\Spikes\_support\ConsoleOutput::codeWithDiagnostics( + \Coretsia\Tools\Support\ConsoleOutput::codeWithDiagnostics( 'CORETSIA_DTO_GATE_SCAN_FAILED', [], ); @@ -55,15 +55,15 @@ exit(1); } - $bootstrap = $toolsRootRuntime . '/spikes/_support/bootstrap.php'; - $consoleFile = $toolsRootRuntime . '/spikes/_support/ConsoleOutput.php'; - $errorCodesFile = $toolsRootRuntime . '/spikes/_support/ErrorCodes.php'; + $bootstrap = $toolsRootRuntime . '/support/bootstrap.php'; + $consoleFile = $toolsRootRuntime . '/support/ConsoleOutput.php'; + $errorCodesFile = $toolsRootRuntime . '/support/ErrorCodes.php'; /** @var class-string $ConsoleOutput */ - $ConsoleOutput = 'Coretsia\\Tools\\Spikes\\_support\\ConsoleOutput'; + $ConsoleOutput = 'Coretsia\\Tools\\Support\\ConsoleOutput'; /** @var class-string $ErrorCodes */ - $ErrorCodes = 'Coretsia\\Tools\\Spikes\\_support\\ErrorCodes'; + $ErrorCodes = 'Coretsia\\Tools\\Support\\ErrorCodes'; $fallbackViolation = 'CORETSIA_DTO_MARKER_VIOLATION'; $fallbackScanFailed = 'CORETSIA_DTO_GATE_SCAN_FAILED'; diff --git a/framework/tools/gates/dto_no_logic_gate.php b/framework/tools/gates/dto_no_logic_gate.php index 1f9380a..494f406 100644 --- a/framework/tools/gates/dto_no_logic_gate.php +++ b/framework/tools/gates/dto_no_logic_gate.php @@ -42,11 +42,11 @@ }); if ($toolsRootRuntime === null) { - $fallbackConsole = __DIR__ . '/../spikes/_support/ConsoleOutput.php'; + $fallbackConsole = __DIR__ . '/../support/ConsoleOutput.php'; if (\is_file($fallbackConsole) && \is_readable($fallbackConsole)) { require_once $fallbackConsole; - \Coretsia\Tools\Spikes\_support\ConsoleOutput::codeWithDiagnostics( + \Coretsia\Tools\Support\ConsoleOutput::codeWithDiagnostics( 'CORETSIA_DTO_GATE_SCAN_FAILED', [], ); @@ -55,15 +55,15 @@ exit(1); } - $bootstrap = $toolsRootRuntime . '/spikes/_support/bootstrap.php'; - $consoleFile = $toolsRootRuntime . '/spikes/_support/ConsoleOutput.php'; - $errorCodesFile = $toolsRootRuntime . '/spikes/_support/ErrorCodes.php'; + $bootstrap = $toolsRootRuntime . '/support/bootstrap.php'; + $consoleFile = $toolsRootRuntime . '/support/ConsoleOutput.php'; + $errorCodesFile = $toolsRootRuntime . '/support/ErrorCodes.php'; /** @var class-string $ConsoleOutput */ - $ConsoleOutput = 'Coretsia\\Tools\\Spikes\\_support\\ConsoleOutput'; + $ConsoleOutput = 'Coretsia\\Tools\\Support\\ConsoleOutput'; /** @var class-string $ErrorCodes */ - $ErrorCodes = 'Coretsia\\Tools\\Spikes\\_support\\ErrorCodes'; + $ErrorCodes = 'Coretsia\\Tools\\Support\\ErrorCodes'; $fallbackViolation = 'CORETSIA_DTO_NO_LOGIC_VIOLATION'; $fallbackScanFailed = 'CORETSIA_DTO_GATE_SCAN_FAILED'; diff --git a/framework/tools/gates/dto_shape_gate.php b/framework/tools/gates/dto_shape_gate.php index 3846df4..6db1f91 100644 --- a/framework/tools/gates/dto_shape_gate.php +++ b/framework/tools/gates/dto_shape_gate.php @@ -42,11 +42,11 @@ }); if ($toolsRootRuntime === null) { - $fallbackConsole = __DIR__ . '/../spikes/_support/ConsoleOutput.php'; + $fallbackConsole = __DIR__ . '/../support/ConsoleOutput.php'; if (\is_file($fallbackConsole) && \is_readable($fallbackConsole)) { require_once $fallbackConsole; - \Coretsia\Tools\Spikes\_support\ConsoleOutput::codeWithDiagnostics( + \Coretsia\Tools\Support\ConsoleOutput::codeWithDiagnostics( 'CORETSIA_DTO_GATE_SCAN_FAILED', [], ); @@ -55,15 +55,15 @@ exit(1); } - $bootstrap = $toolsRootRuntime . '/spikes/_support/bootstrap.php'; - $consoleFile = $toolsRootRuntime . '/spikes/_support/ConsoleOutput.php'; - $errorCodesFile = $toolsRootRuntime . '/spikes/_support/ErrorCodes.php'; + $bootstrap = $toolsRootRuntime . '/support/bootstrap.php'; + $consoleFile = $toolsRootRuntime . '/support/ConsoleOutput.php'; + $errorCodesFile = $toolsRootRuntime . '/support/ErrorCodes.php'; /** @var class-string $ConsoleOutput */ - $ConsoleOutput = 'Coretsia\\Tools\\Spikes\\_support\\ConsoleOutput'; + $ConsoleOutput = 'Coretsia\\Tools\\Support\\ConsoleOutput'; /** @var class-string $ErrorCodes */ - $ErrorCodes = 'Coretsia\\Tools\\Spikes\\_support\\ErrorCodes'; + $ErrorCodes = 'Coretsia\\Tools\\Support\\ErrorCodes'; $fallbackViolation = 'CORETSIA_DTO_SHAPE_VIOLATION'; $fallbackScanFailed = 'CORETSIA_DTO_GATE_SCAN_FAILED'; diff --git a/framework/tools/gates/internal_toolkit_no_dup_gate.php b/framework/tools/gates/internal_toolkit_no_dup_gate.php index e56a9e1..9e2f252 100644 --- a/framework/tools/gates/internal_toolkit_no_dup_gate.php +++ b/framework/tools/gates/internal_toolkit_no_dup_gate.php @@ -46,15 +46,15 @@ exit(1); } - $bootstrap = $toolsRootRuntime . '/spikes/_support/bootstrap.php'; - $consoleFile = $toolsRootRuntime . '/spikes/_support/ConsoleOutput.php'; - $errorCodesFile = $toolsRootRuntime . '/spikes/_support/ErrorCodes.php'; + $bootstrap = $toolsRootRuntime . '/support/bootstrap.php'; + $consoleFile = $toolsRootRuntime . '/support/ConsoleOutput.php'; + $errorCodesFile = $toolsRootRuntime . '/support/ErrorCodes.php'; /** @var class-string $ConsoleOutput */ - $ConsoleOutput = 'Coretsia\\Tools\\Spikes\\_support\\ConsoleOutput'; + $ConsoleOutput = 'Coretsia\\Tools\\Support\\ConsoleOutput'; /** @var class-string $ErrorCodes */ - $ErrorCodes = 'Coretsia\\Tools\\Spikes\\_support\\ErrorCodes'; + $ErrorCodes = 'Coretsia\\Tools\\Support\\ErrorCodes'; // Bootstrap MUST be loaded before scanning. // If bootstrap is missing/unreadable -> must use local ConsoleOutput include, print SCAN_FAILED and exit 1. diff --git a/framework/tools/gates/kernel_public_api_gate.php b/framework/tools/gates/kernel_public_api_gate.php index 2099edd..54d4784 100644 --- a/framework/tools/gates/kernel_public_api_gate.php +++ b/framework/tools/gates/kernel_public_api_gate.php @@ -42,11 +42,11 @@ }); if ($toolsRootRuntime === null) { - $fallbackConsole = __DIR__ . '/../spikes/_support/ConsoleOutput.php'; + $fallbackConsole = __DIR__ . '/../support/ConsoleOutput.php'; if (\is_file($fallbackConsole) && \is_readable($fallbackConsole)) { require_once $fallbackConsole; - \Coretsia\Tools\Spikes\_support\ConsoleOutput::codeWithDiagnostics( + \Coretsia\Tools\Support\ConsoleOutput::codeWithDiagnostics( 'CORETSIA_KERNEL_PUBLIC_API_GATE_FAILED', [], ); @@ -55,15 +55,15 @@ exit(1); } - $bootstrap = $toolsRootRuntime . '/spikes/_support/bootstrap.php'; - $consoleFile = $toolsRootRuntime . '/spikes/_support/ConsoleOutput.php'; - $errorCodesFile = $toolsRootRuntime . '/spikes/_support/ErrorCodes.php'; + $bootstrap = $toolsRootRuntime . '/support/bootstrap.php'; + $consoleFile = $toolsRootRuntime . '/support/ConsoleOutput.php'; + $errorCodesFile = $toolsRootRuntime . '/support/ErrorCodes.php'; /** @var class-string $ConsoleOutput */ - $ConsoleOutput = 'Coretsia\\Tools\\Spikes\\_support\\ConsoleOutput'; + $ConsoleOutput = 'Coretsia\\Tools\\Support\\ConsoleOutput'; /** @var class-string $ErrorCodes */ - $ErrorCodes = 'Coretsia\\Tools\\Spikes\\_support\\ErrorCodes'; + $ErrorCodes = 'Coretsia\\Tools\\Support\\ErrorCodes'; $fallbackViolation = 'CORETSIA_KERNEL_PUBLIC_API_DRIFT'; $fallbackScanFailed = 'CORETSIA_KERNEL_PUBLIC_API_GATE_FAILED'; diff --git a/framework/tools/gates/license_header_gate.php b/framework/tools/gates/license_header_gate.php index 6ba1012..cba1fc2 100644 --- a/framework/tools/gates/license_header_gate.php +++ b/framework/tools/gates/license_header_gate.php @@ -46,11 +46,11 @@ $fallbackGateFailed = 'CORETSIA_LICENSE_HEADER_GATE_FAILED'; if ($toolsRootRuntime === null) { - $fallbackConsole = __DIR__ . '/../spikes/_support/ConsoleOutput.php'; + $fallbackConsole = __DIR__ . '/../support/ConsoleOutput.php'; if (\is_file($fallbackConsole) && \is_readable($fallbackConsole)) { require_once $fallbackConsole; - \Coretsia\Tools\Spikes\_support\ConsoleOutput::codeWithDiagnostics( + \Coretsia\Tools\Support\ConsoleOutput::codeWithDiagnostics( $fallbackGateFailed, [], ); @@ -59,15 +59,15 @@ exit(1); } - $bootstrap = $toolsRootRuntime . '/spikes/_support/bootstrap.php'; - $consoleFile = $toolsRootRuntime . '/spikes/_support/ConsoleOutput.php'; - $errorCodesFile = $toolsRootRuntime . '/spikes/_support/ErrorCodes.php'; + $bootstrap = $toolsRootRuntime . '/support/bootstrap.php'; + $consoleFile = $toolsRootRuntime . '/support/ConsoleOutput.php'; + $errorCodesFile = $toolsRootRuntime . '/support/ErrorCodes.php'; /** @var class-string $ConsoleOutput */ - $ConsoleOutput = 'Coretsia\\Tools\\Spikes\\_support\\ConsoleOutput'; + $ConsoleOutput = 'Coretsia\\Tools\\Support\\ConsoleOutput'; /** @var class-string $ErrorCodes */ - $ErrorCodes = 'Coretsia\\Tools\\Spikes\\_support\\ErrorCodes'; + $ErrorCodes = 'Coretsia\\Tools\\Support\\ErrorCodes'; if (!\is_file($bootstrap) || !\is_readable($bootstrap)) { if (\is_file($consoleFile) && \is_readable($consoleFile)) { diff --git a/framework/tools/gates/no_runtime_tooling_artifacts_gate.php b/framework/tools/gates/no_runtime_tooling_artifacts_gate.php index d4ac04a..b1a2f6b 100644 --- a/framework/tools/gates/no_runtime_tooling_artifacts_gate.php +++ b/framework/tools/gates/no_runtime_tooling_artifacts_gate.php @@ -42,11 +42,11 @@ }); if ($toolsRootRuntime === null) { - $fallbackConsole = __DIR__ . '/../spikes/_support/ConsoleOutput.php'; + $fallbackConsole = __DIR__ . '/../support/ConsoleOutput.php'; if (\is_file($fallbackConsole) && \is_readable($fallbackConsole)) { require_once $fallbackConsole; - \Coretsia\Tools\Spikes\_support\ConsoleOutput::codeWithDiagnostics( + \Coretsia\Tools\Support\ConsoleOutput::codeWithDiagnostics( 'CORETSIA_RUNTIME_TOOLING_ARTIFACTS_GATE_FAILED', [], ); @@ -55,15 +55,15 @@ exit(1); } - $bootstrap = $toolsRootRuntime . '/spikes/_support/bootstrap.php'; - $consoleFile = $toolsRootRuntime . '/spikes/_support/ConsoleOutput.php'; - $errorCodesFile = $toolsRootRuntime . '/spikes/_support/ErrorCodes.php'; + $bootstrap = $toolsRootRuntime . '/support/bootstrap.php'; + $consoleFile = $toolsRootRuntime . '/support/ConsoleOutput.php'; + $errorCodesFile = $toolsRootRuntime . '/support/ErrorCodes.php'; /** @var class-string $ConsoleOutput */ - $ConsoleOutput = 'Coretsia\\Tools\\Spikes\\_support\\ConsoleOutput'; + $ConsoleOutput = 'Coretsia\\Tools\\Support\\ConsoleOutput'; /** @var class-string $ErrorCodes */ - $ErrorCodes = 'Coretsia\\Tools\\Spikes\\_support\\ErrorCodes'; + $ErrorCodes = 'Coretsia\\Tools\\Support\\ErrorCodes'; $fallbackViolation = 'CORETSIA_RUNTIME_TOOLING_ARTIFACTS_VIOLATION'; $fallbackGateFailed = 'CORETSIA_RUNTIME_TOOLING_ARTIFACTS_GATE_FAILED'; diff --git a/framework/tools/gates/no_skeleton_bundles_default_gate.php b/framework/tools/gates/no_skeleton_bundles_default_gate.php index 5ef1948..ba86000 100644 --- a/framework/tools/gates/no_skeleton_bundles_default_gate.php +++ b/framework/tools/gates/no_skeleton_bundles_default_gate.php @@ -42,11 +42,11 @@ }); if ($toolsRootRuntime === null) { - $fallbackConsole = __DIR__ . '/../spikes/_support/ConsoleOutput.php'; + $fallbackConsole = __DIR__ . '/../support/ConsoleOutput.php'; if (\is_file($fallbackConsole) && \is_readable($fallbackConsole)) { require_once $fallbackConsole; - \Coretsia\Tools\Spikes\_support\ConsoleOutput::codeWithDiagnostics( + \Coretsia\Tools\Support\ConsoleOutput::codeWithDiagnostics( 'CORETSIA_NO_SKELETON_BUNDLES_DEFAULT_GATE_FAILED', [], ); @@ -55,15 +55,15 @@ exit(1); } - $bootstrap = $toolsRootRuntime . '/spikes/_support/bootstrap.php'; - $consoleFile = $toolsRootRuntime . '/spikes/_support/ConsoleOutput.php'; - $errorCodesFile = $toolsRootRuntime . '/spikes/_support/ErrorCodes.php'; + $bootstrap = $toolsRootRuntime . '/support/bootstrap.php'; + $consoleFile = $toolsRootRuntime . '/support/ConsoleOutput.php'; + $errorCodesFile = $toolsRootRuntime . '/support/ErrorCodes.php'; /** @var class-string $ConsoleOutput */ - $ConsoleOutput = 'Coretsia\\Tools\\Spikes\\_support\\ConsoleOutput'; + $ConsoleOutput = 'Coretsia\\Tools\\Support\\ConsoleOutput'; /** @var class-string $ErrorCodes */ - $ErrorCodes = 'Coretsia\\Tools\\Spikes\\_support\\ErrorCodes'; + $ErrorCodes = 'Coretsia\\Tools\\Support\\ErrorCodes'; $fallbackViolation = 'CORETSIA_NO_SKELETON_BUNDLES_DEFAULT_FORBIDDEN'; $fallbackScanFailed = 'CORETSIA_NO_SKELETON_BUNDLES_DEFAULT_GATE_FAILED'; diff --git a/framework/tools/gates/no_skeleton_http_default_gate.php b/framework/tools/gates/no_skeleton_http_default_gate.php index 72d27fc..4424d4c 100644 --- a/framework/tools/gates/no_skeleton_http_default_gate.php +++ b/framework/tools/gates/no_skeleton_http_default_gate.php @@ -42,11 +42,11 @@ }); if ($toolsRootRuntime === null) { - $fallbackConsole = __DIR__ . '/../spikes/_support/ConsoleOutput.php'; + $fallbackConsole = __DIR__ . '/../support/ConsoleOutput.php'; if (\is_file($fallbackConsole) && \is_readable($fallbackConsole)) { require_once $fallbackConsole; - \Coretsia\Tools\Spikes\_support\ConsoleOutput::codeWithDiagnostics( + \Coretsia\Tools\Support\ConsoleOutput::codeWithDiagnostics( 'CORETSIA_NO_SKELETON_HTTP_DEFAULT_GATE_FAILED', [], ); @@ -55,15 +55,15 @@ exit(1); } - $bootstrap = $toolsRootRuntime . '/spikes/_support/bootstrap.php'; - $consoleFile = $toolsRootRuntime . '/spikes/_support/ConsoleOutput.php'; - $errorCodesFile = $toolsRootRuntime . '/spikes/_support/ErrorCodes.php'; + $bootstrap = $toolsRootRuntime . '/support/bootstrap.php'; + $consoleFile = $toolsRootRuntime . '/support/ConsoleOutput.php'; + $errorCodesFile = $toolsRootRuntime . '/support/ErrorCodes.php'; /** @var class-string $ConsoleOutput */ - $ConsoleOutput = 'Coretsia\\Tools\\Spikes\\_support\\ConsoleOutput'; + $ConsoleOutput = 'Coretsia\\Tools\\Support\\ConsoleOutput'; /** @var class-string $ErrorCodes */ - $ErrorCodes = 'Coretsia\\Tools\\Spikes\\_support\\ErrorCodes'; + $ErrorCodes = 'Coretsia\\Tools\\Support\\ErrorCodes'; $fallbackViolation = 'CORETSIA_NO_SKELETON_HTTP_DEFAULT_FORBIDDEN'; $fallbackScanFailed = 'CORETSIA_NO_SKELETON_HTTP_DEFAULT_GATE_FAILED'; diff --git a/framework/tools/gates/no_skeleton_mode_presets_default_gate.php b/framework/tools/gates/no_skeleton_mode_presets_default_gate.php index 0795a5d..573ee10 100644 --- a/framework/tools/gates/no_skeleton_mode_presets_default_gate.php +++ b/framework/tools/gates/no_skeleton_mode_presets_default_gate.php @@ -42,11 +42,11 @@ }); if ($toolsRootRuntime === null) { - $fallbackConsole = __DIR__ . '/../spikes/_support/ConsoleOutput.php'; + $fallbackConsole = __DIR__ . '/../support/ConsoleOutput.php'; if (\is_file($fallbackConsole) && \is_readable($fallbackConsole)) { require_once $fallbackConsole; - \Coretsia\Tools\Spikes\_support\ConsoleOutput::codeWithDiagnostics( + \Coretsia\Tools\Support\ConsoleOutput::codeWithDiagnostics( 'CORETSIA_NO_SKELETON_MODE_PRESETS_DEFAULT_GATE_FAILED', [], ); @@ -55,15 +55,15 @@ exit(1); } - $bootstrap = $toolsRootRuntime . '/spikes/_support/bootstrap.php'; - $consoleFile = $toolsRootRuntime . '/spikes/_support/ConsoleOutput.php'; - $errorCodesFile = $toolsRootRuntime . '/spikes/_support/ErrorCodes.php'; + $bootstrap = $toolsRootRuntime . '/support/bootstrap.php'; + $consoleFile = $toolsRootRuntime . '/support/ConsoleOutput.php'; + $errorCodesFile = $toolsRootRuntime . '/support/ErrorCodes.php'; /** @var class-string $ConsoleOutput */ - $ConsoleOutput = 'Coretsia\\Tools\\Spikes\\_support\\ConsoleOutput'; + $ConsoleOutput = 'Coretsia\\Tools\\Support\\ConsoleOutput'; /** @var class-string $ErrorCodes */ - $ErrorCodes = 'Coretsia\\Tools\\Spikes\\_support\\ErrorCodes'; + $ErrorCodes = 'Coretsia\\Tools\\Support\\ErrorCodes'; $fallbackViolation = 'CORETSIA_NO_SKELETON_MODE_PRESETS_DEFAULT_FORBIDDEN'; $fallbackScanFailed = 'CORETSIA_NO_SKELETON_MODE_PRESETS_DEFAULT_GATE_FAILED'; diff --git a/framework/tools/gates/no_skeleton_modules_default_gate.php b/framework/tools/gates/no_skeleton_modules_default_gate.php index 0ff0363..5027b2f 100644 --- a/framework/tools/gates/no_skeleton_modules_default_gate.php +++ b/framework/tools/gates/no_skeleton_modules_default_gate.php @@ -42,11 +42,11 @@ }); if ($toolsRootRuntime === null) { - $fallbackConsole = __DIR__ . '/../spikes/_support/ConsoleOutput.php'; + $fallbackConsole = __DIR__ . '/../support/ConsoleOutput.php'; if (\is_file($fallbackConsole) && \is_readable($fallbackConsole)) { require_once $fallbackConsole; - \Coretsia\Tools\Spikes\_support\ConsoleOutput::codeWithDiagnostics( + \Coretsia\Tools\Support\ConsoleOutput::codeWithDiagnostics( 'CORETSIA_NO_SKELETON_MODULES_DEFAULT_GATE_FAILED', [], ); @@ -55,15 +55,15 @@ exit(1); } - $bootstrap = $toolsRootRuntime . '/spikes/_support/bootstrap.php'; - $consoleFile = $toolsRootRuntime . '/spikes/_support/ConsoleOutput.php'; - $errorCodesFile = $toolsRootRuntime . '/spikes/_support/ErrorCodes.php'; + $bootstrap = $toolsRootRuntime . '/support/bootstrap.php'; + $consoleFile = $toolsRootRuntime . '/support/ConsoleOutput.php'; + $errorCodesFile = $toolsRootRuntime . '/support/ErrorCodes.php'; /** @var class-string $ConsoleOutput */ - $ConsoleOutput = 'Coretsia\\Tools\\Spikes\\_support\\ConsoleOutput'; + $ConsoleOutput = 'Coretsia\\Tools\\Support\\ConsoleOutput'; /** @var class-string $ErrorCodes */ - $ErrorCodes = 'Coretsia\\Tools\\Spikes\\_support\\ErrorCodes'; + $ErrorCodes = 'Coretsia\\Tools\\Support\\ErrorCodes'; $fallbackViolation = 'CORETSIA_NO_SKELETON_MODULES_DEFAULT_FORBIDDEN'; $fallbackScanFailed = 'CORETSIA_NO_SKELETON_MODULES_DEFAULT_GATE_FAILED'; diff --git a/framework/tools/gates/observability_metric_catalog_gate.php b/framework/tools/gates/observability_metric_catalog_gate.php index 093e608..60a23f2 100644 --- a/framework/tools/gates/observability_metric_catalog_gate.php +++ b/framework/tools/gates/observability_metric_catalog_gate.php @@ -42,11 +42,11 @@ }); if ($toolsRootRuntime === null) { - $fallbackConsole = __DIR__ . '/../spikes/_support/ConsoleOutput.php'; + $fallbackConsole = __DIR__ . '/../support/ConsoleOutput.php'; if (\is_file($fallbackConsole) && \is_readable($fallbackConsole)) { require_once $fallbackConsole; - \Coretsia\Tools\Spikes\_support\ConsoleOutput::codeWithDiagnostics( + \Coretsia\Tools\Support\ConsoleOutput::codeWithDiagnostics( 'CORETSIA_OBSERVABILITY_METRIC_CATALOG_GATE_FAILED', [], ); @@ -55,15 +55,15 @@ exit(1); } - $bootstrap = $toolsRootRuntime . '/spikes/_support/bootstrap.php'; - $consoleFile = $toolsRootRuntime . '/spikes/_support/ConsoleOutput.php'; - $errorCodesFile = $toolsRootRuntime . '/spikes/_support/ErrorCodes.php'; + $bootstrap = $toolsRootRuntime . '/support/bootstrap.php'; + $consoleFile = $toolsRootRuntime . '/support/ConsoleOutput.php'; + $errorCodesFile = $toolsRootRuntime . '/support/ErrorCodes.php'; /** @var class-string $ConsoleOutput */ - $ConsoleOutput = 'Coretsia\\Tools\\Spikes\\_support\\ConsoleOutput'; + $ConsoleOutput = 'Coretsia\\Tools\\Support\\ConsoleOutput'; /** @var class-string $ErrorCodes */ - $ErrorCodes = 'Coretsia\\Tools\\Spikes\\_support\\ErrorCodes'; + $ErrorCodes = 'Coretsia\\Tools\\Support\\ErrorCodes'; $fallbackViolation = 'CORETSIA_OBSERVABILITY_METRIC_CATALOG_DRIFT'; $fallbackScanFailed = 'CORETSIA_OBSERVABILITY_METRIC_CATALOG_GATE_FAILED'; diff --git a/framework/tools/gates/observability_naming_gate.php b/framework/tools/gates/observability_naming_gate.php index 2cb874e..5386de0 100644 --- a/framework/tools/gates/observability_naming_gate.php +++ b/framework/tools/gates/observability_naming_gate.php @@ -42,11 +42,11 @@ }); if ($toolsRootRuntime === null) { - $fallbackConsole = __DIR__ . '/../spikes/_support/ConsoleOutput.php'; + $fallbackConsole = __DIR__ . '/../support/ConsoleOutput.php'; if (\is_file($fallbackConsole) && \is_readable($fallbackConsole)) { require_once $fallbackConsole; - \Coretsia\Tools\Spikes\_support\ConsoleOutput::codeWithDiagnostics( + \Coretsia\Tools\Support\ConsoleOutput::codeWithDiagnostics( 'CORETSIA_OBSERVABILITY_NAMING_GATE_FAILED', [], ); @@ -55,15 +55,15 @@ exit(1); } - $bootstrap = $toolsRootRuntime . '/spikes/_support/bootstrap.php'; - $consoleFile = $toolsRootRuntime . '/spikes/_support/ConsoleOutput.php'; - $errorCodesFile = $toolsRootRuntime . '/spikes/_support/ErrorCodes.php'; + $bootstrap = $toolsRootRuntime . '/support/bootstrap.php'; + $consoleFile = $toolsRootRuntime . '/support/ConsoleOutput.php'; + $errorCodesFile = $toolsRootRuntime . '/support/ErrorCodes.php'; /** @var class-string $ConsoleOutput */ - $ConsoleOutput = 'Coretsia\\Tools\\Spikes\\_support\\ConsoleOutput'; + $ConsoleOutput = 'Coretsia\\Tools\\Support\\ConsoleOutput'; /** @var class-string $ErrorCodes */ - $ErrorCodes = 'Coretsia\\Tools\\Spikes\\_support\\ErrorCodes'; + $ErrorCodes = 'Coretsia\\Tools\\Support\\ErrorCodes'; $fallbackViolation = 'CORETSIA_OBSERVABILITY_NAMING_DRIFT'; $fallbackScanFailed = 'CORETSIA_OBSERVABILITY_NAMING_GATE_FAILED'; diff --git a/framework/tools/gates/observability_span_naming_gate.php b/framework/tools/gates/observability_span_naming_gate.php index 0d17f42..c2ed246 100644 --- a/framework/tools/gates/observability_span_naming_gate.php +++ b/framework/tools/gates/observability_span_naming_gate.php @@ -42,11 +42,11 @@ }); if ($toolsRootRuntime === null) { - $fallbackConsole = __DIR__ . '/../spikes/_support/ConsoleOutput.php'; + $fallbackConsole = __DIR__ . '/../support/ConsoleOutput.php'; if (\is_file($fallbackConsole) && \is_readable($fallbackConsole)) { require_once $fallbackConsole; - \Coretsia\Tools\Spikes\_support\ConsoleOutput::codeWithDiagnostics( + \Coretsia\Tools\Support\ConsoleOutput::codeWithDiagnostics( 'CORETSIA_OBSERVABILITY_SPAN_NAMING_GATE_FAILED', [], ); @@ -55,15 +55,15 @@ exit(1); } - $bootstrap = $toolsRootRuntime . '/spikes/_support/bootstrap.php'; - $consoleFile = $toolsRootRuntime . '/spikes/_support/ConsoleOutput.php'; - $errorCodesFile = $toolsRootRuntime . '/spikes/_support/ErrorCodes.php'; + $bootstrap = $toolsRootRuntime . '/support/bootstrap.php'; + $consoleFile = $toolsRootRuntime . '/support/ConsoleOutput.php'; + $errorCodesFile = $toolsRootRuntime . '/support/ErrorCodes.php'; /** @var class-string $ConsoleOutput */ - $ConsoleOutput = 'Coretsia\\Tools\\Spikes\\_support\\ConsoleOutput'; + $ConsoleOutput = 'Coretsia\\Tools\\Support\\ConsoleOutput'; /** @var class-string $ErrorCodes */ - $ErrorCodes = 'Coretsia\\Tools\\Spikes\\_support\\ErrorCodes'; + $ErrorCodes = 'Coretsia\\Tools\\Support\\ErrorCodes'; $fallbackViolation = 'CORETSIA_OBSERVABILITY_SPAN_NAMING_DRIFT'; $fallbackScanFailed = 'CORETSIA_OBSERVABILITY_SPAN_NAMING_GATE_FAILED'; diff --git a/framework/tools/gates/package_compliance_gate.php b/framework/tools/gates/package_compliance_gate.php index 9b79e6f..c90aaca 100644 --- a/framework/tools/gates/package_compliance_gate.php +++ b/framework/tools/gates/package_compliance_gate.php @@ -42,11 +42,11 @@ }); if ($toolsRootRuntime === null) { - $fallbackConsole = __DIR__ . '/../spikes/_support/ConsoleOutput.php'; + $fallbackConsole = __DIR__ . '/../support/ConsoleOutput.php'; if (\is_file($fallbackConsole) && \is_readable($fallbackConsole)) { require_once $fallbackConsole; - \Coretsia\Tools\Spikes\_support\ConsoleOutput::codeWithDiagnostics( + \Coretsia\Tools\Support\ConsoleOutput::codeWithDiagnostics( 'CORETSIA_PACKAGE_COMPLIANCE_GATE_FAILED', [], ); @@ -55,15 +55,15 @@ exit(1); } - $bootstrap = $toolsRootRuntime . '/spikes/_support/bootstrap.php'; - $consoleFile = $toolsRootRuntime . '/spikes/_support/ConsoleOutput.php'; - $errorCodesFile = $toolsRootRuntime . '/spikes/_support/ErrorCodes.php'; + $bootstrap = $toolsRootRuntime . '/support/bootstrap.php'; + $consoleFile = $toolsRootRuntime . '/support/ConsoleOutput.php'; + $errorCodesFile = $toolsRootRuntime . '/support/ErrorCodes.php'; /** @var class-string $ConsoleOutput */ - $ConsoleOutput = 'Coretsia\\Tools\\Spikes\\_support\\ConsoleOutput'; + $ConsoleOutput = 'Coretsia\\Tools\\Support\\ConsoleOutput'; /** @var class-string $ErrorCodes */ - $ErrorCodes = 'Coretsia\\Tools\\Spikes\\_support\\ErrorCodes'; + $ErrorCodes = 'Coretsia\\Tools\\Support\\ErrorCodes'; $fallbackViolation = 'CORETSIA_PACKAGE_COMPLIANCE_VIOLATION'; $fallbackGateFailed = 'CORETSIA_PACKAGE_COMPLIANCE_GATE_FAILED'; diff --git a/framework/tools/gates/package_phpunit_config_gate.php b/framework/tools/gates/package_phpunit_config_gate.php index 45b851a..35778be 100644 --- a/framework/tools/gates/package_phpunit_config_gate.php +++ b/framework/tools/gates/package_phpunit_config_gate.php @@ -45,15 +45,15 @@ exit(1); } - $bootstrap = $toolsRootRuntime . '/spikes/_support/bootstrap.php'; - $consoleFile = $toolsRootRuntime . '/spikes/_support/ConsoleOutput.php'; - $errorCodesFile = $toolsRootRuntime . '/spikes/_support/ErrorCodes.php'; + $bootstrap = $toolsRootRuntime . '/support/bootstrap.php'; + $consoleFile = $toolsRootRuntime . '/support/ConsoleOutput.php'; + $errorCodesFile = $toolsRootRuntime . '/support/ErrorCodes.php'; /** @var class-string $ConsoleOutput */ - $ConsoleOutput = 'Coretsia\\Tools\\Spikes\\_support\\ConsoleOutput'; + $ConsoleOutput = 'Coretsia\\Tools\\Support\\ConsoleOutput'; /** @var class-string $ErrorCodes */ - $ErrorCodes = 'Coretsia\\Tools\\Spikes\\_support\\ErrorCodes'; + $ErrorCodes = 'Coretsia\\Tools\\Support\\ErrorCodes'; $fallbackViolation = 'CORETSIA_PACKAGE_PHPUNIT_CONFIG_FORBIDDEN'; $fallbackScanFailed = 'CORETSIA_PACKAGE_PHPUNIT_CONFIG_GATE_FAILED'; diff --git a/framework/tools/gates/package_publish_safety_gate.php b/framework/tools/gates/package_publish_safety_gate.php index bf380bf..614bba5 100644 --- a/framework/tools/gates/package_publish_safety_gate.php +++ b/framework/tools/gates/package_publish_safety_gate.php @@ -42,11 +42,11 @@ }); if ($toolsRootRuntime === null) { - $fallbackConsole = __DIR__ . '/../spikes/_support/ConsoleOutput.php'; + $fallbackConsole = __DIR__ . '/../support/ConsoleOutput.php'; if (\is_file($fallbackConsole) && \is_readable($fallbackConsole)) { require_once $fallbackConsole; - \Coretsia\Tools\Spikes\_support\ConsoleOutput::codeWithDiagnostics( + \Coretsia\Tools\Support\ConsoleOutput::codeWithDiagnostics( 'CORETSIA_PACKAGE_PUBLISH_SAFETY_GATE_FAILED', [], ); @@ -55,15 +55,15 @@ exit(1); } - $bootstrap = $toolsRootRuntime . '/spikes/_support/bootstrap.php'; - $consoleFile = $toolsRootRuntime . '/spikes/_support/ConsoleOutput.php'; - $errorCodesFile = $toolsRootRuntime . '/spikes/_support/ErrorCodes.php'; + $bootstrap = $toolsRootRuntime . '/support/bootstrap.php'; + $consoleFile = $toolsRootRuntime . '/support/ConsoleOutput.php'; + $errorCodesFile = $toolsRootRuntime . '/support/ErrorCodes.php'; /** @var class-string $ConsoleOutput */ - $ConsoleOutput = 'Coretsia\\Tools\\Spikes\\_support\\ConsoleOutput'; + $ConsoleOutput = 'Coretsia\\Tools\\Support\\ConsoleOutput'; /** @var class-string $ErrorCodes */ - $ErrorCodes = 'Coretsia\\Tools\\Spikes\\_support\\ErrorCodes'; + $ErrorCodes = 'Coretsia\\Tools\\Support\\ErrorCodes'; $fallbackViolation = 'CORETSIA_PACKAGE_PUBLISH_SAFETY_VIOLATION'; $fallbackScanFailed = 'CORETSIA_PACKAGE_PUBLISH_SAFETY_GATE_FAILED'; diff --git a/framework/tools/gates/repo_text_normalization_gate.php b/framework/tools/gates/repo_text_normalization_gate.php index b501eb7..7199aaf 100644 --- a/framework/tools/gates/repo_text_normalization_gate.php +++ b/framework/tools/gates/repo_text_normalization_gate.php @@ -24,10 +24,10 @@ } $repoRootRuntime = realpath($toolsRootRuntime . '/..' . '/..'); - $bootstrap = $toolsRootRuntime . '/spikes/_support/bootstrap.php'; - $consoleOutputFile = $toolsRootRuntime . '/spikes/_support/ConsoleOutput.php'; - $errorCodesFile = $toolsRootRuntime . '/spikes/_support/ErrorCodes.php'; - $scannerFile = $toolsRootRuntime . '/spikes/_support/RepoTextNormalizationScanner.php'; + $bootstrap = $toolsRootRuntime . '/support/bootstrap.php'; + $consoleOutputFile = $toolsRootRuntime . '/support/ConsoleOutput.php'; + $errorCodesFile = $toolsRootRuntime . '/support/ErrorCodes.php'; + $scannerFile = $toolsRootRuntime . '/support/RepoTextNormalizationScanner.php'; if ($repoRootRuntime === false) { coretsia_repo_text_safe_emit_scan_failed($consoleOutputFile); @@ -73,10 +73,10 @@ try { /** @var class-string $errorCodesFqcn */ - $errorCodesFqcn = 'Coretsia\\Tools\\Spikes\\_support\\ErrorCodes'; + $errorCodesFqcn = 'Coretsia\\Tools\\Support\\ErrorCodes'; /** @var class-string $scannerFqcn */ - $scannerFqcn = 'Coretsia\\Tools\\Spikes\\_support\\RepoTextNormalizationScanner'; + $scannerFqcn = 'Coretsia\\Tools\\Support\\RepoTextNormalizationScanner'; /** @var list $diagnostics */ $diagnostics = $scannerFqcn::scan($repoRootRuntime, $scanRoot); @@ -198,8 +198,8 @@ function coretsia_repo_text_safe_emit_lines(array $lines): void return; } - /** @var class-string<\Coretsia\Tools\Spikes\_support\ConsoleOutput> $fqcn */ - $fqcn = 'Coretsia\\Tools\\Spikes\\_support\\ConsoleOutput'; + /** @var class-string<\Coretsia\Tools\Support\ConsoleOutput> $fqcn */ + $fqcn = 'Coretsia\\Tools\\Support\\ConsoleOutput'; if (!class_exists($fqcn)) { return; diff --git a/framework/tools/gates/reserved_tags_registry_gate.php b/framework/tools/gates/reserved_tags_registry_gate.php index 2ab7a80..bef7af2 100644 --- a/framework/tools/gates/reserved_tags_registry_gate.php +++ b/framework/tools/gates/reserved_tags_registry_gate.php @@ -43,11 +43,11 @@ }); if ($toolsRootRuntime === null) { - $fallbackConsole = __DIR__ . '/../spikes/_support/ConsoleOutput.php'; + $fallbackConsole = __DIR__ . '/../support/ConsoleOutput.php'; if (\is_file($fallbackConsole) && \is_readable($fallbackConsole)) { require_once $fallbackConsole; - \Coretsia\Tools\Spikes\_support\ConsoleOutput::codeWithDiagnostics( + \Coretsia\Tools\Support\ConsoleOutput::codeWithDiagnostics( 'CORETSIA_RESERVED_TAGS_REGISTRY_GATE_FAILED', [], ); @@ -56,15 +56,15 @@ exit(1); } - $bootstrap = $toolsRootRuntime . '/spikes/_support/bootstrap.php'; - $consoleFile = $toolsRootRuntime . '/spikes/_support/ConsoleOutput.php'; - $errorCodesFile = $toolsRootRuntime . '/spikes/_support/ErrorCodes.php'; + $bootstrap = $toolsRootRuntime . '/support/bootstrap.php'; + $consoleFile = $toolsRootRuntime . '/support/ConsoleOutput.php'; + $errorCodesFile = $toolsRootRuntime . '/support/ErrorCodes.php'; /** @var class-string $ConsoleOutput */ - $ConsoleOutput = 'Coretsia\\Tools\\Spikes\\_support\\ConsoleOutput'; + $ConsoleOutput = 'Coretsia\\Tools\\Support\\ConsoleOutput'; /** @var class-string $ErrorCodes */ - $ErrorCodes = 'Coretsia\\Tools\\Spikes\\_support\\ErrorCodes'; + $ErrorCodes = 'Coretsia\\Tools\\Support\\ErrorCodes'; $fallbackViolation = 'CORETSIA_RESERVED_TAGS_REGISTRY_DRIFT'; $fallbackScanFailed = 'CORETSIA_RESERVED_TAGS_REGISTRY_GATE_FAILED'; diff --git a/framework/tools/gates/secret_leakage_gate.php b/framework/tools/gates/secret_leakage_gate.php index 9d694cb..f6e4d64 100644 --- a/framework/tools/gates/secret_leakage_gate.php +++ b/framework/tools/gates/secret_leakage_gate.php @@ -46,11 +46,11 @@ $fallbackGateFailed = 'CORETSIA_SECRET_GATE_SCAN_FAILED'; if ($toolsRootRuntime === null) { - $fallbackConsole = __DIR__ . '/../spikes/_support/ConsoleOutput.php'; + $fallbackConsole = __DIR__ . '/../support/ConsoleOutput.php'; if (\is_file($fallbackConsole) && \is_readable($fallbackConsole)) { require_once $fallbackConsole; - \Coretsia\Tools\Spikes\_support\ConsoleOutput::codeWithDiagnostics( + \Coretsia\Tools\Support\ConsoleOutput::codeWithDiagnostics( $fallbackGateFailed, [], ); @@ -59,15 +59,15 @@ exit(1); } - $bootstrap = $toolsRootRuntime . '/spikes/_support/bootstrap.php'; - $consoleFile = $toolsRootRuntime . '/spikes/_support/ConsoleOutput.php'; - $errorCodesFile = $toolsRootRuntime . '/spikes/_support/ErrorCodes.php'; + $bootstrap = $toolsRootRuntime . '/support/bootstrap.php'; + $consoleFile = $toolsRootRuntime . '/support/ConsoleOutput.php'; + $errorCodesFile = $toolsRootRuntime . '/support/ErrorCodes.php'; /** @var class-string $ConsoleOutput */ - $ConsoleOutput = 'Coretsia\\Tools\\Spikes\\_support\\ConsoleOutput'; + $ConsoleOutput = 'Coretsia\\Tools\\Support\\ConsoleOutput'; /** @var class-string $ErrorCodes */ - $ErrorCodes = 'Coretsia\\Tools\\Spikes\\_support\\ErrorCodes'; + $ErrorCodes = 'Coretsia\\Tools\\Support\\ErrorCodes'; if (!\is_file($bootstrap) || !\is_readable($bootstrap)) { if (\is_file($consoleFile) && \is_readable($consoleFile)) { diff --git a/framework/tools/gates/spikes_boundary_gate.php b/framework/tools/gates/spikes_boundary_gate.php index 62a2a64..5af7dda 100644 --- a/framework/tools/gates/spikes_boundary_gate.php +++ b/framework/tools/gates/spikes_boundary_gate.php @@ -44,11 +44,11 @@ // Bootstrap discovery/loading MUST be independent from --path (scan-only). if ($toolsRootRuntime === null) { // Best-effort local include (tools-only); do not leak absolute paths. - $fallbackConsole = __DIR__ . '/../spikes/_support/ConsoleOutput.php'; + $fallbackConsole = __DIR__ . '/../support/ConsoleOutput.php'; if (\is_file($fallbackConsole) && \is_readable($fallbackConsole)) { require_once $fallbackConsole; - \Coretsia\Tools\Spikes\_support\ConsoleOutput::codeWithDiagnostics( + \Coretsia\Tools\Support\ConsoleOutput::codeWithDiagnostics( 'CORETSIA_SPIKES_BOUNDARY_SCAN_FAILED', [], ); @@ -85,15 +85,15 @@ break; } - $bootstrap = $toolsRootRuntime . '/spikes/_support/bootstrap.php'; + $bootstrap = $toolsRootRuntime . '/support/bootstrap.php'; // If bootstrap missing/unreadable: MUST print SCAN_FAILED using ConsoleOutput (tools-only include), exit 1. if (!\is_file($bootstrap) || !\is_readable($bootstrap)) { - $consolePath = $toolsRootRuntime . '/spikes/_support/ConsoleOutput.php'; + $consolePath = $toolsRootRuntime . '/support/ConsoleOutput.php'; if (\is_file($consolePath) && \is_readable($consolePath)) { require_once $consolePath; - \Coretsia\Tools\Spikes\_support\ConsoleOutput::codeWithDiagnostics( + \Coretsia\Tools\Support\ConsoleOutput::codeWithDiagnostics( 'CORETSIA_SPIKES_BOUNDARY_SCAN_FAILED', [], ); @@ -105,8 +105,8 @@ // NOTE (cemented): if bootstrap exists but terminates (e.g. autoload missing), its output is authoritative. require_once $bootstrap; - $consolePath = $toolsRootRuntime . '/spikes/_support/ConsoleOutput.php'; - $errorCodesPath = $toolsRootRuntime . '/spikes/_support/ErrorCodes.php'; + $consolePath = $toolsRootRuntime . '/support/ConsoleOutput.php'; + $errorCodesPath = $toolsRootRuntime . '/support/ErrorCodes.php'; if ( !\is_file($consolePath) @@ -117,7 +117,7 @@ if (\is_file($consolePath) && \is_readable($consolePath)) { require_once $consolePath; - \Coretsia\Tools\Spikes\_support\ConsoleOutput::codeWithDiagnostics( + \Coretsia\Tools\Support\ConsoleOutput::codeWithDiagnostics( 'CORETSIA_SPIKES_BOUNDARY_SCAN_FAILED', [], ); @@ -129,8 +129,8 @@ require_once $consolePath; require_once $errorCodesPath; - $ConsoleOutput = \Coretsia\Tools\Spikes\_support\ConsoleOutput::class; - $ErrorCodes = \Coretsia\Tools\Spikes\_support\ErrorCodes::class; + $ConsoleOutput = \Coretsia\Tools\Support\ConsoleOutput::class; + $ErrorCodes = \Coretsia\Tools\Support\ErrorCodes::class; /** * Forbidden namespace roots (cemented). diff --git a/framework/tools/gates/spikes_canonical_paths_gate.php b/framework/tools/gates/spikes_canonical_paths_gate.php index 0589045..c5caaf2 100644 --- a/framework/tools/gates/spikes_canonical_paths_gate.php +++ b/framework/tools/gates/spikes_canonical_paths_gate.php @@ -46,15 +46,15 @@ exit(1); } - $bootstrap = $toolsRootRuntime . '/spikes/_support/bootstrap.php'; - $consoleFile = $toolsRootRuntime . '/spikes/_support/ConsoleOutput.php'; - $errorCodesFile = $toolsRootRuntime . '/spikes/_support/ErrorCodes.php'; + $bootstrap = $toolsRootRuntime . '/support/bootstrap.php'; + $consoleFile = $toolsRootRuntime . '/support/ConsoleOutput.php'; + $errorCodesFile = $toolsRootRuntime . '/support/ErrorCodes.php'; /** @var class-string $ConsoleOutput */ - $ConsoleOutput = 'Coretsia\\Tools\\Spikes\\_support\\ConsoleOutput'; + $ConsoleOutput = 'Coretsia\\Tools\\Support\\ConsoleOutput'; /** @var class-string $ErrorCodes */ - $ErrorCodes = 'Coretsia\\Tools\\Spikes\\_support\\ErrorCodes'; + $ErrorCodes = 'Coretsia\\Tools\\Support\\ErrorCodes'; $fallbackScanFailed = 'CORETSIA_SPIKES_CANONICAL_PATHS_GATE_SCAN_FAILED'; $fallbackViolation = 'CORETSIA_SPIKES_CANONICAL_PATHS_VIOLATION'; diff --git a/framework/tools/gates/spikes_io_policy_gate.php b/framework/tools/gates/spikes_io_policy_gate.php index ce37409..3beefc0 100644 --- a/framework/tools/gates/spikes_io_policy_gate.php +++ b/framework/tools/gates/spikes_io_policy_gate.php @@ -46,15 +46,15 @@ exit(1); } - $bootstrap = $toolsRootRuntime . '/spikes/_support/bootstrap.php'; - $consoleFile = $toolsRootRuntime . '/spikes/_support/ConsoleOutput.php'; - $errorCodesFile = $toolsRootRuntime . '/spikes/_support/ErrorCodes.php'; + $bootstrap = $toolsRootRuntime . '/support/bootstrap.php'; + $consoleFile = $toolsRootRuntime . '/support/ConsoleOutput.php'; + $errorCodesFile = $toolsRootRuntime . '/support/ErrorCodes.php'; /** @var class-string $ConsoleOutput */ - $ConsoleOutput = 'Coretsia\\Tools\\Spikes\\_support\\ConsoleOutput'; + $ConsoleOutput = 'Coretsia\\Tools\\Support\\ConsoleOutput'; /** @var class-string $ErrorCodes */ - $ErrorCodes = 'Coretsia\\Tools\\Spikes\\_support\\ErrorCodes'; + $ErrorCodes = 'Coretsia\\Tools\\Support\\ErrorCodes'; // Bootstrap MUST be loaded before scanning. // If bootstrap is missing/unreadable -> must use local ConsoleOutput include, print SCAN_FAILED and exit 1. diff --git a/framework/tools/gates/spikes_output_gate.php b/framework/tools/gates/spikes_output_gate.php index 214dff0..d1ee78c 100644 --- a/framework/tools/gates/spikes_output_gate.php +++ b/framework/tools/gates/spikes_output_gate.php @@ -23,9 +23,9 @@ exit(1); } - $bootstrap = $toolsRootRuntime . '/spikes/_support/bootstrap.php'; - $consoleOutputFile = $toolsRootRuntime . '/spikes/_support/ConsoleOutput.php'; - $errorCodesFile = $toolsRootRuntime . '/spikes/_support/ErrorCodes.php'; + $bootstrap = $toolsRootRuntime . '/support/bootstrap.php'; + $consoleOutputFile = $toolsRootRuntime . '/support/ConsoleOutput.php'; + $errorCodesFile = $toolsRootRuntime . '/support/ErrorCodes.php'; $scanRoot = $toolsRootRuntime; $override = coretsia_spikes_output_gate_parse_scan_root_override($argv); @@ -62,7 +62,7 @@ require_once $errorCodesFile; /** @var class-string $errorCodesFqcn */ - $errorCodesFqcn = 'Coretsia\\Tools\\Spikes\\_support\\ErrorCodes'; + $errorCodesFqcn = 'Coretsia\\Tools\\Support\\ErrorCodes'; try { $scanRootNorm = rtrim(str_replace('\\', '/', $scanRoot), '/'); @@ -81,7 +81,7 @@ } } - $allowlistedRel = 'spikes/_support/ConsoleOutput.php'; + $allowlistedRel = 'support/ConsoleOutput.php'; $directSinks = coretsia_spikes_output_gate_build_direct_output_sinks(); $bypassFiles = []; @@ -163,7 +163,7 @@ function coretsia_spikes_output_gate_safe_emit_scan_failed(string $consoleOutput if (is_file($errorCodesFile) && is_readable($errorCodesFile)) { require_once $errorCodesFile; - $errorCodesFqcn = 'Coretsia\\Tools\\Spikes\\_support\\ErrorCodes'; + $errorCodesFqcn = 'Coretsia\\Tools\\Support\\ErrorCodes'; $constantName = $errorCodesFqcn . '::CORETSIA_SPIKES_OUTPUT_GATE_SCAN_FAILED'; if (defined($constantName)) { @@ -572,8 +572,8 @@ function coretsia_spikes_output_gate_safe_emit_lines(array $lines): void return; } - /** @var class-string<\Coretsia\Tools\Spikes\_support\ConsoleOutput> $fqcn */ - $fqcn = 'Coretsia\\Tools\\Spikes\\_support\\ConsoleOutput'; + /** @var class-string<\Coretsia\Tools\Support\ConsoleOutput> $fqcn */ + $fqcn = 'Coretsia\\Tools\\Support\\ConsoleOutput'; if (!class_exists($fqcn)) { return; diff --git a/framework/tools/gates/tools_invalid_argument_exception_gate.php b/framework/tools/gates/tools_invalid_argument_exception_gate.php index bec2a78..ec5985d 100644 --- a/framework/tools/gates/tools_invalid_argument_exception_gate.php +++ b/framework/tools/gates/tools_invalid_argument_exception_gate.php @@ -46,15 +46,15 @@ exit(1); } - $bootstrap = $toolsRootRuntime . '/spikes/_support/bootstrap.php'; - $consoleFile = $toolsRootRuntime . '/spikes/_support/ConsoleOutput.php'; - $errorCodesFile = $toolsRootRuntime . '/spikes/_support/ErrorCodes.php'; + $bootstrap = $toolsRootRuntime . '/support/bootstrap.php'; + $consoleFile = $toolsRootRuntime . '/support/ConsoleOutput.php'; + $errorCodesFile = $toolsRootRuntime . '/support/ErrorCodes.php'; /** @var class-string $ConsoleOutput */ - $ConsoleOutput = 'Coretsia\\Tools\\Spikes\\_support\\ConsoleOutput'; + $ConsoleOutput = 'Coretsia\\Tools\\Support\\ConsoleOutput'; /** @var class-string $ErrorCodes */ - $ErrorCodes = 'Coretsia\\Tools\\Spikes\\_support\\ErrorCodes'; + $ErrorCodes = 'Coretsia\\Tools\\Support\\ErrorCodes'; // Bootstrap MUST be loaded before scanning. // If bootstrap is missing/unreadable -> must use local ConsoleOutput include, print SCAN_FAILED and exit 1. @@ -112,7 +112,7 @@ // Allowlist: ONLY these files may throw InvalidArgumentException directly. $allowlisted = [ 'build/sync_composer_repositories.php' => true, - 'spikes/_support/DeterministicException.php' => true, + 'support/DeterministicException.php' => true, ]; try { diff --git a/framework/tools/phpstan/phpstan.neon b/framework/tools/phpstan/phpstan.neon index eeda4ae..18ec762 100644 --- a/framework/tools/phpstan/phpstan.neon +++ b/framework/tools/phpstan/phpstan.neon @@ -21,7 +21,7 @@ parameters: - ../../tools/testing bootstrapFiles: - - ../spikes/_support/bootstrap.php + - ../support/bootstrap.php tmpDir: ../../var/phpstan diff --git a/framework/tools/release/sync_package_public_constraints.php b/framework/tools/release/sync_package_public_constraints.php index c8f0658..692fa2b 100644 --- a/framework/tools/release/sync_package_public_constraints.php +++ b/framework/tools/release/sync_package_public_constraints.php @@ -17,10 +17,10 @@ * See LICENSE and NOTICE in the project root for full license information. */ -require_once __DIR__ . '/../spikes/_support/ConsoleOutput.php'; -require_once __DIR__ . '/../spikes/_support/ErrorCodes.php'; -require_once __DIR__ . '/../spikes/_support/DeterministicException.php'; -require_once __DIR__ . '/../spikes/_support/DeterministicFile.php'; +require_once __DIR__ . '/../support/ConsoleOutput.php'; +require_once __DIR__ . '/../support/ErrorCodes.php'; +require_once __DIR__ . '/../support/DeterministicException.php'; +require_once __DIR__ . '/../support/DeterministicFile.php'; final class SyncPackagePublicConstraints { @@ -56,7 +56,7 @@ public static function main(array $argv): int if ($check) { if ($changedFiles !== []) { - \Coretsia\Tools\Spikes\_support\ConsoleOutput::codeWithDiagnostics( + \Coretsia\Tools\Support\ConsoleOutput::codeWithDiagnostics( self::CODE_OUT_OF_SYNC, $changedFiles, ); @@ -67,8 +67,8 @@ public static function main(array $argv): int return 0; } - \Coretsia\Tools\Spikes\_support\ConsoleOutput::line('OK', false); - \Coretsia\Tools\Spikes\_support\ConsoleOutput::lines($changedFiles, false); + \Coretsia\Tools\Support\ConsoleOutput::line('OK', false); + \Coretsia\Tools\Support\ConsoleOutput::lines($changedFiles, false); return 0; } @@ -283,7 +283,7 @@ private static function syncPackageComposer( if ($apply) { self::writeBackupIfNeeded($composerJsonPath, $originalBytes, $repoRoot); - \Coretsia\Tools\Spikes\_support\DeterministicFile::writeTextLf($composerJsonPath, $newJson); + \Coretsia\Tools\Support\DeterministicFile::writeTextLf($composerJsonPath, $newJson); } return true; @@ -355,7 +355,7 @@ private static function writeBackupIfNeeded(string $composerJsonPath, string $or } } - \Coretsia\Tools\Spikes\_support\DeterministicFile::writeBytesExact($dst, $originalBytes); + \Coretsia\Tools\Support\DeterministicFile::writeBytesExact($dst, $originalBytes); } /** @@ -675,6 +675,6 @@ private static function repoRootUnsafe(): string exit(SyncPackagePublicConstraints::main($argv)); } catch (Throwable $e) { $msg = str_replace(["\r\n", "\r"], "\n", $e->getMessage()); - \Coretsia\Tools\Spikes\_support\ConsoleOutput::line(SyncPackagePublicConstraints::CODE_FAILED . ": {$msg}"); + \Coretsia\Tools\Support\ConsoleOutput::line(SyncPackagePublicConstraints::CODE_FAILED . ": {$msg}"); exit(1); } diff --git a/framework/tools/release/sync_workspace_release_line.php b/framework/tools/release/sync_workspace_release_line.php index 7e3c1a8..ff65a4d 100644 --- a/framework/tools/release/sync_workspace_release_line.php +++ b/framework/tools/release/sync_workspace_release_line.php @@ -17,10 +17,10 @@ * See LICENSE and NOTICE in the project root for full license information. */ -require_once __DIR__ . '/../spikes/_support/ConsoleOutput.php'; -require_once __DIR__ . '/../spikes/_support/ErrorCodes.php'; -require_once __DIR__ . '/../spikes/_support/DeterministicException.php'; -require_once __DIR__ . '/../spikes/_support/DeterministicFile.php'; +require_once __DIR__ . '/../support/ConsoleOutput.php'; +require_once __DIR__ . '/../support/ErrorCodes.php'; +require_once __DIR__ . '/../support/DeterministicException.php'; +require_once __DIR__ . '/../support/DeterministicFile.php'; final class SyncWorkspaceReleaseLine { @@ -49,7 +49,7 @@ public static function main(array $argv): int if ($check) { if ($changed) { - \Coretsia\Tools\Spikes\_support\ConsoleOutput::codeWithDiagnostics( + \Coretsia\Tools\Support\ConsoleOutput::codeWithDiagnostics( self::CODE_OUT_OF_SYNC, [self::rel($repoRoot, $frameworkComposerPath)], ); @@ -59,10 +59,10 @@ public static function main(array $argv): int return 0; } - \Coretsia\Tools\Spikes\_support\ConsoleOutput::line('OK', false); + \Coretsia\Tools\Support\ConsoleOutput::line('OK', false); if ($changed) { - \Coretsia\Tools\Spikes\_support\ConsoleOutput::line(self::rel($repoRoot, $frameworkComposerPath), false); + \Coretsia\Tools\Support\ConsoleOutput::line(self::rel($repoRoot, $frameworkComposerPath), false); } return 0; @@ -277,7 +277,7 @@ private static function syncFrameworkComposerRequireDev( if ($changed && $apply) { self::writeBackupIfNeeded($frameworkComposerPath, $originalBytes, $repoRoot); - \Coretsia\Tools\Spikes\_support\DeterministicFile::writeTextLf($frameworkComposerPath, $newJson); + \Coretsia\Tools\Support\DeterministicFile::writeTextLf($frameworkComposerPath, $newJson); } return $changed; @@ -348,7 +348,7 @@ private static function writeBackupIfNeeded(string $composerJsonPath, string $or } } - \Coretsia\Tools\Spikes\_support\DeterministicFile::writeBytesExact($dst, $originalBytes); + \Coretsia\Tools\Support\DeterministicFile::writeBytesExact($dst, $originalBytes); } /** @@ -668,6 +668,6 @@ private static function repoRootUnsafe(): string exit(SyncWorkspaceReleaseLine::main($argv)); } catch (Throwable $e) { $msg = str_replace(["\r\n", "\r"], "\n", $e->getMessage()); - \Coretsia\Tools\Spikes\_support\ConsoleOutput::line(SyncWorkspaceReleaseLine::CODE_FAILED . ": {$msg}"); + \Coretsia\Tools\Support\ConsoleOutput::line(SyncWorkspaceReleaseLine::CODE_FAILED . ": {$msg}"); exit(1); } diff --git a/framework/tools/spikes/README.md b/framework/tools/spikes/README.md index 9ff0dab..c43e64c 100644 --- a/framework/tools/spikes/README.md +++ b/framework/tools/spikes/README.md @@ -82,7 +82,7 @@ Tooling **MUST NOT** duplicate these primitives anywhere under `framework/tools/ - Spike business logic **MUST** be output-free (no direct stdout/stderr writes). - The only allowlisted writer for Phase 0 rails is: - - `framework/tools/spikes/_support/ConsoleOutput.php` + - `framework/tools/support/ConsoleOutput.php` Reserved usage (single-choice): @@ -177,7 +177,7 @@ The spikes PHPUnit config is **dedicated** and MUST remain repo-write-free: ## Bootstrap rules (tools rails bootstrap) -`framework/tools/spikes/_support/bootstrap.php` is the canonical bootstrap for: +`framework/tools/support/bootstrap.php` is the canonical bootstrap for: - spikes test suite - gates (they `require_once` bootstrap before scanning) @@ -189,7 +189,7 @@ Autoload probing is **ordered fallback** (single-choice): No other probing is allowed. If autoload is missing, bootstrap fails deterministically: -- line 1: `CORETSIA_SPIKES_BOOTSTRAP_AUTOLOAD_MISSING` +- line 1: `CORETSIA_TOOLS_BOOTSTRAP_AUTOLOAD_MISSING` - line 2: `autoload-missing` - exit code: `1` @@ -245,14 +245,14 @@ The Windows job must run in an environment that allows symlink creation. ## Error codes (deterministic, shared) Phase 0 rails use deterministic string error codes (stable identifiers). -They are owned by `framework/tools/spikes/_support/ErrorCodes.php`. +They are owned by `framework/tools/support/ErrorCodes.php`. Key codes (initial registry for 0.20.0): - `CORETSIA_DETERMINISM_GIT_REQUIRED` - `CORETSIA_DETERMINISM_WORKTREE_DIRTY` - `CORETSIA_DETERMINISM_RERUN_FAILED` -- `CORETSIA_SPIKES_BOOTSTRAP_AUTOLOAD_MISSING` +- `CORETSIA_TOOLS_BOOTSTRAP_AUTOLOAD_MISSING` - `CORETSIA_SPIKES_FIXTURE_PATH_INVALID` - `CORETSIA_SPIKES_OUTPUT_BYPASS_DETECTED` - `CORETSIA_SPIKES_OUTPUT_GATE_SCAN_FAILED` @@ -319,7 +319,7 @@ fwrite(STDOUT, "x"); // forbidden (stdout/stderr sink) declare(strict_types=1); -use Coretsia\Tools\Spikes\_support\ConsoleOutput; +use Coretsia\Tools\Support\ConsoleOutput; // allowed ONLY in rails (gates/runner/bootstrap diagnostics) ConsoleOutput::line('SOME_DETERMINISTIC_CODE'); diff --git a/framework/tools/spikes/_support/DeterminismRunner.php b/framework/tools/spikes/_support/DeterminismRunner.php index a6ee76a..5a5aab5 100644 --- a/framework/tools/spikes/_support/DeterminismRunner.php +++ b/framework/tools/spikes/_support/DeterminismRunner.php @@ -18,6 +18,9 @@ namespace Coretsia\Tools\Spikes\_support; +use Coretsia\Tools\Support\ConsoleOutput; +use Coretsia\Tools\Support\ErrorCodes; + /** * DeterminismRunner (Phase 0 rails): * - Runs `composer spike:test` twice (rerun-no-diff policy). @@ -94,8 +97,8 @@ public static function setProcessRunner(?ProcessRunnerInterface $runner): void public static function main(): int { // Local tools-only includes (CWD-independent). - require_once __DIR__ . '/ConsoleOutput.php'; - require_once __DIR__ . '/ErrorCodes.php'; + require_once __DIR__ . '/../../support/ConsoleOutput.php'; + require_once __DIR__ . '/../../support/ErrorCodes.php'; require_once __DIR__ . '/RunnerFailure.php'; require_once __DIR__ . '/ProcessResult.php'; require_once __DIR__ . '/ProcessRunnerInterface.php'; diff --git a/framework/tools/spikes/_support/FixtureRoot.php b/framework/tools/spikes/_support/FixtureRoot.php index bc86e9c..0cdf38a 100644 --- a/framework/tools/spikes/_support/FixtureRoot.php +++ b/framework/tools/spikes/_support/FixtureRoot.php @@ -18,6 +18,9 @@ namespace Coretsia\Tools\Spikes\_support; +use Coretsia\Tools\Support\DeterministicException; +use Coretsia\Tools\Support\ErrorCodes; + final class FixtureRoot { private const string INVALID_MESSAGE = 'fixture-path-invalid'; diff --git a/framework/tools/spikes/_support/bootstrap.php b/framework/tools/spikes/_support/bootstrap.php index 6615357..5f3cbff 100644 --- a/framework/tools/spikes/_support/bootstrap.php +++ b/framework/tools/spikes/_support/bootstrap.php @@ -57,12 +57,12 @@ } // Deterministic failure: do not leak absolute paths. - $consolePath = $bootstrapDir . '/ConsoleOutput.php'; + $consolePath = $bootstrapDir . '/../../support/ConsoleOutput.php'; if (\is_file($consolePath) && \is_readable($consolePath)) { require_once $consolePath; - \Coretsia\Tools\Spikes\_support\ConsoleOutput::line('CORETSIA_SPIKES_BOOTSTRAP_AUTOLOAD_MISSING'); - \Coretsia\Tools\Spikes\_support\ConsoleOutput::line('autoload-missing'); + \Coretsia\Tools\Support\ConsoleOutput::line('CORETSIA_TOOLS_BOOTSTRAP_AUTOLOAD_MISSING'); + \Coretsia\Tools\Support\ConsoleOutput::line('autoload-missing'); } exit(1); diff --git a/framework/tools/spikes/config_merge/ConfigDebugWorkflow.php b/framework/tools/spikes/config_merge/ConfigDebugWorkflow.php index 587e5b1..abfaa79 100644 --- a/framework/tools/spikes/config_merge/ConfigDebugWorkflow.php +++ b/framework/tools/spikes/config_merge/ConfigDebugWorkflow.php @@ -18,8 +18,8 @@ namespace Coretsia\Tools\Spikes\config_merge; -use Coretsia\Tools\Spikes\_support\DeterministicException; -use Coretsia\Tools\Spikes\_support\ErrorCodes; +use Coretsia\Tools\Support\DeterministicException; +use Coretsia\Tools\Support\ErrorCodes; /** * Tools-only workflow for: diff --git a/framework/tools/spikes/config_merge/ConfigExplainer.php b/framework/tools/spikes/config_merge/ConfigExplainer.php index 4c095ff..5071637 100644 --- a/framework/tools/spikes/config_merge/ConfigExplainer.php +++ b/framework/tools/spikes/config_merge/ConfigExplainer.php @@ -18,8 +18,8 @@ namespace Coretsia\Tools\Spikes\config_merge; -use Coretsia\Tools\Spikes\_support\DeterministicException; -use Coretsia\Tools\Spikes\_support\ErrorCodes; +use Coretsia\Tools\Support\DeterministicException; +use Coretsia\Tools\Support\ErrorCodes; /** * Deterministic + safe explain trace builder. diff --git a/framework/tools/spikes/config_merge/ConfigMerger.php b/framework/tools/spikes/config_merge/ConfigMerger.php index f506652..4952d6e 100644 --- a/framework/tools/spikes/config_merge/ConfigMerger.php +++ b/framework/tools/spikes/config_merge/ConfigMerger.php @@ -18,8 +18,8 @@ namespace Coretsia\Tools\Spikes\config_merge; -use Coretsia\Tools\Spikes\_support\DeterministicException; -use Coretsia\Tools\Spikes\_support\ErrorCodes; +use Coretsia\Tools\Support\DeterministicException; +use Coretsia\Tools\Support\ErrorCodes; /** * Deterministic config merge runner (spike). diff --git a/framework/tools/spikes/config_merge/DirectiveProcessor.php b/framework/tools/spikes/config_merge/DirectiveProcessor.php index 0d73205..6fddf98 100644 --- a/framework/tools/spikes/config_merge/DirectiveProcessor.php +++ b/framework/tools/spikes/config_merge/DirectiveProcessor.php @@ -18,8 +18,8 @@ namespace Coretsia\Tools\Spikes\config_merge; -use Coretsia\Tools\Spikes\_support\DeterministicException; -use Coretsia\Tools\Spikes\_support\ErrorCodes; +use Coretsia\Tools\Support\DeterministicException; +use Coretsia\Tools\Support\ErrorCodes; /** * Directives processor (spike). diff --git a/framework/tools/spikes/config_merge/tests/DirectivesTypingRulesTest.php b/framework/tools/spikes/config_merge/tests/DirectivesTypingRulesTest.php index 07a4c77..5d7277c 100644 --- a/framework/tools/spikes/config_merge/tests/DirectivesTypingRulesTest.php +++ b/framework/tools/spikes/config_merge/tests/DirectivesTypingRulesTest.php @@ -18,8 +18,8 @@ namespace Coretsia\Tools\Spikes\config_merge\tests; -use Coretsia\Tools\Spikes\_support\ErrorCodes; use Coretsia\Tools\Spikes\config_merge\DirectiveProcessor; +use Coretsia\Tools\Support\ErrorCodes; use PHPUnit\Framework\TestCase; final class DirectivesTypingRulesTest extends TestCase diff --git a/framework/tools/spikes/deptrac/DeptracGenerate.php b/framework/tools/spikes/deptrac/DeptracGenerate.php index 2a2bd6b..a552890 100644 --- a/framework/tools/spikes/deptrac/DeptracGenerate.php +++ b/framework/tools/spikes/deptrac/DeptracGenerate.php @@ -18,10 +18,10 @@ namespace Coretsia\Tools\Spikes\deptrac; -use Coretsia\Tools\Spikes\_support\DeterministicException; -use Coretsia\Tools\Spikes\_support\DeterministicFile; -use Coretsia\Tools\Spikes\_support\ErrorCodes; use Coretsia\Tools\Spikes\_support\FixtureRoot; +use Coretsia\Tools\Support\DeterministicException; +use Coretsia\Tools\Support\DeterministicFile; +use Coretsia\Tools\Support\ErrorCodes; /** * DeptracGenerate (Epic 0.80.0) [SPIKE]: @@ -62,8 +62,8 @@ public static function generateToFile(?string $fixtureRelativePath, string $outp throw $e; } catch (\Throwable $e) { throw new DeterministicException( - ErrorCodes::CORETSIA_SPIKES_IO_WRITE_FAILED, - ErrorCodes::CORETSIA_SPIKES_IO_WRITE_FAILED, + ErrorCodes::CORETSIA_TOOLS_IO_WRITE_FAILED, + ErrorCodes::CORETSIA_TOOLS_IO_WRITE_FAILED, $e, ); } diff --git a/framework/tools/spikes/deptrac/DeptracGraphWorkflow.php b/framework/tools/spikes/deptrac/DeptracGraphWorkflow.php index 9957cd2..c4cd605 100644 --- a/framework/tools/spikes/deptrac/DeptracGraphWorkflow.php +++ b/framework/tools/spikes/deptrac/DeptracGraphWorkflow.php @@ -18,8 +18,8 @@ namespace Coretsia\Tools\Spikes\deptrac; -use Coretsia\Tools\Spikes\_support\DeterministicException; -use Coretsia\Tools\Spikes\_support\ErrorCodes; +use Coretsia\Tools\Support\DeterministicException; +use Coretsia\Tools\Support\ErrorCodes; /** * Tools-only workflow for deptrac graph artifact generation. @@ -210,7 +210,7 @@ static function () use (&$hadPhpError): bool { \restore_error_handler(); throw new DeterministicException( - ErrorCodes::CORETSIA_SPIKES_IO_WRITE_FAILED, + ErrorCodes::CORETSIA_TOOLS_IO_WRITE_FAILED, 'output-dir-create-failed', $e, ); @@ -220,7 +220,7 @@ static function () use (&$hadPhpError): bool { if ($hadPhpError || ($ok !== true && !\is_dir($outputDirAbs))) { throw new DeterministicException( - ErrorCodes::CORETSIA_SPIKES_IO_WRITE_FAILED, + ErrorCodes::CORETSIA_TOOLS_IO_WRITE_FAILED, 'output-dir-create-failed', ); } diff --git a/framework/tools/spikes/deptrac/GraphArtifactBuilder.php b/framework/tools/spikes/deptrac/GraphArtifactBuilder.php index 9324e68..fba2062 100644 --- a/framework/tools/spikes/deptrac/GraphArtifactBuilder.php +++ b/framework/tools/spikes/deptrac/GraphArtifactBuilder.php @@ -18,10 +18,10 @@ namespace Coretsia\Tools\Spikes\deptrac; -use Coretsia\Tools\Spikes\_support\DeterministicException; -use Coretsia\Tools\Spikes\_support\DeterministicFile; -use Coretsia\Tools\Spikes\_support\ErrorCodes; use Coretsia\Tools\Spikes\_support\FixtureRoot; +use Coretsia\Tools\Support\DeterministicException; +use Coretsia\Tools\Support\DeterministicFile; +use Coretsia\Tools\Support\ErrorCodes; /** * GraphArtifactBuilder (Epic 0.80.0) [SPIKE]: diff --git a/framework/tools/spikes/deptrac/tests/DeptracAllowlistPolicyTest.php b/framework/tools/spikes/deptrac/tests/DeptracAllowlistPolicyTest.php index f13290f..4994667 100644 --- a/framework/tools/spikes/deptrac/tests/DeptracAllowlistPolicyTest.php +++ b/framework/tools/spikes/deptrac/tests/DeptracAllowlistPolicyTest.php @@ -18,9 +18,9 @@ namespace Coretsia\Tools\Spikes\deptrac\tests; -use Coretsia\Tools\Spikes\_support\DeterministicException; -use Coretsia\Tools\Spikes\_support\ErrorCodes; use Coretsia\Tools\Spikes\deptrac\DeptracGenerate; +use Coretsia\Tools\Support\DeterministicException; +use Coretsia\Tools\Support\ErrorCodes; use PHPUnit\Framework\TestCase; final class DeptracAllowlistPolicyTest extends TestCase diff --git a/framework/tools/spikes/deptrac/tests/DeptracDetectsCycleTest.php b/framework/tools/spikes/deptrac/tests/DeptracDetectsCycleTest.php index 3c4259e..b4f631d 100644 --- a/framework/tools/spikes/deptrac/tests/DeptracDetectsCycleTest.php +++ b/framework/tools/spikes/deptrac/tests/DeptracDetectsCycleTest.php @@ -18,9 +18,9 @@ namespace Coretsia\Tools\Spikes\deptrac\tests; -use Coretsia\Tools\Spikes\_support\DeterministicException; -use Coretsia\Tools\Spikes\_support\ErrorCodes; use Coretsia\Tools\Spikes\deptrac\DeptracGenerate; +use Coretsia\Tools\Support\DeterministicException; +use Coretsia\Tools\Support\ErrorCodes; use PHPUnit\Framework\TestCase; final class DeptracDetectsCycleTest extends TestCase diff --git a/framework/tools/spikes/deptrac/tests/DeptracYamlRejectsAbsoluteIdentifiersTest.php b/framework/tools/spikes/deptrac/tests/DeptracYamlRejectsAbsoluteIdentifiersTest.php index 069dcb3..2e0fb89 100644 --- a/framework/tools/spikes/deptrac/tests/DeptracYamlRejectsAbsoluteIdentifiersTest.php +++ b/framework/tools/spikes/deptrac/tests/DeptracYamlRejectsAbsoluteIdentifiersTest.php @@ -18,9 +18,9 @@ namespace Coretsia\Tools\Spikes\deptrac\tests; -use Coretsia\Tools\Spikes\_support\DeterministicException; -use Coretsia\Tools\Spikes\_support\ErrorCodes; use Coretsia\Tools\Spikes\deptrac\DeptracGenerate; +use Coretsia\Tools\Support\DeterministicException; +use Coretsia\Tools\Support\ErrorCodes; use PHPUnit\Framework\TestCase; final class DeptracYamlRejectsAbsoluteIdentifiersTest extends TestCase diff --git a/framework/tools/spikes/deptrac/tests/GraphArtifactBuilderDoesNotInvokeExternalProcessFunctionsTest.php b/framework/tools/spikes/deptrac/tests/GraphArtifactBuilderDoesNotInvokeExternalProcessFunctionsTest.php index 5592024..967fc3f 100644 --- a/framework/tools/spikes/deptrac/tests/GraphArtifactBuilderDoesNotInvokeExternalProcessFunctionsTest.php +++ b/framework/tools/spikes/deptrac/tests/GraphArtifactBuilderDoesNotInvokeExternalProcessFunctionsTest.php @@ -18,7 +18,7 @@ namespace Coretsia\Tools\Spikes\deptrac\tests; -use Coretsia\Tools\Spikes\_support\DeterministicFile; +use Coretsia\Tools\Support\DeterministicFile; use PHPUnit\Framework\TestCase; final class GraphArtifactBuilderDoesNotInvokeExternalProcessFunctionsTest extends TestCase diff --git a/framework/tools/spikes/deptrac/tests/GraphArtifactsContainNoAbsolutePathsTest.php b/framework/tools/spikes/deptrac/tests/GraphArtifactsContainNoAbsolutePathsTest.php index c0cdf2d..873a425 100644 --- a/framework/tools/spikes/deptrac/tests/GraphArtifactsContainNoAbsolutePathsTest.php +++ b/framework/tools/spikes/deptrac/tests/GraphArtifactsContainNoAbsolutePathsTest.php @@ -18,10 +18,10 @@ namespace Coretsia\Tools\Spikes\deptrac\tests; -use Coretsia\Tools\Spikes\_support\DeterministicException; -use Coretsia\Tools\Spikes\_support\DeterministicFile; -use Coretsia\Tools\Spikes\_support\ErrorCodes; use Coretsia\Tools\Spikes\deptrac\GraphArtifactBuilder; +use Coretsia\Tools\Support\DeterministicException; +use Coretsia\Tools\Support\DeterministicFile; +use Coretsia\Tools\Support\ErrorCodes; use PHPUnit\Framework\TestCase; final class GraphArtifactsContainNoAbsolutePathsTest extends TestCase diff --git a/framework/tools/spikes/deptrac/tests/RerunGeneratorNoDiffTest.php b/framework/tools/spikes/deptrac/tests/RerunGeneratorNoDiffTest.php index 74677a7..57eba9a 100644 --- a/framework/tools/spikes/deptrac/tests/RerunGeneratorNoDiffTest.php +++ b/framework/tools/spikes/deptrac/tests/RerunGeneratorNoDiffTest.php @@ -18,8 +18,8 @@ namespace Coretsia\Tools\Spikes\deptrac\tests; -use Coretsia\Tools\Spikes\_support\DeterministicFile; use Coretsia\Tools\Spikes\deptrac\DeptracGenerate; +use Coretsia\Tools\Support\DeterministicFile; use PHPUnit\Framework\TestCase; final class RerunGeneratorNoDiffTest extends TestCase diff --git a/framework/tools/spikes/fingerprint/DeterministicFileLister.php b/framework/tools/spikes/fingerprint/DeterministicFileLister.php index f5e080d..44cdcd3 100644 --- a/framework/tools/spikes/fingerprint/DeterministicFileLister.php +++ b/framework/tools/spikes/fingerprint/DeterministicFileLister.php @@ -19,8 +19,8 @@ namespace Coretsia\Tools\Spikes\fingerprint; use Coretsia\Devtools\InternalToolkit\Path; -use Coretsia\Tools\Spikes\_support\DeterministicException; -use Coretsia\Tools\Spikes\_support\ErrorCodes; +use Coretsia\Tools\Support\DeterministicException; +use Coretsia\Tools\Support\ErrorCodes; /** * Deterministic recursive file lister for the fingerprint spike. @@ -193,7 +193,7 @@ private static function failSymlinkForbidden(): never private static function failRead(?\Throwable $previous = null): never { throw new DeterministicException( - ErrorCodes::CORETSIA_SPIKES_IO_READ_FAILED, + ErrorCodes::CORETSIA_TOOLS_IO_READ_FAILED, self::MSG_IO_READ_FAILED, $previous, ); diff --git a/framework/tools/spikes/fingerprint/FingerprintCalculator.php b/framework/tools/spikes/fingerprint/FingerprintCalculator.php index 69ea292..c5e4051 100644 --- a/framework/tools/spikes/fingerprint/FingerprintCalculator.php +++ b/framework/tools/spikes/fingerprint/FingerprintCalculator.php @@ -18,10 +18,10 @@ namespace Coretsia\Tools\Spikes\fingerprint; -use Coretsia\Tools\Spikes\_support\DeterministicException; -use Coretsia\Tools\Spikes\_support\DeterministicFile; -use Coretsia\Tools\Spikes\_support\ErrorCodes; use Coretsia\Tools\Spikes\_support\FixtureRoot; +use Coretsia\Tools\Support\DeterministicException; +use Coretsia\Tools\Support\DeterministicFile; +use Coretsia\Tools\Support\ErrorCodes; /** * Deterministic fingerprint calculator for the repo_min fixture. diff --git a/framework/tools/spikes/fingerprint/FingerprintExplainer.php b/framework/tools/spikes/fingerprint/FingerprintExplainer.php index 0f46802..51687ab 100644 --- a/framework/tools/spikes/fingerprint/FingerprintExplainer.php +++ b/framework/tools/spikes/fingerprint/FingerprintExplainer.php @@ -19,8 +19,8 @@ namespace Coretsia\Tools\Spikes\fingerprint; use Coretsia\Devtools\InternalToolkit\Path; -use Coretsia\Tools\Spikes\_support\DeterministicException; -use Coretsia\Tools\Spikes\_support\ErrorCodes; +use Coretsia\Tools\Support\DeterministicException; +use Coretsia\Tools\Support\ErrorCodes; /** * Safe, deterministic explain builder for the fingerprint spike. diff --git a/framework/tools/spikes/fingerprint/FingerprintWorkflow.php b/framework/tools/spikes/fingerprint/FingerprintWorkflow.php index 8154a6d..e464ed6 100644 --- a/framework/tools/spikes/fingerprint/FingerprintWorkflow.php +++ b/framework/tools/spikes/fingerprint/FingerprintWorkflow.php @@ -18,8 +18,8 @@ namespace Coretsia\Tools\Spikes\fingerprint; -use Coretsia\Tools\Spikes\_support\DeterministicException; -use Coretsia\Tools\Spikes\_support\ErrorCodes; +use Coretsia\Tools\Support\DeterministicException; +use Coretsia\Tools\Support\ErrorCodes; final class FingerprintWorkflow { diff --git a/framework/tools/spikes/fingerprint/StableJsonEncoder.php b/framework/tools/spikes/fingerprint/StableJsonEncoder.php index 9bd9047..d9f21c9 100644 --- a/framework/tools/spikes/fingerprint/StableJsonEncoder.php +++ b/framework/tools/spikes/fingerprint/StableJsonEncoder.php @@ -19,8 +19,8 @@ namespace Coretsia\Tools\Spikes\fingerprint; use Coretsia\Devtools\InternalToolkit\Json; -use Coretsia\Tools\Spikes\_support\DeterministicException; -use Coretsia\Tools\Spikes\_support\ErrorCodes; +use Coretsia\Tools\Support\DeterministicException; +use Coretsia\Tools\Support\ErrorCodes; /** * Thin stable JSON encoder wrapper for the fingerprint spike. diff --git a/framework/tools/spikes/fingerprint/tests/FileListingDeterministicOrderTest.php b/framework/tools/spikes/fingerprint/tests/FileListingDeterministicOrderTest.php index 31c3439..4fcaf98 100644 --- a/framework/tools/spikes/fingerprint/tests/FileListingDeterministicOrderTest.php +++ b/framework/tools/spikes/fingerprint/tests/FileListingDeterministicOrderTest.php @@ -18,9 +18,9 @@ namespace Coretsia\Tools\Spikes\fingerprint\tests; -use Coretsia\Tools\Spikes\_support\DeterministicFile; use Coretsia\Tools\Spikes\_support\FixtureRoot; use Coretsia\Tools\Spikes\fingerprint\DeterministicFileLister; +use Coretsia\Tools\Support\DeterministicFile; use PHPUnit\Framework\TestCase; /** diff --git a/framework/tools/spikes/fingerprint/tests/FingerprintExplainIsSafeTest.php b/framework/tools/spikes/fingerprint/tests/FingerprintExplainIsSafeTest.php index ddab41e..0f584a1 100644 --- a/framework/tools/spikes/fingerprint/tests/FingerprintExplainIsSafeTest.php +++ b/framework/tools/spikes/fingerprint/tests/FingerprintExplainIsSafeTest.php @@ -18,8 +18,8 @@ namespace Coretsia\Tools\Spikes\fingerprint\tests; -use Coretsia\Tools\Spikes\_support\DeterministicFile; use Coretsia\Tools\Spikes\fingerprint\FingerprintExplainer; +use Coretsia\Tools\Support\DeterministicFile; use PHPUnit\Framework\TestCase; /** diff --git a/framework/tools/spikes/fingerprint/tests/HttpMiddlewareCatalogIsFullyUsedInHttpConfigFixturesTest.php b/framework/tools/spikes/fingerprint/tests/HttpMiddlewareCatalogIsFullyUsedInHttpConfigFixturesTest.php index 6ca8e9b..4da73bb 100644 --- a/framework/tools/spikes/fingerprint/tests/HttpMiddlewareCatalogIsFullyUsedInHttpConfigFixturesTest.php +++ b/framework/tools/spikes/fingerprint/tests/HttpMiddlewareCatalogIsFullyUsedInHttpConfigFixturesTest.php @@ -18,8 +18,8 @@ namespace Coretsia\Tools\Spikes\fingerprint\tests; -use Coretsia\Tools\Spikes\_support\DeterministicFile; use Coretsia\Tools\Spikes\_support\FixtureRoot; +use Coretsia\Tools\Support\DeterministicFile; use PHPUnit\Framework\TestCase; /** diff --git a/framework/tools/spikes/fingerprint/tests/PathSeparatorNormalizationTest.php b/framework/tools/spikes/fingerprint/tests/PathSeparatorNormalizationTest.php index ac685b0..6d79b60 100644 --- a/framework/tools/spikes/fingerprint/tests/PathSeparatorNormalizationTest.php +++ b/framework/tools/spikes/fingerprint/tests/PathSeparatorNormalizationTest.php @@ -18,8 +18,8 @@ namespace Coretsia\Tools\Spikes\fingerprint\tests; -use Coretsia\Tools\Spikes\_support\DeterministicFile; use Coretsia\Tools\Spikes\fingerprint\DeterministicFileLister; +use Coretsia\Tools\Support\DeterministicFile; use PHPUnit\Framework\TestCase; /** diff --git a/framework/tools/spikes/fingerprint/tests/SymlinkForbiddenTest.php b/framework/tools/spikes/fingerprint/tests/SymlinkForbiddenTest.php index 127b812..b629309 100644 --- a/framework/tools/spikes/fingerprint/tests/SymlinkForbiddenTest.php +++ b/framework/tools/spikes/fingerprint/tests/SymlinkForbiddenTest.php @@ -18,10 +18,10 @@ namespace Coretsia\Tools\Spikes\fingerprint\tests; -use Coretsia\Tools\Spikes\_support\DeterministicException; -use Coretsia\Tools\Spikes\_support\DeterministicFile; -use Coretsia\Tools\Spikes\_support\ErrorCodes; use Coretsia\Tools\Spikes\fingerprint\DeterministicFileLister; +use Coretsia\Tools\Support\DeterministicException; +use Coretsia\Tools\Support\DeterministicFile; +use Coretsia\Tools\Support\ErrorCodes; use PHPUnit\Framework\TestCase; final class SymlinkForbiddenTest extends TestCase diff --git a/framework/tools/spikes/fingerprint/tests/TrackedEnvAllowlistHasNoDuplicatesTest.php b/framework/tools/spikes/fingerprint/tests/TrackedEnvAllowlistHasNoDuplicatesTest.php index 02430fa..624bd4a 100644 --- a/framework/tools/spikes/fingerprint/tests/TrackedEnvAllowlistHasNoDuplicatesTest.php +++ b/framework/tools/spikes/fingerprint/tests/TrackedEnvAllowlistHasNoDuplicatesTest.php @@ -18,11 +18,11 @@ namespace Coretsia\Tools\Spikes\fingerprint\tests; -use Coretsia\Tools\Spikes\_support\DeterministicException; -use Coretsia\Tools\Spikes\_support\DeterministicFile; -use Coretsia\Tools\Spikes\_support\ErrorCodes; use Coretsia\Tools\Spikes\_support\FixtureRoot; use Coretsia\Tools\Spikes\fingerprint\FingerprintCalculator; +use Coretsia\Tools\Support\DeterministicException; +use Coretsia\Tools\Support\DeterministicFile; +use Coretsia\Tools\Support\ErrorCodes; use PHPUnit\Framework\TestCase; /** diff --git a/framework/tools/spikes/fingerprint/tests/TrackedEnvAllowlistIsCementedTest.php b/framework/tools/spikes/fingerprint/tests/TrackedEnvAllowlistIsCementedTest.php index b107b24..1b8eb7f 100644 --- a/framework/tools/spikes/fingerprint/tests/TrackedEnvAllowlistIsCementedTest.php +++ b/framework/tools/spikes/fingerprint/tests/TrackedEnvAllowlistIsCementedTest.php @@ -18,9 +18,9 @@ namespace Coretsia\Tools\Spikes\fingerprint\tests; -use Coretsia\Tools\Spikes\_support\DeterministicFile; use Coretsia\Tools\Spikes\_support\FixtureRoot; use Coretsia\Tools\Spikes\fingerprint\FingerprintCalculator; +use Coretsia\Tools\Support\DeterministicFile; use PHPUnit\Framework\TestCase; /** diff --git a/framework/tools/spikes/payload/FloatPolicy.php b/framework/tools/spikes/payload/FloatPolicy.php index ea331b3..ac3c98f 100644 --- a/framework/tools/spikes/payload/FloatPolicy.php +++ b/framework/tools/spikes/payload/FloatPolicy.php @@ -18,8 +18,8 @@ namespace Coretsia\Tools\Spikes\payload; -use Coretsia\Tools\Spikes\_support\DeterministicException; -use Coretsia\Tools\Spikes\_support\ErrorCodes; +use Coretsia\Tools\Support\DeterministicException; +use Coretsia\Tools\Support\ErrorCodes; /** * FloatPolicy (Epic 0.70.0): diff --git a/framework/tools/spikes/payload/StableJsonEncoder.php b/framework/tools/spikes/payload/StableJsonEncoder.php index cc908bf..3a35ccf 100644 --- a/framework/tools/spikes/payload/StableJsonEncoder.php +++ b/framework/tools/spikes/payload/StableJsonEncoder.php @@ -19,8 +19,8 @@ namespace Coretsia\Tools\Spikes\payload; use Coretsia\Devtools\InternalToolkit\Json; -use Coretsia\Tools\Spikes\_support\DeterministicException; -use Coretsia\Tools\Spikes\_support\ErrorCodes; +use Coretsia\Tools\Support\DeterministicException; +use Coretsia\Tools\Support\ErrorCodes; /** * Thin stable JSON encoder wrapper for the payload spike (Epic 0.70.0). diff --git a/framework/tools/spikes/payload/tests/FloatPolicyTest.php b/framework/tools/spikes/payload/tests/FloatPolicyTest.php index 58d9975..f3cfa78 100644 --- a/framework/tools/spikes/payload/tests/FloatPolicyTest.php +++ b/framework/tools/spikes/payload/tests/FloatPolicyTest.php @@ -18,10 +18,10 @@ namespace Coretsia\Tools\Spikes\payload\tests; -use Coretsia\Tools\Spikes\_support\DeterministicException; -use Coretsia\Tools\Spikes\_support\ErrorCodes; use Coretsia\Tools\Spikes\_support\FixtureRoot; use Coretsia\Tools\Spikes\payload\FloatPolicy; +use Coretsia\Tools\Support\DeterministicException; +use Coretsia\Tools\Support\ErrorCodes; use PHPUnit\Framework\TestCase; /** diff --git a/framework/tools/spikes/tests/DeterminismRunnerSafeIntegrationTest.php b/framework/tools/spikes/tests/DeterminismRunnerSafeIntegrationTest.php index 31a52ac..f178282 100644 --- a/framework/tools/spikes/tests/DeterminismRunnerSafeIntegrationTest.php +++ b/framework/tools/spikes/tests/DeterminismRunnerSafeIntegrationTest.php @@ -18,10 +18,10 @@ namespace Coretsia\Tools\Spikes\tests; -use Coretsia\Tools\Spikes\_support\ConsoleOutput; use Coretsia\Tools\Spikes\_support\DeterminismRunner; use Coretsia\Tools\Spikes\_support\ProcessResult; use Coretsia\Tools\Spikes\_support\ProcessRunnerInterface; +use Coretsia\Tools\Support\ConsoleOutput; use PHPUnit\Framework\TestCase; final class DeterminismRunnerSafeIntegrationTest extends TestCase @@ -43,7 +43,7 @@ protected function setUp(): void parent::setUp(); // Ensure classes are loaded in a deterministic way for stream swapping. - require_once __DIR__ . '/../_support/ConsoleOutput.php'; + require_once __DIR__ . '/../../support/ConsoleOutput.php'; require_once __DIR__ . '/../_support/ProcessResult.php'; require_once __DIR__ . '/../_support/ProcessRunnerInterface.php'; require_once __DIR__ . '/../_support/DeterminismRunner.php'; diff --git a/framework/tools/spikes/tests/FixtureRootRejectsParentTraversalTest.php b/framework/tools/spikes/tests/FixtureRootRejectsParentTraversalTest.php index c95f090..aac2322 100644 --- a/framework/tools/spikes/tests/FixtureRootRejectsParentTraversalTest.php +++ b/framework/tools/spikes/tests/FixtureRootRejectsParentTraversalTest.php @@ -18,9 +18,9 @@ namespace Coretsia\Tools\Spikes\tests; -use Coretsia\Tools\Spikes\_support\DeterministicException; -use Coretsia\Tools\Spikes\_support\ErrorCodes; use Coretsia\Tools\Spikes\_support\FixtureRoot; +use Coretsia\Tools\Support\DeterministicException; +use Coretsia\Tools\Support\ErrorCodes; use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\TestCase; diff --git a/framework/tools/spikes/tests/SpikeModulesDoNotUseConsoleOutputTest.php b/framework/tools/spikes/tests/SpikeModulesDoNotUseConsoleOutputTest.php index ca9b7d3..7872908 100644 --- a/framework/tools/spikes/tests/SpikeModulesDoNotUseConsoleOutputTest.php +++ b/framework/tools/spikes/tests/SpikeModulesDoNotUseConsoleOutputTest.php @@ -43,7 +43,7 @@ public function testSpikeModulesDoNotReferenceConsoleOutputNorWriteToStdoutStder /** * Token-based scan of framework/tools/spikes/** excluding: - * - framework/tools/spikes/_support/** + * - framework/tools/support/** * - framework/tools/spikes/tests/** * - framework/tools/spikes/fixtures/** * diff --git a/framework/tools/spikes/tests/SpikesBoundaryGateDetectsForbiddenImportsTest.php b/framework/tools/spikes/tests/SpikesBoundaryGateDetectsForbiddenImportsTest.php index d0f64d2..ac95a4c 100644 --- a/framework/tools/spikes/tests/SpikesBoundaryGateDetectsForbiddenImportsTest.php +++ b/framework/tools/spikes/tests/SpikesBoundaryGateDetectsForbiddenImportsTest.php @@ -18,7 +18,7 @@ namespace Coretsia\Tools\Spikes\tests; -use Coretsia\Tools\Spikes\_support\ErrorCodes; +use Coretsia\Tools\Support\ErrorCodes; use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\TestCase; diff --git a/framework/tools/spikes/tests/SpikesOutputGateDetectsBypassTest.php b/framework/tools/spikes/tests/SpikesOutputGateDetectsBypassTest.php index 404ff76..ffc9db9 100644 --- a/framework/tools/spikes/tests/SpikesOutputGateDetectsBypassTest.php +++ b/framework/tools/spikes/tests/SpikesOutputGateDetectsBypassTest.php @@ -53,7 +53,7 @@ public function test_path_override_mode_scans_synthetic_tree_and_is_cwd_independ declare(strict_types=1); - use Coretsia\Tools\Spikes\_support\ConsoleOutput; + use Coretsia\Tools\Support\ConsoleOutput; // This is scan-only; the gate must NOT treat ConsoleOutput usage as a bypass. ConsoleOutput::line('ok'); @@ -62,7 +62,7 @@ public function test_path_override_mode_scans_synthetic_tree_and_is_cwd_independ // Cement the NOTE: If gate incorrectly loads bootstrap from scan-root, this would terminate. self::writePhp( - $tmpRoot . '/spikes/_support/bootstrap.php', + $tmpRoot . '/support/bootstrap.php', <<<'PHP' \unlink($path)); if ($ok !== true) { - self::fail(ErrorCodes::CORETSIA_SPIKES_IO_WRITE_FAILED); + self::fail(ErrorCodes::CORETSIA_TOOLS_IO_WRITE_FAILED); } } /** * Rollback MUST restore pre-run bytes and remove created artifacts using rename/move only (no in-place writes). - * If rollback fails, it throws CORETSIA_SPIKES_IO_WRITE_FAILED. + * If rollback fails, it throws CORETSIA_TOOLS_IO_WRITE_FAILED. * * @param array{ * files:list, @@ -594,7 +594,7 @@ private static function removeTreeOrFail(string $path): void $ok = self::guardWrite(static fn (): bool => \rmdir($path)); if ($ok !== true) { - self::fail(ErrorCodes::CORETSIA_SPIKES_IO_WRITE_FAILED); + self::fail(ErrorCodes::CORETSIA_TOOLS_IO_WRITE_FAILED); } } @@ -641,7 +641,7 @@ private static function readBytesExactOrFail(string $path): string try { return DeterministicFile::readBytesExact($path); } catch (\Throwable $e) { - self::fail(ErrorCodes::CORETSIA_SPIKES_IO_READ_FAILED, $e); + self::fail(ErrorCodes::CORETSIA_TOOLS_IO_READ_FAILED, $e); } } @@ -655,7 +655,7 @@ private static function copyFileExact(string $src, string $dst): void try { DeterministicFile::writeBytesExact($dst, $bytes); } catch (\Throwable $e) { - self::fail(ErrorCodes::CORETSIA_SPIKES_IO_WRITE_FAILED, $e); + self::fail(ErrorCodes::CORETSIA_TOOLS_IO_WRITE_FAILED, $e); } } @@ -738,7 +738,7 @@ private static function ensureDir(string $dir): void $ok = self::guardWrite(static fn (): bool => \mkdir($dir, 0777, true)); if ($ok !== true && !\is_dir($dir)) { - self::fail(ErrorCodes::CORETSIA_SPIKES_IO_WRITE_FAILED); + self::fail(ErrorCodes::CORETSIA_TOOLS_IO_WRITE_FAILED); } } @@ -748,7 +748,7 @@ private static function ensureDir(string $dir): void private static function renameOrFail(string $from, string $to): void { if (!\file_exists($from) || \file_exists($to)) { - self::fail(ErrorCodes::CORETSIA_SPIKES_IO_WRITE_FAILED); + self::fail(ErrorCodes::CORETSIA_TOOLS_IO_WRITE_FAILED); } if (\is_dir($from)) { @@ -765,7 +765,7 @@ private static function renameOrFail(string $from, string $to): void return; } - self::fail(ErrorCodes::CORETSIA_SPIKES_IO_WRITE_FAILED); + self::fail(ErrorCodes::CORETSIA_TOOLS_IO_WRITE_FAILED); } private static function removeFileBestEffort(string $path): void @@ -879,13 +879,13 @@ static function () use (&$hadPhpError): bool { $result = $operation(); } catch (\Throwable $e) { \restore_error_handler(); - self::fail(ErrorCodes::CORETSIA_SPIKES_IO_WRITE_FAILED, $e); + self::fail(ErrorCodes::CORETSIA_TOOLS_IO_WRITE_FAILED, $e); } \restore_error_handler(); if ($hadPhpError) { - self::fail(ErrorCodes::CORETSIA_SPIKES_IO_WRITE_FAILED); + self::fail(ErrorCodes::CORETSIA_TOOLS_IO_WRITE_FAILED); } return $result; diff --git a/framework/tools/spikes/workspace/PackageIndexBuilder.php b/framework/tools/spikes/workspace/PackageIndexBuilder.php index f4eeb4d..cb14622 100644 --- a/framework/tools/spikes/workspace/PackageIndexBuilder.php +++ b/framework/tools/spikes/workspace/PackageIndexBuilder.php @@ -18,9 +18,9 @@ namespace Coretsia\Tools\Spikes\workspace; -use Coretsia\Tools\Spikes\_support\DeterministicException; -use Coretsia\Tools\Spikes\_support\DeterministicFile; -use Coretsia\Tools\Spikes\_support\ErrorCodes; +use Coretsia\Tools\Support\DeterministicException; +use Coretsia\Tools\Support\DeterministicFile; +use Coretsia\Tools\Support\ErrorCodes; final class PackageIndexBuilder { @@ -141,7 +141,7 @@ private static function readAndDecodeComposerJson(string $composerJsonPath): arr try { $bytes = DeterministicFile::readBytesExact($composerJsonPath); } catch (\Throwable $e) { - self::fail(ErrorCodes::CORETSIA_SPIKES_IO_READ_FAILED, $e); + self::fail(ErrorCodes::CORETSIA_TOOLS_IO_READ_FAILED, $e); } try { diff --git a/framework/tools/spikes/workspace/WorkspacePolicy.php b/framework/tools/spikes/workspace/WorkspacePolicy.php index 5e67c3e..62384cf 100644 --- a/framework/tools/spikes/workspace/WorkspacePolicy.php +++ b/framework/tools/spikes/workspace/WorkspacePolicy.php @@ -18,8 +18,8 @@ namespace Coretsia\Tools\Spikes\workspace; -use Coretsia\Tools\Spikes\_support\DeterministicException; -use Coretsia\Tools\Spikes\_support\ErrorCodes; +use Coretsia\Tools\Support\DeterministicException; +use Coretsia\Tools\Support\ErrorCodes; final class WorkspacePolicy { diff --git a/framework/tools/spikes/workspace/WorkspaceSyncEntryWorkflow.php b/framework/tools/spikes/workspace/WorkspaceSyncEntryWorkflow.php index 321e9a4..737f834 100644 --- a/framework/tools/spikes/workspace/WorkspaceSyncEntryWorkflow.php +++ b/framework/tools/spikes/workspace/WorkspaceSyncEntryWorkflow.php @@ -18,8 +18,8 @@ namespace Coretsia\Tools\Spikes\workspace; -use Coretsia\Tools\Spikes\_support\DeterministicException; -use Coretsia\Tools\Spikes\_support\ErrorCodes; +use Coretsia\Tools\Support\DeterministicException; +use Coretsia\Tools\Support\ErrorCodes; final class WorkspaceSyncEntryWorkflow { diff --git a/framework/tools/spikes/workspace/WorkspaceSyncWorkflow.php b/framework/tools/spikes/workspace/WorkspaceSyncWorkflow.php index 5607547..4b914b7 100644 --- a/framework/tools/spikes/workspace/WorkspaceSyncWorkflow.php +++ b/framework/tools/spikes/workspace/WorkspaceSyncWorkflow.php @@ -18,9 +18,9 @@ namespace Coretsia\Tools\Spikes\workspace; -use Coretsia\Tools\Spikes\_support\DeterministicException; -use Coretsia\Tools\Spikes\_support\DeterministicFile; -use Coretsia\Tools\Spikes\_support\ErrorCodes; +use Coretsia\Tools\Support\DeterministicException; +use Coretsia\Tools\Support\DeterministicFile; +use Coretsia\Tools\Support\ErrorCodes; final class WorkspaceSyncWorkflow { @@ -160,7 +160,7 @@ private static function readBytesExactOrFail(string $path): string try { return DeterministicFile::readBytesExact($path); } catch (\Throwable $e) { - self::fail(ErrorCodes::CORETSIA_SPIKES_IO_READ_FAILED, $e); + self::fail(ErrorCodes::CORETSIA_TOOLS_IO_READ_FAILED, $e); } } diff --git a/framework/tools/spikes/workspace/tests/ComposerSyncIdempotentNoDiffTest.php b/framework/tools/spikes/workspace/tests/ComposerSyncIdempotentNoDiffTest.php index ad127e2..44c2920 100644 --- a/framework/tools/spikes/workspace/tests/ComposerSyncIdempotentNoDiffTest.php +++ b/framework/tools/spikes/workspace/tests/ComposerSyncIdempotentNoDiffTest.php @@ -18,8 +18,8 @@ namespace Coretsia\Tools\Spikes\workspace\tests; -use Coretsia\Tools\Spikes\_support\DeterministicFile; use Coretsia\Tools\Spikes\workspace\ComposerRepositoriesSync; +use Coretsia\Tools\Support\DeterministicFile; use PHPUnit\Framework\TestCase; final class ComposerSyncIdempotentNoDiffTest extends TestCase diff --git a/framework/tools/spikes/workspace/tests/ComposerSyncUpdatesManagedOnlyTest.php b/framework/tools/spikes/workspace/tests/ComposerSyncUpdatesManagedOnlyTest.php index 01f352f..04b8905 100644 --- a/framework/tools/spikes/workspace/tests/ComposerSyncUpdatesManagedOnlyTest.php +++ b/framework/tools/spikes/workspace/tests/ComposerSyncUpdatesManagedOnlyTest.php @@ -18,9 +18,9 @@ namespace Coretsia\Tools\Spikes\workspace\tests; -use Coretsia\Tools\Spikes\_support\DeterministicFile; use Coretsia\Tools\Spikes\workspace\ComposerRepositoriesSync; use Coretsia\Tools\Spikes\workspace\WorkspacePolicy; +use Coretsia\Tools\Support\DeterministicFile; use PHPUnit\Framework\TestCase; final class ComposerSyncUpdatesManagedOnlyTest extends TestCase diff --git a/framework/tools/spikes/workspace/tests/ComposerSyncWritesBackupsTest.php b/framework/tools/spikes/workspace/tests/ComposerSyncWritesBackupsTest.php index e3a5a5b..ebf618e 100644 --- a/framework/tools/spikes/workspace/tests/ComposerSyncWritesBackupsTest.php +++ b/framework/tools/spikes/workspace/tests/ComposerSyncWritesBackupsTest.php @@ -18,8 +18,8 @@ namespace Coretsia\Tools\Spikes\workspace\tests; -use Coretsia\Tools\Spikes\_support\DeterministicFile; use Coretsia\Tools\Spikes\workspace\ComposerRepositoriesSync; +use Coretsia\Tools\Support\DeterministicFile; use PHPUnit\Framework\TestCase; final class ComposerSyncWritesBackupsTest extends TestCase diff --git a/framework/tools/spikes/workspace/tests/NewPackageAtomicWorkflowPrototypeTest.php b/framework/tools/spikes/workspace/tests/NewPackageAtomicWorkflowPrototypeTest.php index 4e36dd5..645704f 100644 --- a/framework/tools/spikes/workspace/tests/NewPackageAtomicWorkflowPrototypeTest.php +++ b/framework/tools/spikes/workspace/tests/NewPackageAtomicWorkflowPrototypeTest.php @@ -18,10 +18,10 @@ namespace Coretsia\Tools\Spikes\workspace\tests; -use Coretsia\Tools\Spikes\_support\DeterministicFile; -use Coretsia\Tools\Spikes\_support\ErrorCodes; use Coretsia\Tools\Spikes\workspace\ComposerJsonCanonicalizer; use Coretsia\Tools\Spikes\workspace\NewPackageWorkflow; +use Coretsia\Tools\Support\DeterministicFile; +use Coretsia\Tools\Support\ErrorCodes; use PHPUnit\Framework\TestCase; final class NewPackageAtomicWorkflowPrototypeTest extends TestCase diff --git a/framework/tools/spikes/workspace/tests/NoImplicitCwdEvidenceTest.php b/framework/tools/spikes/workspace/tests/NoImplicitCwdEvidenceTest.php index 0d03876..3f9bd3b 100644 --- a/framework/tools/spikes/workspace/tests/NoImplicitCwdEvidenceTest.php +++ b/framework/tools/spikes/workspace/tests/NoImplicitCwdEvidenceTest.php @@ -18,10 +18,10 @@ namespace Coretsia\Tools\Spikes\workspace\tests; -use Coretsia\Tools\Spikes\_support\DeterministicFile; use Coretsia\Tools\Spikes\workspace\ComposerRepositoriesSync; use Coretsia\Tools\Spikes\workspace\NewPackageWorkflow; use Coretsia\Tools\Spikes\workspace\PackageIndexBuilder; +use Coretsia\Tools\Support\DeterministicFile; use PHPUnit\Framework\TestCase; final class NoImplicitCwdEvidenceTest extends TestCase diff --git a/framework/tools/spikes/workspace/tests/PackageIndexDeterministicTest.php b/framework/tools/spikes/workspace/tests/PackageIndexDeterministicTest.php index f43f859..9597dfc 100644 --- a/framework/tools/spikes/workspace/tests/PackageIndexDeterministicTest.php +++ b/framework/tools/spikes/workspace/tests/PackageIndexDeterministicTest.php @@ -18,8 +18,8 @@ namespace Coretsia\Tools\Spikes\workspace\tests; -use Coretsia\Tools\Spikes\_support\DeterministicFile; use Coretsia\Tools\Spikes\workspace\PackageIndexBuilder; +use Coretsia\Tools\Support\DeterministicFile; use PHPUnit\Framework\TestCase; final class PackageIndexDeterministicTest extends TestCase diff --git a/framework/tools/spikes/_support/ConsoleOutput.php b/framework/tools/support/ConsoleOutput.php similarity index 97% rename from framework/tools/spikes/_support/ConsoleOutput.php rename to framework/tools/support/ConsoleOutput.php index 2ef73b9..bf9c13b 100644 --- a/framework/tools/spikes/_support/ConsoleOutput.php +++ b/framework/tools/support/ConsoleOutput.php @@ -16,13 +16,13 @@ * See LICENSE and NOTICE in the project root for full license information. */ -namespace Coretsia\Tools\Spikes\_support; +namespace Coretsia\Tools\Support; /** - * Stable console writer for Phase 0 tooling rails (spikes + gates). + * Stable console writer for repository tooling rails. * * Policy (cemented by roadmap): - * - This is the ONLY allowlisted stdout/stderr writer for Phase 0 tooling rails. + * - This is the ONLY allowlisted stdout/stderr writer for repository tooling rails. * - Callers MUST NOT print secrets/PII; only deterministic codes + normalized repo-relative paths. * - Output MUST be stable across OS (LF-only, no CRLF, no absolute paths, no env values). * diff --git a/framework/tools/spikes/_support/DeterministicException.php b/framework/tools/support/DeterministicException.php similarity index 95% rename from framework/tools/spikes/_support/DeterministicException.php rename to framework/tools/support/DeterministicException.php index 7ecbdb4..aa40fdf 100644 --- a/framework/tools/spikes/_support/DeterministicException.php +++ b/framework/tools/support/DeterministicException.php @@ -16,7 +16,7 @@ * See LICENSE and NOTICE in the project root for full license information. */ -namespace Coretsia\Tools\Spikes\_support; +namespace Coretsia\Tools\Support; final class DeterministicException extends \RuntimeException { @@ -50,7 +50,7 @@ public function code(): string private static function assertSafeMessage(string $message): void { - // Enforce single-line and block obvious leak vectors (Phase 0 rails strictness). + // Enforce single-line and block obvious leak vectors for repository tooling. if ( $message === '' || str_contains($message, "\0") diff --git a/framework/tools/spikes/_support/DeterministicFile.php b/framework/tools/support/DeterministicFile.php similarity index 89% rename from framework/tools/spikes/_support/DeterministicFile.php rename to framework/tools/support/DeterministicFile.php index 7acfff1..4cb5216 100644 --- a/framework/tools/spikes/_support/DeterministicFile.php +++ b/framework/tools/support/DeterministicFile.php @@ -16,12 +16,12 @@ * See LICENSE and NOTICE in the project root for full license information. */ -namespace Coretsia\Tools\Spikes\_support; +namespace Coretsia\Tools\Support; final class DeterministicFile { - private const string MSG_READ_FAILED = 'spikes-io-read-failed'; - private const string MSG_WRITE_FAILED = 'spikes-io-write-failed'; + private const string MSG_READ_FAILED = 'tools-io-read-failed'; + private const string MSG_WRITE_FAILED = 'tools-io-write-failed'; private function __construct() { @@ -43,7 +43,7 @@ public static function readBytesExact(string $path): string } catch (\Throwable) { // MUST NOT leak $path or OS-specific errors. throw new DeterministicException( - ErrorCodes::CORETSIA_SPIKES_IO_READ_FAILED, + ErrorCodes::CORETSIA_TOOLS_IO_READ_FAILED, self::MSG_READ_FAILED, ); } @@ -60,7 +60,7 @@ public static function readTextNormalizedEol(string $path): string } catch (\Throwable) { // MUST NOT leak $path or OS-specific errors. throw new DeterministicException( - ErrorCodes::CORETSIA_SPIKES_IO_READ_FAILED, + ErrorCodes::CORETSIA_TOOLS_IO_READ_FAILED, self::MSG_READ_FAILED, ); } @@ -74,7 +74,7 @@ public static function hashSha256NormalizedEol(string $path): string $hash = hash('sha256', $normalized); if ($hash === false || $hash === '') { throw new DeterministicException( - ErrorCodes::CORETSIA_SPIKES_IO_READ_FAILED, + ErrorCodes::CORETSIA_TOOLS_IO_READ_FAILED, self::MSG_READ_FAILED, ); } @@ -86,7 +86,7 @@ public static function hashSha256NormalizedEol(string $path): string } catch (\Throwable) { // MUST NOT leak $path or OS-specific errors. throw new DeterministicException( - ErrorCodes::CORETSIA_SPIKES_IO_READ_FAILED, + ErrorCodes::CORETSIA_TOOLS_IO_READ_FAILED, self::MSG_READ_FAILED, ); } @@ -107,7 +107,7 @@ public static function writeTextLf(string $path, string $content): void } catch (\Throwable) { // MUST NOT leak $path or OS-specific errors. throw new DeterministicException( - ErrorCodes::CORETSIA_SPIKES_IO_WRITE_FAILED, + ErrorCodes::CORETSIA_TOOLS_IO_WRITE_FAILED, self::MSG_WRITE_FAILED, ); } @@ -123,7 +123,7 @@ public static function writeBytesExact(string $path, string $bytes): void } catch (\Throwable) { // MUST NOT leak $path or OS-specific errors. throw new DeterministicException( - ErrorCodes::CORETSIA_SPIKES_IO_WRITE_FAILED, + ErrorCodes::CORETSIA_TOOLS_IO_WRITE_FAILED, self::MSG_WRITE_FAILED, ); } @@ -145,7 +145,7 @@ private static function readBytes(string $path): string if ($result === false) { throw new DeterministicException( - ErrorCodes::CORETSIA_SPIKES_IO_READ_FAILED, + ErrorCodes::CORETSIA_TOOLS_IO_READ_FAILED, self::MSG_READ_FAILED, ); } @@ -176,7 +176,7 @@ private static function ensureParentDirectory(string $path): void if ($ok === false) { throw new DeterministicException( - ErrorCodes::CORETSIA_SPIKES_IO_WRITE_FAILED, + ErrorCodes::CORETSIA_TOOLS_IO_WRITE_FAILED, self::MSG_WRITE_FAILED, ); } @@ -187,7 +187,7 @@ private static function ensureParentDirectory(string $path): void if ($existsAfter !== true) { throw new DeterministicException( - ErrorCodes::CORETSIA_SPIKES_IO_WRITE_FAILED, + ErrorCodes::CORETSIA_TOOLS_IO_WRITE_FAILED, self::MSG_WRITE_FAILED, ); } @@ -199,7 +199,7 @@ private static function writeBytesInternal(string $path, string $bytes): void if ($tmpPath === $path) { throw new DeterministicException( - ErrorCodes::CORETSIA_SPIKES_IO_WRITE_FAILED, + ErrorCodes::CORETSIA_TOOLS_IO_WRITE_FAILED, self::MSG_WRITE_FAILED, ); } @@ -212,7 +212,7 @@ private static function writeBytesInternal(string $path, string $bytes): void if ($fp === false) { throw new DeterministicException( - ErrorCodes::CORETSIA_SPIKES_IO_WRITE_FAILED, + ErrorCodes::CORETSIA_TOOLS_IO_WRITE_FAILED, self::MSG_WRITE_FAILED, ); } @@ -233,7 +233,7 @@ private static function writeBytesInternal(string $path, string $bytes): void if ($renamed !== true) { throw new DeterministicException( - ErrorCodes::CORETSIA_SPIKES_IO_WRITE_FAILED, + ErrorCodes::CORETSIA_TOOLS_IO_WRITE_FAILED, self::MSG_WRITE_FAILED, ); } @@ -264,7 +264,7 @@ private static function atomicTempPath(string $path): string if ($base === '' || $base === '.' || $base === '..') { throw new DeterministicException( - ErrorCodes::CORETSIA_SPIKES_IO_WRITE_FAILED, + ErrorCodes::CORETSIA_TOOLS_IO_WRITE_FAILED, self::MSG_WRITE_FAILED, ); } @@ -295,7 +295,7 @@ private static function writeBytesToOpenStream($fp, string $bytes): void if ($n === false || $n === 0) { throw new DeterministicException( - ErrorCodes::CORETSIA_SPIKES_IO_WRITE_FAILED, + ErrorCodes::CORETSIA_TOOLS_IO_WRITE_FAILED, self::MSG_WRITE_FAILED, ); } @@ -315,7 +315,7 @@ private static function flushOpenStream($fp): void if ($flushed !== true) { throw new DeterministicException( - ErrorCodes::CORETSIA_SPIKES_IO_WRITE_FAILED, + ErrorCodes::CORETSIA_TOOLS_IO_WRITE_FAILED, self::MSG_WRITE_FAILED, ); } @@ -332,7 +332,7 @@ private static function closeOpenStream($fp): void if ($closed !== true) { throw new DeterministicException( - ErrorCodes::CORETSIA_SPIKES_IO_WRITE_FAILED, + ErrorCodes::CORETSIA_TOOLS_IO_WRITE_FAILED, self::MSG_WRITE_FAILED, ); } @@ -366,7 +366,7 @@ static function () use ($path): bool { private static function guardRead(callable $operation): mixed { return self::guard( - ErrorCodes::CORETSIA_SPIKES_IO_READ_FAILED, + ErrorCodes::CORETSIA_TOOLS_IO_READ_FAILED, self::MSG_READ_FAILED, $operation, ); @@ -380,7 +380,7 @@ private static function guardRead(callable $operation): mixed private static function guardWrite(callable $operation): mixed { return self::guard( - ErrorCodes::CORETSIA_SPIKES_IO_WRITE_FAILED, + ErrorCodes::CORETSIA_TOOLS_IO_WRITE_FAILED, self::MSG_WRITE_FAILED, $operation, ); diff --git a/framework/tools/spikes/_support/ErrorCodes.php b/framework/tools/support/ErrorCodes.php similarity index 97% rename from framework/tools/spikes/_support/ErrorCodes.php rename to framework/tools/support/ErrorCodes.php index 910d18d..3c1ef49 100644 --- a/framework/tools/spikes/_support/ErrorCodes.php +++ b/framework/tools/support/ErrorCodes.php @@ -16,19 +16,19 @@ * See LICENSE and NOTICE in the project root for full license information. */ -namespace Coretsia\Tools\Spikes\_support; +namespace Coretsia\Tools\Support; final class ErrorCodes { public const string CORETSIA_DETERMINISM_GIT_REQUIRED = 'CORETSIA_DETERMINISM_GIT_REQUIRED'; public const string CORETSIA_DETERMINISM_WORKTREE_DIRTY = 'CORETSIA_DETERMINISM_WORKTREE_DIRTY'; public const string CORETSIA_DETERMINISM_RERUN_FAILED = 'CORETSIA_DETERMINISM_RERUN_FAILED'; - public const string CORETSIA_SPIKES_BOOTSTRAP_AUTOLOAD_MISSING = 'CORETSIA_SPIKES_BOOTSTRAP_AUTOLOAD_MISSING'; + public const string CORETSIA_TOOLS_BOOTSTRAP_AUTOLOAD_MISSING = 'CORETSIA_TOOLS_BOOTSTRAP_AUTOLOAD_MISSING'; public const string CORETSIA_SPIKES_FIXTURE_PATH_INVALID = 'CORETSIA_SPIKES_FIXTURE_PATH_INVALID'; public const string CORETSIA_SPIKES_OUTPUT_BYPASS_DETECTED = 'CORETSIA_SPIKES_OUTPUT_BYPASS_DETECTED'; public const string CORETSIA_SPIKES_OUTPUT_GATE_SCAN_FAILED = 'CORETSIA_SPIKES_OUTPUT_GATE_SCAN_FAILED'; - public const string CORETSIA_SPIKES_IO_READ_FAILED = 'CORETSIA_SPIKES_IO_READ_FAILED'; - public const string CORETSIA_SPIKES_IO_WRITE_FAILED = 'CORETSIA_SPIKES_IO_WRITE_FAILED'; + public const string CORETSIA_TOOLS_IO_READ_FAILED = 'CORETSIA_TOOLS_IO_READ_FAILED'; + public const string CORETSIA_TOOLS_IO_WRITE_FAILED = 'CORETSIA_TOOLS_IO_WRITE_FAILED'; public const string CORETSIA_SPIKES_IO_POLICY_VIOLATION = 'CORETSIA_SPIKES_IO_POLICY_VIOLATION'; public const string CORETSIA_SPIKES_IO_POLICY_GATE_SCAN_FAILED = 'CORETSIA_SPIKES_IO_POLICY_GATE_SCAN_FAILED'; public const string CORETSIA_SPIKES_BOUNDARY_FORBIDDEN_IMPORT = 'CORETSIA_SPIKES_BOUNDARY_FORBIDDEN_IMPORT'; @@ -145,12 +145,12 @@ final class ErrorCodes self::CORETSIA_DETERMINISM_GIT_REQUIRED, self::CORETSIA_DETERMINISM_WORKTREE_DIRTY, self::CORETSIA_DETERMINISM_RERUN_FAILED, - self::CORETSIA_SPIKES_BOOTSTRAP_AUTOLOAD_MISSING, + self::CORETSIA_TOOLS_BOOTSTRAP_AUTOLOAD_MISSING, self::CORETSIA_SPIKES_FIXTURE_PATH_INVALID, self::CORETSIA_SPIKES_OUTPUT_BYPASS_DETECTED, self::CORETSIA_SPIKES_OUTPUT_GATE_SCAN_FAILED, - self::CORETSIA_SPIKES_IO_READ_FAILED, - self::CORETSIA_SPIKES_IO_WRITE_FAILED, + self::CORETSIA_TOOLS_IO_READ_FAILED, + self::CORETSIA_TOOLS_IO_WRITE_FAILED, self::CORETSIA_SPIKES_IO_POLICY_VIOLATION, self::CORETSIA_SPIKES_IO_POLICY_GATE_SCAN_FAILED, self::CORETSIA_SPIKES_BOUNDARY_FORBIDDEN_IMPORT, diff --git a/framework/tools/spikes/_support/RepoTextNormalizationScanner.php b/framework/tools/support/RepoTextNormalizationScanner.php similarity index 99% rename from framework/tools/spikes/_support/RepoTextNormalizationScanner.php rename to framework/tools/support/RepoTextNormalizationScanner.php index 02c4bee..91fe6ef 100644 --- a/framework/tools/spikes/_support/RepoTextNormalizationScanner.php +++ b/framework/tools/support/RepoTextNormalizationScanner.php @@ -16,7 +16,7 @@ * See LICENSE and NOTICE in the project root for full license information. */ -namespace Coretsia\Tools\Spikes\_support; +namespace Coretsia\Tools\Support; final class RepoTextNormalizationScanner { diff --git a/framework/tools/support/bootstrap.php b/framework/tools/support/bootstrap.php new file mode 100644 index 0000000..3beae21 --- /dev/null +++ b/framework/tools/support/bootstrap.php @@ -0,0 +1,69 @@ +copyDir( - $this->frameworkRoot() . '/tools/spikes/_support', - $sandbox . '/framework/tools/spikes/_support', + $this->frameworkRoot() . '/tools/support', + $sandbox . '/framework/tools/support', ); $this->writeResetInterface($sandbox); diff --git a/framework/tools/tests/Integration/DtoMarkerConsistencyGateTest.php b/framework/tools/tests/Integration/DtoMarkerConsistencyGateTest.php index ff07ee3..43f045a 100644 --- a/framework/tools/tests/Integration/DtoMarkerConsistencyGateTest.php +++ b/framework/tools/tests/Integration/DtoMarkerConsistencyGateTest.php @@ -228,7 +228,7 @@ public function testMissingBootstrapTriggersDeterministicScanFailedCode(): void $fixtureRoot = $this->tempDir('dto-marker-missing-bootstrap'); $toolsRoot = $fixtureRoot . '/tools'; $gateDir = $toolsRoot . '/gates'; - $supportDir = $toolsRoot . '/spikes/_support'; + $supportDir = $toolsRoot . '/support'; $this->writeBytesExact( $gateDir . '/dto_marker_consistency_gate.php', @@ -237,12 +237,12 @@ public function testMissingBootstrapTriggersDeterministicScanFailedCode(): void $this->writeBytesExact( $supportDir . '/ConsoleOutput.php', - $this->readBytes($this->frameworkRoot() . '/tools/spikes/_support/ConsoleOutput.php'), + $this->readBytes($this->frameworkRoot() . '/tools/support/ConsoleOutput.php'), ); $this->writeBytesExact( $supportDir . '/ErrorCodes.php', - $this->readBytes($this->frameworkRoot() . '/tools/spikes/_support/ErrorCodes.php'), + $this->readBytes($this->frameworkRoot() . '/tools/support/ErrorCodes.php'), ); $scanRoot = $this->syntheticFrameworkRoot('dto-marker-bootstrap-scan-root'); diff --git a/framework/tools/tests/Integration/DtoNoLogicGateTest.php b/framework/tools/tests/Integration/DtoNoLogicGateTest.php index d0aa82b..ee48eab 100644 --- a/framework/tools/tests/Integration/DtoNoLogicGateTest.php +++ b/framework/tools/tests/Integration/DtoNoLogicGateTest.php @@ -619,7 +619,7 @@ public function testMissingBootstrapTriggersDeterministicScanFailedCode(): void $fixtureRoot = $this->tempDir('dto-no-logic-missing-bootstrap'); $toolsRoot = $fixtureRoot . '/tools'; $gateDir = $toolsRoot . '/gates'; - $supportDir = $toolsRoot . '/spikes/_support'; + $supportDir = $toolsRoot . '/support'; $this->writeBytesExact( $gateDir . '/dto_no_logic_gate.php', @@ -628,12 +628,12 @@ public function testMissingBootstrapTriggersDeterministicScanFailedCode(): void $this->writeBytesExact( $supportDir . '/ConsoleOutput.php', - $this->readBytes($this->frameworkRoot() . '/tools/spikes/_support/ConsoleOutput.php'), + $this->readBytes($this->frameworkRoot() . '/tools/support/ConsoleOutput.php'), ); $this->writeBytesExact( $supportDir . '/ErrorCodes.php', - $this->readBytes($this->frameworkRoot() . '/tools/spikes/_support/ErrorCodes.php'), + $this->readBytes($this->frameworkRoot() . '/tools/support/ErrorCodes.php'), ); $scanRoot = $this->syntheticFrameworkRoot('dto-no-logic-bootstrap-scan-root'); diff --git a/framework/tools/tests/Integration/DtoShapeGateTest.php b/framework/tools/tests/Integration/DtoShapeGateTest.php index 2fff7ea..6c36349 100644 --- a/framework/tools/tests/Integration/DtoShapeGateTest.php +++ b/framework/tools/tests/Integration/DtoShapeGateTest.php @@ -451,7 +451,7 @@ public function testMissingBootstrapTriggersDeterministicScanFailedCode(): void $fixtureRoot = $this->tempDir('dto-shape-missing-bootstrap'); $toolsRoot = $fixtureRoot . '/tools'; $gateDir = $toolsRoot . '/gates'; - $supportDir = $toolsRoot . '/spikes/_support'; + $supportDir = $toolsRoot . '/support'; $this->writeBytesExact( $gateDir . '/dto_shape_gate.php', @@ -460,12 +460,12 @@ public function testMissingBootstrapTriggersDeterministicScanFailedCode(): void $this->writeBytesExact( $supportDir . '/ConsoleOutput.php', - $this->readBytes($this->frameworkRoot() . '/tools/spikes/_support/ConsoleOutput.php'), + $this->readBytes($this->frameworkRoot() . '/tools/support/ConsoleOutput.php'), ); $this->writeBytesExact( $supportDir . '/ErrorCodes.php', - $this->readBytes($this->frameworkRoot() . '/tools/spikes/_support/ErrorCodes.php'), + $this->readBytes($this->frameworkRoot() . '/tools/support/ErrorCodes.php'), ); $scanRoot = $this->syntheticFrameworkRoot('dto-shape-bootstrap-scan-root'); diff --git a/framework/tools/spikes/tests/InternalToolkitNoDupGateDetectsDuplicationTest.php b/framework/tools/tests/Integration/InternalToolkitNoDupGateDetectsDuplicationTest.php similarity index 98% rename from framework/tools/spikes/tests/InternalToolkitNoDupGateDetectsDuplicationTest.php rename to framework/tools/tests/Integration/InternalToolkitNoDupGateDetectsDuplicationTest.php index 5cbbe30..3151c71 100644 --- a/framework/tools/spikes/tests/InternalToolkitNoDupGateDetectsDuplicationTest.php +++ b/framework/tools/tests/Integration/InternalToolkitNoDupGateDetectsDuplicationTest.php @@ -16,7 +16,7 @@ * See LICENSE and NOTICE in the project root for full license information. */ -namespace Coretsia\Tools\Spikes\tests; +namespace Coretsia\Tools\Tests\Integration; use FilesystemIterator; use PHPUnit\Framework\TestCase; @@ -165,7 +165,7 @@ private function resolveGateOrSkip(): string } $gate = $toolsRoot . '/gates/internal_toolkit_no_dup_gate.php'; - $bootstrap = $toolsRoot . '/spikes/_support/bootstrap.php'; + $bootstrap = $toolsRoot . '/support/bootstrap.php'; if (!\is_file($gate) || !\is_readable($gate)) { self::markTestSkipped('gate_missing_or_unreadable'); diff --git a/framework/tools/tests/Integration/NoRuntimeToolingArtifactsGateTest.php b/framework/tools/tests/Integration/NoRuntimeToolingArtifactsGateTest.php index bedd7b0..5b4ef5f 100644 --- a/framework/tools/tests/Integration/NoRuntimeToolingArtifactsGateTest.php +++ b/framework/tools/tests/Integration/NoRuntimeToolingArtifactsGateTest.php @@ -352,8 +352,8 @@ private function createNoRuntimeToolingArtifactsGateSandbox(bool $includeRuntime ); $this->copyDir( - $this->frameworkRoot() . '/tools/spikes/_support', - $sandbox . '/framework/tools/spikes/_support', + $this->frameworkRoot() . '/tools/support', + $sandbox . '/framework/tools/support', ); if ($includeRuntimePackageRoot) { diff --git a/framework/tools/spikes/tests/RepoTextNormalizationGateBehaviorTest.php b/framework/tools/tests/Integration/RepoTextNormalizationGateBehaviorTest.php similarity index 97% rename from framework/tools/spikes/tests/RepoTextNormalizationGateBehaviorTest.php rename to framework/tools/tests/Integration/RepoTextNormalizationGateBehaviorTest.php index 20fb5ed..9326ed0 100644 --- a/framework/tools/spikes/tests/RepoTextNormalizationGateBehaviorTest.php +++ b/framework/tools/tests/Integration/RepoTextNormalizationGateBehaviorTest.php @@ -16,7 +16,7 @@ * See LICENSE and NOTICE in the project root for full license information. */ -namespace Coretsia\Tools\Spikes\tests; +namespace Coretsia\Tools\Tests\Integration; use PHPUnit\Framework\TestCase; @@ -59,7 +59,7 @@ public function test_path_outside_repo_root_is_rejected_with_scan_failed_code_an private static function gateScriptPath(): string { - // __DIR__ = framework/tools/spikes/tests; dirname(..., 2) => framework/tools + // __DIR__ = framework/tools/tests/Integration; dirname(..., 2) => framework/tools $toolsRoot = realpath(\dirname(__DIR__, 2)); if (!\is_string($toolsRoot) || $toolsRoot === '') { throw new \RuntimeException('tools-root-missing'); diff --git a/framework/tools/spikes/tests/ConsoleOutputSanitizePolicyTest.php b/framework/tools/tests/Unit/ConsoleOutputSanitizePolicyTest.php similarity index 98% rename from framework/tools/spikes/tests/ConsoleOutputSanitizePolicyTest.php rename to framework/tools/tests/Unit/ConsoleOutputSanitizePolicyTest.php index 344e068..84ddfad 100644 --- a/framework/tools/spikes/tests/ConsoleOutputSanitizePolicyTest.php +++ b/framework/tools/tests/Unit/ConsoleOutputSanitizePolicyTest.php @@ -16,9 +16,9 @@ * See LICENSE and NOTICE in the project root for full license information. */ -namespace Coretsia\Tools\Spikes\tests; +namespace Coretsia\Tools\Tests\Unit; -use Coretsia\Tools\Spikes\_support\ConsoleOutput; +use Coretsia\Tools\Support\ConsoleOutput; use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\TestCase; diff --git a/framework/tools/spikes/tests/DeterministicExceptionIsSafeTest.php b/framework/tools/tests/Unit/DeterministicExceptionIsSafeTest.php similarity index 96% rename from framework/tools/spikes/tests/DeterministicExceptionIsSafeTest.php rename to framework/tools/tests/Unit/DeterministicExceptionIsSafeTest.php index f947a06..81b4695 100644 --- a/framework/tools/spikes/tests/DeterministicExceptionIsSafeTest.php +++ b/framework/tools/tests/Unit/DeterministicExceptionIsSafeTest.php @@ -16,10 +16,10 @@ * See LICENSE and NOTICE in the project root for full license information. */ -namespace Coretsia\Tools\Spikes\tests; +namespace Coretsia\Tools\Tests\Unit; -use Coretsia\Tools\Spikes\_support\DeterministicException; -use Coretsia\Tools\Spikes\_support\ErrorCodes; +use Coretsia\Tools\Support\DeterministicException; +use Coretsia\Tools\Support\ErrorCodes; use PHPUnit\Framework\TestCase; final class DeterministicExceptionIsSafeTest extends TestCase diff --git a/framework/tools/tests/Unit/DeterministicFileAtomicWriteTest.php b/framework/tools/tests/Unit/DeterministicFileAtomicWriteTest.php index 0f0f1d1..db786ff 100644 --- a/framework/tools/tests/Unit/DeterministicFileAtomicWriteTest.php +++ b/framework/tools/tests/Unit/DeterministicFileAtomicWriteTest.php @@ -18,7 +18,7 @@ namespace Coretsia\Tools\Tests\Unit; -use Coretsia\Tools\Spikes\_support\DeterministicFile; +use Coretsia\Tools\Support\DeterministicFile; use PHPUnit\Framework\TestCase; final class DeterministicFileAtomicWriteTest extends TestCase diff --git a/framework/tools/spikes/tests/DeterministicFileEolNormalizationContractTest.php b/framework/tools/tests/Unit/DeterministicFileEolNormalizationContractTest.php similarity index 92% rename from framework/tools/spikes/tests/DeterministicFileEolNormalizationContractTest.php rename to framework/tools/tests/Unit/DeterministicFileEolNormalizationContractTest.php index 477b548..d432a4c 100644 --- a/framework/tools/spikes/tests/DeterministicFileEolNormalizationContractTest.php +++ b/framework/tools/tests/Unit/DeterministicFileEolNormalizationContractTest.php @@ -16,11 +16,11 @@ * See LICENSE and NOTICE in the project root for full license information. */ -namespace Coretsia\Tools\Spikes\tests; +namespace Coretsia\Tools\Tests\Unit; -use Coretsia\Tools\Spikes\_support\DeterministicException; -use Coretsia\Tools\Spikes\_support\DeterministicFile; -use Coretsia\Tools\Spikes\_support\ErrorCodes; +use Coretsia\Tools\Support\DeterministicException; +use Coretsia\Tools\Support\DeterministicFile; +use Coretsia\Tools\Support\ErrorCodes; use PHPUnit\Framework\TestCase; final class DeterministicFileEolNormalizationContractTest extends TestCase @@ -31,7 +31,7 @@ protected function setUp(): void { $this->root = rtrim(sys_get_temp_dir(), DIRECTORY_SEPARATOR) . DIRECTORY_SEPARATOR - . 'coretsia-spikes-deterministicfile-' + . 'coretsia-tools-deterministicfile-' . substr(hash('sha256', __FILE__), 0, 16); $this->rmDir($this->root); @@ -91,8 +91,8 @@ public function testReadMissingFileThrowsDeterministicReadFailedWithoutLeakingPa DeterministicFile::readTextNormalizedEol($path); self::fail('Expected DeterministicException was not thrown.'); } catch (DeterministicException $e) { - $this->assertDeterministicCode($e, ErrorCodes::CORETSIA_SPIKES_IO_READ_FAILED); - self::assertSame('spikes-io-read-failed', $e->getMessage()); + $this->assertDeterministicCode($e, ErrorCodes::CORETSIA_TOOLS_IO_READ_FAILED); + self::assertSame('tools-io-read-failed', $e->getMessage()); self::assertNull($e->getPrevious()); self::assertStringNotContainsString($token, $e->getMessage()); @@ -112,8 +112,8 @@ public function testReadValueErrorNullByteIsMappedToReadFailedAndDoesNotLeakPath DeterministicFile::readTextNormalizedEol($path); self::fail('Expected DeterministicException was not thrown.'); } catch (DeterministicException $e) { - $this->assertDeterministicCode($e, ErrorCodes::CORETSIA_SPIKES_IO_READ_FAILED); - self::assertSame('spikes-io-read-failed', $e->getMessage()); + $this->assertDeterministicCode($e, ErrorCodes::CORETSIA_TOOLS_IO_READ_FAILED); + self::assertSame('tools-io-read-failed', $e->getMessage()); self::assertNull($e->getPrevious()); // No path/token leak. @@ -147,8 +147,8 @@ public function testWriteBytesExactFailureThrowsDeterministicWriteFailedWithoutL DeterministicFile::writeBytesExact($dirAsFile, 'abc'); self::fail('Expected DeterministicException was not thrown.'); } catch (DeterministicException $e) { - $this->assertDeterministicCode($e, ErrorCodes::CORETSIA_SPIKES_IO_WRITE_FAILED); - self::assertSame('spikes-io-write-failed', $e->getMessage()); + $this->assertDeterministicCode($e, ErrorCodes::CORETSIA_TOOLS_IO_WRITE_FAILED); + self::assertSame('tools-io-write-failed', $e->getMessage()); self::assertNull($e->getPrevious()); self::assertStringNotContainsString($token, $e->getMessage()); @@ -168,8 +168,8 @@ public function testWriteValueErrorNullByteIsMappedToWriteFailedAndDoesNotLeakPa DeterministicFile::writeBytesExact($path, 'abc'); self::fail('Expected DeterministicException was not thrown.'); } catch (DeterministicException $e) { - $this->assertDeterministicCode($e, ErrorCodes::CORETSIA_SPIKES_IO_WRITE_FAILED); - self::assertSame('spikes-io-write-failed', $e->getMessage()); + $this->assertDeterministicCode($e, ErrorCodes::CORETSIA_TOOLS_IO_WRITE_FAILED); + self::assertSame('tools-io-write-failed', $e->getMessage()); self::assertNull($e->getPrevious()); // No path/token leak. diff --git a/framework/tools/spikes/tests/ErrorCodesRegistryIsConsistentTest.php b/framework/tools/tests/Unit/ErrorCodesRegistryIsConsistentTest.php similarity index 93% rename from framework/tools/spikes/tests/ErrorCodesRegistryIsConsistentTest.php rename to framework/tools/tests/Unit/ErrorCodesRegistryIsConsistentTest.php index ae0a2ac..d3692e7 100644 --- a/framework/tools/spikes/tests/ErrorCodesRegistryIsConsistentTest.php +++ b/framework/tools/tests/Unit/ErrorCodesRegistryIsConsistentTest.php @@ -16,9 +16,9 @@ * See LICENSE and NOTICE in the project root for full license information. */ -namespace Coretsia\Tools\Spikes\tests; +namespace Coretsia\Tools\Tests\Unit; -use Coretsia\Tools\Spikes\_support\ErrorCodes; +use Coretsia\Tools\Support\ErrorCodes; use PHPUnit\Framework\TestCase; final class ErrorCodesRegistryIsConsistentTest extends TestCase @@ -143,7 +143,7 @@ public function testDeterminismRunnerCodesExistInRegistry(): void public function testCodesReferencedByRunnerAndGatesExistInRegistry(): void { // (optional but recommended) Codes used by DeterminismRunner/Gates should exist in registry. - // Best-effort scan: only enforce prefixes owned by Phase 0 rails. + // Best-effort scan: enforce selected ErrorCodes families used by the scanned tooling. $toolsRoot = realpath(__DIR__ . '/../..'); // framework/tools if (!is_string($toolsRoot) || $toolsRoot === '') { self::markTestSkipped('tools-root-unresolvable'); @@ -151,7 +151,9 @@ public function testCodesReferencedByRunnerAndGatesExistInRegistry(): void $candidates = [ $toolsRoot . '/spikes/_support/DeterminismRunner.php', - $toolsRoot . '/spikes/_support/bootstrap.php', + $toolsRoot . '/support/bootstrap.php', + $toolsRoot . '/support/DeterministicFile.php', + $toolsRoot . '/gates/spikes_io_policy_gate.php', $toolsRoot . '/gates/spikes_output_gate.php', $toolsRoot . '/gates/repo_text_normalization_gate.php', ]; @@ -160,8 +162,10 @@ public function testCodesReferencedByRunnerAndGatesExistInRegistry(): void // Do NOT include broad "CORETSIA_SPIKES_" because it also matches env vars like CORETSIA_SPIKES_TMP. $prefixes = [ 'CORETSIA_DETERMINISM_', - 'CORETSIA_SPIKES_BOOTSTRAP_', + 'CORETSIA_TOOLS_BOOTSTRAP_', + 'CORETSIA_TOOLS_IO_', 'CORETSIA_SPIKES_FIXTURE_', + 'CORETSIA_SPIKES_IO_POLICY_', 'CORETSIA_SPIKES_OUTPUT_', 'CORETSIA_REPO_TEXT_', ]; diff --git a/framework/tools/spikes/tests/RepoTextNormalizationScannerTest.php b/framework/tools/tests/Unit/RepoTextNormalizationScannerTest.php similarity index 98% rename from framework/tools/spikes/tests/RepoTextNormalizationScannerTest.php rename to framework/tools/tests/Unit/RepoTextNormalizationScannerTest.php index 1cf9f33..485eeff 100644 --- a/framework/tools/spikes/tests/RepoTextNormalizationScannerTest.php +++ b/framework/tools/tests/Unit/RepoTextNormalizationScannerTest.php @@ -16,9 +16,9 @@ * See LICENSE and NOTICE in the project root for full license information. */ -namespace Coretsia\Tools\Spikes\tests; +namespace Coretsia\Tools\Tests\Unit; -use Coretsia\Tools\Spikes\_support\RepoTextNormalizationScanner; +use Coretsia\Tools\Support\RepoTextNormalizationScanner; use PHPUnit\Framework\TestCase; final class RepoTextNormalizationScannerTest extends TestCase