You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Remove the Rust parser extension and its documentation - #566
Included review availability: This review used your included allowance. Your plan provides up to 2 included reviews per hour; 1 remain after this review.
📝 Walkthrough
The SQLite integration now uses the PHP MySQL lexer and parser. The native Rust extension, its WebAssembly build and publishing workflows, and native-specific validation tools were removed. PHPUnit and benchmark workflows now run without native-extension paths.
Changes: MySQL Parser Runtime and Tooling
Layer / File(s)
Summary
Use the PHP parser path packages/mysql-on-sqlite/src/load.php, packages/mysql-on-sqlite/src/sqlite/class-wp-mysql-on-sqlite.php, packages/mysql-on-sqlite/src/parser/class-wp-parser-grammar.php, packages/mysql-on-sqlite/src/mysql/native/*, packages/mysql-on-sqlite/tests/mysql/WP_MySQL_Parser_Instanceof_Tests.php
The loader always requires the PHP lexer and parser. SQLite parser creation uses remaining lexer tokens. Native parser classes and bridge code were removed. New tests check parser inheritance and AST output.
Remove the native extension and WASM build packages/php-ext-wp-mysql-parser/**, .github/workflows/publish-wasm-extension-artifact.yml, .github/workflows/wasm-spike.yml, .gitignore, README.md
The Rust extension, its generator, and its WebAssembly build and publishing files were deleted. Extension-specific package documentation, the root README section, and the target ignore rules were removed.
Update test and benchmark workflows .github/workflows/phpunit-tests.yml, .github/workflows/wp-tests-phpunit*, packages/mysql-on-sqlite/tests/bootstrap.php, packages/mysql-on-sqlite/tests/mysql/native/*, packages/mysql-on-sqlite/tests/tools/*
PHPUnit workflows no longer build or verify the native extension. Native-specific tests and verification tools were removed. The lexer and parser benchmarks use PHP tokens and report php as the implementation.
This change removes the optional native parser extension and makes the SQLite driver always use the PHP parser. No concrete merge-blocking risk remains, and installations that still have the old extension enabled should keep working.
Pre-merge checks: 4 · 1
Failed checks: 1 warning
Check name
Status
Explanation
Resolution
Docstring Coverage
Docstring coverage is 25.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 4 functions across 5 files. (1 skipped: 1…
Write docstrings for the functions missing them to satisfy the coverage threshold.
Passed checks: 4 passed
Check name
Status
Explanation
Description Check
Check skipped - CodeRabbit’s high-level summary is enabled.
Title check
The title clearly and concisely describes the primary change: removal of the Rust parser extension and its documentation.
Linked Issues check
Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check
Check skipped because no linked issues were found for this pull request.
Full details: Docstring Coverage
Explanation
Docstring coverage is 25.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 4 functions across 5 files. (1 skipped: 1 unsupported.)
Resolution
Write docstrings for the functions missing them to satisfy the coverage threshold.
✨ Finishing Touches: 💡 1
📝 Generate docstrings: 💡
Commit to this branch
Create a new PR
🧪 Generate unit tests (beta)
Commit to this branch
Create a new PR
Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts
Warning
Some tools did not complete. Review the errors below.
🔧 PHPStan (2.3.0)
PHPStan reported 1 non-file analysis error(s); analysis is incomplete
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.
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
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.
Removes the Rust MySQL lexer/parser package, its PHP bridge, native-only tests and benchmarks, CI jobs, WASM publishing, and docs.
The driver and benchmarks now always use PHP. Parser reuse, parser type/AST checks, and the PHP 7.2–8.5/SQLite CI matrix remain.
Testing
Summary by CodeRabbit