Feature Request: Support free-threaded Python
まだ誰も着手していません。
評価
- 難易度
- 3/5
- 見積もり時間
- 1〜2日
- 初心者へのやさしさ
- 45/100
- issue の種類
- 機能追加
- 明瞭さ
- おおむね明確
- 活発さ
- 停滞
- 技術スタック
- docker, python
- 領域
- build-system, devops
調査の方向性
まず、既存の 3.14 ディレクトリとその Dockerfile を比較します。特に、issue でリンクされている pyenv のインストール行を確認してください。node イメージなどのイメージタグとバリアントがどのように生成または公開されているかを確認し、その後 free-threaded 版を追加して、生成されたタグが要求された Python リリースで利用可能であることを検証します。
索引モデルが issue の本文から書いたものです。
説明
Describe the Feature Request
Python has been officially supporting a free-threaded variant since v3.14.0 (also available in v3.13.x, but it was considered experimental then). That is, multiple threads in Python no longer invoke the GIL to coordinate, which reduces performance limitations significantly. Because it can cause subtle issues in programs that do not do all the correct locking and coordinating, it’s important to be able to test these builds in CI. More info on free-threaded builds here: https://py-free-threading.github.io/
Free-threading is a build-time feature, so it would need to be a separate Docker image/tag. As far as I can tell, this isn’t currently being built here or published at https://hub.docker.com/r/cimg/python.
The official free-threading variants are usually identified by appending a t to the version, e.g. 3.14.3t. This might be as simple as adding a 3.14t directory alongside the 3.14 one and just updating the pyenv install line: https://github.com/CircleCI-Public/cimg-python/blob/f27d1395d07d077c5fe6e681e0ab7c9e53e9c7d1/3.14/Dockerfile#L45
The t variants should work just fine otherwise with the existing Docker configuration here — I’ve been maintaining a set of images for Python pre-releases for a couple years that does free-threaded builds without issue (I changed the Dockerfile slightly to accommodate Poetry failing to build, which regularly happens in pre-releases before the release candidate phase, but it’s never failed on final releases of Python).
Is your feature request related to a particular problem?
The free-threaded variant of Python can cause lots of subtle issues with any Python’s binary interface (e.g. compiled extensions/packages written in C), it’s really important to test against in CI. Even pure-Python packages may have binary dependencies, or may just need to be more careful about locking and testing in threading-related code.
None of this can be tested in Circle when using cimg/python right now (so far as I’m aware, at least), and it requires building your own base image from cimg/base instead.
How will this feature request benefit CircleCI jobs using this image?
It enables testing free-threaded Python without building custom base images.
Describe the solution you would like to see
I would like to see tags for the cimg/python images that use free-threaded Python, e.g. 3.14.3t or 3.14.3t-node.
Describe alternatives you have considered
The alternative is all customers testing Python code building custom base images for free-threaded Python and not being able to rely on cimg/python.
- 主要言語
- Dockerfile
- スター
- 34
- フォーク
- 33
- 平均マージ
- 8時間 45分
- マージ済み PR(30日)
- 7
環境構築
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートあり
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
CircleCI-Public/cimg-python のほかの issue
-
enhancement
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
CircleCI-Public/cimg-python#304 ·
-
bug
難易度 3/5 1〜2日 初心者へのやさしさ 35/100
CircleCI-Public/cimg-python#265 ·
-
bug
難易度 3/5 1〜2日 初心者へのやさしさ 45/100
CircleCI-Public/cimg-python#260 ·
-
enhancement
難易度 4/5 3〜5日 初心者へのやさしさ 35/100
CircleCI-Public/cimg-python#258 ·
-
bug
難易度 4/5 3〜5日 初心者へのやさしさ 35/100
CircleCI-Public/cimg-python#250 · コメント 5 件 ·
CircleCI-Public/cimg-python の issue をすべて見る
似ている issue
-
難易度 1/5 1〜3時間 初心者へのやさしさ 68/100
MangasMango/bound-to-rot#41 · コメント 1 件 ·
-
area-blazor NativeAOT Regression
難易度 2/5 1〜3時間 初心者へのやさしさ 62/100
dotnet/aspnetcore#70236 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
check-skill-pages: show fixture build errors when a build fails対応中かも @ShahadatTest が今日担当しました。 オープンgood first issue P2
難易度 1/5 1時間未満 初心者へのやさしさ 85/100
coco-research/coco#439 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
bug
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
-
CI enhancement good first issue help wanted P2
難易度 2/5 1〜3時間 初心者へのやさしさ 70/100
yesvus/helmdeck#449 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信