Skip to content

Upgrade to Jupyter AI v3.2.0a0 - #15

Merged
tsnow03 merged 5 commits into
CryoInTheCloud:mainfrom
dlqqq:upgrade-jupyter-ai-3.2.0a0
Aug 25, 2026
Merged

Upgrade to Jupyter AI v3.2.0a0#15
tsnow03 merged 5 commits into
CryoInTheCloud:mainfrom
dlqqq:upgrade-jupyter-ai-3.2.0a0

Conversation

@dlqqq

@dlqqq dlqqq commented Aug 24, 2026

Copy link
Copy Markdown
Contributor

Summary

Upgrades Jupyter AI to the 3.2.0a0 pre-release.

conda-forge only ships stable jupyter-ai ~=3.0, so environment.yml / conda-linux-64.lock cannot reach 3.2.0a0. That pre-release — and its whole pre-release dependency family (jupyter-ai-acp-client 0.3.x, jupyter-ai-persona-manager 0.2.x, jupyter-ai-router 0.1.x, jupyter-ai-tools 0.7.x, jupyterlab-chat 0.25.x, jupyter-server-mcp 0.3.x, ...) — exists only on PyPI.

Approach

  • environment.yml: comment out jupyter-ai ~=3.0.0 (with a note) and add uv.
  • appendix: after the mamba env create block, an inline step upgrades Jupyter AI from PyPI using uv (not plain pip):
    RUN ${NB_PYTHON_PREFIX}/bin/uv pip install \
          --python ${NB_PYTHON_PREFIX}/bin/python \
          --prerelease=allow "jupyter-ai==3.2.0a0"
    
    uv resolves the entire pre-release graph in a single pass and only then writes, so the conda env moves atomically from one consistent state to another. Plain pip tends to upgrade the ~10 affected packages one at a time and can leave the env half-upgraded and broken.

Re-enable the environment.yml line (bumped to ~=3.2.0) and drop the appendix step once Jupyter AI v3.2.0 is on conda-forge.

⚠️ Requires a lockfile refresh

environment.yml changed (added uv, removed jupyter-ai), so conda-linux-64.lock must be regenerated — comment /condalock on this PR. Until the lock contains uv, the build fails at the appendix step (uv not found). This is expected; run /condalock first, then the build will pick up uv and layer on 3.2.0a0.

Draft.

conda-forge only ships stable jupyter-ai ~=3.0; the 3.2.0a0 pre-release and
its pre-release dependency family (acp-client 0.3.x, persona-manager 0.2.x,
router 0.1.x, tools 0.7.x, jupyterlab-chat 0.25.x, jupyter-server-mcp 0.3.x,
...) exist only on PyPI.

Add a post-build step to the repo2docker appendix that installs the 3.2.0a0
pre-release from PyPI using uv (not plain pip) so the whole pre-release graph
resolves atomically instead of leaving a half-upgraded conda env. The step
runs after the lockfile env is (re)created, and is driven by a new
install-jupyter-ai-prerelease.sh helper.
@github-actions

Copy link
Copy Markdown

Binder 👈 Test this PR on Binder

dlqqq added 2 commits August 24, 2026 20:45
- install-jupyter-ai-prerelease.sh: JUPYTER_AI_EXTRAS now defaults to empty
  (bare jupyter-ai); set JUPYTER_AI_EXTRAS=[jupyternaut] to opt in.
- environment.yml: comment out 'jupyter-ai ~=3.0.0' with a note to re-enable
  it (and drop the appendix step) once Jupyter AI v3.2.0 lands on conda-forge.
- environment.yml: add 'uv' (conda-forge).
- install-jupyter-ai-prerelease.sh: use ${NB_PYTHON_PREFIX}/bin/uv instead of
  fetching the standalone binary; error with guidance if uv is absent (i.e. the
  lockfile hasn't been regenerated since uv was added to environment.yml).
@dlqqq

dlqqq commented Aug 24, 2026

Copy link
Copy Markdown
Contributor Author

/condalock

@dlqqq
dlqqq marked this pull request as ready for review August 24, 2026 20:56
dlqqq added 2 commits August 24, 2026 21:04
The post-build step is just a uv pip install, so run it inline in the appendix
instead of shelling out to install-jupyter-ai-prerelease.sh (now removed).
- environment.yml: comment out jupytergis (it depends on jupyter-collaboration
  / RTC, which we're keeping out of this image).
- Regenerate conda-linux-64.lock + conda-lock.yml so the env changes take
  effect: adds uv, drops the jupyter-ai family (installed via the appendix uv
  step) and jupytergis + jupyter-collaboration. This also fixes the CI 'uv not
  found' failure, since uv is now present in the committed lock.
@tsnow03
tsnow03 merged commit 5b231d3 into CryoInTheCloud:main Aug 25, 2026
1 check passed
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