[Development] Codifying the .qml License Header Exemption

Alan Alpert 416365416c at gmail.com
Sat Sep 21 00:15:47 CEST 2013


A while ago it came up that the rules for license headers in QML files
isn't clearly defined. Here's my suggestion for how to define it, and if
the project likes the idea we can get a legal check and then fix up the
infrastructure to follow (sanity bot and license-check test).

Current rule is roughly "can be skipped in tests". It's that way for a
reason, QML unit tests necessarily involve lots of trivially simple QML
files to test just one specific part of the language. We have separate
tests for comment parsing, we don't need to extend the CI runs with a ton
of "double-checking" here ;) .

Since I'm pretty sure the concept is supposed to be only bothering for
non-trivial code (because bothering to add headers to trivial code is
useless, boring, and depressing) adding a size limit would be the easiest
way to make this automatable. Looking at the file sizes, I recommend
excluding QML files under "tests" from requiring a license header if they
have <=15 LoC. If those few lines are really ingenious contributors are
recommended to add a header anyways and there's nothing wrong with adding
the headers. But if you don't add a header for such a small file in tests
(and the reviewer agrees the files are trivial), then you don't get blocked.

Note that the abundance of tiny, trivial QML files is a tests specific
problem and so I think this exemption should only apply to the tests
subdir. All doc/example code should still have license headers checked.

If this sounds good to people, I'll prepare patches to update the system.
Not patches that add/remove license headers to existing tests.

For reference, this recent patch got a ton of bogus warnings:
https://codereview.qt-project.org/#change,63591
And this patch is blocked because the current exemption is tests/auto
specific: https://codereview.qt-project.org/#change,64331
when tests/benchmarks is obviously in the same boat (and test manual is on
the fence, so should be left to human judgement).

Appendix A: Graphs of data (LoC in .qml files after removing all headers)
which informed this suggestion:

QML file size under tests

[image: Inline image 1]
Same data, zoomed in to see that spike in better res. 15 seems like the
sweet spot in the data (while still being a fairly trivial amount of
formatted QML code).
[image: Inline image 2]
Length of .qml files in the examples sub-tree for comparision (same x-axis
scale as the 1st graph):
[image: Inline image 3]

With a 40 line license header, and looking at those graphs, I think we're
looking at 60kB of license headers on trivial files if we force all the
<=15 LoC test files to have licenses. If nothing else, think of the poor
people on dialup ;) because that's above the "large file warning" the bot
hands out so freely.

--
Alan Alpert
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/development/attachments/20130920/f1b9941b/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: auto-example.png
Type: image/png
Size: 4564 bytes
Desc: not available
URL: <http://lists.qt-project.org/pipermail/development/attachments/20130920/f1b9941b/attachment.png>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: auto-all-small.png
Type: image/png
Size: 4389 bytes
Desc: not available
URL: <http://lists.qt-project.org/pipermail/development/attachments/20130920/f1b9941b/attachment-0001.png>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: auto-all-all.png
Type: image/png
Size: 4563 bytes
Desc: not available
URL: <http://lists.qt-project.org/pipermail/development/attachments/20130920/f1b9941b/attachment-0002.png>


More information about the Development mailing list