Skip to content

Reframe CI: per-extension isolated validation#14

Open
vm-pranavan wants to merge 2 commits into
CanastaWiki:mainfrom
vm-pranavan:ci/add-extension-tests
Open

Reframe CI: per-extension isolated validation#14
vm-pranavan wants to merge 2 commits into
CanastaWiki:mainfrom
vm-pranavan:ci/add-extension-tests

Conversation

@vm-pranavan

@vm-pranavan vm-pranavan commented Jun 17, 2026

Copy link
Copy Markdown
Contributor

Overview
This PR updates our CI setup to run tests for extensions like Cargo and PageForms that we were previously skipping entirely due to a few minor incompatibilities with MediaWiki 1.43 / PHP 8.3. Instead of skipping their entire test suites, we can now run all tests while excluding only the specific files that are failing.

I've also cleaned up the coexistence testing configuration to remove some old extensions that don't exist in our current manifest, and improved how we capture logs when coexistence checks fail.

Key Changes

  • Partial Test Exclusions for PHPUnit

    • Added a new partial_test_compat section in .ci/skip_list.yaml to declare which files should be bypassed for each extension.
    • Updated load_skip_list and build_manifest in scripts/parse_yaml.py to parse this list and pass the excluded file paths in the manifest.
    • Updated run_phpunit in .ci/run_isolated_tests.py to support exclusions. Since PHPUnit 9 doesn't have an --exclude-file flag, we dynamically walk the directory, filter out the excluded paths, and pass the remaining test files individually.
      • Cargo test bypassed: CargoFeedFormatTest.php (fails because MW 1.43 changed heading HTML markup).
      • PageForms tests bypassed: PFFormLinkerTest.php (environment-dependent assertion) and PFHelperFormActionTest.php (references the deprecated/removed SkinTemplate class).
  • Coexistence Group Cleanup & Diagnostics

    • Removed SemanticBreadcrumbLinks, SemanticFormsSelect, and SemanticTasks from the semantic-ecosystem group in .ci/coexistence_groups.yaml since they are not present in the 1.43.yaml manifest.
    • Updated .github/workflows/ci.yml to log verify.stdout if verify.stderr is empty when a coexistence group fails to load, which helps capture PHP errors and warnings.

…sions

- Add partial_test_compat category to skip_list.yaml for extensions that
  pass most tests but have a few MW 1.43-incompatible test files.
  Cargo and PageForms are promoted from load-only to full validation.

- Update parse_yaml.py to load partial_test_compat entries and attach
  exclude_tests file lists to manifest entries.

- Update run_isolated_tests.py to enumerate test files and exclude
  specific ones (PHPUnit 9 compat — no --exclude-file flag).
@vm-pranavan vm-pranavan force-pushed the ci/add-extension-tests branch from 600a211 to cfa395f Compare June 17, 2026 13:46
….43.yaml

Remove SemanticBreadcrumbLinks, SemanticFormsSelect, and SemanticTasks
from the semantic-ecosystem group since they don't exist in the upstream
1.43.yaml manifest. Also improve error reporting to show stdout when
stderr is empty.
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