WordPress Contributor Toolkit v1.2.0
32 commits since v1.1.0, and one thing changes what the app is for. A site can now be a checkout of Gutenberg, not only of WordPress Core. You pick the target when you create the site; the app clones it, installs and builds it, serves it, links the issue you are working on, checks out the pull requests that answer it, and opens yours. Same app, same buttons, a second project.
You still install nothing. No Git, no Node, no Docker.
Two betas went before it, tested on macOS and Windows; everything they turned up is fixed here.
Contribute to Gutenberg
- Choose what a site contributes to: WordPress Core or Gutenberg (#476). The choice is made once, in the create dialog, and the site remembers it.
- A Gutenberg site is served as a plugin in a stock WordPress (#471). Playground boots the latest WordPress and mounts your checkout as its Gutenberg plugin, so what you see is what a user of the plugin would see.
- The build watch and the terminal scripts are the target's own (#470). On Gutenberg the watch is
npm run dev, and the scripts the terminal accepts are the ones that work without Docker. - A GitHub issue is a Gutenberg site's work item (#480). Link the issue you are working on; the app lists the pull requests that cite it, and checks one out as a real branch with its author's commits, as it does for a Trac ticket's patches.
- Open a pull request against
WordPress/gutenbergfrom the app (#481), on your fork, citing the issue. - The guide covers the Gutenberg workflows (#486): first site, issue, pull request checkout, review and submit.
A Gutenberg site builds once, and says when it is ready
Gutenberg's build watch (npm run dev) removes build/ and rebuilds every package before it watches. Most of what the betas found was the app starting, pausing or restarting that watch at the wrong moment.
- A built site's dev server starts at once, without the watch (#500). Start the watch yourself when you want edits under
packages/compiled on save. When the watch does run, the server waits for its first build (#489) instead of serving a plugin with no build. - Applying a pull request and updating trunk leave the one rebuild to the watch (#508, #516), instead of a build of their own that the resumed watch then threw away. Linking an issue or switching work items no longer restarts the watch at all (#517).
- The screen says when the watch is still rebuilding (#493, #511): the applied banner stays amber until the watch is watching, and turns red if it stops first.
- The install and build steps stay in progress until their command has exited (#496, #504), so a status refresh can no longer read a half-written
node_modulesorbuild/as done. - The hint under the terminal names each project's own source directory (#491):
src/on Core,packages/on Gutenberg.
Switching to an older pull request
Checking out a pull request based on a months-old trunk, on a site installed on today's trunk, is the everyday case on Gutenberg, and it left things behind.
- Files the other branch ignored are no longer counted as your changes after a switch (#524).
- A directory the older pull request does not have is removed when all it holds is an install or TypeScript build info (#530, #532). Gutenberg's trunk-only
routes/dashboard/used to survive the switch and fail the build withENOENT ... routes/dashboard/package.json. Anything else in such a directory, a file of yours included, keeps it where it is.
Windows
- A Gutenberg build opens no console windows (#512). Closing one used to break the build.
- A script whose worker outlives npm still finishes (#513). The app gives it three seconds after npm exits, then ends the tree and reports npm's exit code, instead of staying in progress for as long as the worker ran.
macOS
- A Gutenberg build no longer fills the Dock with "exec" tiles (#519). Build workers now run through the app's Helper bundle, which the Dock does not show.
- Builds that set
NODE_OPTIONSwork (#528). Electron on macOS ignores that variable in processes it did not start itself, so an older Gutenberg pull request whose token build relies on it failed; the app's shims now pass those options as arguments.
A change on Core sites
- Stop dev server no longer stops the build watch (#489). The two were always meant to be independent; stop the watch from its own button.
Under the hood
- npm 11 is bundled (#468), the floor
wordpress-developand Gutenberg now set. - A registry of contribution targets drives the clone, the built check, the watcher and the terminal's script list (#469), so a third target is a registry entry.
- Stop forces the whole process tree when its SIGTERM is ignored (#479), not only the runner.
- The docs site publishes per release (#487), not on every trunk push, so the guide matches the app you downloaded.
- The manual real-setup workflow passes again (#531), with time budgets sized for the slowest hosted runners, and a new site on each platform and target built end to end on this release's code.
Of the 32 commits since v1.1.0, 7 are docs, tests, the docs site and the three version bumps, and do not reach the app.
Downloads
- macOS (Apple Silicon):
wordpress-contributor-toolkit-1.2.0-mac-arm64.dmg - Windows (x64):
wordpress-contributor-toolkit-1.2.0-win-x64.exe - Linux (x64):
wordpress-contributor-toolkit-1.2.0-linux-x86_64.AppImage
On Windows the app runs Node and Gutenberg's build tools as x64; on a Windows on ARM machine they run under emulation, and a Gutenberg build takes several minutes and needs 8 GB of memory or more.
Full changelog: v1.1.0...v1.2.0