Repository navigation
refactor: replace Python domain utilities with isolated PHP tooling - #97
Merged
Merged
Conversation
Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com>
Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com>
Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com>
…PHPUnit Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com>
Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com>
Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com>
Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com>
Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com>
Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com>
…rences Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com>
Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com>
Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com>
Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com>
vitormattos
marked this pull request as ready for review
October 8, 2026 22:26
Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com>
Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com>
Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com>
…risons Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com>
Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com>
…lization Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com>
feat: audit official NT009 indicators and layout evidence in PHP (#95)
…ifest Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com>
… matrix Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com>
…ot verification services Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com>
Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com>
…oling Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com>
…aint Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com>
Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com>
Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com>
This was referenced Oct 9, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Objective
Use PHP-only tooling to maintain official NFS-e annex snapshots and NT009 source evidence, without loading PhpSpreadsheet in production. The NT009 evidence changes from the former PR
#99have been merged into this feature branch; this PR has not been merged intomain.PHP version policy (review follow-up)
composer.jsonis the single version-policy source:require.phpdefines the minimum library compatibility, whileextra.ci.php-matrixandextra.ci.php-defaultdefine deliberate CI coverage and its primary PHP version.tools/bin/ci-php.phpexposesminimum,matrix,primary,validate, andassert-runtimewithout dependencies..github/actions/setup-project-phpresolves the minimum from Composer; the PHPUnit job derives its dynamic strategy matrix and coverage/integration version from that policy.php-version: "8.x"remains in workflow YAML.vendor-bin/domains/composer.jsonno longer duplicates the PHP version; Composer install/update hooks validate the interpreter against the root constraint. The isolated lockfile was regenerated without changing any of the 33 locked package versions.Official-source CLI and testability
tools/bin/domains.php download --ids=... --output=...replaces the long embedded PHP downloader in Official Snapshot Reproduction.tools/bin/domains.php verify-indicators --annex-vii=...replaces the long embedded PHP verifier in NT009 Source Evidence.OfficialAnnexDownloaderrejects non-official URLs, incorrect IDs, missing/bad observed SHA-256 values, changed bytes and HTML masquerading as XLSX before writing output. Fetching is injectable for offline PHPUnit tests.Nt009Inspector::verifyIndicatorSnapshot()checks exact Annex VII triplets, cardinality, duplicates and order against the original government workbook; exercised via offline fixtures.domain-tables,source-watchandauditcommands still operate under the same isolated PhpSpreadsheet installation.Original deliverables retained
OfficialDomainCatalog, XSD, XML generation and downstream consumer are not changed.resources/domains/sources.json.Validation
The root and isolated
composer.jsonfiles passcomposer validate --strict. The isolated PHPUnit suite, PHP syntax checks, linting, static analysis, minimum-dependency tests, REUSE and commit conventions passed on the updated branch. The actual (not merely advisory workflow-level) Official Snapshot Reproduction and NT009 Source Evidence jobs also succeeded, reproducing the five production snapshots and verifying all 40 Annex VII triplets against government XLSX files.On commit
da6cd5d91926b84cd1de31ba90b4956bf6dbbf3c, eight of nine workflows passed. The full application PHPUnit workflow remains pending because another older PHPunit workflow run is still active. Do not treat the PR as fully green until that check finishes; inspect the live status before merging. All eight commits in this CI refactor were individually verified as cryptographically signed and DCO-compliant.Deliberate exclusions
No merge is requested, and this PR does not claim that NT009 is effective for production issuance. The activation dates, XML contract and conditional tax rules still need their own review before issue
#95is complete.