ipython / ipython/ipykernel

Ipykernel releases and branches

未關閉
#1,399 3 則留言 1 個 reaction 已指派 0 人 在 GitHub 檢視
maintenance
主要語言
Python
星號
734
分支
412
平均合併
1 天 5 小時
30 天內合併 PR
8

描述

(Reposted from Jupyter Zulip)

There are some plans for ipykernel releases and branch manipulations that I am sharing here for maximum exposure. All comments gratefully received.

The latest ipykernel release was 6.29.5 in July 2024. The current `main` branch has almost but not quite complete implementations of `anyio` (instead of `tornado`) and subshells ([JEP91](https://jupyter.org/enhancement-proposals/91-kernel-subshells/kernel-subshells.html)) and it was originally intended that these would be in a 7.0.0 release. However, there are concerns about the use of `anyio` going forward so I have instead backported subshells to the current 6.x branch so it can be released without `anyio` (issue #1387).

The release of ipykernel with subshells but not `anyio` could have been 6.30.0 or 7.0.0, but we have decided that 7.0.0 is more sensible. Subshells do not have to be used and the implementation is backward compatible in the sense that it passes all downstream tests in the ipykernel CI but now shell channel messages are handled in a separate thread and this could break downstream projects that are assuming otherwise, or that might now receive messages with different timings or in a different order. 7.0.0 will allow downstream projects to version gate on `ipykernel<7` while they check and fix such issues.

We also think it wise to make a 6.30.0 release anyway based on the 6.x branch before subshells was added so that we can support the 6.x branch whilst projects are transferring to 7.

This needs some branch manipulation in the ipykernel repo:
1. `main` renamed to `anyio` or some other name implying `future` or `8.x`
2. `6.x` renamed to `main`
3. `6.x` before subshells were added (commit `7603443b`) becomes the head of `6.x`

I have sufficient permissions in the ipykernel repo to make these changes, but given the potential for messing things up I will only do in the presence of another maintainer; both Jason and Zach have previously said they might be available and are good choices being members of both the Jupyter Kernels Council and the EC.

Planned sequence of changes:
1. Rename `main` to `anyio`, moving across all current PRs submitted against `main`
2. Rename `6.x` to `main`, set as default branch and update branch rules to protect against a push.
3. Use commit `7603443b` as the new head of `6.x`
4. Backport maintainance fixes from old `main` to new `main` and `6.x` branches
5. Release 6.30.0 from `6.x` branch
6. Release 7.0.0 from `main` branch
7. Longer term discussion on the use of `anyio` vs `tornado` etc

I would like to start this soon, meaning weeks rather than months.

貢獻指南

開啟貢獻指南

研究方向

Review the proposed branch sequence for main, 6.x, the anyio branch, and commit 7603443b, along with the release steps for 6.30.0 and 7.0.0. Confirm the required maintainer coordination and repository branch protections first; done means the branch layout and releases match the plan without disrupting existing pull requests or downstream version gating.

由索引模型根據 Issue 內容生成。

評估

技術堆疊
python
領域
release
Issue 類型
功能
難度
5/5
預估耗時
一週以上
活躍度
停滯
描述清晰度
基本清楚
新手友好度
20/100

把新 issue 寄到你的電子郵件信箱

精選適合新手參與的 GitHub issue 摘要。