Open
Conversation
Contributor
There was a problem hiding this comment.
Pull request overview
This PR modernizes the project scaffolding to align with newer WordPress tooling, CI automation, and testing infrastructure.
Changes:
- Upgrades build/lint tooling (wp-scripts, ESLint/Stylelint/Prettier/TS configs) and adds Playwright/Jest setup.
- Introduces modular GitHub Actions CI with reusable workflows, release automation via Release Please, and Playground PR previews.
- Updates PHP tooling (PHPUnit 11.5 config, PHPCS ruleset, PHPStan config) and refactors uninstall logic.
Reviewed changes
Copilot reviewed 78 out of 87 changed files in this pull request and generated 10 comments.
Show a summary per file
| File | Description |
|---|---|
| webpack.config.js | Updates webpack config to integrate with newer @wordpress/scripts defaults and plugin ordering. |
| uninstall.php | Refactors uninstall flow and option/transient cleanup logic. |
| tsconfig.base.json | Adds strict TypeScript base configuration for shared type-checking defaults. |
| tests/php/bootstrap.php | Updates PHPUnit bootstrap pathing and strict types for the new tests layout. |
| tests/php/TestCase.php | Adds a WP_UnitTestCase base class with PHPUnit 11 compatibility helpers. |
| tests/js/tsconfig.json | Adds a TS config dedicated to Jest/unit test typechecking. |
| tests/js/setup.ts | Adds Jest setup (jest-dom + mock clearing). |
| tests/e2e/settings/activation.spec.ts | Adds a Playwright E2E smoke test for plugin activation lifecycle. |
| release-please-config.json | Adds Release Please configuration for automated releases. |
| playwright.config.ts | Adds Playwright config extending WP scripts defaults and sets output paths. |
| phpunit.xml.dist | Upgrades PHPUnit config to 11.5 schema and new suite/source/coverage settings. |
| phpstan.neon.dist | Updates PHPStan config (phpVersion max) and removes an ignore rule. |
| phpcs.xml.dist | Removes old PHPCS ruleset file in favor of the new dotfile ruleset. |
| package.json | Updates engines/deps/scripts; adds test/lint/release-related tooling. |
| onesearch.php | Improves plugin header metadata and constants, and tightens ABSPATH guard. |
| languages/onesearch-features.pot | Removes a generated POT file from the repo. |
| inc/Utils.php | Removes extra whitespace line for formatting consistency. |
| inc/Modules/Settings/Settings.php | Minor formatting for constants grouping readability. |
| inc/Modules/Search/Watcher.php | Removes extra whitespace line for formatting consistency. |
| inc/Modules/Search/Search.php | Simplifies blockName access using null coalescing. |
| inc/Modules/Search/Algolia.php | Removes extra whitespace line for formatting consistency. |
| inc/Modules/Rest/Search_Controller.php | Adds strict types and cleans docblocks/formatting. |
| inc/Modules/Rest/Governing_Data_Handler.php | Adds strict types and cleans docblocks/formatting. |
| inc/Modules/Rest/Governing_Data_Controller.php | Adds strict types and cleans formatting. |
| inc/Modules/Rest/Basic_Options_Controller.php | Adds strict types and cleans docblocks/formatting. |
| inc/Modules/Core/Rest.php | Removes extra whitespace line for formatting consistency. |
| inc/Contracts/Interfaces/Registrable.php | Removes extra whitespace line for formatting consistency. |
| docs/SECURITY.md | Normalizes apostrophe character for consistency. |
| docs/DEVELOPMENT.md | Expands and modernizes contributor/developer documentation and commands. |
| docs/CONTRIBUTING.md | Updates contribution flow to main-branch + conventional commits and copy edits. |
| composer.json | Updates dev tooling deps, autoload, stability, and adds license metadata. |
| blueprint.json | Adds WordPress Playground blueprint for demos/PR previews. |
| assets/src/js/utils.ts | Reformats constants export for readability. |
| assets/src/components/SiteTable.tsx | Refactors formatting and props destructuring for clarity. |
| assets/src/components/SiteSettings.tsx | Refactors formatting and improves readable JSX/handlers. |
| assets/src/components/SiteSearchSettings.js | Refactors formatting; improves readability of async flows and JSX. |
| assets/src/components/SiteModal.tsx | Refactors formatting; improves readable JSX/handlers. |
| assets/src/components/SiteIndexableEntities.js | Refactors formatting and async fetch readability. |
| assets/src/components/MultiSelectChips.js | Refactors formatting and JSX readability. |
| assets/src/components/AlgoliaSettings.tsx | Refactors formatting and improves readability of validation logic. |
| assets/src/admin/settings/page.tsx | Refactors formatting and minor logic readability tweaks. |
| assets/src/admin/settings/index.tsx | Fixes dependency header comment grouping. |
| assets/src/admin/search/index.js | Refactors formatting; minor consistency updates. |
| assets/src/admin/onboarding/page.tsx | Refactors dependency header ordering and formatting. |
| assets/src/admin/onboarding/index.tsx | Fixes dependency header comment grouping. |
| LICENSE.md | Adds GPLv2 license text as markdown file. |
| LICENSE | Removes duplicate plain LICENSE file in favor of LICENSE.md. |
| .wp-env.json | Updates wp-env config and debug logging pathing. |
| .stylelintrc.json | Removes old JSON stylelint config in favor of JS config. |
| .stylelint.config.js | Adds Stylelint config file. |
| .release-please-manifest.json | Adds Release Please version manifest. |
| .prettierrc.js | Adds Prettier config extending WP defaults with repo-specific overrides. |
| .prettierignore | Adds ignore list for formatting artifacts and lockfiles. |
| .phpcs.xml.dist | Adds new PHPCS ruleset using rtCamp standards and updated scan targets. |
| .lintstagedrc.mjs | Adds lint-staged configuration for pre-commit automation. |
| .lefthook.yml | Adds (currently commented) Lefthook hook configuration file. |
| .github/workflows/test.yml | Removes legacy monolithic workflow in favor of reusable CI workflows. |
| .github/workflows/reusable-wp-playground-pr-preview.yml | Adds reusable workflow for Playground PR previews. |
| .github/workflows/reusable-phpunit.yml | Adds reusable PHPUnit workflow for CI. |
| .github/workflows/reusable-phpstan.yml | Adds reusable PHPStan workflow for CI. |
| .github/workflows/reusable-phpcs.yml | Adds reusable PHPCS workflow for CI. |
| .github/workflows/reusable-lint-css-js.yml | Adds reusable JS/CSS lint workflow (ESLint/Stylelint/Prettier/tsc). |
| .github/workflows/reusable-jest.yml | Adds reusable Jest workflow with optional Codecov upload. |
| .github/workflows/reusable-e2e.yml | Adds reusable Playwright E2E workflow. |
| .github/workflows/reusable-build.yml | Adds reusable build workflow producing plugin zip artifact. |
| .github/workflows/release.yml | Replaces release-on-tag with Release Please-driven release pipeline and asset upload. |
| .github/workflows/pr-title.yml | Adds semantic PR title validation workflow. |
| .github/workflows/copilot-setup-steps.yml | Updates Copilot setup workflow steps for the new toolchain. |
| .github/workflows/ci.yml | Adds modular CI pipeline calling reusable workflows based on changed paths. |
| .github/workflows/README.md | Documents the workflow architecture and local testing tips. |
| .github/dependabot.yml | Updates dependabot grouping strategy and adds GitHub Actions updates. |
| .github/.codecov.yml | Adds Codecov config for path fixes, targets, and ignores. |
| .gitattributes | Adds export-ignore rules for distribution packaging and linguist hints. |
| .eslintrc.json | Removes old JSON ESLint config in favor of JS config. |
| .eslintrc.js | Adds new ESLint configuration and suite-specific overrides. |
| .eslintignore | Updates ignore patterns to match new repo structure/output dirs. |
| .editorconfig | Updates whitespace/indent rules (notably for md/txt/yaml groups). |
| .distignore | Adds distignore for composer-installed packaging exclusions. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
You can also share your feedback on Copilot code review. Take the survey.
This was referenced Mar 5, 2026
Collaborator
Author
|
@up1512001 - only things that need reviewing here are the root config files, all the internals got stacked down in #147 . The last two CI failures (e2e and the build artifact) are caused because the repo is |
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.
Description
This PR updates the scaffolding per plugin-skeleton-d
Technical Details
root.tests/php.github/*lefthook(for now).3 Gave the OpenCode (oh-my-opencode + zai/glm5 as orchestrator )the following prompt:
Checklist
Screenshots
To-do
Fixes/Covers issue
Fixes #