Repository navigation
Update tkinter to use Tk 8.6.15 or (better) Tk 9.0 #124111
Copy link
Copy link
Closed
Labels
extension-modulesC modules in the Modules dirC modules in the Modules dirtopic-tkintertype-featureA feature request or enhancementA feature request or enhancement
Description
Feature or enhancement
Proposal:
This issue is being opened as a prerequisite for a PR which will update _tkinter.c and Lib/test/test_tkinter so that they work with both Tk 8.6.15 and Tk 9.0.
Both Tk 8.6.15 and Tk 9.0 currently have release candidates available and will be released soon. The TclTk project has decided that there will be no release of the 8.7 branches. Tcl 9 and Tk 9 are the current development branches (both named main in the fossil repository.)
Tk 9 offers many improvements over Tk 8, and both TclTk and Python would benefit from having tkinter support for Tk 9.0.
Has this already been discussed elsewhere?
No response given
Links to previous discussion of this feature:
No response
Linked PRs
- gh-124111: Update tkinter and test_tkinter to use either Tcl/Tk 8.6.15 or Tcl/Tk 9.0. #124112
- gh-124111: Update tkinter for compatibility with Tcl/Tk 9.0.0 #124156
- [3.13] gh-124111: Update tkinter for compatibility with Tcl/Tk 9.0.0 (GH-124156) #127364
- gh-124111: Fix TCL 9 threaded detection #128103
- gh-124111: Update macOS installer to use Tcl/Tk 8.6.16. #132190
- [3.13] gh-124111: Update macOS installer to use Tcl/Tk 8.6.16. (GH-132190) #132198
- [3.12] gh-124111: Update macOS installer to use Tcl/Tk 8.6.16. (GH-132190) #132199
- gh-124111: test macOS CI with Tk 9 #136959
- gh-124111: test macOS CI with Tk 9 #137424
- gh-124111: Update macOS installer to use Tcl/Tk 8.6.17. #139682
- [3.14] gh-124111: Update macOS installer to use Tcl/Tk 8.6.17. (GH-139682) #139683
- [3.13] gh-124111: Update macOS installer to use Tcl/Tk 8.6.17. (GH-139682) #139684
- gh-124111: Update macOS installer to use Tcl/Tk 9.0.2. #140076
- [3.14] gh-124111: Fix TCL 9 thread detection (GH-128103) #141482
- [3.13] gh-124111: Fix TCL 9 thread detection (GH-128103) #141483
- gh-124111: Update macOS installer to use Tcl/Tk 9.0.3 #144646
- gh-124111: Fix tclWin32Exe value in tcltk.props for Tcl 9 #149441
- gh-124111: Only set TCLSH_NATIVE for AMD64/ARM64 #149443
- [3.14] gh-124111: Update macOS installer to use Tcl/Tk 9.0.3. #149463
- gh-124111: Update Windows build to use Tcl/Tk 9.0.3 #149477
- [3.15] gh-124111: Update Windows build to use Tcl/Tk 9.0.3 (GH-149477) #149842
- gh-124111: Keep tests passing for Tcl prior to 9.0 #150102
- [3.15] gh-124111: Keep tests passing for Tcl prior to 9.0 (GH-150102) #150110
- [3.14] gh-124111: Update Windows build to use Tcl/Tk 9.0.4 (GH-150102) (GH-149477) (GH-151562) (GH-153901) #150197
- [3.13] gh-124111: Update macOS installer to use Tcl/Tk 8.6.18. #151125
- gh-124111: Update macOS installer to use Tcl/Tk 9.0.4. #153868
- [3.14] gh-124111: Update macOS installer to use Tcl/Tk 9.0.4. (GH-153868) #153870
- [3.15] gh-124111: Update macOS installer to use Tcl/Tk 9.0.4. (GH-153868) #153871
- gh-124111: Update Windows builds to Tcl/Tk 9.0.4 #153901
- [3.15] gh-124111: Update Windows builds to Tcl/Tk 9.0.4 (GH-153901) #153990
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
extension-modulesC modules in the Modules dirC modules in the Modules dirtopic-tkintertype-featureA feature request or enhancementA feature request or enhancement
Activity
hugovk commentedon Sep 15, 2024
See also #104568.
terryjreedy commentedon Sep 16, 2024
There are 2 items on that overview issue with individual issues. The first has a solution merged. The second was waiting to know whether there would be an 8.7. "The TclTk project has decided that there will be no release of the 8.7 branches." Do you have a link?
"Tk 9 offers many improvements over Tk 8," Is there a summary page? I am particularly curious if full unicode support was added. If so, I would want 9.0 to at least be an option with our installers, as the lack thereof is the biggest problem with tk for use with IDLE.
culler commentedon Sep 16, 2024
Unfortunately, this decision was made by the Tcl Core Team (TCT) by consensus, not by our usual governance process which involves writing and voting on a TIP.
(I am a member of the TCT.) You can find a lot of discussion on the Tcl Core list and you can observe that the 8.6.15 and 9.0 versions of Tcl and Tk currently have release candidates, while Tcl and Tk 8.7 have never reached beta. (Maybe I should write such a TIP. I'll consider that.)
The Tcl summary is here. Tk 9.0 was created as a continuation of Tk 8.7 (unlike Tcl 9.0, which has signficant differences from 8.7).
Yes, Tcl 9.0 has full unicode support. That was one of the biggest issues, of course. Switching to 9.0 means no more CESU-8. Moreover, if tkinter starts using Tk 9.0 then, as far as I can tell, that would mean that a majority of Tk users would be using Tk 9.0.
serhiy-storchaka commentedon Sep 27, 2024
I think that this should be split on several parts.
pixelsto string, we usually don't do that except whenwantobjects=0, in which case all values are converted to strings. I think adding custom types forpixelsand other Tk types might be more promising. After all, we may need to compare sizes, convert to different units, perform arithmetic operations.Tcl/Tk 9.0 is a good news, and I look forward to using it.
aivarannamaa commentedon Sep 27, 2024
Can it make into 3.12.7 ?
serhiy-storchaka commentedon Sep 27, 2024
I hope on this, but we still have not updated the bundled version on Windows to 8.6.14 (see #116145).
Hold off on updates to Tcl/Tk 9 until Python can be updated
ahmadkakarr commentedon Nov 8, 2024
Tcl/Tk 9.0 is available in 3.13 on windows?
terryjreedy commentedon Nov 9, 2024
No. AFAIK, tk9.0 is still in candidate stage, not officially released. In any case, not in main yet.
culler commentedon Nov 9, 2024
terryjreedy commentedon Nov 9, 2024
My comment was based on your posts of Sept 16 and early posts on the PR. Thank you for the update. What, then, is stopping 9.0 on main? I could not really tell from the PR. Like Serhiy, I am really looking forward to trying it out.
culler commentedon Nov 9, 2024
I don't think there is anything stopping it. PR #124156 is in the "awaiting merge" state.
One possible issue is that the Windows port of Tcl 9.0 puts libtommath in a separate DLL, which complicates the Python distribution. But there are build options available which will statically link libtommath into the Tcl DLL. So that issue seems to have a reasonable workaround.
gh-124111: Update tkinter for compatibility with Tcl/Tk 9.0.0 (GH-124156
138 remaining items
[3.15] gh-124111: Update macOS installer to use Tcl/Tk 9.0.4. (GH-153868
pythongh-124111: Update macOS installer to use Tcl/Tk 9.0.4. (python#…
pythongh-124111: Update Windows builds to Tcl/Tk 9.0.4
gh-124111: Update Windows builds to Tcl/Tk 9.0.4 (GH-153901)
[3.15] gh-124111: Update Windows builds to Tcl/Tk 9.0.4 (GH-153990)
[3.14] gh-124111: Update Windows build to use Tcl/Tk 9.0.4 (GH-150102) (
zware commentedon Aug 3, 2026
With 3.14+ updated to 9.0.4 on macOS and Windows, this is now complete. Thanks to everyone who contributed!
TheDemonGuard commentedon Aug 5, 2026
I installed 3.14.6 on Windows. However I am still getting TK version 8.6.
The command I used to confirm this is as follows
maj113 commentedon Aug 5, 2026
Most likely not yet published on the python website, the .6 was published on June 10th also looking at the tags .7 does not exist yet, might take a while
hugovk commentedon Aug 5, 2026
Python 3.14.7 will hopefully be released later today (5th August), after #153711 is fixed.
[3.14] pythongh-124111: Update Windows build to use Tcl/Tk 9.0.4 (pyt…
TheDemonGuard commentedon Aug 7, 2026
Thank you. I can confirm that Python 3.14.7 includes Tk 9.0.4 on Windows.
On MacOS, I confirmed that Python 3.14.6 includes Tk 9.0.4.
python3Packages.tkinter: build with tcl/tk 9.0 for python 3.14+
python3Packages.tkinter: build with tcl/tk 9.0 for python 3.14+