Skip to content

refactor(changelog): pass the range endpoints to buildChangelogRange as one object - #565

Merged
rubenvdlinde merged 3 commits into
developmentfrom
refactor/changelog-range-endpoints
Nov 2, 2026
Merged

rubenvdlinde merged 3 commits into
developmentfrom
refactor/changelog-range-endpoints

Conversation

@rubenvdlinde

Copy link
Copy Markdown
Contributor

buildChangelogRange now takes the installed and target version as one { installed, target } object, and its bounds, window test and sort order live in three small helpers. Behaviour is unchanged; the one caller in App.vue and the unit tests pass the object.

SIG numbers (gate 122, five-star profile, against development 82474e1)

check before after 5-star limit
typescript McCabe >5 12.9% 8.5% 10.1% (flips)
typescript params >=3 9.7% 5.4% 7.5% (flips)
typescript size >15 17.0% 12.5% 23.6%

versioniq goes from 28/44 to 30/44 at 5-star and stays 36/44 at 4-star. Every touched unit is within the 5-star unit bounds (largest: 10 LOC, McCabe 5, 2 params). Gate 122 ratchet: 0 findings (1 inherited, App.vue:2079). Gate 123 against the #564 floor: 36 floored checks held.

Verification

  • Golden src/utils/changelog.golden.spec.ts: 256 cases (4 version lists times 8 by 8 endpoints, 116 non-empty ranges), recorded on the old code in the first commit, plain re-run green on old and new.
  • Capped mutants on the new code against the golden only: 11 of 13 killed, no-op control survived. The two survivors are equivalent: dropping the installed === target check and > 0 to >= 0 on the direction both leave an empty window when the two compare equal, exactly as the old code did.
  • Full vitest suite once: 2675 passed. npm run lint: exit 0, no new warnings. Hydra gates --scope-to-diff --base origin/development: exit 0.

AI assisted (Claude Code); reviewed against the golden before opening.

…as one object

Splits the bounds, window test and sort order into small helpers, so no
unit takes more than two parameters or exceeds McCabe 5.

Assisted-by: ClaudeCode:claude-opus-5-5
Assisted-by: ClaudeCode:claude-opus-5-5
@rubenvdlinde
rubenvdlinde merged commit 3e6e4b8 into development Nov 2, 2026
7 checks passed
@github-actions

github-actions Bot commented Nov 2, 2026

Copy link
Copy Markdown
Contributor

Quality Report — ConductionNL/versioniq @ e5e709b

Check PHP Vue Security License Tests
lint ✅
phpcs ✅
phpmd ✅
psalm ✅
phpstan ✅
phpmetrics ✅
eslint ✅
stylelint ✅
build ✅
composer ✅ ✅ 32/32
npm ❌ ✅ 302/302
app:check-code ⏭️
info.xml ✅
REUSE ❌
lockfile sync ✅
PHPUnit ✅ 762/762 · 7 skipped (8 legs)
Newman ⏭️
Playwright ⏭️ deferred: E2E runs locally and on the promotion path only. This pull request targets development, so the suite is asked once per promotion into beta and main rather than once per push per open pull request. Run it locally with npx playwright test, or from the Actions tab on a branch with no open pull request into development.
Hydra gates ✅

Quality workflow — 2026-11-02 20:42 UTC

Download the full PDF report from the workflow artifacts.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant