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

Upgrade Windows tcl/tk to 8.6.10 #83288

Closed
aivarannamaa mannequin opened this issue Dec 20, 2019 · 21 comments
Closed

Upgrade Windows tcl/tk to 8.6.10 #83288

aivarannamaa mannequin opened this issue Dec 20, 2019 · 21 comments
Assignees
Labels
3.10 only security fixes OS-windows topic-tkinter type-feature A feature request or enhancement

Comments

@aivarannamaa
Copy link
Mannequin

aivarannamaa mannequin commented Dec 20, 2019

BPO 39107
Nosy @terryjreedy, @pfmoore, @ronaldoussoren, @tjguk, @ned-deily, @roseman, @aivarannamaa, @zware, @serhiy-storchaka, @zooba, @szb512, @szb512
PRs
  • bpo-39107: Update Tcl/Tk on macOS AND Windows #18982
  • bpo-39107: Updated Tcl and Tk to 8.6.10 in Windows installer #22405
  • Note: these values reflect the state of the issue at the time it was migrated and might not reflect the current state.

    Show more details

    GitHub fields:

    assignee = 'https://github.com/zooba'
    closed_at = <Date 2020-10-19.18:32:05.045>
    created_at = <Date 2019-12-20.10:42:20.196>
    labels = ['type-feature', 'expert-tkinter', '3.10', 'OS-windows']
    title = 'Upgrade Windows tcl/tk to 8.6.10'
    updated_at = <Date 2021-03-29.07:07:51.928>
    user = 'https://github.com/aivarannamaa'

    bugs.python.org fields:

    activity = <Date 2021-03-29.07:07:51.928>
    actor = 'terry.reedy'
    assignee = 'steve.dower'
    closed = True
    closed_date = <Date 2020-10-19.18:32:05.045>
    closer = 'terry.reedy'
    components = ['Tkinter', 'Windows']
    creation = <Date 2019-12-20.10:42:20.196>
    creator = 'Aivar.Annamaa'
    dependencies = []
    files = []
    hgrepos = []
    issue_num = 39107
    keywords = ['patch']
    message_count = 21.0
    messages = ['358702', '358705', '358720', '363881', '364236', '364387', '364407', '364605', '366778', '373187', '377465', '377466', '377472', '377476', '377501', '377505', '378957', '378972', '378981', '378982', '389663']
    nosy_count = 12.0
    nosy_names = ['terry.reedy', 'paul.moore', 'ronaldoussoren', 'tim.golden', 'ned.deily', 'markroseman', 'Aivar.Annamaa', 'zach.ware', 'serhiy.storchaka', 'steve.dower', 'sdcards', 'alittleman512']
    pr_nums = ['18982', '22405']
    priority = 'high'
    resolution = 'fixed'
    stage = 'resolved'
    status = 'closed'
    superseder = None
    type = 'enhancement'
    url = 'https://bugs.python.org/issue39107'
    versions = ['Python 3.10']

    @aivarannamaa
    Copy link
    Mannequin Author

    aivarannamaa mannequin commented Dec 20, 2019

    It includes several Mac-related enhancements
    https://sourceforge.net/projects/tcl/files/Tcl/8.6.10/tcltk-release-notes-8.6.10.txt/view

    @aivarannamaa aivarannamaa mannequin added 3.7 (EOL) end of life 3.8 only security fixes 3.9 only security fixes topic-tkinter type-feature A feature request or enhancement topic-IDLE labels Dec 20, 2019
    @aivarannamaa aivarannamaa mannequin added the topic-IDLE label Dec 20, 2019
    @aivarannamaa aivarannamaa mannequin changed the title Consider upgrading Tkinter to Tk 8.6.10 Consider building Tkinter with Tk 8.6.10 Dec 20, 2019
    @aivarannamaa aivarannamaa mannequin changed the title Consider upgrading Tkinter to Tk 8.6.10 Consider building Tkinter with Tk 8.6.10 Dec 20, 2019
    @terryjreedy
    Copy link
    Member

    Ned is aware of this and needs to verify that it works with _tkinter and tkinter on multiple versions of macOS.

    @zware
    Copy link
    Member

    zware commented Dec 20, 2019

    Looks like some enhancements on Windows as well; we should upgrade at least 3.9.

    @terryjreedy
    Copy link
    Member

    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.

    @zooba
    Copy link
    Member

    zooba commented Mar 17, 2020

    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:

    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?

    @zooba zooba assigned zooba and unassigned ned-deily Mar 17, 2020
    @szb512
    Copy link
    Mannequin

    szb512 mannequin commented Mar 19, 2020

    I'll update my PR to include some changes for windows.

    @szb512
    Copy link
    Mannequin

    szb512 mannequin commented Apr 19, 2020

    That backfired horribly.

    @aivarannamaa
    Copy link
    Mannequin Author

    aivarannamaa mannequin commented Jul 6, 2020

    According to the comments under #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!

    @zooba
    Copy link
    Member

    zooba commented Sep 24, 2020

    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?

    @zooba
    Copy link
    Member

    zooba commented Sep 24, 2020

    (My PR is from a branch in the main repo, so if you want to just go in and fix it, feel free.)

    @terryjreedy
    Copy link
    Member

    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.

    @terryjreedy
    Copy link
    Member

    On Windows, tk Scale['from'] is no longer rounded, matching ttk.Scale. More details and conditional fix on the PR.

    @terryjreedy terryjreedy added 3.10 only security fixes and removed 3.9 only security fixes labels Sep 25, 2020
    @zooba
    Copy link
    Member

    zooba commented Sep 25, 2020

    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.

    @ned-deily
    Copy link
    Member

    The ScaleTest failure is the subject of bpo-41306 and PR 21715.

    @zooba
    Copy link
    Member

    zooba commented Oct 19, 2020

    New changeset 985f0ab by Steve Dower in branch 'master':
    bpo-39107: Updated Tcl and Tk to 8.6.10 in Windows installer (GH-22405)
    985f0ab

    @terryjreedy
    Copy link
    Member

    The Windows part of this is done. Existing tests also pass on my machine.

    Ned, do you want this left open for macOS? or close?

    @ned-deily
    Copy link
    Member

    We might as well close this for now. I'm hoping for an 8.6.11 real soon now with almost a year's worth of changes, many for macOS, and we will need to incorporate it all into a revised installer variant. It won't be forgotten :)

    @terryjreedy terryjreedy changed the title Upgrade tcl/tk to 8.6.10 (Windows and maxOS) Upgrade Windows tcl/tk to 8.6.10 Oct 19, 2020
    @terryjreedy terryjreedy changed the title Upgrade tcl/tk to 8.6.10 (Windows and maxOS) Upgrade Windows tcl/tk to 8.6.10 Oct 19, 2020
    @terryjreedy
    Copy link
    Member

    We should then upgrade on Windows again. PR would have nearly the same changes.

    @terryjreedy
    Copy link
    Member

    bpo-43652 is for 8.6.11.

    @ezio-melotti ezio-melotti transferred this issue from another repository Apr 10, 2022
    Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
    Labels
    3.10 only security fixes OS-windows topic-tkinter type-feature A feature request or enhancement
    Projects
    None yet
    Development

    No branches or pull requests

    4 participants