Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-102348

Updated python packages can cause the build to fail

    XMLWordPrintable

Details

    • All
    • 8538f97aab (qt/qtinterfaceframework/dev) f666980d17 (qt/qtinterfaceframework/6.2) 97a85ec3d2 (qt/qtinterfaceframework/6.3) f666980d17 (qt/qtinterfaceframework/6.2) f666980d17 (qt/tqtc-qtinterfaceframework/6.2) 97a85ec3d2 (qt/tqtc-qtinterfaceframework/6.3)

    Description

      The code generator of the Interface Framework depends on a function python3 interpreter and the qface python package.
      For the qface package we have control which exact version is used when building qtif from source as it checked out as a submodule.
      For all the dependencies of qface it's a bit more complicated as those get installed using pip3 using a requriements.txt
      Right now qface as a requriements.txt which only sets a minimum version for all it's dependencies, this means that even when installing an old checkout of qtif with an old version of qface, the requriements file would install the latest versions of those packages.
      Those newer packages can cause problems when things get deprecated. See QTBUG-102126 for reference.
      Another way would be to freeze the package version with every qface release, but this would cause constant maintenance as otherwise old python packages are installed which might contain bugs or security problems.

      To be able to support old python environments, but also support the latest and greatest versions, qface provides two requriements.txt files. One with minimal requriements, using the latest released python packages (this is the default) and one minimal version which contains the oldest set of packages which are known to be working.
      In addition the qface CI does a weekly check to verify the package still works correctly using the latest available python packages. With pull-request 110 it also verifies that no deprecation warnings are reported.
      This should help to keep the qface package uptodate, but still doesn't fix the build errors newer python packages can cause, as the qface package is part of the qtif source drop and would need to be updated manually (which might be incompatible with the qtif generate.py).

      To support this usecase qtif is now verifying that the generator is working after the virtualenv is created. In case of an error a human readable error message is shown which asks the user to reconfigure qtif with a newly introduced cmake option.
      The new cmake option uses the minimal requirements.txt instead and installs dependencies which are known to be working.

      Attachments

        Issue Links

          For Gerrit Dashboard: QTBUG-102348
          # Subject Branch Project Status CR V

          Activity

            People

              gagi Dominik Holland
              gagi Dominik Holland
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Gerrit Reviews