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

FlexMeasures / flexmeasures / 36697434606
86%

Build:
DEFAULT BRANCH: main
Ran 30 Sep 2026 09:53AM UTC
Jobs 1
Files 188
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

30 Sep 2026 09:38AM UTC coverage: 86.188% (+0.03%) from 86.16%
36697434606

push

github

web-flow
Provision template assets in one process at a time (#2600)

* Provision template assets in one process at a time

Every process that creates the app provisions the default template assets
at startup, e.g. each gunicorn worker, and a CLI command running next to
them. Right after a migration, those processes raced to insert the same
default asset types, and all but one failed with an IntegrityError on
generic_asset_type_name_key, which escaped create(), so the app was not
created: a gunicorn worker could fail to boot, or a CLI command could
fail (as in the Docker build job, see #2599).

Provisioning now takes a transaction-level Postgres advisory lock first,
which is released when its transaction commits, so a waiting process then
finds everything in place. As a safety net, e.g. against a process running
an older version without the lock, an IntegrityError during startup
provisioning is logged, rather than stopping the app from starting.

Checked by starting 4 apps at the same moment against a freshly migrated
schema, 3 times: before, 2 or 3 of the 4 failed each time; now all 4 start.

Fixes #2599

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

* Add changelog entry for PR #2600

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

* Simulate the other process entirely in its own thread

The test committed the other process's
  transaction from a timer thread, while its connection was opened in the test's thread. The simulated process now opens, locks, inserts and commits in one thread, with its own connection,
  and signals once it holds the lock.

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

* Commit the other process once provisioning waits for it,... (continued)

7 of 7 new or added lines in 1 file covered. (100.0%)

20699 of 24016 relevant lines covered (86.19%)

0.86 hits per line

Jobs
ID Job ID Ran Files Coverage
1 36697434606.1 30 Sep 2026 09:53AM UTC 188
86.19
GitHub Action Run
Source Files on build 36697434606
  • Tree
  • List 188
  • Changed 1
  • Source Changed 1
  • Coverage Changed 1
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #36697434606
  • 9b974269 on github
  • Prev Build on main (#36689615646)
  • Next Build on main (#36719204342)
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