Skip to content

chore(migration): step 07c build the bagel-cli image from the release… - #11

Merged
surchs merged 1 commit into
mainfrom
migration/step-07c
Oct 17, 2026
Merged

surchs merged 1 commit into
mainfrom
migration/step-07c

Conversation

@surchs

@surchs surchs commented Oct 17, 2026

Copy link
Copy Markdown
Contributor

Title: chore(migration): step 07c build the bagel-cli image from the release wheel (R3)
Branch: migration/step-07c

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

Summary

  • Dockerfile: tools/bagel-cli/Dockerfile is replaced by the plan's wheel-based Dockerfile. It copies tools/bagel-cli/dist/*.whl, fails unless exactly one wheel is present, and pip installs it; nothing is installed from PyPI or from source.
  • Ignore file: tools/bagel-cli/Dockerfile.dockerignore contains * and !tools/bagel-cli/dist/*.whl.
  • Deleted: Dockerfile.nightly and Dockerfile.nightly.dockerignore, plus the obsolete tools/bagel-cli/.dockerignore (see Deviations).
  • just: just build bagel-cli runs rm -rf tools/bagel-cli/dist, uv build --wheel in tools/bagel-cli, then docker build -f tools/bagel-cli/Dockerfile -t neurobagel/bagelcli:local . from the root.
  • Docs:
    • bagel-cli README: the Docker section is replaced with the content the plan requires, plus one paragraph on just build bagel-cli, the root build context and the one-wheel check.
    • Root README: an R3 row linking to it.

Checks run

Check Result
just build bagel-cli; docker run --rm neurobagel/bagelcli:local --version vs. uv run bagel --version both bagel 0.11.7.dev2145
docker run --rm --entrypoint pip neurobagel/bagelcli:local show -f bagel lists files under bagel/communities/ (51) and bagel/pipeline-catalog/ (5)
Build with two wheels in tools/bagel-cli/dist fails at RUN test "$(ls /tmp/*.whl | wc -l)" -eq 1 ... (exit code 1)
ls tools/bagel-cli/Dockerfile.nightly* nothing
grep -rn "pip install --no-cache-dir bagel$" tools/bagel-cli nothing
BuildKit "transferring context" 1.24 MB (the wheel only)
scripts/check-unchanged.sh OK
bagel-cli / api / federation-api tests 215 / 188 / 111 passed
query-tool and annotation-tool static checks; just build api|federation-api|query-tool pass
just lint passes

Documentation check: in a fresh --recurse-submodules clone of this branch, from the repository root, the README's three local build commands ran verbatim:

  • rm -rf tools/bagel-cli/dist, (cd tools/bagel-cli && uv build --wheel) and docker build -f tools/bagel-cli/Dockerfile -t neurobagel/bagelcli:local . all succeeded.
  • docker run --rm neurobagel/bagelcli:local --version printed bagel 0.11.7.dev2146, which equals the wheel's version.
  • just build bagel-cli succeeded.
  • docker pull neurobagel/bagelcli and docker run --rm neurobagel/bagelcli --help work.
  • apptainer pull was not run (Apptainer is not available locally).

Deviations from the plan

  • Extra deletion: also deleted tools/bagel-cli/.dockerignore. It served builds with the tool folder as context, is ignored with the root context, and lists dist, the folder the new image builds from. Plan updated.
  • Nightly build check: Step 4's skipped Dockerfile.nightly check is now covered here. The single Dockerfile builds an image whose version matches uv run bagel --version.
  • Not in CI yet: the bagel-cli image is not built by CI in this step. Nightly (Step 11) and release (Step 13) jobs build it from the uploaded wheel.

🤖 Generated with Claude Code

… wheel (R3)

Replace the bagel-cli Dockerfile with one that installs exactly one
pre-built wheel from tools/bagel-cli/dist, allowlist only that wheel,
remove Dockerfile.nightly and the obsolete tool-folder .dockerignore,
add just build bagel-cli, and document the image in the READMEs.

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