v3.7

General

  • Warn when nesting worktrees are detected
  • Print the name of the class of the exception along with its message when an uncaught exception occurs.

qicd

  • Go back to 3.5 behavior

qibuild

  • Write a path.conf in the .qi folder too

  • Fix #24199: additional environment paths leaking from other configs

  • Fix using --build-type=[RelWithDebInfo|MinSizeRel] with Visual Studio

  • Fix using qibuild test with -p

  • Fix updating build profiles remotely.

    To get an up-to-date profile, you should first remove the <profiles> tag manually from .qi/qibuild.xml.

    The tools/3.7-migration.py script can help you do that.

  • Fix crash in qibuild deploy when gdb is not installed

  • qibuild install: small bug fix

    The make preinstall hack used to look for Unix Makefiles in the build config, instead of reading the CMakeCache, causing install failures when no generator was specified in the build config.

qidoc

  • Fix crash when build_type is None
  • Do not put doubles in qiapidoc_srcs
  • Fix bug with recent sphinx: except SystemExit to prevent early exit
  • Do not filter hidden files when installing

qilinguist

  • Add context support extraction for qilinguist

qipkg

  • qipkg build: allow usage of -j option
  • Better error message when files from the pml do not exist
  • Add support for meta packages
  • Implement qipkg make-package --with-breakpad

qipy

  • qipy bootstrap: fix crash when calling pip install fails.
  • Allow specifying modules, script and packages to install directly from the qiproject.xml instead of having to write a setup.py file
  • Use exec in the ./python script. This is required for qi::path magic to work.

qisrc

  • qisrc checkout: skip checkout when project is already on the correct branch

  • qisrc init : make manifest URL argument optional

  • qisrc: raise when updating the manifest fails

  • qisrc rebase: make git fetch quiet when verbose is not set

  • Fix issue when changing remotes: the new remote was added but the previous one never deleted

  • qisrc list-groups: sort the output

  • qisrc add-group: fix #26829

    We used to not store the default group when running qisrc init, causing qisrc add-group to remove some projects when called afterwards.

  • qisrc reset: fix crash when loading bad snapshot

qitest

  • qitest run accept several -k options
  • qitest run: correctly set working directory
  • qitest run allow specifying several build projects on the command line. As a consequence, paths to qitest.json files should now be specified using --qitest-json option.
  • qitest run --nightly: also run the normal tests.
  • Do not overwrite generated XML files when return code is 1
  • Merge qitest.json files when installing with --with-tests
  • Re-implement qitest “nightmare” mode.

qitoolchain

  • Support for svn packages: just put a <svn_package> tag in the XML feed. qitoolchain update will cause all svn packages to be updated to the latest revision. You can also specify a revision using a revision attribute.
  • Format of configuration files changed. Now only XML is used.
    • Versions of packages are now stored in a database
    • Since configuration of toolchain packages changed, you should re-create all of them from scratch. The tools/3.7-migration.py script can help you do that.
  • qitoolchain update is now a no-op when there are no changes, thus preventing unnecessary rebuilds.
  • Binary packages are now a ‘flat’ zip with a package.xml as first element containing metadata. Packages can now have runtime, build time and test time dependencies, the same way C++ projects can.
  • Binary packages now contain install manifest files to track the list of files matching a given component (runtime, devel or test)
  • qitoolchain add-package: read name of the package (and other metadata) from package.xml
  • Packages generated by qibuild package now also contain SCM information when relevant

cmake

  • Look for boost shared libs on Windows
  • Qt: Remove QT_USE_QMAKE option. Instead just look for the qmake executable to include upstream CMake modules. Previous behavior can be achieved by setting QT_QMAKE_EXECUTABLE variable.
  • cmake modules:
    • add curl
    • add soprano
  • Fix staging shared libraries in a subfolder
  • Add Qt5 support
  • Compile executables with -fPIE on linux (required for Qt5)
  • Fix QT4_AUTOMOC