All our supported build platforms have Python 3.6 or newer nowadays,
and there are some useful features in Python 3.6 which are not available
in 3.5 yet, so let's bump the minimum Python version to 3.6 now.
Signed-off-by: Thomas Huth <thuth@redhat.com>
---
configure | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/configure b/configure
index 7564479008..a3a643168e 100755
--- a/configure
+++ b/configure
@@ -1965,8 +1965,8 @@ 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,5))'; then
- error_exit "Cannot use '$python', Python >= 3.5 is required." \
+if ! $python -c 'import sys; sys.exit(sys.version_info < (3,6))'; then
+ error_exit "Cannot use '$python', Python >= 3.6 is required." \
"Use --python=/path/to/python to specify a supported Python."
fi
--
2.18.2
On 9/21/20 1:43 PM, Thomas Huth wrote: > All our supported build platforms have Python 3.6 or newer nowadays, > and there are some useful features in Python 3.6 which are not available > in 3.5 yet, so let's bump the minimum Python version to 3.6 now. > Just to add in case anyone wonders: This isn't incrementalism for incrementalism's sake, but the type hint annotations added in Python 3.6 allow us to statically type the QAPI parser. We are already using (and enforcing) these annotations in iotests.py, and I believe adding this to QAPI will be of high value going forward. > Signed-off-by: Thomas Huth <thuth@redhat.com> > --- > configure | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/configure b/configure > index 7564479008..a3a643168e 100755 > --- a/configure > +++ b/configure > @@ -1965,8 +1965,8 @@ 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,5))'; then > - error_exit "Cannot use '$python', Python >= 3.5 is required." \ > +if ! $python -c 'import sys; sys.exit(sys.version_info < (3,6))'; then > + error_exit "Cannot use '$python', Python >= 3.6 is required." \ > "Use --python=/path/to/python to specify a supported Python." > fi > > Do we need to bump the minimum version in the Sphinx conf, too? There's also a minimum version check in iotests.py that is now *possibly* redundant, but it does no harm. Regardless, none of those things cause any harm: Reviewed-by: John Snow <jsnow@redhat.com>
On Mon, 21 Sep 2020 at 19:20, John Snow <jsnow@redhat.com> wrote: > > On 9/21/20 1:43 PM, Thomas Huth wrote: > > All our supported build platforms have Python 3.6 or newer nowadays, > > and there are some useful features in Python 3.6 which are not available > > in 3.5 yet, so let's bump the minimum Python version to 3.6 now. > > > > Just to add in case anyone wonders: This isn't incrementalism for > incrementalism's sake, but the type hint annotations added in Python 3.6 > allow us to statically type the QAPI parser. > > We are already using (and enforcing) these annotations in iotests.py, > and I believe adding this to QAPI will be of high value going forward. > > > Signed-off-by: Thomas Huth <thuth@redhat.com> > > --- > > configure | 4 ++-- > > 1 file changed, 2 insertions(+), 2 deletions(-) > > > > diff --git a/configure b/configure > > index 7564479008..a3a643168e 100755 > > --- a/configure > > +++ b/configure > > @@ -1965,8 +1965,8 @@ 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,5))'; then > > - error_exit "Cannot use '$python', Python >= 3.5 is required." \ > > +if ! $python -c 'import sys; sys.exit(sys.version_info < (3,6))'; then > > + error_exit "Cannot use '$python', Python >= 3.6 is required." \ > > "Use --python=/path/to/python to specify a supported Python." > > fi > > > > > > Do we need to bump the minimum version in the Sphinx conf, too? Yes -- the configure check only applies to python invoked directly, not to python code invoked via Sphinx, so we should keep both in sync. thanks -- PMM
All our supported build platforms have Python 3.6 or newer nowadays, and
there are some useful features in Python 3.6 which are not available in
3.5 yet (e.g. the type hint annotations which will allow us to statically
type the QAPI parser), so let's bump the minimum Python version to 3.6 now.
Signed-off-by: Thomas Huth <thuth@redhat.com>
---
v2:
- Bump the version in docs/conf.py, too
- Remove the now unnecessary check in tests/qemu-iotests/iotests.py
configure | 4 ++--
docs/conf.py | 4 ++--
tests/qemu-iotests/iotests.py | 2 --
3 files changed, 4 insertions(+), 6 deletions(-)
diff --git a/configure b/configure
index 7564479008..a3a643168e 100755
--- a/configure
+++ b/configure
@@ -1965,8 +1965,8 @@ 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,5))'; then
- error_exit "Cannot use '$python', Python >= 3.5 is required." \
+if ! $python -c 'import sys; sys.exit(sys.version_info < (3,6))'; then
+ error_exit "Cannot use '$python', Python >= 3.6 is required." \
"Use --python=/path/to/python to specify a supported Python."
fi
diff --git a/docs/conf.py b/docs/conf.py
index 0dbd90dc11..8aeac40124 100644
--- a/docs/conf.py
+++ b/docs/conf.py
@@ -36,9 +36,9 @@ from sphinx.errors import ConfigError
# In newer versions of Sphinx this will display nicely; in older versions
# Sphinx will also produce a Python backtrace but at least the information
# gets printed...
-if sys.version_info < (3,5):
+if sys.version_info < (3,6):
raise ConfigError(
- "QEMU requires a Sphinx that uses Python 3.5 or better\n")
+ "QEMU requires a Sphinx that uses Python 3.6 or better\n")
# The per-manual conf.py will set qemu_docdir for a single-manual build;
# otherwise set it here if this is an entire-manual-set build.
diff --git a/tests/qemu-iotests/iotests.py b/tests/qemu-iotests/iotests.py
index 91e4a57126..f48460480a 100644
--- a/tests/qemu-iotests/iotests.py
+++ b/tests/qemu-iotests/iotests.py
@@ -40,8 +40,6 @@ sys.path.append(os.path.join(os.path.dirname(__file__), '..', '..', 'python'))
from qemu import qtest
from qemu.qmp import QMPMessage
-assert sys.version_info >= (3, 6)
-
# Use this logger for logging messages directly from the iotests module
logger = logging.getLogger('qemu.iotests')
logger.addHandler(logging.NullHandler())
--
2.18.2
Should we also warning it in meson.build, cause configure finally shoud be
removed.
On Thu, Sep 24, 2020 at 12:32 AM Thomas Huth <thuth@redhat.com> wrote:
>
> All our supported build platforms have Python 3.6 or newer nowadays, and
> there are some useful features in Python 3.6 which are not available in
> 3.5 yet (e.g. the type hint annotations which will allow us to statically
> type the QAPI parser), so let's bump the minimum Python version to 3.6
now.
>
> Signed-off-by: Thomas Huth <thuth@redhat.com>
> ---
> v2:
> - Bump the version in docs/conf.py, too
> - Remove the now unnecessary check in tests/qemu-iotests/iotests.py
>
> configure | 4 ++--
> docs/conf.py | 4 ++--
> tests/qemu-iotests/iotests.py | 2 --
> 3 files changed, 4 insertions(+), 6 deletions(-)
>
> diff --git a/configure b/configure
> index 7564479008..a3a643168e 100755
> --- a/configure
> +++ b/configure
> @@ -1965,8 +1965,8 @@ 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,5))'; then
> - error_exit "Cannot use '$python', Python >= 3.5 is required." \
> +if ! $python -c 'import sys; sys.exit(sys.version_info < (3,6))'; then
> + error_exit "Cannot use '$python', Python >= 3.6 is required." \
> "Use --python=/path/to/python to specify a supported Python."
> fi
>
> diff --git a/docs/conf.py b/docs/conf.py
> index 0dbd90dc11..8aeac40124 100644
> --- a/docs/conf.py
> +++ b/docs/conf.py
> @@ -36,9 +36,9 @@ from sphinx.errors import ConfigError
> # In newer versions of Sphinx this will display nicely; in older versions
> # Sphinx will also produce a Python backtrace but at least the
information
> # gets printed...
> -if sys.version_info < (3,5):
> +if sys.version_info < (3,6):
> raise ConfigError(
> - "QEMU requires a Sphinx that uses Python 3.5 or better\n")
> + "QEMU requires a Sphinx that uses Python 3.6 or better\n")
>
> # The per-manual conf.py will set qemu_docdir for a single-manual build;
> # otherwise set it here if this is an entire-manual-set build.
> diff --git a/tests/qemu-iotests/iotests.py b/tests/qemu-iotests/iotests.py
> index 91e4a57126..f48460480a 100644
> --- a/tests/qemu-iotests/iotests.py
> +++ b/tests/qemu-iotests/iotests.py
> @@ -40,8 +40,6 @@ sys.path.append(os.path.join(os.path.dirname(__file__),
'..', '..', 'python'))
> from qemu import qtest
> from qemu.qmp import QMPMessage
>
> -assert sys.version_info >= (3, 6)
> -
> # Use this logger for logging messages directly from the iotests module
> logger = logging.getLogger('qemu.iotests')
> logger.addHandler(logging.NullHandler())
> --
> 2.18.2
>
>
--
此致
礼
罗勇刚
Yours
sincerely,
Yonggang Luo
On 23/09/2020 18.34, 罗勇刚(Yonggang Luo) wrote: > Should we also warning it in meson.build, cause configure finally shoud > be removed. Sounds like a good idea for a separate patch (let's do one issue at a time...). Thomas
John Snow <jsnow@redhat.com> writes: > On 9/21/20 1:43 PM, Thomas Huth wrote: >> All our supported build platforms have Python 3.6 or newer nowadays, >> and there are some useful features in Python 3.6 which are not available >> in 3.5 yet, so let's bump the minimum Python version to 3.6 now. >> > > Just to add in case anyone wonders: This isn't incrementalism for > incrementalism's sake, but the type hint annotations added in Python > 3.6 allow us to statically type the QAPI parser. > > We are already using (and enforcing) these annotations in iotests.py, > and I believe adding this to QAPI will be of high value going forward. Concur. [...]
On Mon, Sep 21, 2020 at 07:43:20PM +0200, Thomas Huth wrote: > All our supported build platforms have Python 3.6 or newer nowadays, > and there are some useful features in Python 3.6 which are not available > in 3.5 yet, so let's bump the minimum Python version to 3.6 now. > > Signed-off-by: Thomas Huth <thuth@redhat.com> > --- > configure | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) Reviewed-by: Daniel P. Berrangé <berrange@redhat.com> Regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|
© 2016 - 2026 Red Hat, Inc.