You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Hey folks, I would like to contribute jupyter-ai-devrepo to the jupyter-ai-contrib/ org.
What is this?
This is a "devrepo" (developer repository) that contains most of the repos under the jupyter-ai-contrib/ org as Git submodules. This basically mimics a monorepo setup like we had in v2, but also allows us to enjoy the benefits of separate repos as discussed here.
How do I use this?
At the top level, there is a README.md file that provides directions. Basically:
Clone the repo with the --recurse-submodules flag
Install uv and just (a command runner similar to make with fewer quirks)
Run just sync to pull in latest changes
Run just install to create the dev environment.
Run just start to start JupyterLab
Couple of notes:
With Git submodules, once you cd into a submodule, it acts just like a normal Git repo. So you can still switch branches & push to forks as long as you cd into the repo first.
just install handles the editable installation of each submodule, enables every server extension, and enables every lab extension to read from the local build.
You will need to run uv run --project .. jlpm build inside a repo after updating the frontend assets for now; we can add a just recipe to help with this later.
What problems does this solve?
Previously, if you did an editable installation of jupyter-ai-jupyternaut, it would install jupyter-ai-router & jupyter-ai-persona-manager from PyPI in non-editable mode. However, installing a package in editable mode after it has been installed in non-editable mode often leads to confusing errors like file not found: ... build_log.json. This often leads developers to create a new environment for each package, which is difficult when cross-cutting changes need to be made across multiple repos.
By using the devrepo, every single package is installed in editable mode inside of a Python venv. This solves multiple issues:
No need to manually dev install all packages in the correct order
No need to create separate environments for each repo
No need to use conda/mamba/micromamba (easier for new contributors)
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
-
Hey folks, I would like to contribute
jupyter-ai-devrepoto thejupyter-ai-contrib/org.What is this?
This is a "devrepo" (developer repository) that contains most of the repos under the
jupyter-ai-contrib/org as Git submodules. This basically mimics a monorepo setup like we had in v2, but also allows us to enjoy the benefits of separate repos as discussed here.How do I use this?
At the top level, there is a
README.mdfile that provides directions. Basically:--recurse-submodulesflaguvandjust(a command runner similar tomakewith fewer quirks)just syncto pull in latest changesjust installto create the dev environment.just startto start JupyterLabCouple of notes:
cdinto a submodule, it acts just like a normal Git repo. So you can still switch branches & push to forks as long as youcdinto the repo first.just installhandles the editable installation of each submodule, enables every server extension, and enables every lab extension to read from the local build.uv run --project .. jlpm buildinside a repo after updating the frontend assets for now; we can add ajustrecipe to help with this later.What problems does this solve?
Previously, if you did an editable installation of
jupyter-ai-jupyternaut, it would installjupyter-ai-router&jupyter-ai-persona-managerfrom PyPI in non-editable mode. However, installing a package in editable mode after it has been installed in non-editable mode often leads to confusing errors likefile not found: ... build_log.json. This often leads developers to create a new environment for each package, which is difficult when cross-cutting changes need to be made across multiple repos.By using the devrepo, every single package is installed in editable mode inside of a Python venv. This solves multiple issues:
conda/mamba/micromamba(easier for new contributors)Please share feedback below!
cc @ellisonbg @Zsailer @jtpio
Beta Was this translation helpful? Give feedback.
All reactions