Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

v3.0.0 roadmap & release plan #1052

Open
4 tasks
dlqqq opened this issue Oct 23, 2024 · 0 comments
Open
4 tasks

v3.0.0 roadmap & release plan #1052

dlqqq opened this issue Oct 23, 2024 · 0 comments
Labels
enhancement New feature or request
Milestone

Comments

@dlqqq
Copy link
Member

dlqqq commented Oct 23, 2024

Attention Jupyter AI users! I have some exciting news to share in this issue. We are currently planning, designing, and building the next major release of Jupyter AI, v3.0.0.

This issue is a living document that lists features planned for v3.0.0, and publicly tracks progress on v3.0.0 development. The list of planned features is incomplete and will evolve in the coming months. I'm posting what we have planned so far to make our progress transparent & visible to the broader user community.

The list of issues being considered for v3.0.0 are also listed here in a dedicated GitHub milestone: https://github.com/jupyterlab/jupyter-ai/milestone/10

Planned features

These are the features we are >95% confident should be developed as part of v3.0.0.

  • Migration to Jupyter Chat (must be completed first)

    • Context: Jupyter Chat is a new package that re-defines and provides the frontend components originally from Jupyter AI, while completely re-defining the backend model of chats. Chats will no longer be a simple list of messages stored in-memory and vanish on server restart, but instead persisted as plaintext *.chat files and represented in-memory as a Yjs CRDT document. Yjs is the same family of packages that power Jupyter Collaboration, which provides RTC functionality in JupyterLab. @brichet (the lead dev behind Jupyter Chat) and I will be working closely to ensure that this migration will be seamless & painless for existing users & contributors.
    • Motivation: This migration will 1) allow for multiple chats by creating a top-level abstraction for chats, 2) simplify Jupyter AI's backend by delegating chat state management & synchronization to Yjs, 3) allow for real-time editing of the chat history to enable features like message editing & re-ordering. This migration also moves most of Jupyter AI's frontend components to @jupyter/chat, allowing other extensions to re-use our code to build their own chat applications.
    • Issue: Use Jupyter Chat, if available, for the chat interface #785
    • Issue: Use @jupyter/chat as chat UI #862
    • PR: Use jupyterlab-collaborative-chat #1043
  • Multiple conversation management

  • Message editing

  • Migration to Pydantic v2 and LangChain >=0.3

Tentative features

These are features that may be developed as part of v3.0.0, but require further design, research, or feedback from the community.

Details on v3.0.0 development (for contributors)

  • The new v3-dev branch will track development on v3.0.0 until its initial release.

    • Until then, main will still track Jupyter AI v2.x.
  • From now on, newly-merged PRs should be backported to v3-dev.

    • Comment @meeseeksdev please backport to v3-dev on PRs after merging to have the bot automatically open a new backport PR against v3-dev.
  • When v3-dev is ready for its initial release, a PR merging v3-dev into main will be opened, and be reviewed a final time.

  • After that PR is merged, main will track v3.x, and a separate 2.x branch will track Jupyter AI v2.x.

  • We acknowledge that the Jupyter Chat migration requires contextual knowledge of Jupyter Chat & Yjs, which makes it difficult for others to contribute directly. This migration also changes the entire chat API, on both the frontend and the backend. @brichet and I are prioritizing reaching alignment on the new chat API that will be used in Jupyter AI v3.0.0 as quickly as possible, so other contributors can build freely using a (relatively) stable chat API (ETA: by Nov 11).

  • Once that is complete, we will add a "Contributing" section to this issue that details how contributors can assign themselves issues & open PRs, and provides a summary of what is different in v3-dev.

  • For now, we ask that those who wish to contribute do so by opening new issues, leaving feedback on existing ones listed here, and reviewing v3-dev PRs to stay in-the-loop on code changes.

@dlqqq dlqqq added the enhancement New feature or request label Oct 23, 2024
@dlqqq dlqqq pinned this issue Oct 23, 2024
@dlqqq dlqqq added this to the 3.0.0 Release milestone Oct 23, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant