From 1e185482e5dc8f9870e080d4695f26c5407bc6fd Mon Sep 17 00:00:00 2001 From: Peter Hedenskog Date: Sun, 31 May 2026 16:58:33 +0200 Subject: [PATCH] bump changes --- CHANGELOG.md | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index c9f20c1..49d8e8b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,32 @@ # CHANGELOG - sitespeed.io/plugin (we use [semantic versioning](https://semver.org)) +## 1.0.3 - UNRELEASED +### Fixed +* Aligned the base class JSDoc and README with how sitespeed.io actually drives + plugins. The class advertised `open()`, `close()` and + `processMessage(message)` with no parameters, but the framework has long + called them with positional arguments — `open(context, options)`, + `close(options, errors)` and `processMessage(message, queue)`. The README + likewise didn't mention the positional constructor contract + `new MyPlugin(options, context, queue)`, the optional `concurrency` class + field that the queue handler reads, or the framework-level lifecycle + messages (`sitespeedio.setup` / `summarize` / `prepareToRender` / `render`). + All are now documented; no runtime behaviour change. +* Added JSDoc typedefs (`Logger`, `MessageMaker`, `QueueMessage`, + `SitespeedioContext`) so editors with JSDoc support can autocomplete + `context.storageManager`, `message.runIndex` and the rest, instead of + forcing plugin authors to read sitespeed.io's source to discover the shape. + +### Tech +* New `compat-sitespeed-io` job: installs the current branch into a fresh + `sitespeed.io@main` checkout and runs its lint + unit suite (with browser + driver downloads skipped). Catches base-class signature breakage across the + ~25 built-in plugins. +* New `smoke-sitespeed-io` job: invokes `bin/sitespeed.js` against + `https://www.sitespeed.io/` with a real Chrome and verifies an HTML report + is written, exercising the full plugin lifecycle including the + `sitespeedio.render` message. + ## 1.0.2 - 2026-05-16 ### Fixed * Relaxed the config validation introduced in 1.0.1 so that `queue` is no