The end of an era

Published Wednesday February 25th, 2009
13 Comments on The end of an era
Posted in Git, News, Qt

Today we is a day that will be remembered for a long time in Qt history (I expect that we’ll remember it all the way until next week at least — that’s at least a thousand commits). I made today two 280,000-line changes to Qt, touching over 6500 files in each. At the end of the day, three Qt branches (4.6, 4.5 and 4.5.0) now contain the LGPL license header in all Qt’s .cpp and .h files, plus an assorted set of scripts. Third-party code is obviously excluded from this change. That means the GPL era of Qt comes to its end — and LGPL starts.

Today, I stopped the cron job that creates and publishes the Qt snapshots. Mostly because the LGPL and other changes are very likely to break stuff. And that we don’t want the snapshots published under the LGPL until we actually release 4.5.0 next month. What’s more, I don’t know if snapshots will ever come back: maybe we will go directly to the open repository. That’s the end of the snapshot era.

Today, Alexis also made changes to the Qt repository in Git, removing the never-released files and adapting the the license files. He also refactored the license part of the configure script and the Windows configure.exe (it’s a good thing that I turned snapshots off, because he went to ski shortly afterwards in a classical example of “submit-and-run” πŸ™‚ ). That’s one of the last steps required for the open repository, though there are a few minor things to go.

This week, the temperature in Oslo reached 0Β°C again. That means the snow is starting to melt and the streets are very dirty now. The mountains of snow that we have collected over the past few weeks will gradually disappear. That’s the end of Winter, but I hear it will come back (I don’t put too much faith in those rumours).

This month, I’m also stepping down as Release Manager for Qt. I had pre-announced this at Developer Days last year, but it’s effective now: after 18 months and releasing Qt 4.3.3, 4.3.4, 4.3.5, 4.4.0-tp1, 4.4.0-beta1, 4.4.0-rc1, 4.4.0, 4.4.1, 4.4.2, 4.4.3, 4.5.0-tp1, 4.5.0-beta1, 4.5.0-rc1 (and two mac-cocoa alphas), it’s time I pass the torch to the next poor sob brave soul to take on the job. So this is also the end of my era as Release Manager. (No, I’m not leaving Qt Software, I’m just moving on to other responsibilites)

It’s interesting to note that the change in RM matches the change in environment. It’s tradition that each new RM gets to rewrite the release scripts from scratch. The RM before me had all of it working for our setup with Perforce. I rewrote it to use Git. After me, you can’t call them release scripts anymore, because I rewrote them in C++, using memory-mapped files and QtConcurrent. Now my successor will have the chance of rewriting it to match the open repository. It looks like packaging will be a lot simpler, since there will be no file editing or removal.

This is not a sad time. At least, I haven’t seen anyone crying their eyes out in the office. So I must conclude that this is a happy time: the end of an era marks the beginning of a new one. We can only hope that the new era will be even better than the current. We’re certainly going to make our best effort.

Disclaimer: this blog could be part of a conspiracy against Qt on Windows.

Do you like this? Share it
Share on LinkedInGoogle+Share on FacebookTweet about this on Twitter

Posted in Git, News, Qt


Jos says:

“Disclaimer: this blog could be part of a conspiracy against Qt on Windows.”

Hah! only today did I download MSVC compiled binaries kindly provided to me by the people at
And I must say, they integrate wonderfully with the proprietary compiler.

That being said, of course such actions are to be frowned upon.

Ian Monroe says:

“I’m just moving on to other responsibilities”
May I suggest peer-to-peer DBus?


Thiago Macieira says:

I was thinking of something more challenging like using Microsoft Powerpoint πŸ™‚

I do have to say the snapshots had at least one major advantage: As long as they are only published after they pass the nightly build tests, you at least have some guarantee that what you’re building will actually compile and is not entirely broken. Something which is not always the case when you’re checking out from SVN or Git πŸ™‚

@Arend => If they’re using Git, you can easily ensure that the master branch is always stable. You simply don’t merge a feature branch until it passes the build tests. This obviously isn’t possible in SVN’s Wiki-like model.

> I was thinking of something more challenging like
> using Microsoft Powerpoint πŸ™‚

Management? Aww, dude. Who is going to replace your unmatched knowledge of C++ and whatever freaky stuff comes around? oh, well.

Thiago Macieira says:

Arend: uh… who says we do build tests on our snapshots? πŸ™‚

It just happens that they are generated at night, when the breakages should be gone already. And you can always rollback to a previously working version.

Will Stephenson says:

How about challenging the next guy to write the release scripts in VBA? Then you get to simultaneously give the release presentation at DevDays and run the macros actually doing the release on slide transition.

I’ll get my coat…

aaron.jamis says:

“Disclaimer: this blog could be part of a conspiracy against Qt on Windows.” !!!
Yes, we known that !!!! Long life Windows !

Nice Work Thiago !

AlekSi says:

When you say “LGPL” you mean “LGPL with exception for C++ templates and inlines”, right? May you post exception text there?

Thiago Macieira says:

Yes, an exception giving you additional rights for inlined code, macros, templates, etc. is included. I won’t post the text here because I don’t want the blog to become a discussion on the legal intricacies of the wording.

AlekSi says:

I just wanted to add same exception to my library. πŸ™‚ Anyway, I will wait for release. Thanks for your work, Thiago!

Daniel de Kok says:

Thank you for your work as the release manager. Long live LGPLed Qt :).

Commenting closed.

Get started today with Qt Download now