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: IDLE Show completions pop-up not working on Ubuntu Linux
Type: behavior Stage: patch review
Components: IDLE Versions: Python 3.9
process
Status: open Resolution:
Dependencies: Superseder:
Assigned To: terry.reedy Nosy List: lukasz.langa, miss-islington, ned.deily, pablogsal, taleinat, terry.reedy
Priority: Keywords: patch

Created on 2021-09-14 06:29 by taleinat, last changed 2022-04-11 14:59 by admin.

Pull Requests
URL Status Linked Edit
PR 28328 closed taleinat, 2021-09-14 10:24
PR 28343 merged terry.reedy, 2021-09-14 23:42
PR 28347 merged miss-islington, 2021-09-15 07:13
PR 28348 merged terry.reedy, 2021-09-15 07:24
PR 28369 merged miss-islington, 2021-09-15 18:26
PR 28332 taleinat, 2022-01-24 01:25
Messages (12)
msg401758 - (view) Author: Tal Einat (taleinat) * (Python committer) Date: 2021-09-14 06:29
The completion window never appears with Python version 3.9.7 and with the current main branch.

Ubuntu 20.04 (reproduced on two separate machines)
Tested with Tcl/Tk versions 8.6.10 and 8.6.11.

This is directly caused by the fix for issue #40128. Commenting out that line resolves this issue entirely.

(See also the PR for that fix, PR GH-26672.)
msg401760 - (view) Author: Tal Einat (taleinat) * (Python committer) Date: 2021-09-14 06:34
I've also tested this on Windows 10 with the latest main branch (to be 3.11). The completions window works as expected with or without the recently added .update_idletasks() call.

I do recommend limiting this to macOS (platform.system() == "Darwin"). 

Ideally we'd test this on macOS with several versions of tcl/tk (8.6.8, 8.6.9, 8.6.10, 8.6.11) and limit it to only those versions where the fix is required:

TK_VERSION = tuple(map(int, tk.call("info", "patchlevel").split(".")))
if (8, 6, 8) <= TK_VERSION < (8, 6, 10):
    acw.update_idletasks()

Also we might check if calling .update() is enough, since that does less than .update_idletasks().
msg401767 - (view) Author: Tal Einat (taleinat) * (Python committer) Date: 2021-09-14 10:26
See PR GH-28328 with proposed fix. It should be tested on macOS with several relevant versions of Tcl/Tk to ensure that the Tk version range used is correct.
msg401802 - (view) Author: Terry J. Reedy (terry.reedy) * (Python committer) Date: 2021-09-14 22:57
In msg401744 I suggested any of the following for the upcoming 3.10.0 release.

1. Remove the new line.
2. Disable the line by adding '#'.
3. Make it conditional on macOS and 8.6.8.

Thinking more, I am rejecting 3. because the line is not needed for IDLE and tk as installed by our macOS.  As things stand now, I an only willing to support IDLE with the tk we install.  But I will go with option 2 so that if someone tries to run IDLE with a different tk, and the line is needed, they only need to remove the '#'.

A version of 3. is needed for 3.9 but this needs more data and discussion.  In looking at your no-issue PR_28332, I realized that I would rather make a more extensive change than to patch a badly written function for at least the fourth time.  I will open an issue for that PR and explain later.
msg401803 - (view) Author: Terry J. Reedy (terry.reedy) * (Python committer) Date: 2021-09-14 23:07
I will just mention here that winconfig_event also calls update_idletasks, in what should be the proper place, and I think that the second call was only needed for mac tk 8.6.8 because of the unique-to-IDLE behavior I want to delete.  I suspect that if we create the popup the same way we do with the others, we will not need the second call even on 8.6.8.  But making sure 3.10.0 works comes first.
msg401812 - (view) Author: Terry J. Reedy (terry.reedy) * (Python committer) Date: 2021-09-15 07:13
New changeset 1afc7b3219b24c951bb4e6b7e1ead904228de074 by Terry Jan Reedy in branch 'main':
bpo-45193: Restore IDLE completion boxes on Ubuntu (GH-28343)
https://github.com/python/cpython/commit/1afc7b3219b24c951bb4e6b7e1ead904228de074
msg401815 - (view) Author: miss-islington (miss-islington) Date: 2021-09-15 07:37
New changeset 0c64569ac7066a97e4482c6d6e4d780806692ae5 by Miss Islington (bot) in branch '3.10':
bpo-45193: Restore IDLE completion boxes on Ubuntu (GH-28343)
https://github.com/python/cpython/commit/0c64569ac7066a97e4482c6d6e4d780806692ae5
msg401876 - (view) Author: Terry J. Reedy (terry.reedy) * (Python committer) Date: 2021-09-15 18:26
New changeset 9d76d28867c28bcc881b851547a9cd7ac003ae88 by Terry Jan Reedy in branch 'main':
bpo-45193: News for IDLE PR_28343 (GH-28348)
https://github.com/python/cpython/commit/9d76d28867c28bcc881b851547a9cd7ac003ae88
msg401881 - (view) Author: miss-islington (miss-islington) Date: 2021-09-15 18:46
New changeset a5bc0ffc520e09226f85d5fa8faaa83be0acee68 by Miss Islington (bot) in branch '3.10':
bpo-45193: News for IDLE PR_28343 (GH-28348)
https://github.com/python/cpython/commit/a5bc0ffc520e09226f85d5fa8faaa83be0acee68
msg401910 - (view) Author: Terry J. Reedy (terry.reedy) * (Python committer) Date: 2021-09-15 22:58
0c64569ac7066a97e4482c6d6e4d780806692ae5
a5bc0ffc520e09226f85d5fa8faaa83be0acee68

are ready to be cherrypicked into into the 3.10.0 release branch.  
Once that is done, 'release blocker' can be removed, but issue should remain open for a separate fix for 3.9.
msg402160 - (view) Author: Pablo Galindo Salgado (pablogsal) * (Python committer) Date: 2021-09-19 18:53
> are ready to be cherrypicked into into the 3.10.0 release branch.  
Once that is done, 'release blocker' can be removed, but issue should remain open for a separate fix for 3.9.

Done! I am removing the release blocker and the 3.10, 3.11 version tags.

Thanks Tal and Terry for all the work!
msg403147 - (view) Author: Pablo Galindo Salgado (pablogsal) * (Python committer) Date: 2021-10-04 19:18
New changeset 7f2d049cce6dc749a589424d4fb62ffca0b85b32 by Pablo Galindo (Miss Islington (bot)) in branch '3.10':
bpo-45193: Restore IDLE completion boxes on Ubuntu (GH-28343)
https://github.com/python/cpython/commit/7f2d049cce6dc749a589424d4fb62ffca0b85b32

New changeset d08e4a8c55ae3bd06c2e871265911ee88429b6bb by Pablo Galindo (Miss Islington (bot)) in branch '3.10':
bpo-45193: News for IDLE PR_28343 (GH-28348)
https://github.com/python/cpython/commit/d08e4a8c55ae3bd06c2e871265911ee88429b6bb
History
Date User Action Args
2022-04-11 14:59:50adminsetgithub: 89356
2022-01-24 01:25:34taleinatsetpull_requests: + pull_request29025
2021-10-04 19:18:41pablogsalsetmessages: + msg403147
2021-09-19 18:53:38pablogsalsetpriority: release blocker ->

messages: + msg402160
versions: - Python 3.10, Python 3.11
2021-09-15 22:58:14terry.reedysetmessages: + msg401910
2021-09-15 18:46:52miss-islingtonsetmessages: + msg401881
2021-09-15 18:26:51miss-islingtonsetpull_requests: + pull_request26783
2021-09-15 18:26:47terry.reedysetmessages: + msg401876
2021-09-15 07:37:42miss-islingtonsetmessages: + msg401815
2021-09-15 07:24:16terry.reedysetpull_requests: + pull_request26761
2021-09-15 07:13:32miss-islingtonsetnosy: + miss-islington
pull_requests: + pull_request26760
2021-09-15 07:13:31terry.reedysetmessages: + msg401812
2021-09-14 23:42:26terry.reedysetpull_requests: + pull_request26755
2021-09-14 23:07:43terry.reedysetmessages: + msg401803
2021-09-14 22:58:00terry.reedysetpriority: normal -> release blocker
nosy: + pablogsal, ned.deily, lukasz.langa
messages: + msg401802

2021-09-14 10:26:02taleinatsetmessages: + msg401767
2021-09-14 10:24:35taleinatsetstage: needs patch -> patch review
pull_requests: + pull_request26739
2021-09-14 06:38:28taleinatsetstage: patch review -> needs patch
2021-09-14 06:38:16taleinatsetpull_requests: - pull_request26735
2021-09-14 06:36:29taleinatsetkeywords: + patch
stage: needs patch -> patch review
pull_requests: + pull_request26735
2021-09-14 06:34:33taleinatsetmessages: + msg401760
2021-09-14 06:29:20taleinatcreate