Skip to content

Add upstream compatibility and robustness regression corpus - #20

Merged
erseco merged 5 commits into
feature/typed-project-apifrom
test/upstream-regression-corpus
Sep 19, 2026
Merged

erseco merged 5 commits into
feature/typed-project-apifrom
test/upstream-regression-corpus

Conversation

@erseco

@erseco erseco commented Sep 19, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • add a deterministic robustness corpus for malformed XML, encoded/Unicode asset references, traversal-like paths, malformed iDevice state and cyclic page hierarchies
  • add an upstream fixture corpus runner that discovers real .elp / .elpx projects containing content.xml or contentv3.xml
  • compare lightweight inspection with full parsing for upstream fixtures
  • add a scheduled weekly Upstream Compatibility workflow
  • use sparse checkout to download only upstream test/fixtures
  • run the upstream workflow in this PR when its workflow/runner changes, while avoiding the cost on unrelated future PRs
  • document local and scheduled compatibility testing

Stack

This PR is stacked on #19 and targets feature/typed-project-api.

Regular CI

The deterministic regression corpus passes on PHP 8.0–8.5, coverage, Composer validation, PHPCS and PHPStan.

Upstream CI

Opening this PR triggers the dedicated Upstream Compatibility workflow against current fixtures from exelearning/exelearning.

@erseco
erseco added this pull request to stack #25 September 19, 2026 20:07
@erseco
erseco merged commit d253179 into main Sep 19, 2026
27 checks passed
@erseco
erseco deleted the test/upstream-regression-corpus branch September 19, 2026 20:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant