Skip to content

Commit dae7595

Browse files
committed
Clean up html-api refs
1 parent c0ec87c commit dae7595

2 files changed

Lines changed: 21 additions & 23 deletions

File tree

plans/ENVLITE_SPECIFICATION.md

Lines changed: 18 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@
22

33
**Goal:** Take a clean checkout of `WordPress/wordpress-develop` and bring it
44
to a state where (1) PHP's built-in server can serve a working WordPress
5-
site against a SQLite database, and (2)
6-
`./vendor/bin/phpunit --group html-api` runs green on host PHP — without
7-
starting any global services (no system MySQL, no Docker, no MAMP).
5+
site against a SQLite database, and (2) `./vendor/bin/phpunit` runs against
6+
that SQLite database on host PHP — without starting any global services (no
7+
system MySQL, no Docker, no MAMP).
88

99
**Non-goals:** worktree creation, background process management, HTTPS,
1010
production-shaped stacks. envlite operates on whatever directory it is
@@ -100,19 +100,19 @@ shorthand for the full command line.
100100
envlite has no `verify` subcommand. `phpunit` is a multi-second
101101
operation users will run anyway during normal development; wrapping it
102102
in envlite would just charge that cost on every invocation without
103-
adding signal. After `init`, run whichever of these you actually
104-
care about:
103+
adding signal. After `init`, two quick checks confirm the env is wired
104+
up:
105105

106106
```sh
107-
./vendor/bin/phpunit --group html-api # ~5 s, ~1365 tests
107+
./vendor/bin/phpunit
108108
envlite serve & curl -sI http://127.0.0.1:$(cat .envlite/port)/
109109
```
110110

111-
A green phpunit + a 2xx HTTP status (not a 3xx redirect to
112-
`/wp-admin/install.php`) proves the same thing the old `verify` did,
113-
with less ceremony. Phase 8 has already run `wp_install()`, so the
114-
site responds with the homepage on first hit. Log in at
115-
`/wp-login.php` with `admin` / `password`.
111+
Phpunit booting against the SQLite drop-in + a 2xx HTTP status (not a
112+
3xx redirect to `/wp-admin/install.php`) proves the same thing the old
113+
`verify` did, with less ceremony. Phase 8 has already run
114+
`wp_install()`, so the site responds with the homepage on first hit.
115+
Log in at `/wp-login.php` with `admin` / `password`.
116116

117117
### Exit codes
118118

@@ -983,21 +983,20 @@ explicit user assent. Users who want a fully clean slate run
983983
WordPress core's own supported floor at the time of writing.
984984
2. **PHP 8.5 + `convertDeprecationsToExceptions=true`.** wordpress-
985985
develop's `phpunit.xml.dist` opts every deprecation into a thrown
986-
exception. The `--group html-api` subset still passes clean on PHP
987-
8.5.5 against the SQLite drop-in. Other groups may surface
988-
deprecations; that's a per-group fix, not envlite's problem.
986+
exception. On newer PHP some test groups will fail purely on
987+
surfaced deprecations from core code; that's a per-group fix, not
988+
envlite's problem.
989989
3. **No `composer.lock`, by upstream design.** Every Phase 4 run
990990
resolves fresh from `composer.json`. envlite does not generate or
991991
check in a lock; doing so would diverge from upstream. For the same
992992
reason Phase 4 does **not** pass `--platform-php` and does not set
993993
`config.platform.php`: the resolver evaluates against runtime PHP,
994994
not the 7.4 floor. Pinning to the floor would be a half-measure
995995
without a lockfile (Composer still picks "latest compatible" each
996-
run) and would penalize devs on newer PHP for no test-contract win
997-
— the green-bar contract is `phpunit --group html-api` on the host
998-
PHP, which is exactly what runtime-resolved deps target. WP CI also
999-
resolves against its matrix PHP, so envlite mirrors CI rather than
1000-
masking it.
996+
run) and would penalize devs on newer PHP for no benefit — phpunit
997+
runs against host PHP, which is exactly what runtime-resolved deps
998+
target. WP CI also resolves against its matrix PHP, so envlite
999+
mirrors CI rather than masking it.
10011000
4. **The SQLite plugin path placeholder is dead.** Documented in Phase 5.
10021001
5. **Two distinct config files.** `wp-tests-config.php` (Phase 6) and
10031002
`src/wp-config.php` (Phase 7) are loaded by different bootstrap paths

tools/local-env/README.md

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,8 @@
11
# envlite
22

33
A zero-daemon local environment for `wordpress-develop`. Runs WordPress
4-
on SQLite via PHP's built-in server, and gets
5-
`./vendor/bin/phpunit --group html-api` running green. No MySQL, no
6-
Docker, no MAMP.
4+
on SQLite via PHP's built-in server, with phpunit pointed at the same
5+
SQLite database. No MySQL, no Docker, no MAMP.
76

87
## Quickstart
98

@@ -73,5 +72,5 @@ macOS/Linux, so a browser hitting `http://localhost:<port>/` can get
7372
| `<tool> below minimum` | Upgrade node/npm/composer. |
7473
| `SHA256 mismatch on plugin zip` | Retry once. If persistent, the pinned SQLite drop-in needs a deliberate update — file an issue. |
7574
| `failed to bind 127.0.0.1:<port>` | Another process holds the port. `lsof -nP -iTCP:<port> -sTCP:LISTEN`; kill the holder, or `init --port=N` to relocate. |
76-
| phpunit fails with deprecation-as-exception in a non-`html-api` group | Only `--group html-api` is the green-bar contract. Other groups may surface deprecations on newer PHP — per-group fix, not envlite's. |
75+
| phpunit fails with deprecation-as-exception | wordpress-develop sets `convertDeprecationsToExceptions=true`; newer PHP may surface deprecations from core code as exceptions. Per-group fix, not envlite's. |
7776
| Corrupt-DB error after an interrupted run | Delete `src/wp-content/database/.ht.sqlite` and re-run. |

0 commit comments

Comments
 (0)