Migrating to v0.50.0
Two changes need a reader's attention: the two installer scripts swapped names so the public one is the file its URL implies, and the field naming where an external CPU figure came from gained a third value. The sections are independent, so apply the ones you use in any order.
Installer paths
- Before:
bash install/install.shinstalled the runner as a systemd user unit or a launchd agent. - After:
bash install/service-install.shdoes that.install/install.shis now the public CLI installer -- the scripthttps://sparkwing.dev/install.shserves, which downloads a signed release and verifies it before installing. - Why: the repository had no copy of the installer adopters actually run,
so the script the release signs and the script the site serves could not be
compared.
install/install.shis that copy, and the runner installer moved aside to give it the name. - Gotchas: the old path still runs, so a stale command installs the CLI
rather than failing. Self-hosting instructions that pipe answers into
install/install.shneed the new path.
External source gained a third value
- Before:
ResourceState.ExternalSourcewasmeasuredorunmeasured, so a consumer could switch on the two and cover the field. - After: it is also
unattributed-- a real host reading that carries some of sparkwing's own runs' CPU. Branch onunmeasuredand treat every other named value as a real reading. An empty value means the daemon predates the field, so whether the figure was measured is unknown. - Why: the set is open. A consumer switching on the values one build knows renders a later one as its fallback, and the fallback that reads as safe -- "measured" -- is the one that hides a figure the daemon could not stand behind.
- Gotchas: a switch with no default renders
unattributedas nothing at all. ReadQueueState.ExternalAttributionfor how often the daemon could not attribute and why, and take the clean count from itsattributedfield rather than by subtracting the fault counts fromsamples.