Skip to content

Migration/step 07a - #9

Merged
surchs merged 2 commits into
mainfrom
migration/step-07a
Oct 17, 2026
Merged

surchs merged 2 commits into
mainfrom
migration/step-07a

Conversation

@surchs

@surchs surchs commented Oct 17, 2026

Copy link
Copy Markdown
Contributor

Title: chore(migration): step 07a compose files use stack/ and examples/ directly (R1)
Branch: migration/step-07a

Can be squash-merged or merged; it imports no history.

Summary

  • tools/api/docker-compose.yml and tools/query-tool/docker-compose.yml: extends.file changed from recipes/docker-compose.yml to ../../stack/docker-compose.yml, bind mounts from ./recipes/... to ../../stack/... and from ./neurobagel_examples/... to ../../examples/..., secret files from ./recipes/secrets/... to ../../stack/secrets/....
  • Symlinks tools/api/recipes and tools/query-tool/recipes deleted. The neurobagel_examples symlinks stay (test code imports through them; R6 not approved).
  • query-tool's test profile fixed (maintainer decision in Step 5): new init_data service extending the stack's, with the test profile, ../../examples/data-upload/pheno-bids-derivatives-output as /input_data and the neurobagel_data volume as /data; neurobagel_data declared under volumes: (the extended api service mounts it). The federation API now mounts the committed stack/local_nb_nodes.template.json (one local node, http://api:8000, the profile's own node API) instead of the git-ignored, non-existent stack/local_nb_nodes.json (maintainer decision).
  • READMEs: api's setup text and query-tool's "Docker compose testing environment" describe the direct stack//examples/ paths; query-tool's known-issue note replaced by the working commands, the readiness log line, and down -v. Root README: R1 row.

Checks run

Check Result
find tools -maxdepth 2 -name recipes nothing
docker compose config in tools/api OK; no path contains recipes
docker compose --profile test config in tools/query-tool OK (failed before, as upstream); no path contains recipes; every bind mount and secret resolves inside stack/ or examples/
api integration tests (just test api) 188 passed (baseline 188)
docker compose --profile test up -d in tools/query-tool init_data exits 0; api, graph, federation up; graph log reaches Finished setting up the Neurobagel graph backend. (~21 s); node API GET / 200 and POST /datasets 200; federation API GET / 200, /nodes lists Local graph 1 (http://api:8000/), and POST /datasets federated to it returns nodes_response_status: success with no errors; no stack/local_nb_nodes.json directory is created
scripts/check-unchanged.sh OK
federation-api / bagel-cli tests 111 / 215 passed
query-tool, annotation-tool static checks; docs mkdocs build --strict pass
query-tool format:check and codespell (cover the edited compose file and README) pass
just lint passes

Documentation check: in a fresh clone of this branch, run verbatim in bash: query-tool docker compose --profile test pull && docker compose --profile test up -d (OK, graph ready in 21 s, ports 8000 and 8080 answer 200), docker compose --profile test down -v; api docker compose up -d test_graph export_datasets_metadata, uv run pytest -m "integration or not integration" (188 passed), docker compose down -v.

Deviations and findings

  • The query-tool init_data fix needed one more piece than the plan named: the neurobagel_data volume declaration. Plan updated.
  • query-tool's federation service mounted ../../stack/local_nb_nodes.json, which does not exist (git-ignored in recipes; upstream's submodule had none either), so docker compose created an empty directory and the federation API logged "No local Neurobagel nodes defined" and used only public nodes. It now mounts the committed template, so the test profile federates over its own node API.

🤖 Generated with Claude Code

…ectly (R1)

Point api's and query-tool's compose files at ../../stack and
../../examples instead of the recipes and neurobagel_examples symlinks,
remove the recipes symlinks, and add the init_data service and
neurobagel_data volume missing from query-tool's test profile.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…st profile

stack/local_nb_nodes.json is git-ignored and does not exist, so docker
compose created an empty directory and the federation API saw no local
node. The committed template defines the profile's own api service.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@surchs
surchs merged commit fc47a74 into main Oct 17, 2026
19 checks passed
@surchs
surchs deleted the migration/step-07a branch October 17, 2026 17:07
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.

2 participants