Skip to content
Snippets Groups Projects
  • Paolo Bonzini's avatar
    ca056f44
    Python: Drop support for Python 3.7 · ca056f44
    Paolo Bonzini authored
    
    Debian 10 is not anymore a supported distro, since Debian 12 was
    released on June 10, 2023.  Our supported build platforms as of today
    all support at least 3.8 (and all of them except for Ubuntu 20.04
    support 3.9):
    
    openSUSE Leap 15.5: 3.6.15 (3.11.2)
    CentOS Stream 8:    3.6.8  (3.8.13, 3.9.16, 3.11.4)
    CentOS Stream 9:    3.9.17 (3.11.4)
    Fedora 37:          3.11.4
    Fedora 38:          3.11.4
    Debian 11:          3.9.2
    Debian 12:          3.11.2
    Alpine 3.14, 3.15:  3.9.16
    Alpine 3.16, 3.17:  3.10.10
    Ubuntu 20.04 LTS:   3.8.10
    Ubuntu 22.04 LTS:   3.10.12
    NetBSD 9.3:         3.9.13*
    FreeBSD 12.4:       3.9.16
    FreeBSD 13.1:       3.9.18
    OpenBSD 7.2:        3.9.17
    
    Note: NetBSD does not appear to have a default meta-package, but offers
    several options, the lowest of which is 3.7.15. However, "python39"
    appears to be a pre-requisite to one of the other packages we request
    in tests/vm/netbsd.
    
    Since it is safe under our supported platform policy, bump our
    minimum supported version of Python to 3.8.  The two most interesting
    features to have by default include:
    
    - the importlib.metadata module, whose lack is responsible for over 100
      lines of code in mkvenv.py
    
    - improvements to asyncio, for example asyncio.CancelledError
      inherits from BaseException rather than Exception
    
    In addition, code can now use the assignment operator ':='
    
    Because mypy now learns about importlib.metadata, a small change to
    mkvenv.py is needed to pass type checking.
    
    Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
    ca056f44
    History
    Python: Drop support for Python 3.7
    Paolo Bonzini authored
    
    Debian 10 is not anymore a supported distro, since Debian 12 was
    released on June 10, 2023.  Our supported build platforms as of today
    all support at least 3.8 (and all of them except for Ubuntu 20.04
    support 3.9):
    
    openSUSE Leap 15.5: 3.6.15 (3.11.2)
    CentOS Stream 8:    3.6.8  (3.8.13, 3.9.16, 3.11.4)
    CentOS Stream 9:    3.9.17 (3.11.4)
    Fedora 37:          3.11.4
    Fedora 38:          3.11.4
    Debian 11:          3.9.2
    Debian 12:          3.11.2
    Alpine 3.14, 3.15:  3.9.16
    Alpine 3.16, 3.17:  3.10.10
    Ubuntu 20.04 LTS:   3.8.10
    Ubuntu 22.04 LTS:   3.10.12
    NetBSD 9.3:         3.9.13*
    FreeBSD 12.4:       3.9.16
    FreeBSD 13.1:       3.9.18
    OpenBSD 7.2:        3.9.17
    
    Note: NetBSD does not appear to have a default meta-package, but offers
    several options, the lowest of which is 3.7.15. However, "python39"
    appears to be a pre-requisite to one of the other packages we request
    in tests/vm/netbsd.
    
    Since it is safe under our supported platform policy, bump our
    minimum supported version of Python to 3.8.  The two most interesting
    features to have by default include:
    
    - the importlib.metadata module, whose lack is responsible for over 100
      lines of code in mkvenv.py
    
    - improvements to asyncio, for example asyncio.CancelledError
      inherits from BaseException rather than Exception
    
    In addition, code can now use the assignment operator ':='
    
    Because mypy now learns about importlib.metadata, a small change to
    mkvenv.py is needed to pass type checking.
    
    Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>