GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — Drop support of Tcl/Tk older than 8.5.12 · Issue #91152 · python/cpython

Drop support of Tcl/Tk older than 8.5.12 #91152

New issue
Copy link
New issue
Copy link
Closed
Closed
Drop support of Tcl/Tk older than 8.5.12#91152
Copy link
Labels
3.11only security fixesonly security fixesstdlibStandard Library Python modules in the Lib/ directoryStandard Library Python modules in the Lib/ directorytestsTests in the Lib/test dirTests in the Lib/test dirtopic-tkintertype-featureA feature request or enhancementA feature request or enhancement

Description

@serhiy-storchaka
serhiy-storchaka
opened on Mar 12, 2022
Issue body actions
BPO 46996
Nosy @terryjreedy, @ronaldoussoren, @serhiy-storchaka, @erlend-aasland, @E-Paine
PRs
  • bpo-46996: Remove support of Tcl/Tk < 8.5.12 #31839
  • gh-91152: IDLE: Drop workarounds for old Tk versions #31962
  • 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 = None
    closed_at = <Date 2022-03-17.17:32:23.273>
    created_at = <Date 2022-03-12.16:03:38.426>
    labels = ['tests', '3.11', 'type-feature', 'expert-tkinter', 'library']
    title = 'Drop support of Tcl/Tk older than 8.5.12'
    updated_at = <Date 2022-03-19.15:14:25.332>
    user = 'https://github.com/serhiy-storchaka'

    bugs.python.org fields:

    activity = <Date 2022-03-19.15:14:25.332>
    actor = 'serhiy.storchaka'
    assignee = 'none'
    closed = True
    closed_date = <Date 2022-03-17.17:32:23.273>
    closer = 'terry.reedy'
    components = ['Library (Lib)', 'Tests', 'Tkinter']
    creation = <Date 2022-03-12.16:03:38.426>
    creator = 'serhiy.storchaka'
    dependencies = []
    files = []
    hgrepos = []
    issue_num = 46996
    keywords = ['patch']
    message_count = 9.0
    messages = ['414999', '415394', '415395', '415397', '415420', '415423', '415434', '415472', '415555']
    nosy_count = 5.0
    nosy_names = ['terry.reedy', 'ronaldoussoren', 'serhiy.storchaka', 'erlendaasland', 'epaine']
    pr_nums = ['31839', '31962']
    priority = 'normal'
    resolution = 'fixed'
    stage = 'resolved'
    status = 'closed'
    superseder = None
    type = 'enhancement'
    url = 'https://bugs.python.org/issue46996'
    versions = ['Python 3.11']

    Activity

    1. serhiy-storchaka commented on Mar 12, 2022

      @serhiy-storchaka
      serhiy-storchaka
      on Mar 12, 2022
      MemberAuthor
      More actions

      In bpo-45979 E. Paine suggested to drop support of Tcl/Tk older than 8.5.12 (8.5.12 was released on 2012-07-27 and 8.6.0 on 2012-12-20). Tkinter tests contain workarounds and special cases for older versions of Tcl/Tk, many of them can be removed. Also some Python and C code of tkinter can be simplified.

    2. serhiy-storchaka
      added
      3.11only security fixesonly security fixes
      stdlibStandard Library Python modules in the Lib/ directoryStandard Library Python modules in the Lib/ directory
      testsTests in the Lib/test dirTests in the Lib/test dir
      type-featureA feature request or enhancementA feature request or enhancement
      topic-tkinter
      on Mar 12, 2022
    3. ronaldoussoren commented on Mar 17, 2022

      @ronaldoussoren
      ronaldoussoren
      on Mar 17, 2022
      Contributor
      More actions

      One consideration is support for older LTS distributions of Linux, RHEL/Centos 7 appears to ship with Tcl/Tk 8.5.

      The system install of Tcl/Tk on macOS is also 8.5, but that variant has too many bugs to try to support it.

    4. serhiy-storchaka commented on Mar 17, 2022

      @serhiy-storchaka
      serhiy-storchaka
      on Mar 17, 2022
      MemberAuthor
      More actions

      8.5.12 will be 10 years old at the time of releasing 3.11.

      We can relax the requirements for 8.5.x, so the code can be build with older versions, but some tests will fail because we removed workarounds for differences in behavior in older versions from tests.

      The LTS distributions can also provide their own patches which relax the requirements.

    5. serhiy-storchaka commented on Mar 17, 2022

      @serhiy-storchaka
      serhiy-storchaka
      on Mar 17, 2022
      MemberAuthor
      More actions

      New changeset c2e3c06 by Serhiy Storchaka in branch 'main':
      bpo-46996: Remove support of Tcl/Tk < 8.5.12 (GH-31839)
      c2e3c06

    6. serhiy-storchaka
      closed this as completedon Mar 17, 2022
    7. serhiy-storchaka
      closed this as completedon Mar 17, 2022
    8. terryjreedy commented on Mar 17, 2022

      @terryjreedy
      terryjreedy
      on Mar 17, 2022
      Member
      More actions

      Ronald: According to a page (which I cannot find, E. Paine should know) Centos 7 has the oldest tcl among current *nix distributions.
      https://centos.pkgs.org/7/centos-x86_64/tcl-8.5.13-8.el7.x86_64.rpm.html
      says it is 8.5.13, which is what I remember from the comparison page.

      Serhiy: IDLE has required TkVersion >= 8.5 for some years (currently top of pyshell.py). Does the _tkinter.c line
      #error "Tk older than 8.5.12 not supported"
      translate into an ImportError (which is already caught). I never worried about someone trying to import 8.3 or before, but Apple's 8.5.9 is possible.

      Is there any reason that IDLE might someday require 8.6 before tkinter does?

    9. serhiy-storchaka commented on Mar 17, 2022

      @serhiy-storchaka
      serhiy-storchaka
      on Mar 17, 2022
      MemberAuthor
      More actions

      After PR 31839 has been merged you cannot build the _tkinter module with Tcl/Tk older than 8.5.12. If you will still try to run IDLE on such incomplete build, an import error during importing tkinter will be translated to IDLE error:

      $ ./python -m idlelib
      ** IDLE can't import Tkinter.
      Your Python may not be configured for Tk. **

      IDLE might someday require 8.6 if it start using some 8.6 features non-optionally.

    10. serhiy-storchaka
      reopened this on Mar 17, 2022
    11. serhiy-storchaka
      reopened this on Mar 17, 2022
    12. terryjreedy commented on Mar 17, 2022

      @terryjreedy
      terryjreedy
      on Mar 17, 2022
      Member
      More actions

      tk release availability is a bit confusing.
      https://wiki.tcl-lang.org/page/Changes+in+Tcl%2FTk+8%2E6
      appears to lists things 'new' in 3.6.1, but that seems to mean new since 8.5.1, as it includes thing introduced in 8.5.n, where n > 1. For instance, ttk spinbox is listed in this doc, but was available in 8.5.9, so is in 8.5.12+ and can be used without an 8.6 requirement.

      Similarly,
      https://www.tcl.tk/man/tcl8.5/TkCmd/ttk_treeview.html
      the 8.5.19 doc for the widget, shows the 'new in 8.6' treeview tag commands. I suspect that they were present in 8.5.13. Is there a specific 8.5.12 doc available? I searched and tried adding '.12' in the url above and both failed. Buildbots without _tkinter don't help either.

    13. terryjreedy
      closed this as completedon Mar 17, 2022
    14. terryjreedy
      closed this as completedon Mar 17, 2022
    15. ronaldoussoren commented on Mar 18, 2022

      @ronaldoussoren
      ronaldoussoren
      on Mar 18, 2022
      Contributor
      More actions

      Terry: tkinter on macOS already effectively does not support Tk 8.5, or basically anything bug the latest 8.6.x release. That's because older versions have too many bugs that affect Python users, which mostly show up on our tracker as bug reports about IDLE.

      Because of this we generally close issues that mention using tkinter with 8.5 on macOS unless the problem can be reproduced using 8.6 as well (using the installer on python.org).

    16. serhiy-storchaka commented on Mar 19, 2022

      @serhiy-storchaka
      serhiy-storchaka
      on Mar 19, 2022
      MemberAuthor
      More actions

      New changeset 383a3be by Serhiy Storchaka in branch 'main':
      gh-91152: IDLE: Drop workarounds for old Tk versions (GH-31962)
      383a3be

    17. ezio-melotti
      transferred this issue fromon Apr 10, 2022
    18. terryjreedy commented on Aug 9, 2022

      @terryjreedy
      terryjreedy
      on Aug 9, 2022
      Member
      More actions

      @serhiy-storchaka @ned-deily Does this tk requirement update affect the need for IDLE to support 4 Apple graphics versions in idlelib.macOS? Or is it a matter of how far back tk support goes?

      Reacted by Erlend E. Aasland
    19. vstinner
      added a commit that references this issue on Aug 29, 2023

      Document Python build requirements

      76cfe6f
    Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

    Metadata

    Metadata

    Assignees

    No one assigned

      Labels

      3.11only security fixesonly security fixesstdlibStandard Library Python modules in the Lib/ directoryStandard Library Python modules in the Lib/ directorytestsTests in the Lib/test dirTests in the Lib/test dirtopic-tkintertype-featureA feature request or enhancementA feature request or enhancement

      Projects

      No projects

        Milestone

        No milestone

        Relationships

        None yet

        Development

        No branches or pull requests

        Issue actions

        You are visitor 01402503 — GeezerVison does not store the pages you look up.
        Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.