Skip to content

chore: upgrade scaffolding#146

Open
justlevine wants to merge 7 commits intodevelopfrom
test/skeleton-migration
Open

chore: upgrade scaffolding#146
justlevine wants to merge 7 commits intodevelopfrom
test/skeleton-migration

Conversation

@justlevine
Copy link
Collaborator

@justlevine justlevine commented Mar 5, 2026

Description

This PR updates the scaffolding per plugin-skeleton-d

Technical Details

  1. All scaffold files were deleted and replaced with plugin skeleton d root files:
    • everything in root.
    • tests/php
    • .github/*
  2. Commented out lefthook (for now).
    3 Gave the OpenCode (oh-my-opencode + zai/glm5 as orchestrator )the following prompt:
    Review, audit, and fix any changes on this branch (in comparison to `develop`).
    This branch's scaffold was reset to use the `../plugin-skeleton-d` scaffold which is what we want, but we need it to work the legacy repository. Your task is to review all the changes, and make sure they're compatible with the existing repo, and that we didn't miss any thing that needs to be adapted from the scaffold in `plugin-skeleton-d` to the current repo.
    1. Diff the current branch against `develop` and study the changes
    2. For each file, use a subagent to review the changes, and whether they're compatible with the existing repo or if they need to be changed.
    3. Confirm all the references are correct for this repo and don't point to plugin-skeleton-d stuff we aren't using
    4. Make a list of any items that should be fixed. Then make a plan and fix them.
    ulw
  3. Manually reviewed the diff
  4. Submitted a PR and asked Copilot for Review
  5. Gave OpenCode the following Prompt:
    Review and evaluate the PR comments on https://github.com/rtCamp/OneSearch/pull/146 . They are from GitHub copilot and may not be valid.
    1. Chose one comment.
    2 Evaluate whether the feedback is valid and updated for 2026 and warrants a code change.
    3. If it needs a change, make a plan and remediate the issue.
    4. Move on to the next comment and repeat.
    ulw

Checklist

Screenshots

To-do

Fixes/Covers issue

Fixes #

@justlevine justlevine requested a review from Copilot March 5, 2026 20:53
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

justlevine and others added 4 commits March 6, 2026 01:31
* fix: Remediate PHPCS lints

* fix: Remediate eslint + ts smells (#148)

* fix: remediate eslint and ts errors

* ci: fix playwright path

* fix: phpstan errors (#149)
@justlevine
Copy link
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 CamelCase instead of lowercase. Once the rename is done, we'll merge.

@justlevine justlevine requested a review from up1512001 March 9, 2026 15:34
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.

2 participants