Skip to content

Commit 78aa6c5

Browse files
dmartinochoaclaude
andauthored
release: v1.5.0 — daily PyPI poll for newer engine + version realignment (#47)
Adds a non-blocking notifier that checks PyPI once per day for a newer `pipeline-check` engine and surfaces an Upgrade prompt when one is available. Action runs the existing `upgradeInTerminal` flow (terminal opens, command typed, user reviews and presses Enter) — the "no silent pip mutations" invariant from src/install.ts holds. Failure paths (offline, 5xx, malformed JSON, timeout) are silent and logged. New `pipelineCheck.engineUpdates.checkEnabled` setting (default true) turns the check off entirely. Independent of the hard `MIN_ENGINE_VERSION` floor in src/preflight.ts: the floor still drives the Upgrade welcome panel when the installed engine is too old to support the extension's features; the new notifier covers the "preflight succeeded but newer is available" gap. Version jumps 1.1.0 → 1.5.0 to align the extension stream with the upstream pipeline-check engine's 1.5.x line so users can read the two side-by-side. No skipped functionality between 1.1.0 and 1.5.0; the engine-update notifier is the only user-visible change. 391/391 tests pass (+27 in src/engineUpdates.test.ts), typecheck and lint clean, prod-only npm audit clean. Bundle smoke OK at 376.3 KB. Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent 6266c40 commit 78aa6c5

6 files changed

Lines changed: 744 additions & 3 deletions

File tree

CHANGELOG.md

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,39 @@ versions follow [SemVer](https://semver.org/).
1111
> section **above** Unreleased, or remove the Unreleased block for the
1212
> release commit. Otherwise the GitHub release ships boilerplate.
1313
14+
## [1.5.0] — 2026-05-27
15+
16+
Aligns the extension's version stream with the upstream
17+
[`pipeline-check`](https://pypi.org/project/pipeline-check/) engine's
18+
1.5.x line so users can read the two side-by-side without doing the
19+
mapping in their head. No skipped functionality between 1.1.0 and
20+
1.5.0 — the only user-visible change is the engine-update notifier
21+
below.
22+
23+
### Added
24+
25+
- **Daily PyPI poll for a newer engine.** Once per 24 h (per-session
26+
latch + per-day `globalState` timestamp), the extension queries
27+
`https://pypi.org/pypi/pipeline-check/json` after a successful
28+
preflight and surfaces a non-blocking notification when PyPI's
29+
latest stable is newer than the engine the user has installed.
30+
The **Upgrade in terminal** action runs the existing
31+
[`upgradeInTerminal`](src/install.ts) flow — terminal opens,
32+
`python -m pip install --upgrade "pipeline-check[lsp]"` is typed
33+
but **not** auto-executed, same review-then-Enter pattern as the
34+
install CTA. **Skip this version** silences the prompt for that
35+
exact version only; a later release re-prompts. Dismissing the
36+
toast (no choice) re-prompts on the next per-day window. Every
37+
failure path (offline, PyPI 5xx, malformed JSON, timeout) is
38+
silent — failures land in the Pipeline-Check output channel, not
39+
in a user-facing toast for a background nicety they didn't ask
40+
about. Independent of the hard `MIN_ENGINE_VERSION` floor in
41+
[src/preflight.ts](src/preflight.ts), which still drives the
42+
Upgrade welcome panel when the installed engine is too old to
43+
support the extension's features. New setting
44+
`pipelineCheck.engineUpdates.checkEnabled` (default `true`) turns
45+
the check off entirely.
46+
1447
## [1.1.0] — 2026-05-25
1548

1649
Feature batch on top of v1.0.3. Three user-visible additions plus

package-lock.json

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"name": "pipeline-check",
33
"displayName": "Pipeline-Check",
44
"description": "Lint CI/CD pipelines for 22 providers against OWASP Top 10 CI/CD Risks and 14 other compliance frameworks. 810+ rules, inline in your editor.",
5-
"version": "1.1.0",
5+
"version": "1.5.0",
66
"publisher": "greylag-ci",
77
"license": "MIT",
88
"icon": "icon.png",
@@ -333,6 +333,11 @@
333333
],
334334
"default": "off",
335335
"markdownDescription": "Traces LSP traffic between the editor and the `pipeline_check.lsp` server. Set to `verbose` when debugging."
336+
},
337+
"pipelineCheck.engineUpdates.checkEnabled": {
338+
"type": "boolean",
339+
"default": true,
340+
"markdownDescription": "Check PyPI once per day for a newer `pipeline-check` engine and surface a non-blocking notification when one is available. The notification's **Upgrade in terminal** action opens a terminal with `python -m pip install --upgrade \"pipeline-check[lsp]\"` typed (but not auto-run, same pattern as the install CTA). **Skip this version** silences the prompt for the offered version only — a later release re-prompts. Set to `false` to disable the check entirely; this is independent of the hard `MIN_ENGINE_VERSION` floor that still drives the **Upgrade in terminal** welcome panel when the installed engine is too old to support the extension."
336341
}
337342
}
338343
}

0 commit comments

Comments
 (0)