Deprecate Python 2 support
diff mbox series

Message ID 20190503193721.18459-1-ehabkost@redhat.com
State New
Headers show
Series
  • Deprecate Python 2 support
Related show

Commit Message

Eduardo Habkost May 3, 2019, 7:37 p.m. UTC
Python 2 will reach end of life in January 1 2020.  Declare it as
deprecated.

Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
---
 configure            | 8 ++++++++
 qemu-deprecated.texi | 8 ++++++++
 2 files changed, 16 insertions(+)

Comments

Thomas Huth May 4, 2019, 6:27 a.m. UTC | #1
On 03/05/2019 21.37, Eduardo Habkost wrote:
> Python 2 will reach end of life in January 1 2020.  Declare it as
> deprecated.
> 
> Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
> ---
>  configure            | 8 ++++++++
>  qemu-deprecated.texi | 8 ++++++++
>  2 files changed, 16 insertions(+)
> 
> diff --git a/configure b/configure
> index 5b183c2e39..50385061ed 100755
> --- a/configure
> +++ b/configure
> @@ -6461,6 +6461,14 @@ if test "$supported_os" = "no"; then
>      echo "us upstream at qemu-devel@nongnu.org."
>  fi
>  
> +# Note that if the Python conditional here evaluates True we will exit
> +# with status 1 which is a shell 'false' value.
> +if ! $python -c 'import sys; sys.exit(sys.version_info < (3,0))'; then
> +  echo
> +  echo "WARNING: Python 2 support is deprecated" >&2
> +  echo "WARNING: Python 3 will be required for building future versions of QEMU" >&2
> +fi
> +
>  config_host_mak="config-host.mak"
>  
>  echo "# Automatically generated by configure - do not modify" >config-all-disas.mak
> diff --git a/qemu-deprecated.texi b/qemu-deprecated.texi
> index 842e71b11d..2f2d9a3e95 100644
> --- a/qemu-deprecated.texi
> +++ b/qemu-deprecated.texi
> @@ -206,3 +206,11 @@ Note that if you are exposing the export via /dev/nbd0, it is easier
>  to just export the entire image and then mount only /dev/nbd0p1 than
>  it is to reinvoke @command{qemu-nbd -c /dev/nbd0} limited to just a
>  subset of the image.
> +
> +@section Build system
> +
> +@subsection Python 2 support (since 4.1.0)
> +
> +In the future, QEMU will require Python 3 to be available at
> +build time.  Support for Python 2 in scripts shipped with QEMU
> +is deprecated.

Reviewed-by: Thomas Huth <thuth@redhat.com>
Markus Armbruster May 6, 2019, 2:12 p.m. UTC | #2
Eduardo Habkost <ehabkost@redhat.com> writes:

> Python 2 will reach end of life in January 1 2020.  Declare it as
> deprecated.
>
> Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
> ---
>  configure            | 8 ++++++++
>  qemu-deprecated.texi | 8 ++++++++
>  2 files changed, 16 insertions(+)
>
> diff --git a/configure b/configure
> index 5b183c2e39..50385061ed 100755
> --- a/configure
> +++ b/configure
> @@ -6461,6 +6461,14 @@ if test "$supported_os" = "no"; then
>      echo "us upstream at qemu-devel@nongnu.org."
>  fi
>  
> +# Note that if the Python conditional here evaluates True we will exit
> +# with status 1 which is a shell 'false' value.
> +if ! $python -c 'import sys; sys.exit(sys.version_info < (3,0))'; then
> +  echo
> +  echo "WARNING: Python 2 support is deprecated" >&2
> +  echo "WARNING: Python 3 will be required for building future versions of QEMU" >&2

Please don't shout "warning".  

> +fi
> +
>  config_host_mak="config-host.mak"
>  
>  echo "# Automatically generated by configure - do not modify" >config-all-disas.mak
> diff --git a/qemu-deprecated.texi b/qemu-deprecated.texi
> index 842e71b11d..2f2d9a3e95 100644
> --- a/qemu-deprecated.texi
> +++ b/qemu-deprecated.texi
> @@ -206,3 +206,11 @@ Note that if you are exposing the export via /dev/nbd0, it is easier
>  to just export the entire image and then mount only /dev/nbd0p1 than
>  it is to reinvoke @command{qemu-nbd -c /dev/nbd0} limited to just a
>  subset of the image.
> +
> +@section Build system
> +
> +@subsection Python 2 support (since 4.1.0)
> +
> +In the future, QEMU will require Python 3 to be available at
> +build time.  Support for Python 2 in scripts shipped with QEMU
> +is deprecated.

Reviewed-by: Markus Armbruster <armbru@redhat.com>
Eduardo Habkost May 7, 2019, 12:53 a.m. UTC | #3
On Mon, May 06, 2019 at 04:12:02PM +0200, Markus Armbruster wrote:
> Eduardo Habkost <ehabkost@redhat.com> writes:
> 
> > Python 2 will reach end of life in January 1 2020.  Declare it as
> > deprecated.
> >
> > Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
> > ---
> >  configure            | 8 ++++++++
> >  qemu-deprecated.texi | 8 ++++++++
> >  2 files changed, 16 insertions(+)
> >
> > diff --git a/configure b/configure
> > index 5b183c2e39..50385061ed 100755
> > --- a/configure
> > +++ b/configure
> > @@ -6461,6 +6461,14 @@ if test "$supported_os" = "no"; then
> >      echo "us upstream at qemu-devel@nongnu.org."
> >  fi
> >  
> > +# Note that if the Python conditional here evaluates True we will exit
> > +# with status 1 which is a shell 'false' value.
> > +if ! $python -c 'import sys; sys.exit(sys.version_info < (3,0))'; then
> > +  echo
> > +  echo "WARNING: Python 2 support is deprecated" >&2
> > +  echo "WARNING: Python 3 will be required for building future versions of QEMU" >&2
> 
> Please don't shout "warning".  
>
[...]
> 
> Reviewed-by: Markus Armbruster <armbru@redhat.com>

Thanks!  Queued after changing messages to "warning: ..."
Daniel P. Berrangé May 7, 2019, 9:44 a.m. UTC | #4
On Fri, May 03, 2019 at 04:37:21PM -0300, Eduardo Habkost wrote:
> Python 2 will reach end of life in January 1 2020.  Declare it as
> deprecated.
> 
> Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
> ---
>  configure            | 8 ++++++++
>  qemu-deprecated.texi | 8 ++++++++
>  2 files changed, 16 insertions(+)

Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>


Regards,
Daniel
Kevin Wolf May 7, 2019, 10:38 a.m. UTC | #5
Am 03.05.2019 um 21:37 hat Eduardo Habkost geschrieben:
> Python 2 will reach end of life in January 1 2020.  Declare it as
> deprecated.
> 
> Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
> ---
>  configure            | 8 ++++++++
>  qemu-deprecated.texi | 8 ++++++++
>  2 files changed, 16 insertions(+)
> 
> diff --git a/configure b/configure
> index 5b183c2e39..50385061ed 100755
> --- a/configure
> +++ b/configure
> @@ -6461,6 +6461,14 @@ if test "$supported_os" = "no"; then
>      echo "us upstream at qemu-devel@nongnu.org."
>  fi
>  
> +# Note that if the Python conditional here evaluates True we will exit
> +# with status 1 which is a shell 'false' value.
> +if ! $python -c 'import sys; sys.exit(sys.version_info < (3,0))'; then
> +  echo
> +  echo "WARNING: Python 2 support is deprecated" >&2
> +  echo "WARNING: Python 3 will be required for building future versions of QEMU" >&2
> +fi

While it's clear that we want to get rid of Python 2, did we actually
discuss how to decide what the new minimum Python version is? I don't
think any major distribution uses 3.0, which was released in 2008, so
this doesn't seem to make a lot of sense to me as the new minimum.

Currently, 3.6 seems to be a commonly available version. It looks like
Debian stable is at 3.5 still, though it might become oldstable before
the next QEMU release. Do we need to support anything older than that?

Kevin
Daniel P. Berrangé May 7, 2019, 10:47 a.m. UTC | #6
On Tue, May 07, 2019 at 12:38:14PM +0200, Kevin Wolf wrote:
> Am 03.05.2019 um 21:37 hat Eduardo Habkost geschrieben:
> > Python 2 will reach end of life in January 1 2020.  Declare it as
> > deprecated.
> > 
> > Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
> > ---
> >  configure            | 8 ++++++++
> >  qemu-deprecated.texi | 8 ++++++++
> >  2 files changed, 16 insertions(+)
> > 
> > diff --git a/configure b/configure
> > index 5b183c2e39..50385061ed 100755
> > --- a/configure
> > +++ b/configure
> > @@ -6461,6 +6461,14 @@ if test "$supported_os" = "no"; then
> >      echo "us upstream at qemu-devel@nongnu.org."
> >  fi
> >  
> > +# Note that if the Python conditional here evaluates True we will exit
> > +# with status 1 which is a shell 'false' value.
> > +if ! $python -c 'import sys; sys.exit(sys.version_info < (3,0))'; then
> > +  echo
> > +  echo "WARNING: Python 2 support is deprecated" >&2
> > +  echo "WARNING: Python 3 will be required for building future versions of QEMU" >&2
> > +fi
> 
> While it's clear that we want to get rid of Python 2, did we actually
> discuss how to decide what the new minimum Python version is? I don't
> think any major distribution uses 3.0, which was released in 2008, so
> this doesn't seem to make a lot of sense to me as the new minimum.
> 
> Currently, 3.6 seems to be a commonly available version. It looks like
> Debian stable is at 3.5 still, though it might become oldstable before
> the next QEMU release. Do we need to support anything older than that?

Per our support build platform doc, the oldest distros we care about will
be RHEL-7 and Debian Jessie.  Except we can drop Jessie 2 years after
Stretch was released. IOW, we can drop Jessie in June this year, which
is before our next releasee. So we don't need to care about the 3.4
version in Jessie.

RHEL-7 doesn't have py3 at all in standard distros, but it can be obtained
via software collections and this has 3.6

Debian Strech has 3.5.3, so 3.5 looks like our min viable version.

Regards,
Daniel
Markus Armbruster May 8, 2019, 12:50 p.m. UTC | #7
Daniel P. Berrangé <berrange@redhat.com> writes:

> On Tue, May 07, 2019 at 12:38:14PM +0200, Kevin Wolf wrote:
>> Am 03.05.2019 um 21:37 hat Eduardo Habkost geschrieben:
>> > Python 2 will reach end of life in January 1 2020.  Declare it as
>> > deprecated.
>> > 
>> > Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
>> > ---
>> >  configure            | 8 ++++++++
>> >  qemu-deprecated.texi | 8 ++++++++
>> >  2 files changed, 16 insertions(+)
>> > 
>> > diff --git a/configure b/configure
>> > index 5b183c2e39..50385061ed 100755
>> > --- a/configure
>> > +++ b/configure
>> > @@ -6461,6 +6461,14 @@ if test "$supported_os" = "no"; then
>> >      echo "us upstream at qemu-devel@nongnu.org."
>> >  fi
>> >  
>> > +# Note that if the Python conditional here evaluates True we will exit
>> > +# with status 1 which is a shell 'false' value.
>> > +if ! $python -c 'import sys; sys.exit(sys.version_info < (3,0))'; then
>> > +  echo
>> > +  echo "WARNING: Python 2 support is deprecated" >&2
>> > +  echo "WARNING: Python 3 will be required for building future versions of QEMU" >&2
>> > +fi
>> 
>> While it's clear that we want to get rid of Python 2, did we actually
>> discuss how to decide what the new minimum Python version is? I don't
>> think any major distribution uses 3.0, which was released in 2008, so
>> this doesn't seem to make a lot of sense to me as the new minimum.

Good point.

>> Currently, 3.6 seems to be a commonly available version. It looks like
>> Debian stable is at 3.5 still, though it might become oldstable before
>> the next QEMU release. Do we need to support anything older than that?
>
> Per our support build platform doc, the oldest distros we care about will
> be RHEL-7 and Debian Jessie.  Except we can drop Jessie 2 years after
> Stretch was released. IOW, we can drop Jessie in June this year, which
> is before our next releasee. So we don't need to care about the 3.4
> version in Jessie.
>
> RHEL-7 doesn't have py3 at all in standard distros, but it can be obtained
> via software collections and this has 3.6
>
> Debian Strech has 3.5.3, so 3.5 looks like our min viable version.

Eduardo, care to update configure accordingly?
Eduardo Habkost May 8, 2019, 5:57 p.m. UTC | #8
On Wed, May 08, 2019 at 02:50:00PM +0200, Markus Armbruster wrote:
> Daniel P. Berrangé <berrange@redhat.com> writes:
> 
> > On Tue, May 07, 2019 at 12:38:14PM +0200, Kevin Wolf wrote:
> >> Am 03.05.2019 um 21:37 hat Eduardo Habkost geschrieben:
> >> > Python 2 will reach end of life in January 1 2020.  Declare it as
> >> > deprecated.
> >> > 
> >> > Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
> >> > ---
> >> >  configure            | 8 ++++++++
> >> >  qemu-deprecated.texi | 8 ++++++++
> >> >  2 files changed, 16 insertions(+)
> >> > 
> >> > diff --git a/configure b/configure
> >> > index 5b183c2e39..50385061ed 100755
> >> > --- a/configure
> >> > +++ b/configure
> >> > @@ -6461,6 +6461,14 @@ if test "$supported_os" = "no"; then
> >> >      echo "us upstream at qemu-devel@nongnu.org."
> >> >  fi
> >> >  
> >> > +# Note that if the Python conditional here evaluates True we will exit
> >> > +# with status 1 which is a shell 'false' value.
> >> > +if ! $python -c 'import sys; sys.exit(sys.version_info < (3,0))'; then
> >> > +  echo
> >> > +  echo "WARNING: Python 2 support is deprecated" >&2
> >> > +  echo "WARNING: Python 3 will be required for building future versions of QEMU" >&2
> >> > +fi
> >> 
> >> While it's clear that we want to get rid of Python 2, did we actually
> >> discuss how to decide what the new minimum Python version is? I don't
> >> think any major distribution uses 3.0, which was released in 2008, so
> >> this doesn't seem to make a lot of sense to me as the new minimum.
> 
> Good point.
> 
> >> Currently, 3.6 seems to be a commonly available version. It looks like
> >> Debian stable is at 3.5 still, though it might become oldstable before
> >> the next QEMU release. Do we need to support anything older than that?
> >
> > Per our support build platform doc, the oldest distros we care about will
> > be RHEL-7 and Debian Jessie.  Except we can drop Jessie 2 years after
> > Stretch was released. IOW, we can drop Jessie in June this year, which
> > is before our next releasee. So we don't need to care about the 3.4
> > version in Jessie.
> >
> > RHEL-7 doesn't have py3 at all in standard distros, but it can be obtained
> > via software collections and this has 3.6
> >
> > Debian Strech has 3.5.3, so 3.5 looks like our min viable version.
> 
> Eduardo, care to update configure accordingly?

I'll do it as a separate patch, because updating the minimum
Python 3.x version (which is 3.0 right now) is independent from
Python 2 deprecation.
Philippe Mathieu-Daudé June 6, 2019, 10:28 p.m. UTC | #9
On 5/3/19 9:37 PM, Eduardo Habkost wrote:
> Python 2 will reach end of life in January 1 2020.  Declare it as
> deprecated.
> 
> Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
> ---
>  configure            | 8 ++++++++
>  qemu-deprecated.texi | 8 ++++++++
>  2 files changed, 16 insertions(+)
> 
> diff --git a/configure b/configure
> index 5b183c2e39..50385061ed 100755
> --- a/configure
> +++ b/configure
> @@ -6461,6 +6461,14 @@ if test "$supported_os" = "no"; then
>      echo "us upstream at qemu-devel@nongnu.org."
>  fi
>  
> +# Note that if the Python conditional here evaluates True we will exit
> +# with status 1 which is a shell 'false' value.
> +if ! $python -c 'import sys; sys.exit(sys.version_info < (3,0))'; then
> +  echo
> +  echo "WARNING: Python 2 support is deprecated" >&2
> +  echo "WARNING: Python 3 will be required for building future versions of QEMU" >&2
> +fi
> +
>  config_host_mak="config-host.mak"
>  
>  echo "# Automatically generated by configure - do not modify" >config-all-disas.mak
> diff --git a/qemu-deprecated.texi b/qemu-deprecated.texi
> index 842e71b11d..2f2d9a3e95 100644
> --- a/qemu-deprecated.texi
> +++ b/qemu-deprecated.texi
> @@ -206,3 +206,11 @@ Note that if you are exposing the export via /dev/nbd0, it is easier
>  to just export the entire image and then mount only /dev/nbd0p1 than
>  it is to reinvoke @command{qemu-nbd -c /dev/nbd0} limited to just a
>  subset of the image.
> +
> +@section Build system
> +
> +@subsection Python 2 support (since 4.1.0)
> +
> +In the future, QEMU will require Python 3 to be available at
> +build time.  Support for Python 2 in scripts shipped with QEMU
> +is deprecated.
> 

Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>

Patch
diff mbox series

diff --git a/configure b/configure
index 5b183c2e39..50385061ed 100755
--- a/configure
+++ b/configure
@@ -6461,6 +6461,14 @@  if test "$supported_os" = "no"; then
     echo "us upstream at qemu-devel@nongnu.org."
 fi
 
+# Note that if the Python conditional here evaluates True we will exit
+# with status 1 which is a shell 'false' value.
+if ! $python -c 'import sys; sys.exit(sys.version_info < (3,0))'; then
+  echo
+  echo "WARNING: Python 2 support is deprecated" >&2
+  echo "WARNING: Python 3 will be required for building future versions of QEMU" >&2
+fi
+
 config_host_mak="config-host.mak"
 
 echo "# Automatically generated by configure - do not modify" >config-all-disas.mak
diff --git a/qemu-deprecated.texi b/qemu-deprecated.texi
index 842e71b11d..2f2d9a3e95 100644
--- a/qemu-deprecated.texi
+++ b/qemu-deprecated.texi
@@ -206,3 +206,11 @@  Note that if you are exposing the export via /dev/nbd0, it is easier
 to just export the entire image and then mount only /dev/nbd0p1 than
 it is to reinvoke @command{qemu-nbd -c /dev/nbd0} limited to just a
 subset of the image.
+
+@section Build system
+
+@subsection Python 2 support (since 4.1.0)
+
+In the future, QEMU will require Python 3 to be available at
+build time.  Support for Python 2 in scripts shipped with QEMU
+is deprecated.