classification
Title: Upgrade tcl/tk to 8.6.10 (Windows and maxOS)
Type: enhancement Stage: patch review
Components: macOS, Tkinter, Windows Versions: Python 3.10
process
Status: open Resolution:
Dependencies: Superseder:
Assigned To: steve.dower Nosy List: Aivar.Annamaa, alittleman512, markroseman, ned.deily, paul.moore, ronaldoussoren, sdcards, serhiy.storchaka, steve.dower, terry.reedy, tim.golden, zach.ware
Priority: high Keywords: patch

Created on 2019-12-20 10:42 by Aivar.Annamaa, last changed 2020-09-25 19:28 by ned.deily.

Pull Requests
URL Status Linked Edit
PR 18982 closed sdcards, 2020-03-13 22:32
PR 22405 open steve.dower, 2020-09-24 22:33
Messages (16)
msg358702 - (view) Author: Aivar Annamaa (Aivar.Annamaa) * Date: 2019-12-20 10:42
It includes several Mac-related enhancements
https://sourceforge.net/projects/tcl/files/Tcl/8.6.10/tcltk-release-notes-8.6.10.txt/view
msg358705 - (view) Author: Terry J. Reedy (terry.reedy) * (Python committer) Date: 2019-12-20 12:18
Ned is aware of this and needs to verify that it works with _tkinter and tkinter on multiple versions of macOS.
msg358720 - (view) Author: Zachary Ware (zach.ware) * (Python committer) Date: 2019-12-20 17:00
Looks like some enhancements on Windows as well; we should upgrade at least 3.9.
msg363881 - (view) Author: Terry J. Reedy (terry.reedy) * (Python committer) Date: 2020-03-11 05:00
https://www.tcl.tk/man/tcl8.6/TkCmd/contents.htm now displays the 8.6.10 pages, so the tcl folk consider this to be the current stable release.

Zach or Steve or whowever can handle this for Windows, please upgrade pcbuild and whatever else 'soon' (by next release?).  I have looked at
https://sourceforge.net/projects/tcl/files/Tcl/8.6.10/tcltk-release-notes-8.6.10.txt/view
and would like to check out one POTENTIAL INCOMPATIBILITY (mousewheel bindings) and a couple of new features.
msg364236 - (view) Author: Ido Michael (Ido Michael) * Date: 2020-03-15 14:53
I can take this for Mac V 10.14.6 if there was a decision?
msg364387 - (view) Author: Ned Deily (ned.deily) * (Python committer) Date: 2020-03-17 04:54
There is nothing more for you to do for this on the Mac side right now, thanks.  I’m not sure what the Status of changes for Windows build are.  Perhaps that should be a separate issue as the two aren’t really related.
msg364407 - (view) Author: Steve Dower (steve.dower) * (Python committer) Date: 2020-03-17 10:45
Yeah, this is on me now. Hopefully we can just pull in the new sources and they'll be fine, but historically it's taken a couple of days/weeks to get the issues ironed out.

Unfortunately, I'm still on a flaky internet connection (but only for GitHub.com for some reason), so I can't clone the repos I need. But someone else should be able to submit PRs that I can merge:

* clone https://github.com/python/cpython-source-deps/
* disable autocrlf
* checkout tcl, delete all files (except README.md) and extract tcl-8.6.10
* git add --all; git tag tcl-core-8.6.10.0; push and send PR
* checkout tk, delete all files (except README.md) and extract tk-8.6.10
* git add --all; git tag tk-8.6.10.0; push and send PR

Once those are merged:
* checkout cpython repo and update version number in PCbuild/tcltk.props and PCbuild/get_externals.bat
* test build with PCbuild/prepare_tcltk.bat, then build with PCbuild/build.bat
* push, send PR

Before that is merged, I'll branch in cpython-bin-deps so that PRs keep building with the older version, then I can trigger the real build. I'll likely need somebody to download the built files and check them into the cpython-bin-deps repo, but I'll give it a go myself first in case my connection is up to it.

Any volunteers?
msg364605 - (view) Author: szb512 (alittleman512) * Date: 2020-03-19 15:05
I'll update my PR to include some changes for windows.
msg366778 - (view) Author: szb512 (alittleman512) * Date: 2020-04-19 13:20
That backfired horribly.
msg373187 - (view) Author: Aivar Annamaa (Aivar.Annamaa) * Date: 2020-07-06 22:21
According to the comments under https://github.com/python/cpython/pull/18982 there is no point in creating a PR, so I'll just share my experiences.

I was able to build current master with Tcl/Tk 8.6.10 both on Windows 10 (64-bit) and on macOS Catalina. I ran the tests on Windows and no Tkinter-related tests failed. I tested it manually on both platforms by poking around in IDLE and Thonny IDE and saw no (big) issues. (The only regression I saw in Thonny was Toplevel tooltips gaining a title bar, but I could solve it by adding a "wm_overrideredirect(1)"). 

One of the new features on macOS -- support for dark mode -- looked nice. Half-baked emoji support had not regressed at least.

I really hope you'll find time to include Tk 8.6.10 in the last beta of Python 3.9!
msg377465 - (view) Author: Steve Dower (steve.dower) * (Python committer) Date: 2020-09-24 22:55
I did a build for Windows and put up the PR taking it in and there seems to be one (related) test failure:

======================================================================
FAIL: test_from (tkinter.test.test_tkinter.test_widgets.ScaleTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "D:\a\cpython\cpython\lib\tkinter\test\test_tkinter\test_widgets.py", line 943, in test_from
    self.checkFloatParam(widget, 'from', 100, 14.9, 15.1, conv=float_round)
  File "D:\a\cpython\cpython\lib\tkinter\test\widget_tests.py", line 106, in checkFloatParam
    self.checkParam(widget, name, value, conv=conv, **kwargs)
  File "D:\a\cpython\cpython\lib\tkinter\test\widget_tests.py", line 63, in checkParam
    self.assertEqual2(widget[name], expected, eq=eq)
  File "D:\a\cpython\cpython\lib\tkinter\test\widget_tests.py", line 47, in assertEqual2
    self.assertEqual(actual, expected, msg)
AssertionError: 14.9 != 15.0

Terry, any ideas?
msg377466 - (view) Author: Steve Dower (steve.dower) * (Python committer) Date: 2020-09-24 22:56
(My PR is from a branch in the main repo, so if you want to just go in and fix it, feel free.)
msg377472 - (view) Author: Terry J. Reedy (terry.reedy) * (Python committer) Date: 2020-09-25 01:56
The existing patch mostly changes '9' to '10', which cannot in itself cause the test failure.  There must be a change in widget behavior.  Either Serhiy or Mark Rosemen might do better at diagnosing the discrepancy and whether _tkinter.c, tkinter.__init__, or tkinter/.../test_widget.py should be changed.
--

PR branches on the main repository are discouraged.  It is just as easy and safer for another coredev to modify a fork branch.
msg377476 - (view) Author: Terry J. Reedy (terry.reedy) * (Python committer) Date: 2020-09-25 03:36
On Windows, tk Scale['from'] is no longer rounded, matching ttk.Scale.  More details and conditional fix on the PR.
msg377501 - (view) Author: Steve Dower (steve.dower) * (Python committer) Date: 2020-09-25 19:00
> PR branches on the main repository are discouraged.

I had another reason, which was that I needed to trigger a signed build of the separate Tcl and Tk binaries. This is much easier (and safer) to do from the main repo than my own fork.

But yeah, in general (for anyone else reading this), PRs from forks are fine. Tcl/Tk are special.
msg377505 - (view) Author: Ned Deily (ned.deily) * (Python committer) Date: 2020-09-25 19:28
The ScaleTest failure is the subject of Issue41306 and PR 21715.
History
Date User Action Args
2020-09-25 19:28:53ned.deilysetmessages: + msg377505
2020-09-25 19:00:02steve.dowersetmessages: + msg377501
2020-09-25 03:36:31terry.reedysetmessages: + msg377476
versions: + Python 3.10, - Python 3.9
2020-09-25 01:56:49terry.reedysetmessages: + msg377472
2020-09-24 22:56:32steve.dowersetmessages: + msg377466
2020-09-24 22:55:45steve.dowersetmessages: + msg377465
2020-09-24 22:33:37steve.dowersetpull_requests: + pull_request21445
2020-09-10 15:42:02markrosemansetnosy: + markroseman
2020-07-06 22:21:11Aivar.Annamaasetmessages: + msg373187
2020-04-19 13:20:52alittleman512setmessages: + msg366778
2020-03-22 21:41:54Ido Michaelsetnosy: - Ido Michael
2020-03-19 15:05:44alittleman512setnosy: + alittleman512
messages: + msg364605
2020-03-17 10:45:58steve.dowersetassignee: ned.deily -> steve.dower
messages: + msg364407
2020-03-17 04:54:08ned.deilysetmessages: + msg364387
2020-03-15 14:53:42Ido Michaelsetnosy: + Ido Michael
messages: + msg364236
2020-03-13 22:32:19sdcardssetkeywords: + patch
nosy: + sdcards

pull_requests: + pull_request18330
stage: patch review
2020-03-11 05:00:23terry.reedysetpriority: normal -> high
title: Consider building Tkinter with Tk 8.6.10 -> Upgrade tcl/tk to 8.6.10 (Windows and maxOS)
nosy: + serhiy.storchaka

messages: + msg363881

versions: - Python 3.7, Python 3.8
2019-12-20 17:00:46zach.waresetnosy: + paul.moore, tim.golden, zach.ware, steve.dower
messages: + msg358720
components: + Windows
2019-12-20 12:18:57terry.reedysetnosy: + ronaldoussoren
messages: + msg358705

assignee: terry.reedy -> ned.deily
components: + macOS, - IDLE
2019-12-20 11:55:22xtreaksetnosy: + ned.deily
2019-12-20 10:45:48Aivar.Annamaasettitle: Consider upgrading Tkinter to Tk 8.6.10 -> Consider building Tkinter with Tk 8.6.10
2019-12-20 10:44:08Aivar.Annamaasetassignee: terry.reedy

components: + IDLE
nosy: + terry.reedy
2019-12-20 10:42:20Aivar.Annamaacreate