On 6/20/2018 3:16 PM, Mark Roseman wrote:

Welcome back to IDLE. Our collaboration during Fall, 2015, between 3.5.0 and 3.5.1 was quite productive. Besides me, there are currently two other current IDLE contributors. Cheryl Sabella has been extremely helpful since May 2017. Tal Einat, who start with IDLE over a decade ago, and who also has commit privileges, became active again about month ago.

I was glad to see the change to require Tk 8.5 (i.e. assume ttk). I took a 
quick peek at head and there are some easily fixable things that look bad on 
MacOS (e.g. adding ttk widgets directly to a toplevel without an intervening 
ttk frame).

I would be happy to address some of those little things, as well as possibly 
revive some of the earlier GUI changes I’d started on previously but never had 
the cycles to push through to completion (on top of compatibility with multiple 
python and tk versions plus the switchover to git!)

Hopefully simple question, what python/idle version(s) are ok with ttk-only 
code? Are all of those open to feature change/additions, or are some bugfix 
only?

Here is an overall status report.

Python versions: 3.6.6 will be out soon. Two more maintenance releases, 3.6.7 and 3.6.8 are scheduled for September and December. After that, 3.6 will join 3.5 (and 3.4) in only getting security fixes. 2.7 mostly gets security and build fixes and only occasional bug fixes.

Backports: Because IDLE is exempt from the normal backport rules (PEP 434), all patches, currently, are backported from master (3.8 alpha) to 3.7.? to 3.6.?. This is easy because the requirement for Tk 8.5, the use of ttk, and the idlelib name changes all began in 3.6 and because, except in a couple of places, idlelib is the same in all 3 versions. Backporting everything keeps them the same, which keeps backporting easy. Backporting to 3.6 will stop with 3.6.8rc1, unless an emergency fix is needed before 3.6.8.

Except for possible 'emergency' fixes, I am no longer patching IDLE on 2.7.

Tracker, Git, and idle-dev: I hope you have read the appropriate sections of the revised devguide. The migration from Hg to Git has made applying a patch to multiple versions harder. But it has improved collaboration, I think. The strategy for fixing an issue should be discussed on the tracker. Particular patches should be discussed on the PR. Broad IDLE development issue can be discussed here, as we are doing.

Tk versions: The Windows installer has included 8.6.x since at least 3.5. 3.7 includes 3.6.8.

For MacOS, the 64-/32-bit installer for 3.6 requires 8.5, and users have to download 8.5.18 from ActiveState to avoid the buggy Apple versions. For 3.6.5+, there is a 64-bit-only installer that comes with 8.6.8. For 3.7, both installers come with 8.6.8.

For Linux, people have whatever they have, but I presume 8.6 should be available everywhere and be fairly standard.

The only 'new in 8.6' note in the tkinter doc is about .png support. I sometimes worry that we might unknowingly make 8.6 a requirement. Is there much of anything new, as opposed to bug fixes, in 8.6?

I have read that 8.7, now in alpha, has a rewritten Text widget, and that there might be some minor incompatibilities. When tkinter supports 8.7, IDLE should also.

I have also read that tk 9.0 should support full unicode. That would be great for tkinter and IDLE. Beginners, especially, like to play around with astral characters.

Testing: I just finished reviewing and revising the test suite. This included adding a minimal test for each implementation module. I am getting increasingly strict about requiring test coverage of modified and new code.

Tkinter import style:  I have settled on
  from tkinter import Tk, Text, ...
  from ttk import Button, ...
If all the widget creation calls are covered by tests, missing items are quickly apparent.

Ttk conversion: This is partly done and I would like to complete at least a sensible minimum before we are done with 3.6. Patches making the remaining replacements would be welcome. If imports are first made explicit as above, switching mostly amounts to moving an item from one line to the other. Switching to or adding ttk frames elsewhere should also be fine. (I presume tk widgets in a ttk frame do fine.) D We need to separate windows and frames anyway, to make IDLE a tabbed application, and the frames should be a separate subclass. See the revised textview module.

We are not yet using custom ttk styles, and I do not consider that part of the minimum.

Tabbed windows: Separating Textview into a window and a frame that is now on the window but could later be put on a tab was a first step. I would like to have something for 3.8, after 3.6 is finished. We can consider whether to backport to 3.7 when we need to. In the meanwhile, there are lots of patches to review.

GUI changes: As I remember, I was not enthusiastic about some of your proposals, as they seemed overly complicated, predicated on supporting tk-only 8.4, or more appropriate for your website example. These will take more discussion.

--
Terry Jan Reedy


_______________________________________________
IDLE-dev mailing list
IDLE-dev@python.org
https://mail.python.org/mailman/listinfo/idle-dev

Reply via email to