[Development] Switching from create_changelog.pl to createchangelog for change log generation

Mitch Curtis mitch.curtis at qt.io
Tue Apr 2 11:40:24 CEST 2019

Currently change files are generated using create_changelog.pl from qtsdk.git [1]. This works OK, but misses a lot of bug fixes. For example, the 5.12.3 release of Qt Quick Controls 2 has a bunch of fixes, but create_changelog.pl still results in the "This release contains only minor code improvements" message:


Simon wrote createchangelog [2], which includes any changes with a Jira task number. To quote what the tool does:

commit 66f33fecc3b4a2896a4f33a3a7f06fb5cdd36dc8
Author: Simon Hausmann <simon.hausmann at theqtcompany.com>
Date:   Thu Feb 25 16:54:02 2016 +0100

    Added little helper tool to create an initial changelog template for a module
    Simply run the binary in the module directory with the correct branch checked
    out.  The tool will peek at .qmake.conf to figure out the current version and
    run git tag -l to see what the previous version is.
    The resulting change log requires manual editing, but it is a start.
    Change-Id: I975c0d7a74fee8cab2ae6f400972c5dbc73ff367
    Reviewed-by: Robin Burchell <robin.burchell at viroteck.net>

And the README:

    This little tool faciliates the creation of change log files for Qt modules. It is written in golang and
    can be built by running

        go build

    With the binary in place, you can use it like this:

        1. Change into a directory that contains a git clone of the module you'd like to create a change log for.
        2. Make sure you have the release branch checked out that you'd like to create the file for.
        3. Run the createchangelog tool from there.
        4. The tool will parse .qmake.conf to determine the version of the upcoming release and it will use "git tag -l" to
           determine the previous release, in order to look through the git commits between the previous release and HEAD.
        5. The proposed template output of the new change log file is printed to standard output, from which you can redirect
           it to a file and edit it accordingly.

To show examples of what the tool generates, I've attached its output when run on the 5.12.3 and dev branches of qtquickcontrols2.git.

So, the end result of switching to this is that it becomes clearer that we are actually fixing (non-trivial) bugs, contrary to what the "only minor code improvements" message says. Yes, it does mean that you will have to edit more stuff, but it's mostly just removing commit message bodies, which are included (if I understand correctly) in order to give more context than would otherwise be available had it just included the commit summary.

If no one has any serious objections, I'd like for us to start using this to create the draft change file commits as soon as possible. 

[1] https://code.qt.io/cgit/qtsdk/qtsdk.git/tree/packaging-tools/create_changelog.pl
[2] https://code.qt.io/cgit/qt/qtqa.git/tree/src/createchangelog
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: qtquickcontrols2-5.12.3.txt
URL: <http://lists.qt-project.org/pipermail/development/attachments/20190402/dfb4f3c1/attachment.txt>
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: qtquickcontrols2-dev.txt
URL: <http://lists.qt-project.org/pipermail/development/attachments/20190402/dfb4f3c1/attachment-0001.txt>

More information about the Development mailing list