|
2 | 2 |
|
3 | 3 | **Goal:** Take a clean checkout of `WordPress/wordpress-develop` and bring it |
4 | 4 | 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). |
8 | 8 |
|
9 | 9 | **Non-goals:** worktree creation, background process management, HTTPS, |
10 | 10 | production-shaped stacks. envlite operates on whatever directory it is |
@@ -100,19 +100,19 @@ shorthand for the full command line. |
100 | 100 | envlite has no `verify` subcommand. `phpunit` is a multi-second |
101 | 101 | operation users will run anyway during normal development; wrapping it |
102 | 102 | 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: |
105 | 105 |
|
106 | 106 | ```sh |
107 | | -./vendor/bin/phpunit --group html-api # ~5 s, ~1365 tests |
| 107 | +./vendor/bin/phpunit |
108 | 108 | envlite serve & curl -sI http://127.0.0.1:$(cat .envlite/port)/ |
109 | 109 | ``` |
110 | 110 |
|
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`. |
116 | 116 |
|
117 | 117 | ### Exit codes |
118 | 118 |
|
@@ -983,21 +983,20 @@ explicit user assent. Users who want a fully clean slate run |
983 | 983 | WordPress core's own supported floor at the time of writing. |
984 | 984 | 2. **PHP 8.5 + `convertDeprecationsToExceptions=true`.** wordpress- |
985 | 985 | 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. |
989 | 989 | 3. **No `composer.lock`, by upstream design.** Every Phase 4 run |
990 | 990 | resolves fresh from `composer.json`. envlite does not generate or |
991 | 991 | check in a lock; doing so would diverge from upstream. For the same |
992 | 992 | reason Phase 4 does **not** pass `--platform-php` and does not set |
993 | 993 | `config.platform.php`: the resolver evaluates against runtime PHP, |
994 | 994 | not the 7.4 floor. Pinning to the floor would be a half-measure |
995 | 995 | 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. |
1001 | 1000 | 4. **The SQLite plugin path placeholder is dead.** Documented in Phase 5. |
1002 | 1001 | 5. **Two distinct config files.** `wp-tests-config.php` (Phase 6) and |
1003 | 1002 | `src/wp-config.php` (Phase 7) are loaded by different bootstrap paths |
|
0 commit comments