This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

classification
Title: Drop support of Tk 8.3
Type: enhancement Stage: resolved
Components: Tkinter Versions: Python 3.5
process
Status: closed Resolution: fixed
Dependencies: Superseder:
Assigned To: serhiy.storchaka Nosy List: loewis, ned.deily, python-dev, serhiy.storchaka
Priority: normal Keywords: patch

Created on 2014-07-26 17:33 by serhiy.storchaka, last changed 2022-04-11 14:58 by admin. This issue is now closed.

Files
File name Uploaded Description Edit
tkinter_trace_variable.patch serhiy.storchaka, 2014-07-26 17:34 review
tkinter_drop_83.patch serhiy.storchaka, 2014-07-30 07:37 review
Messages (12)
msg224080 - (view) Author: Serhiy Storchaka (serhiy.storchaka) * (Python committer) Date: 2014-07-26 17:33
Command used to monitor Tcl variable access ("trace variable", "trace vdelete", "trace vinfo") are deprecated and will likely be removed in a future version of Tcl. Proposed patch replaces them to modern equivalents.

The problem is that new commands was introduced in Tcl 8.4, but minimal supported by Tkinter version is 8.3. This patch should wait until dropping support of Tcl 8.3.
msg224087 - (view) Author: Ned Deily (ned.deily) * (Python committer) Date: 2014-07-26 21:09
Is there any reason to not drop support for Tk 8.3?  It appears that the last release of it, 8.3.5, was in 2002.  Is anyone aware of any use of it on currently supported platforms?  The final planned release of 8.4 (8.4.20) was just a year ago and 8.4 is still being shipped on some platforms, i.e. OS X, so we should keep supporting it for the time being.
msg224163 - (view) Author: Martin v. Löwis (loewis) * (Python committer) Date: 2014-07-28 11:26
Dropping support for 8.3 sounds fine with me (for Python 3.5 only, of course). Otherwise, the patch looks also fine, so please apply.
msg224289 - (view) Author: Serhiy Storchaka (serhiy.storchaka) * (Python committer) Date: 2014-07-30 07:37
I'm even not sure that current code works with Tk 8.3. We have no buildbots with Tk 8.3 and compatibility with it was not tested for years.

Here is a patch which drops support of Tk 8.3.
msg224294 - (view) Author: Martin v. Löwis (loewis) * (Python committer) Date: 2014-07-30 10:11
The patch looks fine, please apply.
msg224322 - (view) Author: Roundup Robot (python-dev) (Python triager) Date: 2014-07-30 16:19
New changeset 1aa6ac23340d by Serhiy Storchaka in branch 'default':
Issue #22085: Dropped support of Tk 8.3 in Tkinter.
http://hg.python.org/cpython/rev/1aa6ac23340d
msg224362 - (view) Author: Ned Deily (ned.deily) * (Python committer) Date: 2014-07-30 23:25
The checkin seems to have broken test_idle and test_ttk_guionly.  Typical failure:

======================================================================
ERROR: test_horizontal_range (tkinter.test.test_ttk.test_extensions.LabeledScaleTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/py/dev/3x/root/fwn/Library/Frameworks/pytest_10.9.framework/Versions/3.5/lib/python3.5/tkinter/test/test_ttk/test_extensions.py", line 112, in test_horizontal_range
    lscale = ttk.LabeledScale(from_=0, to=10)
  File "/py/dev/3x/root/fwn/Library/Frameworks/pytest_10.9.framework/Versions/3.5/lib/python3.5/tkinter/ttk.py", line 1508, in __init__
    self.__tracecb = self._variable.trace_variable('w', self._adjust)
  File "/py/dev/3x/root/fwn/Library/Frameworks/pytest_10.9.framework/Versions/3.5/lib/python3.5/tkinter/__init__.py", line 248, in trace_variable
    self._tk.call("trace", "add", "variable", self._name, mode, cbname)
_tkinter.TclError: bad operation "w": must be array, read, unset, or write
msg224379 - (view) Author: Roundup Robot (python-dev) (Python triager) Date: 2014-07-31 04:57
New changeset 9f333c06915f by Serhiy Storchaka in branch 'default':
Back out of changes to Tkinter variables trace commands (issue #22085).
http://hg.python.org/cpython/rev/9f333c06915f
msg224381 - (view) Author: Serhiy Storchaka (serhiy.storchaka) * (Python committer) Date: 2014-07-31 06:12
Oh, I forgot about this difference. Of course we can convert input arguments to match new syntax, but "trace vinfo" and "trace info variable" return different results:

% trace add variable foo {read write} {tracer foo}
% trace info variable foo
{{read write} {tracer foo}}
% trace vinfo foo
{rw {tracer foo}}

We should add new methods for new trace commands.
msg224382 - (view) Author: Serhiy Storchaka (serhiy.storchaka) * (Python committer) Date: 2014-07-31 07:36
Yet one incompatibility is that callbacks set but old command are called with last argument one of 'r', 'w' or 'u', but callbacks set but old command are called with last argument one of 'read', 'write' or 'unset' (or 'array').
msg224408 - (view) Author: Serhiy Storchaka (serhiy.storchaka) * (Python committer) Date: 2014-07-31 14:50
I close this issue because don't want to change topic yet once (and one feature per issue). Separate issue22115 was opened for adding new trace methods.
msg224858 - (view) Author: Roundup Robot (python-dev) (Python triager) Date: 2014-08-05 16:55
New changeset 7ed237478fcc by Zachary Ware in branch 'default':
Closes #22136: Fix MSVC compiler warnings introduced by #22085
http://hg.python.org/cpython/rev/7ed237478fcc
History
Date User Action Args
2022-04-11 14:58:06adminsetgithub: 66283
2014-08-05 16:55:10python-devsetmessages: + msg224858
2014-07-31 14:50:18serhiy.storchakasetstatus: open -> closed
resolution: fixed
messages: + msg224408

stage: needs patch -> resolved
2014-07-31 07:36:15serhiy.storchakasetmessages: + msg224382
2014-07-31 06:12:12serhiy.storchakasetmessages: + msg224381
2014-07-31 04:57:13python-devsetmessages: + msg224379
2014-07-30 23:25:54ned.deilysetstatus: closed -> open
resolution: fixed -> (no value)
messages: + msg224362

stage: resolved -> needs patch
2014-07-30 16:29:04serhiy.storchakasetstatus: open -> closed
assignee: serhiy.storchaka
resolution: fixed
stage: patch review -> resolved
2014-07-30 16:19:29python-devsetnosy: + python-dev
messages: + msg224322
2014-07-30 10:11:48loewissetmessages: + msg224294
2014-07-30 07:37:45serhiy.storchakasetfiles: + tkinter_drop_83.patch

title: Update deprecated Tcl commands in Tkinter -> Drop support of Tk 8.3
messages: + msg224289
stage: patch review
2014-07-28 11:26:55loewissetnosy: + loewis
messages: + msg224163
2014-07-26 21:09:54ned.deilysetnosy: + ned.deily
messages: + msg224087
2014-07-26 17:34:28serhiy.storchakasetfiles: + tkinter_trace_variable.patch
keywords: + patch
2014-07-26 17:33:27serhiy.storchakacreate