v1.1.0
WordPress Contributor Toolkit v1.1.0
The stable 1.1.0, and the largest release since 1.0: 57 commits since v1.0.1. Two things change what the app is. It ships a real Git and drives every checkout with it, so the repository it leaves behind is one any Git on any machine can continue. And someone else's pull request now arrives as a real branch with its author's commits, instead of a diff with no name on it.
You still install nothing. No Git, no Node, no Docker.
Warning
Sites created before 1.1.0 cannot be written to by this version. They can still be read, and you can save their work as a patch, but to keep contributing you create a new site. That is the price of the checkout becoming a real repository, and it is paid once.
The app brings its own Git
The JavaScript engine 1.0 used was a partial Git, and the remaining work on the ticket flow kept turning into a list of behaviours Git already has. Shipping the real one settles it: the app carries the binary, you never see it, and the day you open the site from a terminal there is nothing to have got subtly wrong (#364).
- The app carries its own Git binary (#401). It runs with none of your machine's Git settings, so a Git you already have, or the lack of one, changes nothing.
- A new site clones the whole history of
wordpress-develop, without old file contents (#403). With the history present the app can tell how a ticket's work relates to trunk, at the cost of a larger.gitfolder. - Ticket branches, patch apply and revert, trunk updates and discards all run on the bundled Git (#402, #404, #407, #410). A patch is applied by
git apply, the same command a reviewer will run, so "fits" means the same thing on both machines. - Move a ticket onto the current trunk with one click (#408), from the notice on the ticket card, replacing 1.0's five-step manual path.
- When the move cannot be done, the refusal names the files and the kind of conflict (#418). The verdict matches
git merge, and nothing is moved. - Writes are refused while a merge started outside the app is open (#420), naming the terminal commands that finish or abandon it, instead of erasing it on the next write.
- Sites created by an earlier version are refused for writes, and the card says so (#405).
A pull request is a branch, not an unattributed diff
Applying a pull request used to flatten it onto the ticket branch, so the author's history was lost and you could not tell their work from your own edits afterwards (#290, #458).
- A pull request is checked out as a local
pr/<number>branch (#459, #460, #461). The author's commits stay theirs, and your edits on top stay with that local copy. - Leaving a PR gives your own work back (#461). Ticket or trunk work is parked before the switch, and Back to ticket #N or Back to trunk restores it. The review screen attributes edits to the active PR, so the author's commits cannot be submitted as yours.
- If the PR moves upstream while your local copy has edits, the app offers Return to saved copy (#461) rather than overwriting them.
- A ticket remembers its applied PR across unlink, switching tickets and a restart (#463), and restoring one rebuilds the site, installing dependencies only when the lockfile actually changed.
- A pull request's generated files are no longer counted as your changes (#463). One real
wordpress-developPR exposed 1,784 generated Gutenberg files as the contributor's work, and reviewing a large added file failed while the screen claimed there was nothing to send.
Open a ticket from your browser
- The app answers
wpct://ticket/<id>(#464, #465). A link, a bookmarklet or a browser extension can hand a ticket straight to the app instead of making you retype the number. - The link asks before it links, naming the ticket and the site. Linking parks a branch and checks out another, and a click in a browser is not consent to that. Anything that is not a ticket is refused before the window is even raised.
On Windows the scheme is registered the first time you open the app, so open it once before trying a link.
Clearer, and safer, on every platform
- The app package ships only what it needs (#450). The packaging rule is a list of what goes in rather than what stays out, so a stray file cannot end up inside the installer.
- A build no longer spawns processes without bound (#395). Tools started through the app's
nodeshims misread their own path as an argument and restarted themselves forever. - A patch carried into a ticket takes its record with it (#236). Returning to trunk used to meet a panel naming a patch and offering to revert it over a tree that held none of it.
- No more false "Update incomplete" banner after updating trunk from a ticket (#446). Sites already showing it are corrected once.
- A patch apply that silently skipped a file is now caught (#417), verified file by file and rolled back if one is missing.
- Deleting a site stops its processes first (#415). A running dev server used to make the delete fail on Windows and leave the site half gone.
- The build works on Windows with Git for Windows installed (#422).
- A ticket's recorded trunk base survives an overlapping write (#454).
- Disabled ticket actions say why (#451), to screen readers and in a tooltip. A run that never started is reported as a failure (#452) instead of leaving the terminal waiting.
- The apply panel now sits above the site's other tickets (#472), and the sidebar heading reads Contributor Toolkit (#482).
Under the hood
- The old JavaScript Git engine is retired, and every test fixture is built with the bundled Git (#411).
- The bundled Git inside the Linux AppImage was exercised on Linux before this release: binary, exec bits, symlinks, certificates and an HTTPS clone (#388). Snap and deb are no longer built, because nobody can probe them yet.
- The review standard asks that review evidence is recorded in the pull request (#433, #442, #448, #453) and that a pull request someone else opened is reviewed, not taken over (#456). CodeRabbit reviews on request against that same standard (#400, #455).
- CI runs on pinned actions with scoped credentials (#423), rejects focused tests and keeps Playwright reports (#443), and a manual workflow sets up a real
wordpress-developsite end to end (#444). - Dead exports, a brittle set of renderer source-text tests and a few aliases are gone (#416, #434 to #441). macOS signing failure handling is simpler (#398), and the README downloads badge counts withdrawn assets and excludes prereleases (#447, #449).
Of the 57 commits since v1.0.1, 24 are tests, docs, CI and cleanups that do not reach the app.
Downloads
- macOS (Apple Silicon):
wordpress-contributor-toolkit-1.1.0-mac-arm64.dmg - Windows (x64):
wordpress-contributor-toolkit-1.1.0-win-x64.exe - Linux (x64):
wordpress-contributor-toolkit-1.1.0-linux-x86_64.AppImage
Full changelog: v1.0.1...v1.1.0