• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

kubernetes-sigs / lws / 28524872337
56%
main: 56%

Build:
Build:
LAST BUILD BRANCH: dependabot/npm_and_yarn/site/all-1caf817742
DEFAULT BRANCH: main
Ran 01 Jul 2026 02:29PM UTC
Jobs 1
Files 25
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

01 Jul 2026 02:11PM UTC coverage: 54.504% (-1.2%) from 55.673%
28524872337

Pull #907

github

hasB4K
planner: radical simplification — drop sync-window machinery

Replaces the two-minU + sync-window + parking + budget machinery
from the prior refactor with a flat algorithm:

  1. Each side's total step count = min(replicas in side)
  2. Side progress = slowest role's step
     (= floor(current * total / target))
  3. Advance each side by one step; per role compute the count it
     needs to BE at that step
  4. Cap by surge / unavailable budgets, emit deltas

Deletes (as members of planner.go):
- frac, ceilFrac, floorFrac
- numSyncPoints, newSyncTarget, oldSyncTarget
- sideDirection + sideTargetAt / sideReached / sideBaseline
- deriveSideProgress
- sidesProgress, syncTargets, roleDeltas structs
- derivePerSideProgress, pickNextSyncTargets, computeRoleDeltas,
  applyRoleDeltas
- The whole "parking" concept (subsumed by progress = min role step)
- RoleStepState.SyncWindowIndex / .RoleStep fields

What remains: ComputeNextStep is a 50-line linear function. The
five helpers (isComplete, sideSize, sideProgress, wantReplicas,
clamp) are each ≤20 lines.

For NEW side, wantReplicas now uses CEIL (was FLOOR via the old
newSyncTarget). Mathematically required by the strict step formula
— otherwise non-divisible cases (e.g. target=8 over 6 sync steps)
deadlock. Net effect: the asymmetric_scale golden takes the same
8 steps but the per-step replica counts shift slightly for decode.
Invariants (completion, surge ceilings, sync coordination) all hold.

Tests:
- Golden: 4/5 byte-identical, 1 updated for the ceil change.
- TestSyncPointEnforcement → TestSyncCoordination_NewSide, rewritten
  to assert on progress fractions directly (not sync indices).
- TestDeriveSideProgress_* → TestSideProgress_New/_Old +
  TestWantReplicas, replacing tests for deleted helpers.
- TestComputeMinimalUnit → TestSideSize.
- Two-minU tests rewritten to use sideSize directly.
- Executor's buildStepLogArgs loses the sync_new_/sync_old_ keys
  that referenced the now-deleted RoleStepState ... (continued)
Pull Request #907: Feature/percentage block planner v2

184 of 194 new or added lines in 2 files covered. (94.85%)

7 existing lines in 2 files now uncovered.

2015 of 3697 relevant lines covered (54.5%)

158.11 hits per line

Uncovered Changes

Lines Coverage ∆ File
6
84.19
-1.1% pkg/controllers/disaggregatedset/executor.go
4
94.12
-1.62% pkg/controllers/disaggregatedset/planner.go

Coverage Regressions

Lines Coverage ∆ File
4
94.12
-1.62% pkg/controllers/disaggregatedset/planner.go
3
84.19
-1.1% pkg/controllers/disaggregatedset/executor.go
Jobs
ID Job ID Ran Files Coverage
1 28524872337.1 01 Jul 2026 02:29PM UTC 25
54.5
GitHub Action Run
Source Files on build 28524872337
  • Tree
  • List 25
  • Changed 2
  • Source Changed 0
  • Coverage Changed 2
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Pull Request #907
  • PR Base - main (#28471560076)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc