Skip to content

Add top plugin install smoke#375

Merged
adamziel merged 1 commit into
trunkfrom
codex/top-plugin-install-smoke
May 18, 2026
Merged

Add top plugin install smoke#375
adamziel merged 1 commit into
trunkfrom
codex/top-plugin-install-smoke

Conversation

@adamziel
Copy link
Copy Markdown
Contributor

What it does

Adds a live package-shape smoke test for the popular-plugin compatibility manifest.

php scripts/popular-plugin-install-smoke.php --limit 10
php scripts/popular-plugin-install-smoke.php --slug woocommerce
php scripts/popular-plugin-install-smoke.php

The script downloads the manifest plugin zips, extracts each one into a temporary wp-content/plugins tree, rejects unsafe zip paths, and verifies that the extracted plugin exposes a WordPress plugin header.

Rationale

The top-100 manifest makes the target explicit, but it does not prove the listed packages can actually be installed. This adds a repeatable smoke gate for the package/install side without activating arbitrary plugin code.

Implementation

The smoke uses PHP's ZipArchive, validates one top-level plugin directory matching the manifest slug, extracts into a temporary WordPress-shaped plugins directory, and searches top-level PHP files first for the plugin header.

It intentionally does not execute plugin code or test semantic merge correctness. Semantic merge coverage remains tracked by merge_support in the manifest and the plugin validator tests.

Testing instructions

php -l scripts/popular-plugin-install-smoke.php
umask 0022 && php scripts/popular-plugin-install-smoke.php --limit 3 --cache-dir /tmp/forkpress-popular-plugin-smoke-cache
umask 0022 && php scripts/popular-plugin-install-smoke.php --cache-dir /tmp/forkpress-popular-plugin-smoke-cache
node scripts/popular-plugin-compat.mjs validate
umask 0022 && npm run build
git diff --check

The full smoke passed locally for all 100 manifest plugins.

Add a package-shape smoke test that downloads popular plugin zips, extracts them into a temporary wp-content/plugins tree, and verifies plugin headers without executing plugin code.
@adamziel adamziel merged commit fd91974 into trunk May 18, 2026
7 checks passed
@adamziel adamziel deleted the codex/top-plugin-install-smoke branch May 18, 2026 20:00
@adamziel adamziel mentioned this pull request May 18, 2026
adamziel added a commit that referenced this pull request May 18, 2026
## Release `v0.1.45`

Version bump and release metadata update for `v0.1.45`.

**Changelog draft:**
* Support remote clone SSH credentials
([#373](#373))
* Track top WordPress plugin compatibility
([#374](#374))
* Add top plugin install smoke
([#375](#375))
* Document remote-site onboarding flow
([#376](#376))

**Full changelog:**
v0.1.44...release/v0.1.45

## Next steps

1. **Review** the changes in this pull request.
2. **Push** any additional edits to this branch (`release/v0.1.45`).
3. **Merge** this pull request to publish `v0.1.45`.

Merging will automatically build ForkPress binaries, create a GitHub
release, and update the Homebrew formula.

Co-authored-by: Codex <codex@openai.com>
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