The four-week Chromium cadence as a scheduled job.
If you ship a CEF or Chromium fork, you carry a patch series that has to be re-applied every time upstream moves. The expensive moment is finding out, on the day stable ships, that three of your patches no longer apply. This repository moves that moment four weeks earlier: a scheduled job checks your series against the next branch while it is still beta, and posts a report that says which patch, which file, which layer.
track.py checks out a target branch of a git repository (CEF, or a Chromium checkout), runs git apply --check on every patch in a directory, and writes a Markdown table:
| Patch | Result | Files | Layers |
|---|---|---|---|
0003-spellcheck-host.patch |
CONFLICT | components/spellcheck/browser/spellcheck_host_impl.cc |
spellcheck |
0004-print-preview.patch |
applies with offset | ||
0005-caret-width.patch |
clean |
The exit code is the number of conflicts, so the job goes red on the day something breaks and green the day you fix it. layers.py maps paths to layers (blink editing, content/browser, net, skia, cef/api and so on) so the report reads as work, not as filenames.
The included GitHub Actions workflow clones CEF shallowly every Monday, runs the check against a branch you name, and publishes the table as the job summary and an artifact.
git clone https://github.com/INNERLUXES/cef-beta-tracker
cd cef-beta-tracker
git clone --depth=1 --branch 7778 https://github.com/chromiumembedded/cef.git ../cef
# put your series in ./patches, in apply order
python track.py --repo ../cef --branch 7778 --patches ./patches --no-fetch
For Chromium-side patches point --repo at chromium/src and --branch at a tag such as refs/tags/152.0.7977.0. The Chromium checkout is yours to provide; the tool only fetches and checks.
Inside a fork's own repository, on a self-hosted runner that already has the Chromium checkout, with the branch number bumped by a small script that reads the current beta from chromiumdash.appspot.com. The report goes to the team channel. A silent bot is treated as a broken bot.
That routine is what INNERLUXES sells to teams that keep a Chromium, CEF or Electron fork alive: the bot in your repo, conflicts listed four weeks before stable, the fixes landed under your review, a built engine within the week of every release. This repository is the public, minimal version of the bot.
MIT licence.