I vote for applying this patch series, because it does not change what we have, except printing a warning in case python3 is neither explicitly called, nor the default.
I consider it is a good step, and I don't see the extra warning as a severe annoyance. 17/07/2020 18:24, Bruce Richardson: > On Fri, Jul 17, 2020 at 08:06:23AM -0700, Stephen Hemminger wrote: > > On Fri, 17 Jul 2020 13:42:09 +0100 > > Bruce Richardson <bruce.richard...@intel.com> wrote: > > > I think we have covered a number of options, but I'm not sure we have > > > converged on an agreed solution. Here are the options I would consider: > > > > > > 0. Do nothing to the code, and just print deprecation notice in docs. This > > > will violate the previously documented plan, but won't break anything > > > for > > > anyone. > > > 1. Just add deprecation notice but leave shebang lines unchanged, meaning > > > lots of people see the notice but don't need to care since they just > > > call > > > the script. > > > 2. As #1, but check if python3 is available and only print deprecation > > > notice if not > > > 3. Add deprecation notice, and change shebang lines to use python3. This > > > means that anyone who does not have python3 installed will see a > > > breaking > > > change > > > 4. Change shebangs to use python3 and detect at "make" build time if > > > python3 is available. If py3 is unavailable, adjust shebang and add > > > deprecation warning on "make install". > > > 5. Use shell-hack above. > > > > > > Any other options I'm missing? > > > > > > For me, I think I can live with all options bar #1. Probably my top > > > preference would be #4 or #2, with #0 and #4 next best thereafter. > > > > > > > 6. Change shebangs to use python3 and don't bother detecting. > > Since distributions will have python3. > > > > This was what our originally patch submission was to do, but it was pointed > out that we said we would have deprecation notices in the scripts in 20.08 > and only remove fully in 20.11 > > > 7. Change shebangs and keep the python2 compat imports > > This is pretty much the same as #3. The python2 compat imports etc. will be > removed in 20.11 anyway, so we can ignore those I think. > > > > > 8. Other alternative I have seen in code is to use > > try block in the import section: > > > > try: > > # for Python2 > > from Tkinter import * > > except ImportError: > > # for Python3 > > from tkinter import * > > > > But supporting python2 for a longer time makes no sense.a > > This is already done in DPDK. All scripts already support both python2 and > python3 AFAIK. If any don't, it's a bug. > > > > > I would go for #0 for 20.08 and full python3 in 20.11 (#3) > > > > Full python3 in 20.11 is indeed the already agreed plan. All python2 > compatibility will be removed then.