Skip to content

Split the dev compose stack out to the workspace metarepo - #8

Merged
tescalada merged 1 commit into
mainfrom
split-dev-compose-to-workspace
Jul 20, 2026
Merged

tescalada merged 1 commit into
mainfrom
split-dev-compose-to-workspace

Conversation

@tescalada

Copy link
Copy Markdown
Contributor

The dev compose stack spans component repos: it builds the webapp from this
repo, builds SymmetricDS from its own, and pulls the sparknet-http image.
That cannot be assembled from this repo alone, so it moves to the
groundbolt-dev workspace metarepo, which clones the components side by side.

What stays here is the test harness, which CI must be able to run with only
this repo checked out.

Changes

  • docker-compose.yml removed; the dev stack now lives in the workspace metarepo.
  • docker-compose.test.yml added: a throwaway Postgres plus the test-image runner.
  • scripts/run_coverage.sh and the README use -f docker-compose.test.yml in
    place of --profile test.
  • The test database publishes an ephemeral host port instead of a fixed 5442,
    so two checkouts can run their suites at the same time. The test container
    reaches the database over the compose network.

Verification

docker compose -f docker-compose.test.yml config validates.

The dev stack spans component repos: it builds the webapp from this repo,
builds SymmetricDS from its own, and pulls the sparknet-http image. It
cannot be assembled from this repo alone, so it moves to the groundbolt-dev
workspace metarepo, which clones the components side by side.

What stays here is the test harness, which CI must be able to run with only
this repo checked out. It becomes docker-compose.test.yml -- a throwaway
Postgres plus the test-image runner -- invoked with
`docker compose -f docker-compose.test.yml`, replacing the `--profile test`
selection the combined file needed. scripts/run_coverage.sh follows.

The harness publishes the test database on an ephemeral host port instead of
a fixed 5442, so a second checkout running its suite concurrently does not
fail to bind. The test container reaches the database over the compose
network, so no fixed port is needed.
@github-actions

Copy link
Copy Markdown

Coverage

Coverage report
FileStmtsMissCoverMissing
sparkmeter
   __version__.py16288%32, 38
   _wsgi_mount_smoketest.py97970%19–152
   app.py3151197%19–20, 111, 368–375, 552–554, 675, 682–683
   asgi.py74740%19–166
   cli.py42686%59–70
   cli_app.py880%4–20
   cli_prompts.py151220%8–12, 17–21, 26–28
   conftest.py181995%51–52, 85–86, 108–120, 209
   controller.py2444283%183, 207–208, 531, 585–642
   debug_memory.py32320%6–63
   periodic.py563145%60–66, 71–75, 80–84, 93–98, 103–111, 124–128
   sentry_proxy.py342235%38, 44–47, 56–65, 73–82
   servercommand.py1127236%47, 56–60, 64–69, 73–78, 82–85, 89–90, 101–103, 112–181
sparkmeter/alembic/versions
   0.32_merge_sms_tables.py46393%61–67
   0.77_snapshot_support.py128298%340, 401
sparkmeter/api
   customerviews0.py283199%301
   historyviews0.py1149219%49–55, 69–72, 81–131, 144–175, 185–216, 230–257
sparkmeter/config
   configparameter.py57296%80, 111
sparkmeter/database
   alchemy.py54493%61–63, 74
   database.py232399%497, 579–580
   ormobject.py55198%65
   session.py21210%12–62
   types.py54394%91–92, 125
sparkmeter/ground
   groundcommand.py201050%20–35
sparkmeter/history
   historyview.py351654%30–31, 41–54, 65–72
sparkmeter/meter
   meterdomain.py7722797%892, 1805–1806, 1817–1868, 1911
sparkmeter/metering
   api.py27967%66–76
   cli.py2275874%158, 174–175, 184, 193, 198–201, 203, 234, 238–244, 281–297, 301–335, 456–458
   dispatch.py741678%78–80, 85–97, 185
   events.py1053468%56, 75–77, 109–112, 118–193, 240
   lifespan.py695225%37–98, 109–125
   reconcile.py1134362%84–107, 119–120, 129, 135–138, 140–143, 169, 259–262, 266–269, 273–276, 287
sparkmeter/metering/tools
   cli_client.py825829%46–52, 56–61, 65–70, 83–107, 115–148, 153–166
sparkmeter/misc
   datetimeutils.py65395%115–117
sparkmeter/system
   systemcommand.py67593%35, 130–132, 134–135
sparkmeter/tariff
   tariffcommand.py821582%27–44
sparkmeter/transaction
   transactionview.py167199%71
sparkmeter/user
   userdomain.py1871294%416–434
sparkmeter/web
   unittestutils.py1741194%30–38, 269, 278, 344, 346
   views.py72199%71
TOTAL1264792193% 

Tests Skipped Failures Errors Time
1267 0 💤 0 ❌ 0 🔥 4m 52s ⏱️

@github-actions

Copy link
Copy Markdown

Diff Coverage

Diff: origin/main...HEAD, staged and unstaged changes

No lines with coverage information in this diff.

@tescalada
tescalada merged commit b9fb54d into main Jul 20, 2026
8 of 10 checks passed
@tescalada
tescalada deleted the split-dev-compose-to-workspace branch September 25, 2026 17:37
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