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

FlexMeasures / flexmeasures / 31199747222
84%

Build:
DEFAULT BRANCH: main
Ran 07 Aug 2026 05:05PM UTC
Jobs 1
Files 175
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

07 Aug 2026 04:53PM UTC coverage: 84.024% (+0.02%) from 84.005%
31199747222

push

github

web-flow
Relax soc-targets along with the other SoC constraints (#2390)

* Relax soc-targets along with the other SoC constraints

An unreachable soc-target made the whole scheduling problem infeasible, so a
single bad target cost the user their entire schedule. Targets were the last
SoC constraint that constraint relaxation did not cover.

A target is a two-sided constraint, so relax it as a stock commitment priced in
both directions: falling short is a shortage, priced like a soc-minima breach,
and overshooting is a surplus, priced like a soc-maxima breach. Reusing the two
existing breach prices means targets need no new flex-context field and follow
relax-soc-constraints/relax-constraints automatically. Targets are relaxed only
when both prices are available, which is the case whenever SoC relaxation is on,
since the defaults are filled in as a pair.

Missed targets are now reported among the unresolved constraints, as the
absolute deviation in either direction. Since a met target leaves no headroom,
targets never produce a "resolved" entry.

Tests that relied on targets being hard now opt out of relaxation explicitly.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014qPe5bv41RDTuBVtpdxjWH
Signed-off-by: F.N. Claessen <claessen@seita.nl>

* Update the SoC field descriptions that said targets are always hard

The soc-targets description still promised that an infeasible target prevents a
schedule from being computed, which this PR makes untrue, and the two SoC
breach-price descriptions did not mention that they now price targets as well.
These strings are what users read in the flex-model docs table and in OpenAPI,
so the generated specs move with them.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Signed-off-by: F.N. Claessen <claessen@seita.nl>

* Keep the two target-based tests exercising hard targets

test_multi_device_validation_survives_stockless_device builds its invalid
constraint set fr... (continued)

29 of 30 new or added lines in 1 file covered. (96.67%)

17224 of 20499 relevant lines covered (84.02%)

0.84 hits per line

Uncovered Changes

Lines Coverage ∆ File
1
91.49
0.13% flexmeasures/data/models/planning/storage.py
Jobs
ID Job ID Ran Files Coverage
1 31199747222.1 07 Aug 2026 05:05PM UTC 175
84.02
GitHub Action Run
Source Files on build 31199747222
  • Tree
  • List 175
  • Changed 2
  • Source Changed 2
  • Coverage Changed 2
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #31199747222
  • 1a14229c on github
  • Prev Build on main (#31193970283)
  • Next Build on main (#31213094017)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc