Merge lp:~kalikiana/ubuntu-ui-toolkit/qmlapicheckverbose into lp:ubuntu-ui-toolkit

Proposed by Cris Dywan
Status: Merged
Merged at revision: 965
Proposed branch: lp:~kalikiana/ubuntu-ui-toolkit/qmlapicheckverbose
Merge into: lp:ubuntu-ui-toolkit
Prerequisite: lp:~ubuntu-core-dev/ubuntu-ui-toolkit/py32ap
Diff against target: 117 lines (+78/-9)
3 files modified
components.api (+24/-0)
tests/qmlapicheck.sh (+52/-0)
tests/unit/add_qmlmakecheck.pri (+2/-9)
To merge this branch: bzr merge lp:~kalikiana/ubuntu-ui-toolkit/qmlapicheckverbose
Reviewer Review Type Date Requested Status
PS Jenkins bot continuous-integration Approve
Zsombor Egri Pending
Review via email: mp+209237@code.launchpad.net

This proposal supersedes a proposal from 2013-09-24.

Commit message

The wrapper is intended to make API test more visible in the output regardless of failure or success.
A semi-related fix increases coverage so that UbuntuTestCase and Layouts are also checked.

Description of the change

The wrapper is intended to make API test more visible in the output regardless of failure or success.
A semi-related fix increases coverage so that UbuntuTestCase and Layouts are also checked.

To post a comment you must log in.
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote : Posted in a previous version of this proposal
review: Approve (continuous-integration)
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote : Posted in a previous version of this proposal
review: Needs Fixing (continuous-integration)
Revision history for this message
Zsombor Egri (zsombi) wrote : Posted in a previous version of this proposal

I think we should leave out the Theme folder from the API check yet, as we do not promise API stability for those yet.

review: Needs Fixing
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote : Posted in a previous version of this proposal
review: Needs Fixing (continuous-integration)
Revision history for this message
Zsombor Egri (zsombi) wrote : Posted in a previous version of this proposal

Let's leave Theme in the loop but be less strict on those API breaks. Thanks for the fixes.

review: Approve
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote : Posted in a previous version of this proposal
review: Needs Fixing (continuous-integration)
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote : Posted in a previous version of this proposal
review: Needs Fixing (continuous-integration)
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote : Posted in a previous version of this proposal
review: Needs Fixing (continuous-integration)
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote : Posted in a previous version of this proposal
review: Needs Fixing (continuous-integration)
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote : Posted in a previous version of this proposal
review: Needs Fixing (continuous-integration)
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote : Posted in a previous version of this proposal
review: Needs Fixing (continuous-integration)
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote : Posted in a previous version of this proposal
review: Needs Fixing (continuous-integration)
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote : Posted in a previous version of this proposal
review: Needs Fixing (continuous-integration)
Revision history for this message
Zsombor Egri (zsombi) wrote : Posted in a previous version of this proposal

IconVisual is listed in the API file, which is an internal type of ListItems module. I think internals shouldn't be listed at all.

review: Needs Fixing
Revision history for this message
Cris Dywan (kalikiana) wrote : Posted in a previous version of this proposal

That's bug 1256045. This branch only is about the output, no change in behavior.

Revision history for this message
PS Jenkins bot (ps-jenkins) wrote : Posted in a previous version of this proposal
review: Needs Fixing (continuous-integration)
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote : Posted in a previous version of this proposal
review: Approve (continuous-integration)
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote : Posted in a previous version of this proposal
review: Approve (continuous-integration)
Revision history for this message
Zsombor Egri (zsombi) wrote : Posted in a previous version of this proposal

Good stuff. Merge with trunk so we have it up to date and we can land it.

review: Approve
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote : Posted in a previous version of this proposal
review: Needs Fixing (continuous-integration)
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote : Posted in a previous version of this proposal
review: Needs Fixing (continuous-integration)
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote : Posted in a previous version of this proposal
review: Approve (continuous-integration)
Revision history for this message
Cris Dywan (kalikiana) wrote : Posted in a previous version of this proposal
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Approve (continuous-integration)

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'components.api'
2--- components.api 2014-02-24 19:16:26 +0000
3+++ components.api 2014-03-04 12:40:27 +0000
4@@ -582,6 +582,12 @@
5 modules/Ubuntu/PerformanceMetrics/PerformanceOverlay.qml
6 Item
7 property bool active
8+modules/Ubuntu/Test/UbuntuTestCase.qml
9+TestCase
10+ function findChild(obj,objectName)
11+ function findInvisibleChild(obj,objectName)
12+ function mouseMoveSlowly(item,x,y,dx,dy,steps,stepdelay)
13+ function tryCompareFunction(func, expectedResult, timeout)
14 plugins.qmltypes
15 name: "InverseMouseAreaType"
16 prototype: "QQuickMouseArea"
17@@ -766,6 +772,24 @@
18 Parameter { name: "singular"; type: "string" }
19 Parameter { name: "plural"; type: "string" }
20 Parameter { name: "n"; type: "int" }
21+ name: "ULConditionalLayout"
22+ prototype: "QObject"
23+ exports: ["ConditionalLayout 0.1"]
24+ Property { name: "name"; type: "string" }
25+ Property { name: "when"; type: "QQmlBinding"; isPointer: true }
26+ Property { name: "layout"; type: "QQmlComponent"; isPointer: true }
27+ name: "ULItemLayout"
28+ prototype: "QQuickItem"
29+ exports: ["ItemLayout 0.1"]
30+ Property { name: "item"; type: "string" }
31+ name: "ULLayouts"
32+ prototype: "QQuickItem"
33+ exports: ["Layouts 0.1"]
34+ Property { name: "currentLayout"; type: "string"; isReadonly: true }
35+ Property { name: "layouts"; type: "ULConditionalLayout"; isList: true; isReadonly: true }
36+ name: "ULLayoutsAttached"
37+ prototype: "QObject"
38+ Property { name: "item"; type: "string" }
39 name: "UPMCpuUsage"
40 prototype: "QQuickItem"
41 exports: ["CpuUsage 0.1"]
42
43=== added file 'tests/qmlapicheck.sh'
44--- tests/qmlapicheck.sh 1970-01-01 00:00:00 +0000
45+++ tests/qmlapicheck.sh 2014-03-04 12:40:27 +0000
46@@ -0,0 +1,52 @@
47+#!/usr/bin/env sh
48+#
49+# Copyright 2013 Canonical Ltd.
50+#
51+# This program is free software; you can redistribute it and/or modify
52+# it under the terms of the GNU Lesser General Public License as published by
53+# the Free Software Foundation; version 3.
54+#
55+# This program is distributed in the hope that it will be useful,
56+# but WITHOUT ANY WARRANTY; without even the implied warranty of
57+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
58+# GNU Lesser General Public License for more details.
59+#
60+# You should have received a copy of the GNU Lesser General Public License
61+# along with this program. If not, see <http://www.gnu.org/licenses/>.
62+#
63+################################################################################
64+QML="modules/Ubuntu/*/qmldir modules/Ubuntu/Components/Colors/UbuntuColors.qml modules/Ubuntu/Components/*/qmldir modules/Ubuntu/Components/Pickers/PickerPanel.qml"
65+CPP="Ubuntu.Components Ubuntu.Layouts Ubuntu.PerformanceMetrics"
66+
67+echo Dumping QML API of C++ components
68+echo '' > plugins.qmltypes
69+for i in $CPP; do
70+ # Silence spam on stderr due to fonts
71+ # https://bugs.launchpad.net/ubuntu-ui-toolkit/+bug/1256999
72+ # https://bugreports.qt-project.org/browse/QTBUG-36243
73+ qmlplugindump $i 0.1 modules 2>/dev/null >> plugins.qmltypes
74+done
75+STATUS=$?
76+test $STATUS = 0 || ERRORS=1
77+test $STATUS = 0 || echo Error: qmldump failed
78+
79+echo Running QML API check for $QML
80+# Palette gets included in Qt 5.2 qmlplugindump even though it's qml
81+BUILTINS=QQuick,QQml,U1db::,Palette python3 tests/qmlapicheck.py $QML plugins.qmltypes > components.api.new
82+STATUS=$?
83+test $STATUS = 0 || ERRORS=1
84+test $STATUS = 0 || echo Error: qmlapicheck.py failed
85+
86+echo Verifying the diff between existing and generated API
87+diff -Fqml -u components.api components.api.new
88+STATUS=$?
89+test $STATUS = 0 || ERRORS=1
90+test $STATUS = 0 || echo Error: diff mismatched
91+
92+if [ "x$ERRORS" != "x1" ]; then
93+ echo API is all fine.
94+ exit 0
95+else
96+ echo API test failed with errors. Did you forget to update components.api?
97+ exit 1
98+fi
99
100=== modified file 'tests/unit/add_qmlmakecheck.pri'
101--- tests/unit/add_qmlmakecheck.pri 2014-03-04 12:40:26 +0000
102+++ tests/unit/add_qmlmakecheck.pri 2014-03-04 12:40:27 +0000
103@@ -8,12 +8,5 @@
104 check.commands += ../../unit/runtest.sh $${TARGET} $${TEST} minimal;
105 }
106 check.commands += cd ../../..;
107-# Silence spam on stderr due to fonts
108-# https://bugs.launchpad.net/ubuntu-ui-toolkit/+bug/1256999
109-# https://bugreports.qt-project.org/browse/QTBUG-36243
110-check.commands += qmlplugindump Ubuntu.Components 0.1 modules 2>/dev/null > plugins.qmltypes;
111-check.commands += qmlplugindump Ubuntu.PerformanceMetrics 0.1 modules 2>/dev/null >> plugins.qmltypes;
112-# Palette gets included in Qt 5.2 qmlplugindump even though it's qml
113-
114-check.commands += BUILTINS=QQuick,QQml,U1db::,Palette python3 tests/qmlapicheck.py modules/Ubuntu/Components/qmldir modules/Ubuntu/Components/Colors/UbuntuColors.qml modules/Ubuntu/Components/Pickers/PickerPanel.qml modules/Ubuntu/Components/*/qmldir modules/Ubuntu/PerformanceMetrics/qmldir plugins.qmltypes > components.api.new;
115-check.commands += diff -Fqml -u components.api components.api.new || exit 1; cd tests/unit
116+check.commands += sh tests/qmlapicheck.sh || exit 1;
117+check.commands += cd tests/unit

Subscribers

People subscribed via source and target branches

to status/vote changes: