diff --git a/.github/workflows/CI-unixish.yml b/.github/workflows/CI-unixish.yml index af60530d51b..09c686c7136 100644 --- a/.github/workflows/CI-unixish.yml +++ b/.github/workflows/CI-unixish.yml @@ -20,11 +20,7 @@ jobs: strategy: matrix: - os: [ubuntu-20.04, ubuntu-22.04, macos-13] - include: - - use_qt6: On - - os: ubuntu-20.04 - use_qt6: Off + os: [ubuntu-22.04, macos-13] fail-fast: false # Prefer quick result runs-on: ${{ matrix.os }} @@ -44,13 +40,7 @@ jobs: key: ${{ github.workflow }}-${{ github.job }}-${{ matrix.os }} - name: Install missing software on ubuntu - if: contains(matrix.os, 'ubuntu') && matrix.use_qt6 == 'Off' - run: | - sudo apt-get update - sudo apt-get install libxml2-utils libtinyxml2-dev qtbase5-dev qttools5-dev libqt5charts5-dev qtchooser - - - name: Install missing software on ubuntu - if: contains(matrix.os, 'ubuntu') && matrix.use_qt6 == 'On' + if: contains(matrix.os, 'ubuntu') run: | sudo apt-get update sudo apt-get install libxml2-utils libtinyxml2-dev @@ -68,7 +58,7 @@ jobs: - name: CMake build on ubuntu (with GUI / system tinyxml2) if: contains(matrix.os, 'ubuntu') run: | - cmake -S . -B cmake.output.tinyxml2 -G "Unix Makefiles" -DHAVE_RULES=On -DBUILD_TESTS=On -DBUILD_GUI=On -DUSE_QT6=${{ matrix.use_qt6 }} -DWITH_QCHART=On -DBUILD_TRIAGE=On -DUSE_BUNDLED_TINYXML2=Off -DCMAKE_DISABLE_PRECOMPILE_HEADERS=On -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache + cmake -S . -B cmake.output.tinyxml2 -G "Unix Makefiles" -DHAVE_RULES=On -DBUILD_TESTS=On -DBUILD_GUI=On -DUSE_QT6=On -DWITH_QCHART=On -DBUILD_TRIAGE=On -DUSE_BUNDLED_TINYXML2=Off -DCMAKE_DISABLE_PRECOMPILE_HEADERS=On -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache cmake --build cmake.output.tinyxml2 -- -j$(nproc) - name: CMake build on macos (with GUI / system tinyxml2) @@ -85,11 +75,7 @@ jobs: strategy: matrix: - os: [ubuntu-20.04, ubuntu-22.04, macos-13] - include: - - use_qt6: On - - os: ubuntu-20.04 - use_qt6: Off + os: [ubuntu-22.04, macos-13] fail-fast: false # Prefer quick result runs-on: ${{ matrix.os }} @@ -108,12 +94,6 @@ jobs: with: key: ${{ github.workflow }}-${{ github.job }}-${{ matrix.os }} - - name: Install missing software on ubuntu - if: contains(matrix.os, 'ubuntu') && matrix.use_qt6 == 'Off' - run: | - sudo apt-get update - sudo apt-get install libxml2-utils qtbase5-dev qttools5-dev libqt5charts5-dev qtchooser - # TODO: move latest compiler to separate step # TODO: bail out on warnings with latest GCC - name: Set up GCC @@ -129,7 +109,7 @@ jobs: echo "CXX=g++-13" >> $GITHUB_ENV - name: Install missing software on ubuntu - if: contains(matrix.os, 'ubuntu') && matrix.use_qt6 == 'On' + if: contains(matrix.os, 'ubuntu') run: | sudo apt-get update sudo apt-get install libxml2-utils @@ -147,7 +127,7 @@ jobs: - name: Run CMake on ubuntu (with GUI) if: contains(matrix.os, 'ubuntu') run: | - cmake -S . -B cmake.output -G "Unix Makefiles" -DHAVE_RULES=On -DBUILD_TESTS=On -DBUILD_GUI=On -DUSE_QT6=${{ matrix.use_qt6 }} -DWITH_QCHART=On -DBUILD_TRIAGE=On -DCMAKE_DISABLE_PRECOMPILE_HEADERS=On -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DCMAKE_INSTALL_PREFIX=cppcheck-cmake-install + cmake -S . -B cmake.output -G "Unix Makefiles" -DHAVE_RULES=On -DBUILD_TESTS=On -DBUILD_GUI=On -DUSE_QT6=On -DWITH_QCHART=On -DBUILD_TRIAGE=On -DCMAKE_DISABLE_PRECOMPILE_HEADERS=On -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DCMAKE_INSTALL_PREFIX=cppcheck-cmake-install - name: Run CMake on macos (with GUI) if: contains(matrix.os, 'macos') @@ -175,7 +155,7 @@ jobs: strategy: matrix: - os: [ubuntu-20.04, ubuntu-22.04, macos-13] + os: [ubuntu-22.04, macos-13] fail-fast: false # Prefer quick result runs-on: ${{ matrix.os }} @@ -209,7 +189,7 @@ jobs: strategy: matrix: - os: [ubuntu-20.04, ubuntu-22.04, macos-13] + os: [ubuntu-22.04, macos-13] fail-fast: false # Prefer quick result runs-on: ${{ matrix.os }} @@ -243,7 +223,7 @@ jobs: strategy: matrix: - os: [ubuntu-20.04, ubuntu-22.04, macos-13] + os: [ubuntu-22.04, macos-13] fail-fast: false # Prefer quick result runs-on: ${{ matrix.os }} @@ -267,7 +247,7 @@ jobs: strategy: matrix: - os: [ubuntu-20.04, ubuntu-22.04, macos-13] + os: [ubuntu-22.04, macos-13] include: - xdist_n: auto # FIXME: test_color_tty fails with xdist diff --git a/.github/workflows/scriptcheck.yml b/.github/workflows/scriptcheck.yml index b4336b44525..c55c8ff54b7 100644 --- a/.github/workflows/scriptcheck.yml +++ b/.github/workflows/scriptcheck.yml @@ -18,8 +18,7 @@ permissions: jobs: build: - # 'ubuntu-22.04' removes Python 3.6 so keep the previous LTS version - runs-on: ubuntu-20.04 + runs-on: ubuntu-22.04 steps: - uses: actions/checkout@v4 @@ -46,11 +45,10 @@ jobs: scriptcheck: needs: build - # 'ubuntu-22.04' removes Python 3.6 so keep the previous LTS version - runs-on: ubuntu-20.04 + runs-on: ubuntu-22.04 strategy: matrix: - python-version: [3.6, 3.7, 3.8, 3.9, '3.10', '3.11', '3.12', '3.13'] + python-version: [3.7, 3.8, 3.9, '3.10', '3.11', '3.12', '3.13'] include: - python-version: '3.13' python-latest: true @@ -107,7 +105,7 @@ jobs: if: matrix.python-latest run: | shopt -s globstar - pylint --jobs $(nproc) --py-version 3.6 addons/**/*.py htmlreport/cppcheck-htmlreport htmlreport/**/*.py test/**/*.py tools/**/*.py + pylint --jobs $(nproc) --py-version 3.7 addons/**/*.py htmlreport/cppcheck-htmlreport htmlreport/**/*.py test/**/*.py tools/**/*.py - name: check .json files if: matrix.python-latest @@ -158,9 +156,7 @@ jobs: test/tools/htmlreport/test_htmlreport.py test/tools/htmlreport/check.sh - # Python 3.6 is excluded as it is not supported by setuptools-scm package for getting package version - name: test htmlreport (pip) - if: matrix.python-version != '3.6' run: | python -m venv venv source venv/bin/activate diff --git a/cmake/findDependencies.cmake b/cmake/findDependencies.cmake index 6d01ba27aae..6aad0b4ea5d 100644 --- a/cmake/findDependencies.cmake +++ b/cmake/findDependencies.cmake @@ -61,8 +61,8 @@ if(NOT Python_Interpreter_FOUND) set(USE_MATCHCOMPILER_OPT "Off") endif() else() - if(${Python_VERSION} VERSION_LESS 3.6) - message(FATAL_ERROR "The minimum supported Python version is 3.6 - found ${Python_VERSION}") + if(${Python_VERSION} VERSION_LESS 3.7) + message(FATAL_ERROR "The minimum supported Python version is 3.7 - found ${Python_VERSION}") endif() endif() diff --git a/releasenotes.txt b/releasenotes.txt index 4c3b82cea48..d599d9d9107 100644 --- a/releasenotes.txt +++ b/releasenotes.txt @@ -21,4 +21,5 @@ Other: - added CMake target `run-clang-tidy-csa` to run Clang Static Analyzer - added CMake option `ENABLE_CSA_ALPHA` to enable the Clang Static Analyzer alpha checkers - Updated TinyXML-2 to v11.0.0 +- The minimum supported Python version has been bumped to 3.7. - diff --git a/tools/donate-cpu.py b/tools/donate-cpu.py index 799e4ff47f3..81c752b141f 100755 --- a/tools/donate-cpu.py +++ b/tools/donate-cpu.py @@ -125,10 +125,10 @@ print('Unhandled argument: ' + arg) sys.exit(1) -if sys.version_info.major < 3 or (sys.version_info.major == 3 and sys.version_info.minor < 6): +if sys.version_info.major < 3 or (sys.version_info.major == 3 and sys.version_info.minor < 7): print("#" * 80) print("IMPORTANT") - print("Please run the client with at least Python 3.6, thanks!") + print("Please run the client with at least Python 3.7, thanks!") print("#" * 80) time.sleep(2) sys.exit(1)