Skip to content

Local dev environment, lint tooling, and manual release pipeline#1035

Merged
donnchawp merged 22 commits into
trunkfrom
add-make-dev-env
Apr 14, 2026
Merged

Local dev environment, lint tooling, and manual release pipeline#1035
donnchawp merged 22 commits into
trunkfrom
add-make-dev-env

Conversation

@donnchawp
Copy link
Copy Markdown
Contributor

@donnchawp donnchawp commented Apr 13, 2026

Summary

This PR originally added a wp-env-based dev environment; it has since grown to also replace the Jetpack-driven release automation with a local manual pipeline and add a phpcs-changed-based lint flow. The pieces are:

Local development

  • Makefile wraps @wordpress/env so contributors can make install && make up to get WordPress on http://localhost:8888 with the plugin pre-mounted.
  • make seed / make unseed create and safely remove 100 randomly named posts and 100 pages tagged with _wpsc_seed meta.
  • tests/dev/mu-plugins/wpsc-loopback-fix.php routes PHP-side loopback requests (preloader, WP-Cron, REST self-calls) to the internal docker hostname while preserving the Host: localhost:8888 header.

Lint tooling

  • tools/phpcs-wrapper.sh / tools/phpcbf-wrapper.sh and tools/run-phpcs-changed.sh / tools/run-phpcbf-changed.sh drive phpcs-changed so only edited hunks are checked.
  • Wired up via composer lint / lint-fix and make lint / make lint-fix.

Manual release pipeline (replaces Jetpack automation)

  • make pre-build VERSION=x.y.z — validates the version, requires trunk to be up to date with origin/trunk, creates a release/<version> branch, bumps Stable tag: in readme.txt and Version: in wp-cache.php, generates a list of PRs merged in the last six months via gh pr list, opens readme.txt + the PR list in vim for manual changelog editing, shows the diff, then pushes the branch and opens a PR.
  • make build — rsyncs the plugin tree into build/wp-super-cache/ and zips it to build/wp-super-cache.zip using scripts/exclude.lst (shared by rsync and zip).
  • make publish — creates a GitHub release (vX.Y.Z) from readme.txt + build/wp-super-cache.zip with the extracted changelog as release notes, then optionally publishes to WordPress.org SVN via shallow checkout, rsync into trunk/, and a server-side svn cp to tags/<version>.
  • Removes the Jetpack release workflows (autorelease, autotagger, wp-svn-autopublish, changelogger) and their helper scripts.
  • Removes the related composer.json extra keys and the automattic/jetpack-changelogger dev dependency.
  • Deletes CHANGELOG.md; readme.txt is now the single source of truth.

Housekeeping

  • Ignores build/ and the root package-lock.json.
  • README rewritten as a developer/contributor landing page documenting the new targets.

Test plan

Reviewer-safe checks only — make pre-build / make publish are excluded because they cut a real release.

  • make install && make up succeeds; http://localhost:8888 serves WordPress.
  • make seed creates 200 items; make unseed removes only those.
  • From make cli, wp eval 'echo wp_remote_retrieve_response_code(wp_remote_get(home_url("/")));' prints 200.
  • make lint runs phpcs-changed cleanly on a PR branch with only lint-clean changes.
  • make build produces build/wp-super-cache/ and build/wp-super-cache.zip with no tests, tools, composer.*, Makefile, or README.md inside the zip.
  • make down / make destroy tear the environment down cleanly.

make pre-build and make publish will be exercised by the maintainer when the next release is cut.

- Makefile with install/up/down/destroy/logs/cli/wp/seed/unseed/lint targets.
- .wp-env.json spins up a disposable WordPress on http://localhost:8888 with
  the plugin live-mounted.
- tests/dev/seed.php creates 100 randomly named posts and 100 pages tagged
  with _wpsc_seed meta; tests/dev/unseed.php removes only those.
- tests/dev/mu-plugins/wpsc-loopback-fix.php rewrites loopback HTTP requests
  from http://localhost:8888 to the internal docker service, preserving the
  Host header so WordPress does not canonical-redirect. Needed so the
  preloader, WP-Cron and REST self-calls work from inside the containers.
- README documents the new workflow.
Add @Package tags, replace fwrite/printf with WP_CLI methods, rename
loop variables that overrode WordPress globals, and gate the scripts
on WP_CLI instead of ABSPATH so output is properly escaped.
Add tools/ wrapper scripts so PHPCS only inspects changed hunks,
expose them via composer scripts and the Makefile, and document the
lint workflow in the README.
Copy link
Copy Markdown

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

Adds a local development workflow for WP Super Cache using @wordpress/env and make targets, plus helper scripts for seeding content and running PHPCS/PHPCBF against changed PHP files.

Changes:

  • Introduces a Makefile and .wp-env.json to spin up a disposable WordPress + plugin mount via Docker/wp-env.
  • Adds WP-CLI dev scripts to seed/unseed content and a dev mu-plugin to fix loopback HTTP requests inside containers.
  • Adds local lint tooling (composer lint / lint-fix) to run PHPCS/PHPCBF on changed files.

Reviewed changes

Copilot reviewed 11 out of 11 changed files in this pull request and generated 6 comments.

Show a summary per file
File Description
tools/run-phpcs-changed.sh Runs PHPCS against staged/unstaged/untracked/branch PHP changes using phpcs-changed.
tools/run-phpcbf-changed.sh Runs PHPCBF on the set of changed PHP files.
tools/phpcs-wrapper.sh Wrapper to run PHPCS with deprecation warnings suppressed.
tools/phpcbf-wrapper.sh Wrapper to run PHPCBF with deprecation warnings suppressed.
tests/dev/seed.php WP-CLI eval-file script to create randomized posts/pages tagged with _wpsc_seed.
tests/dev/unseed.php WP-CLI eval-file script to delete only previously seeded content.
tests/dev/mu-plugins/wpsc-loopback-fix.php mu-plugin to rewrite localhost loopback requests to the internal docker service hostname.
README.md Documents the Makefile-based quick start and updated linting commands.
Makefile Adds wp-env lifecycle targets plus seed/unseed and lint convenience targets.
composer.json Adds composer scripts for phpcs, phpcbf, lint, and lint-fix.
.wp-env.json Configures wp-env mappings/config for mounting the plugin and dev mu-plugins.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread Makefile Outdated
Comment thread Makefile Outdated
Comment thread README.md Outdated
Comment thread tools/run-phpcbf-changed.sh Outdated
Comment thread tests/dev/mu-plugins/wpsc-loopback-fix.php
Comment thread tests/dev/mu-plugins/wpsc-loopback-fix.php
donnchawp and others added 4 commits April 13, 2026 17:08
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
@donnchawp donnchawp self-assigned this Apr 13, 2026
Replace the jetpack-changelogger release flow with two local scripts:

- scripts/pre-build.sh bumps the version in readme.txt and wp-cache.php,
  generates a PR list for the last six months via `gh pr list`, opens
  readme.txt and the log in vim for manual changelog editing, then
  pushes a release/<version> branch and opens a PR.
- scripts/build-plugin.sh rsyncs the plugin into build/wp-super-cache/
  and zips it using scripts/exclude.lst (shared by rsync and zip).

Remove CHANGELOG.md since readme.txt is now the single source of truth.
Ignore the build/ directory.
- readme.txt: CHANGELOG.md link replaced with GitHub releases URL.
- Makefile: set SHELL := /bin/bash so `read -p` works on Linux hosts
  where /bin/sh is dash.
- scripts/pre-build.sh: use `sed -i ''` directly instead of `-i.bak && rm`
  so an interrupted run can't leave `.bak` files behind.
Delete the workflows and helper scripts that implemented the old
Jetpack-driven release pipeline so they do not fight the new manual
`make pre-build` / `make build` / `make publish` flow:

- .github/workflows/autotagger.yml (tag pushes from CHANGELOG.md).
- .github/workflows/autorelease.yml (GitHub release from a tag push).
- .github/workflows/wp-svn-autopublish.yml (WordPress.org SVN publish).
- .github/workflows/changelogger.yml (per-PR changelog entry check).
- .github/files/autorelease.sh and wp-svn-autopublish.sh helpers.

Add `make publish` via scripts/publish.sh: creates a GitHub release
from readme.txt + build/wp-super-cache.zip, then optionally publishes
to WordPress.org SVN (shallow checkout under build/svn, rsync into
trunk, svn cp to tags/<version>).
Remove the composer `extra` keys that drove the deleted release
workflows (autorelease, autotagger, wp-svn-autopublish, changelogger
link-template, release-branch-prefix) and drop automattic/jetpack-
changelogger from require-dev. Keep the changelog/ entries for the
next release; they can be removed afterwards.

composer.lock is now stale — run `composer update --lock` to refresh.
@donnchawp donnchawp changed the title Add Makefile and wp-env-based local dev environment Local dev environment, lint tooling, and manual release pipeline Apr 14, 2026
@stephdau
Copy link
Copy Markdown
Member

make install && make up succeeds; http://localhost:8888/ serves WordPress.

Screenshot 2026-04-14 at 12 35 49

@stephdau
Copy link
Copy Markdown
Member

make seed creates 200 items; make unseed removes only those.

Screenshot 2026-04-14 at 12 39 28 Screenshot 2026-04-14 at 12 39 50

@stephdau
Copy link
Copy Markdown
Member

From make cli, wp eval 'echo wp_remote_retrieve_response_code(wp_remote_get(home_url("/")));' prints 200.

epsi@Mac wp-super-cache % make cli
COMPOSE_PROJECT_NAME=wp-super-cache npx --yes @wordpress/env run cli bash
ℹ Starting 'bash' on the cli container. Exit bash with ctrl-d.

epsi@e9dc23a7a307:/var/www/html$ wp eval 'echo wp_remote_retrieve_response_code(wp_remote_get(home_url("/"))) . "\n";'
200

@stephdau
Copy link
Copy Markdown
Member

make lint runs phpcs-changed cleanly on a PR branch with only lint-clean changes.

epsi@Mac wp-super-cache % make lint
composer lint
PHP Deprecated:  Case statements followed by a semicolon (;) are deprecated, use a colon (:) instead in phar:///usr/local/bin/composer/vendor/react/promise/src/functions.php on line 300

Deprecated: Case statements followed by a semicolon (;) are deprecated, use a colon (:) instead in phar:///usr/local/bin/composer/vendor/react/promise/src/functions.php on line 300
Deprecation Notice: The predefined locally scoped $http_response_header variable is deprecated, call http_get_last_response_headers() instead in phar:///usr/local/bin/composer/vendor/justinrainbow/json-schema/src/JsonSchema/Uri/Retrievers/FileGetContents.php:57
Running PHPCS for branch PHP changes against origin/trunk...

@stephdau
Copy link
Copy Markdown
Member

make build produces build/wp-super-cache/ and build/wp-super-cache.zip with no tests, tools, composer.*, Makefile, or README.md inside the zip.

epsi@Mac wp-super-cache % make build
This builds build/wp-super-cache.zip from the current working tree.
Have you run pre-build and merged the release PR? Press RETURN to continue... 
./scripts/build-plugin.sh
Built build/wp-super-cache.zip
epsi@Mac wp-super-cache % ll ./build 
total 2696
drwxr-xr-x   4 epsi  staff      128 Apr 14 12:48 .
drwxr-xr-x@ 47 epsi  staff     1504 Apr 14 12:48 ..
drwxr-xr-x  21 epsi  staff      672 Apr 14 12:48 wp-super-cache
-rw-r--r--   1 epsi  staff  1377491 Apr 14 12:48 wp-super-cache.zip
epsi@Mac wp-super-cache % ll build/wp-super-cache/
total 816
drwxr-xr-x  21 epsi  staff     672 Apr 14 12:48 .
drwxr-xr-x   4 epsi  staff     128 Apr 14 12:48 ..
-rw-r--r--   1 epsi  staff   18636 Apr 14 12:32 LICENSE.txt
-rw-r--r--   1 epsi  staff    2506 Apr 14 12:32 SECURITY.md
-rw-r--r--   1 epsi  staff    1128 Apr 14 12:32 advanced-cache.php
drwxr-xr-x   8 epsi  staff     256 Apr 14 12:32 assets
drwxr-xr-x   6 epsi  staff     192 Apr 14 12:32 inc
drwxr-xr-x   4 epsi  staff     128 Apr 14 12:32 js
drwxr-xr-x  34 epsi  staff    1088 Apr 14 12:32 languages
-rwxr-xr-x   1 epsi  staff   16492 Apr 14 12:32 ossdl-cdn.php
drwxr-xr-x  10 epsi  staff     320 Apr 14 12:32 partials
drwxr-xr-x   9 epsi  staff     288 Apr 14 12:32 plugins
-rw-r--r--   1 epsi  staff   34413 Apr 14 12:33 readme.txt
drwxr-xr-x  14 epsi  staff     448 Apr 14 12:32 rest
drwxr-xr-x   3 epsi  staff      96 Apr 14 12:32 src
drwxr-xr-x   3 epsi  staff      96 Apr 14 12:32 styling
-rw-r--r--   1 epsi  staff    2418 Apr 14 12:32 wp-cache-base.php
-rw-r--r--   1 epsi  staff    3550 Apr 14 12:32 wp-cache-config-sample.php
-rw-r--r--   1 epsi  staff    6706 Apr 14 12:32 wp-cache-phase1.php
-rw-r--r--   1 epsi  staff  124921 Apr 14 12:32 wp-cache-phase2.php
-rw-r--r--   1 epsi  staff  187608 Apr 14 12:32 wp-cache.php

And:

epsi@Mac wp-super-cache % zipinfo build/wp-super-cache.zip 
Archive:  build/wp-super-cache.zip
Zip file size: 1377491 bytes, number of entries: 96
drwxr-xr-x  3.0 unx        0 bx stor 26-Apr-14 12:48 wp-super-cache/
drwxr-xr-x  3.0 unx        0 bx stor 26-Apr-14 12:32 wp-super-cache/inc/
-rw-r--r--  3.0 unx      771 tx defN 26-Apr-14 12:32 wp-super-cache/inc/preload-notification.php
-rw-r--r--  3.0 unx     8119 tx defN 26-Apr-14 12:32 wp-super-cache/inc/boost.php
-rw-r--r--  3.0 unx     6294 tx defN 26-Apr-14 12:32 wp-super-cache/inc/delete-cache-button.php
-rw-r--r--  3.0 unx      958 tx defN 26-Apr-14 12:32 wp-super-cache/inc/delete-cache-button.js
drwxr-xr-x  3.0 unx        0 bx stor 26-Apr-14 12:32 wp-super-cache/plugins/
-rw-r--r--  3.0 unx     3969 tx defN 26-Apr-14 12:32 wp-super-cache/plugins/badbehaviour.php
-rw-r--r--  3.0 unx     2398 tx defN 26-Apr-14 12:32 wp-super-cache/plugins/multisite.php
-rw-r--r--  3.0 unx     8265 tx defN 26-Apr-14 12:32 wp-super-cache/plugins/dynamic-cache-test.php
-rw-r--r--  3.0 unx     5171 tx defN 26-Apr-14 12:32 wp-super-cache/plugins/wptouch.php
-rw-r--r--  3.0 unx     2889 tx defN 26-Apr-14 12:32 wp-super-cache/plugins/awaitingmoderation.php
-rw-r--r--  3.0 unx     3889 tx defN 26-Apr-14 12:32 wp-super-cache/plugins/jetpack.php
-rw-r--r--  3.0 unx     4570 tx defN 26-Apr-14 12:32 wp-super-cache/plugins/domain-mapping.php
drwxr-xr-x  3.0 unx        0 bx stor 26-Apr-14 12:32 wp-super-cache/js/
-rw-r--r--  3.0 unx     4135 tx defN 26-Apr-14 12:32 wp-super-cache/js/admin.js
-rw-r--r--  3.0 unx     3451 tx defN 26-Apr-14 12:32 wp-super-cache/js/preload-notification.js
-rw-r--r--  3.0 unx     6706 tx defN 26-Apr-14 12:32 wp-super-cache/wp-cache-phase1.php
-rw-r--r--  3.0 unx   124921 tx defN 26-Apr-14 12:32 wp-super-cache/wp-cache-phase2.php
-rw-r--r--  3.0 unx     1128 tx defN 26-Apr-14 12:32 wp-super-cache/advanced-cache.php
drwxr-xr-x  3.0 unx        0 bx stor 26-Apr-14 12:32 wp-super-cache/languages/
-rw-r--r--  3.0 unx    75414 bx defN 26-Apr-14 12:32 wp-super-cache/languages/wp-super-cache-ua_UA.mo
-rw-r--r--  3.0 unx    93433 tx defN 26-Apr-14 12:32 wp-super-cache/languages/wp-super-cache-ja.po
-rw-r--r--  3.0 unx    58904 bx defN 26-Apr-14 12:32 wp-super-cache/languages/wp-super-cache-uk.mo
-rw-r--r--  3.0 unx    69991 tx defN 26-Apr-14 12:32 wp-super-cache/languages/wp-super-cache-sv_SE.po
-rw-r--r--  3.0 unx    52261 tx defN 26-Apr-14 12:32 wp-super-cache/languages/wp-super-cache-es_ES.po
-rw-r--r--  3.0 unx    57607 bx defN 26-Apr-14 12:32 wp-super-cache/languages/wp-super-cache-lt_LT.mo
-rw-r--r--  3.0 unx    90579 tx defN 26-Apr-14 12:32 wp-super-cache/languages/wp-super-cache-be_BY.po
-rw-r--r--  3.0 unx    70771 bx defN 26-Apr-14 12:32 wp-super-cache/languages/wp-super-cache-tr_TR.mo
-rw-r--r--  3.0 unx    80123 tx defN 26-Apr-14 12:32 wp-super-cache/languages/wp-super-cache-de_DE.po
-rw-r--r--  3.0 unx    61792 bx defN 26-Apr-14 12:32 wp-super-cache/languages/wp-super-cache-fr_FR.mo
-rw-r--r--  3.0 unx    97635 tx defN 26-Apr-14 12:32 wp-super-cache/languages/wp-super-cache-sr_RS.po
-rw-r--r--  3.0 unx    81665 tx defN 26-Apr-14 12:32 wp-super-cache/languages/wp-super-cache-it_IT.po
-rw-r--r--  3.0 unx    68811 bx defN 26-Apr-14 12:32 wp-super-cache/languages/wp-super-cache-zh_CN.mo
-rw-r--r--  3.0 unx    59434 bx defN 26-Apr-14 12:32 wp-super-cache/languages/wp-super-cache-ro_RO.mo
-rw-r--r--  3.0 unx   104991 tx defN 26-Apr-14 12:32 wp-super-cache/languages/wp-super-cache-ru_RU.po
-rw-r--r--  3.0 unx    74884 bx defN 26-Apr-14 12:32 wp-super-cache/languages/wp-super-cache-zh_TW.mo
-rw-r--r--  3.0 unx    57046 bx defN 26-Apr-14 12:32 wp-super-cache/languages/wp-super-cache-sv_SE.mo
-rw-r--r--  3.0 unx    64973 tx defN 26-Apr-14 12:32 wp-super-cache/languages/wp-super-cache-uk.po
-rw-r--r--  3.0 unx    75729 bx defN 26-Apr-14 12:32 wp-super-cache/languages/wp-super-cache-be_BY.mo
-rw-r--r--  3.0 unx    46170 bx defN 26-Apr-14 12:32 wp-super-cache/languages/wp-super-cache-es_ES.mo
-rw-r--r--  3.0 unx    72428 tx defN 26-Apr-14 12:32 wp-super-cache/languages/wp-super-cache-lt_LT.po
-rw-r--r--  3.0 unx    82304 tx defN 26-Apr-14 12:32 wp-super-cache/languages/wp-super-cache-tr_TR.po
-rw-r--r--  3.0 unx    79297 bx defN 26-Apr-14 12:32 wp-super-cache/languages/wp-super-cache-ja.mo
-rw-r--r--  3.0 unx    90258 tx defN 26-Apr-14 12:32 wp-super-cache/languages/wp-super-cache-ua_UA.po
-rw-r--r--  3.0 unx    88791 bx defN 26-Apr-14 12:32 wp-super-cache/languages/wp-super-cache-ru_RU.mo
-rw-r--r--  3.0 unx    87293 tx defN 26-Apr-14 12:32 wp-super-cache/languages/wp-super-cache-zh_TW.po
-rw-r--r--  3.0 unx    66758 bx defN 26-Apr-14 12:32 wp-super-cache/languages/wp-super-cache-it_IT.mo
-rw-r--r--  3.0 unx    83372 tx defN 26-Apr-14 12:32 wp-super-cache/languages/wp-super-cache-zh_CN.po
-rw-r--r--  3.0 unx    74250 tx defN 26-Apr-14 12:32 wp-super-cache/languages/wp-super-cache-ro_RO.po
-rw-r--r--  3.0 unx    70830 bx defN 26-Apr-14 12:32 wp-super-cache/languages/wp-super-cache-de_DE.mo
-rw-r--r--  3.0 unx    84853 bx defN 26-Apr-14 12:32 wp-super-cache/languages/wp-super-cache-sr_RS.mo
-rw-r--r--  3.0 unx    75688 tx defN 26-Apr-14 12:32 wp-super-cache/languages/wp-super-cache-fr_FR.po
-rw-r--r--  3.0 unx   187608 tx defN 26-Apr-14 12:32 wp-super-cache/wp-cache.php
drwxr-xr-x  3.0 unx        0 bx stor 26-Apr-14 12:32 wp-super-cache/styling/
-rw-r--r--  3.0 unx     3394 tx defN 26-Apr-14 12:32 wp-super-cache/styling/dashboard.css
-rw-r--r--  3.0 unx    34413 tx defN 26-Apr-14 12:33 wp-super-cache/readme.txt
-rwxr-xr-x  3.0 unx    16492 tx defN 26-Apr-14 12:32 wp-super-cache/ossdl-cdn.php
-rw-r--r--  3.0 unx     3550 tx defN 26-Apr-14 12:32 wp-super-cache/wp-cache-config-sample.php
-rw-r--r--  3.0 unx    18636 tx defN 26-Apr-14 12:32 wp-super-cache/LICENSE.txt
drwxr-xr-x  3.0 unx        0 bx stor 26-Apr-14 12:32 wp-super-cache/assets/
-rw-r--r--  3.0 unx    96878 bx defN 26-Apr-14 12:32 wp-super-cache/assets/boost-install-card-main.png
-rw-r--r--  3.0 unx     3105 bx defN 26-Apr-14 12:32 wp-super-cache/assets/super-cache-icon.png
-rw-r--r--  3.0 unx     2850 tx defN 26-Apr-14 12:32 wp-super-cache/assets/automattic-airline.svg
-rw-r--r--  3.0 unx   305554 bx defN 26-Apr-14 12:32 wp-super-cache/assets/boost-install-card-main-2x.png
-rw-r--r--  3.0 unx    11361 tx defN 26-Apr-14 12:32 wp-super-cache/assets/jetpack-logo.svg
-rw-r--r--  3.0 unx     2649 tx defN 26-Apr-14 12:32 wp-super-cache/assets/jetpack-colors.svg
-rw-r--r--  3.0 unx     2418 tx defN 26-Apr-14 12:32 wp-super-cache/wp-cache-base.php
drwxr-xr-x  3.0 unx        0 bx stor 26-Apr-14 12:32 wp-super-cache/partials/
-rw-r--r--  3.0 unx     5980 tx defN 26-Apr-14 12:32 wp-super-cache/partials/debug.php
-rw-r--r--  3.0 unx     5093 tx defN 26-Apr-14 12:32 wp-super-cache/partials/lockdown.php
-rw-r--r--  3.0 unx     1033 tx defN 26-Apr-14 12:32 wp-super-cache/partials/rejected_user_agents.php
-rw-r--r--  3.0 unx     5835 tx defN 26-Apr-14 12:32 wp-super-cache/partials/preload.php
-rw-r--r--  3.0 unx      586 tx defN 26-Apr-14 12:32 wp-super-cache/partials/restore.php
-rw-r--r--  3.0 unx    12027 tx defN 26-Apr-14 12:32 wp-super-cache/partials/easy.php
-rw-r--r--  3.0 unx    33859 tx defN 26-Apr-14 12:32 wp-super-cache/partials/advanced.php
-rw-r--r--  3.0 unx     1393 tx defN 26-Apr-14 12:32 wp-super-cache/partials/tracking_parameters.php
drwxr-xr-x  3.0 unx        0 bx stor 26-Apr-14 12:32 wp-super-cache/rest/
-rw-r--r--  3.0 unx      507 tx defN 26-Apr-14 12:32 wp-super-cache/rest/class.wp-super-cache-rest-update-plugins.php
-rw-r--r--  3.0 unx     6002 tx defN 26-Apr-14 12:32 wp-super-cache/rest/load.php
-rw-r--r--  3.0 unx     1183 tx defN 26-Apr-14 12:32 wp-super-cache/rest/class.wp-super-cache-rest-get-cache.php
-rw-r--r--  3.0 unx     2813 tx defN 26-Apr-14 12:32 wp-super-cache/rest/class.wp-super-cache-rest-test-cache.php
-rw-r--r--  3.0 unx    16123 tx defN 26-Apr-14 12:32 wp-super-cache/rest/class.wp-super-cache-rest-update-settings.php
-rw-r--r--  3.0 unx     6990 tx defN 26-Apr-14 12:32 wp-super-cache/rest/class.wp-super-cache-settings-map.php
-rw-r--r--  3.0 unx      369 tx defN 26-Apr-14 12:32 wp-super-cache/rest/class.wp-super-cache-rest-get-plugins.php
-rw-r--r--  3.0 unx     3092 tx defN 26-Apr-14 12:32 wp-super-cache/rest/class.wp-super-cache-rest-get-status.php
-rw-r--r--  3.0 unx      947 tx defN 26-Apr-14 12:32 wp-super-cache/rest/class.wp-super-cache-rest-preload.php
-rw-r--r--  3.0 unx     4920 tx defN 26-Apr-14 12:32 wp-super-cache/rest/class.wp-super-cache-rest-get-settings.php
-rw-r--r--  3.0 unx      421 tx defN 26-Apr-14 12:32 wp-super-cache/rest/class.wp-super-cache-rest-get-stats.php
-rw-r--r--  3.0 unx      926 tx defN 26-Apr-14 12:32 wp-super-cache/rest/class.wp-super-cache-rest-delete-cache.php
-rw-r--r--  3.0 unx     2506 tx defN 26-Apr-14 12:32 wp-super-cache/SECURITY.md
drwxr-xr-x  3.0 unx        0 bx stor 26-Apr-14 12:32 wp-super-cache/src/
drwxr-xr-x  3.0 unx        0 bx stor 26-Apr-14 12:32 wp-super-cache/src/device-detection/
-rw-r--r--  3.0 unx     1277 tx defN 26-Apr-14 12:32 wp-super-cache/src/device-detection/functions.php
-rw-r--r--  3.0 unx     2315 tx defN 26-Apr-14 12:32 wp-super-cache/src/device-detection/class-device-detection.php
-rw-r--r--  3.0 unx    79859 tx defN 26-Apr-14 12:32 wp-super-cache/src/device-detection/class-user-agent-info.php
96 files, 3470933 bytes uncompressed, 1357105 bytes compressed:  60.9%

@stephdau
Copy link
Copy Markdown
Member

make down / make destroy tear the environment down cleanly.

epsi@Mac wp-super-cache % make down
COMPOSE_PROJECT_NAME=wp-super-cache npx --yes @wordpress/env stop
✔ Stopped WordPress. (in 4s 22ms)

epsi@Mac wp-super-cache % make up
COMPOSE_PROJECT_NAME=wp-super-cache npx --yes @wordpress/env start
WordPress development site started at http://localhost:8888
MySQL is listening on port 51195

 ✔ Done! (in 7s 184ms)

And:

epsi@Mac wp-super-cache % make destroy
COMPOSE_PROJECT_NAME=wp-super-cache npx --yes @wordpress/env destroy
ℹ WARNING! This will remove Docker containers, volumes, networks, and images associated with the WordPress instance.
✔ Are you sure you want to continue? Yes
✔ Removed WordPress environment. (in 19s 241ms)

epsi@Mac wp-super-cache % make up     
COMPOSE_PROJECT_NAME=wp-super-cache npx --yes @wordpress/env start
WordPress development site started at http://localhost:8888
MySQL is listening on port 51281

 ✔ Done! (in 34s 616ms)

Drop the leading dot to avoid a hidden directory. Update the three
places that referenced the old name (.gitattributes export-ignore,
scripts/exclude.lst) and have publish.sh rsync the directory into
build/svn/assets/ alongside the trunk sync, so banner/icon/blueprint
updates go to WordPress.org with the same `make publish` run.
- pre-build.sh: portable in-place sed (BSD/GNU) and sort -V guard so the
  new version must be greater than the current Stable tag.
- build-plugin.sh: enforce trunk / up-to-date / clean working tree, and
  prompt to confirm pre-build PR has been merged.
- publish.sh: assert the Stable tag inside the built zip matches
  readme.txt, escape dots when matching the changelog section, and
  refuse to rsync --delete from an empty build dir.
- run-phpcs-changed.sh: always run the branch-vs-trunk check so
  committed hunks are linted even with a dirty working tree.
- Makefile: drop the fake Press RETURN gate; build-plugin.sh now owns it.
@donnchawp donnchawp merged commit 446a1a1 into trunk Apr 14, 2026
6 checks passed
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.

3 participants