[Idle-dev] contributing and versions
Terry Reedy
tjreedy at udel.edu
Thu Jun 21 15:28:17 EDT 2018
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
More information about the IDLE-dev
mailing list