diff -Nru click-reviewers-tools-0.6/bin/clickreviews/cr_common.py click-reviewers-tools-0.7/bin/clickreviews/cr_common.py --- click-reviewers-tools-0.6/bin/clickreviews/cr_common.py 2014-04-22 11:08:53.000000000 +0000 +++ click-reviewers-tools-0.7/bin/clickreviews/cr_common.py 2014-05-05 08:33:55.000000000 +0000 @@ -106,16 +106,21 @@ # it now # self._list_all_compiled_binaries() + self.valid_frameworks = self._extract_click_frameworks() + + def _extract_click_frameworks(self): + '''Extract installed click frameworks''' # TODO: update to use libclick API when available - self.valid_frameworks = [] + valid_frameworks = [] frameworks = sorted( glob.glob("/usr/share/click/frameworks/*.framework")) if len(frameworks) == 0: - self.valid_frameworks.append('ubuntu-sdk-13.10') + valid_frameworks.append('ubuntu-sdk-13.10') else: for f in frameworks: - self.valid_frameworks.append(os.path.basename( - os.path.splitext(f)[0])) + valid_frameworks.append(os.path.basename( + os.path.splitext(f)[0])) + return valid_frameworks def _extract_manifest_file(self): '''Extract and read the manifest file''' diff -Nru click-reviewers-tools-0.6/bin/clickreviews/cr_functional.py click-reviewers-tools-0.7/bin/clickreviews/cr_functional.py --- click-reviewers-tools-0.6/bin/clickreviews/cr_functional.py 2014-04-22 11:08:53.000000000 +0000 +++ click-reviewers-tools-0.7/bin/clickreviews/cr_functional.py 2014-05-05 08:33:55.000000000 +0000 @@ -137,7 +137,33 @@ if len(qmls) > 0: t = 'warn' s = "Found files that use unsupported QtWebKit (should use " + \ - "UbuntuWebview or Oxide instead): %s" % " ,".join(qmls) + "UbuntuWebview (Ubuntu.Components.Extras.Browser >= " + \ + "0.2) or Oxide instead): %s" % " ,".join(qmls) l = "http://askubuntu.com/questions/417342/what-does-functional-qml-application-uses-qtwebkit-mean/417343" self._add_result(t, n, s, l) + + t = 'info' + n = 'qml_application_uses_UbuntuWebView_0.2' + s = "OK" + l = None + + if self.manifest['framework'] == "ubuntu-sdk-13.10": + s = "SKIPPED (Oxide not available in ubuntu-sdk-13.10)" + else: + qmls = [] + pat_mv = re.compile(r'\n\s*import\s+Ubuntu\.Components\.Extras\.Browser\s+0\.1\s*\n') + for i in self.qml_files: + qml = open_file_read(i).read() + if pat_mv.search(qml): + qmls.append(os.path.relpath(i, self.unpack_dir)) + + if len(qmls) > 0: + t = 'warn' + s = "Found files that use unsupported QtWebKit via " + \ + "'Ubuntu.Components.Extras.Browser 0.1' (should use " + \ + "Ubuntu.Components.Extras.Browser >= 0.2 or " + \ + "Oxide instead): %s" % " ,".join(qmls) + l = "http://askubuntu.com/questions/417342/what-does-functional-qml-application-uses-qtwebkit-mean/417343" + + self._add_result(t, n, s, l) diff -Nru click-reviewers-tools-0.6/bin/clickreviews/cr_lint.py click-reviewers-tools-0.7/bin/clickreviews/cr_lint.py --- click-reviewers-tools-0.6/bin/clickreviews/cr_lint.py 2014-04-22 11:08:53.000000000 +0000 +++ click-reviewers-tools-0.7/bin/clickreviews/cr_lint.py 2014-05-05 08:33:55.000000000 +0000 @@ -524,6 +524,18 @@ self.manifest['framework'] self._add_result(t, n, s) + obsolete_frameworks = ['ubuntu-sdk-13.10'] + t = 'info' + n = 'current framework' + s = 'OK' + l = None + if self.manifest['framework'] in obsolete_frameworks: + t = 'error' + s = "'%s' is obsolete. Please use a newer framework" % \ + self.manifest['framework'] + l = "http://askubuntu.com/questions/460512/what-framework-should-i-use-in-my-manifest-file" + self._add_result(t, n, s, l) + def check_click_local_extensions(self): '''Report any click local extensions''' t = 'info' diff -Nru click-reviewers-tools-0.6/bin/clickreviews/cr_security.py click-reviewers-tools-0.7/bin/clickreviews/cr_security.py --- click-reviewers-tools-0.6/bin/clickreviews/cr_security.py 2014-04-22 11:08:53.000000000 +0000 +++ click-reviewers-tools-0.7/bin/clickreviews/cr_security.py 2014-05-05 08:33:55.000000000 +0000 @@ -64,6 +64,7 @@ 'template_variables', 'write_path'] self.allowed_webapp_policy_groups = ['audio', + 'content_exchange', 'location', 'networking', 'video', @@ -341,6 +342,17 @@ s = "found unusual policy groups: %s" % ", ".join(bad) self._add_result(t, n, s) + t = 'info' + n = 'policy_groups_webapp_webview (%s)' % f + s = "OK" + if self.manifest['framework'] == "ubuntu-sdk-13.10": + s = "SKIPPED (webview not available in 13.10)" + elif 'webview' not in m['policy_groups']: + t = 'warn' + s = "'webview' not specified. Webapp may not function" + + self._add_result(t, n, s) + def check_policy_groups(self): '''Check policy_groups''' for app in sorted(self.manifest['hooks']): diff -Nru click-reviewers-tools-0.6/bin/clickreviews/cr_tests.py click-reviewers-tools-0.7/bin/clickreviews/cr_tests.py --- click-reviewers-tools-0.6/bin/clickreviews/cr_tests.py 2014-04-22 11:08:53.000000000 +0000 +++ click-reviewers-tools-0.7/bin/clickreviews/cr_tests.py 2014-05-05 08:33:55.000000000 +0000 @@ -52,6 +52,16 @@ return io.StringIO(TEST_MANIFEST) +def _extract_click_frameworks(self): + '''Pretend we enumerated the click frameworks''' + return ["ubuntu-sdk-13.10", + "ubuntu-sdk-14.04-dev1", + "ubuntu-sdk-14.04-html-dev1", + "ubuntu-sdk-14.04-papi-dev1", + "ubuntu-sdk-14.04-qml-dev1", + ] + + def _extract_security_manifest(self, app): '''Pretend we read the security manifest file''' return io.StringIO(TEST_SECURITY[app]) @@ -103,6 +113,9 @@ patches.append(patch( 'clickreviews.cr_common.ClickReview._extract_manifest_file', _extract_manifest_file)) +patches.append(patch( + 'clickreviews.cr_common.ClickReview._extract_click_frameworks', + _extract_click_frameworks)) patches.append(patch('clickreviews.cr_common.unpack_click', _mock_func)) patches.append(patch('clickreviews.cr_common.ClickReview._list_all_files', _mock_func)) diff -Nru click-reviewers-tools-0.6/bin/clickreviews/tests/test_cr_lint.py click-reviewers-tools-0.7/bin/clickreviews/tests/test_cr_lint.py --- click-reviewers-tools-0.6/bin/clickreviews/tests/test_cr_lint.py 2014-04-22 11:08:53.000000000 +0000 +++ click-reviewers-tools-0.7/bin/clickreviews/tests/test_cr_lint.py 2014-05-05 08:33:55.000000000 +0000 @@ -580,10 +580,11 @@ def test_check_framework(self): '''Test check_framework()''' + self.set_test_manifest("framework", "ubuntu-sdk-14.04-qml-dev1") c = ClickReviewLint(self.test_name) c.check_framework() r = c.click_report - expected_counts = {'info': 1, 'warn': 0, 'error': 0} + expected_counts = {'info': 2, 'warn': 0, 'error': 0} self.check_results(r, expected_counts) def test_check_framework_bad(self): @@ -592,5 +593,14 @@ c = ClickReviewLint(self.test_name) c.check_framework() r = c.click_report - expected_counts = {'info': 0, 'warn': 0, 'error': 1} + expected_counts = {'info': None, 'warn': 0, 'error': 1} + self.check_results(r, expected_counts) + + def test_check_framework_obsolete(self): + '''Test check_framework() - obsolete''' + self.set_test_manifest("framework", "ubuntu-sdk-13.10") + c = ClickReviewLint(self.test_name) + c.check_framework() + r = c.click_report + expected_counts = {'info': None, 'warn': 0, 'error': 1} self.check_results(r, expected_counts) diff -Nru click-reviewers-tools-0.6/bin/clickreviews/tests/test_cr_security.py click-reviewers-tools-0.7/bin/clickreviews/tests/test_cr_security.py --- click-reviewers-tools-0.6/bin/clickreviews/tests/test_cr_security.py 2014-04-22 11:08:53.000000000 +0000 +++ click-reviewers-tools-0.7/bin/clickreviews/tests/test_cr_security.py 2014-05-05 08:33:55.000000000 +0000 @@ -294,6 +294,7 @@ self.set_test_security_manifest(self.default_appname, "policy_groups", ["audio", + "content_exchange", "location", "networking", "video", @@ -311,6 +312,7 @@ self.set_test_security_manifest(self.default_appname, "policy_groups", ["audio", + "content_exchange", "location", "networking", "video", @@ -331,7 +333,7 @@ c = ClickReviewSecurity(self.test_name) c.check_policy_groups_webapps() report = c.click_report - expected_counts = {'info': 0, 'warn': 0, 'error': 1} + expected_counts = {'info': None, 'warn': 0, 'error': 1} self.check_results(report, expected_counts) def test_check_policy_groups_webapps_missing(self): @@ -347,6 +349,34 @@ expected_counts = {'info': 0, 'warn': 0, 'error': 1} self.check_results(report, expected_counts) + def test_check_policy_groups_webapps_missing_webview(self): + '''Test check_policy_groups_webapps() - missing webview''' + self.set_test_manifest("framework", "ubuntu-sdk-14.04-qml-dev1") + self.set_test_security_manifest(self.default_appname, + "template", "ubuntu-webapp") + self.set_test_security_manifest(self.default_appname, + "policy_groups", + ["networking"]) + c = ClickReviewSecurity(self.test_name) + c.check_policy_groups_webapps() + report = c.click_report + expected_counts = {'info': None, 'warn': 1, 'error': 0} + self.check_results(report, expected_counts) + + def test_check_policy_groups_webapps_missing_webview_1310(self): + '''Test check_policy_groups_webapps() - missing webview (13.10)''' + self.set_test_manifest("framework", "ubuntu-sdk-13.10") + self.set_test_security_manifest(self.default_appname, + "template", "ubuntu-webapp") + self.set_test_security_manifest(self.default_appname, + "policy_groups", + ["networking"]) + c = ClickReviewSecurity(self.test_name) + c.check_policy_groups_webapps() + report = c.click_report + expected_counts = {'info': 2, 'warn': 0, 'error': 0} + self.check_results(report, expected_counts) + def test_check_policy_groups_webapps_bad(self): '''Test check_policy_groups_webapps() - bad''' self.set_test_security_manifest(self.default_appname, @@ -357,7 +387,7 @@ c = ClickReviewSecurity(self.test_name) c.check_policy_groups_webapps() report = c.click_report - expected_counts = {'info': 0, 'warn': 0, 'error': 1} + expected_counts = {'info': None, 'warn': 0, 'error': 1} self.check_results(report, expected_counts) def test_check_policy_groups(self): diff -Nru click-reviewers-tools-0.6/clickreviews/cr_common.py click-reviewers-tools-0.7/clickreviews/cr_common.py --- click-reviewers-tools-0.6/clickreviews/cr_common.py 2014-04-22 11:08:53.000000000 +0000 +++ click-reviewers-tools-0.7/clickreviews/cr_common.py 2014-05-05 08:33:55.000000000 +0000 @@ -106,16 +106,21 @@ # it now # self._list_all_compiled_binaries() + self.valid_frameworks = self._extract_click_frameworks() + + def _extract_click_frameworks(self): + '''Extract installed click frameworks''' # TODO: update to use libclick API when available - self.valid_frameworks = [] + valid_frameworks = [] frameworks = sorted( glob.glob("/usr/share/click/frameworks/*.framework")) if len(frameworks) == 0: - self.valid_frameworks.append('ubuntu-sdk-13.10') + valid_frameworks.append('ubuntu-sdk-13.10') else: for f in frameworks: - self.valid_frameworks.append(os.path.basename( - os.path.splitext(f)[0])) + valid_frameworks.append(os.path.basename( + os.path.splitext(f)[0])) + return valid_frameworks def _extract_manifest_file(self): '''Extract and read the manifest file''' diff -Nru click-reviewers-tools-0.6/clickreviews/cr_functional.py click-reviewers-tools-0.7/clickreviews/cr_functional.py --- click-reviewers-tools-0.6/clickreviews/cr_functional.py 2014-04-22 11:08:53.000000000 +0000 +++ click-reviewers-tools-0.7/clickreviews/cr_functional.py 2014-05-05 08:33:55.000000000 +0000 @@ -137,7 +137,33 @@ if len(qmls) > 0: t = 'warn' s = "Found files that use unsupported QtWebKit (should use " + \ - "UbuntuWebview or Oxide instead): %s" % " ,".join(qmls) + "UbuntuWebview (Ubuntu.Components.Extras.Browser >= " + \ + "0.2) or Oxide instead): %s" % " ,".join(qmls) l = "http://askubuntu.com/questions/417342/what-does-functional-qml-application-uses-qtwebkit-mean/417343" self._add_result(t, n, s, l) + + t = 'info' + n = 'qml_application_uses_UbuntuWebView_0.2' + s = "OK" + l = None + + if self.manifest['framework'] == "ubuntu-sdk-13.10": + s = "SKIPPED (Oxide not available in ubuntu-sdk-13.10)" + else: + qmls = [] + pat_mv = re.compile(r'\n\s*import\s+Ubuntu\.Components\.Extras\.Browser\s+0\.1\s*\n') + for i in self.qml_files: + qml = open_file_read(i).read() + if pat_mv.search(qml): + qmls.append(os.path.relpath(i, self.unpack_dir)) + + if len(qmls) > 0: + t = 'warn' + s = "Found files that use unsupported QtWebKit via " + \ + "'Ubuntu.Components.Extras.Browser 0.1' (should use " + \ + "Ubuntu.Components.Extras.Browser >= 0.2 or " + \ + "Oxide instead): %s" % " ,".join(qmls) + l = "http://askubuntu.com/questions/417342/what-does-functional-qml-application-uses-qtwebkit-mean/417343" + + self._add_result(t, n, s, l) diff -Nru click-reviewers-tools-0.6/clickreviews/cr_lint.py click-reviewers-tools-0.7/clickreviews/cr_lint.py --- click-reviewers-tools-0.6/clickreviews/cr_lint.py 2014-04-22 11:08:53.000000000 +0000 +++ click-reviewers-tools-0.7/clickreviews/cr_lint.py 2014-05-05 08:33:55.000000000 +0000 @@ -524,6 +524,18 @@ self.manifest['framework'] self._add_result(t, n, s) + obsolete_frameworks = ['ubuntu-sdk-13.10'] + t = 'info' + n = 'current framework' + s = 'OK' + l = None + if self.manifest['framework'] in obsolete_frameworks: + t = 'error' + s = "'%s' is obsolete. Please use a newer framework" % \ + self.manifest['framework'] + l = "http://askubuntu.com/questions/460512/what-framework-should-i-use-in-my-manifest-file" + self._add_result(t, n, s, l) + def check_click_local_extensions(self): '''Report any click local extensions''' t = 'info' diff -Nru click-reviewers-tools-0.6/clickreviews/cr_security.py click-reviewers-tools-0.7/clickreviews/cr_security.py --- click-reviewers-tools-0.6/clickreviews/cr_security.py 2014-04-22 11:08:53.000000000 +0000 +++ click-reviewers-tools-0.7/clickreviews/cr_security.py 2014-05-05 08:33:55.000000000 +0000 @@ -64,6 +64,7 @@ 'template_variables', 'write_path'] self.allowed_webapp_policy_groups = ['audio', + 'content_exchange', 'location', 'networking', 'video', @@ -341,6 +342,17 @@ s = "found unusual policy groups: %s" % ", ".join(bad) self._add_result(t, n, s) + t = 'info' + n = 'policy_groups_webapp_webview (%s)' % f + s = "OK" + if self.manifest['framework'] == "ubuntu-sdk-13.10": + s = "SKIPPED (webview not available in 13.10)" + elif 'webview' not in m['policy_groups']: + t = 'warn' + s = "'webview' not specified. Webapp may not function" + + self._add_result(t, n, s) + def check_policy_groups(self): '''Check policy_groups''' for app in sorted(self.manifest['hooks']): diff -Nru click-reviewers-tools-0.6/clickreviews/cr_tests.py click-reviewers-tools-0.7/clickreviews/cr_tests.py --- click-reviewers-tools-0.6/clickreviews/cr_tests.py 2014-04-22 11:08:53.000000000 +0000 +++ click-reviewers-tools-0.7/clickreviews/cr_tests.py 2014-05-05 08:33:55.000000000 +0000 @@ -52,6 +52,16 @@ return io.StringIO(TEST_MANIFEST) +def _extract_click_frameworks(self): + '''Pretend we enumerated the click frameworks''' + return ["ubuntu-sdk-13.10", + "ubuntu-sdk-14.04-dev1", + "ubuntu-sdk-14.04-html-dev1", + "ubuntu-sdk-14.04-papi-dev1", + "ubuntu-sdk-14.04-qml-dev1", + ] + + def _extract_security_manifest(self, app): '''Pretend we read the security manifest file''' return io.StringIO(TEST_SECURITY[app]) @@ -103,6 +113,9 @@ patches.append(patch( 'clickreviews.cr_common.ClickReview._extract_manifest_file', _extract_manifest_file)) +patches.append(patch( + 'clickreviews.cr_common.ClickReview._extract_click_frameworks', + _extract_click_frameworks)) patches.append(patch('clickreviews.cr_common.unpack_click', _mock_func)) patches.append(patch('clickreviews.cr_common.ClickReview._list_all_files', _mock_func)) diff -Nru click-reviewers-tools-0.6/clickreviews/tests/test_cr_lint.py click-reviewers-tools-0.7/clickreviews/tests/test_cr_lint.py --- click-reviewers-tools-0.6/clickreviews/tests/test_cr_lint.py 2014-04-22 11:08:53.000000000 +0000 +++ click-reviewers-tools-0.7/clickreviews/tests/test_cr_lint.py 2014-05-05 08:33:55.000000000 +0000 @@ -580,10 +580,11 @@ def test_check_framework(self): '''Test check_framework()''' + self.set_test_manifest("framework", "ubuntu-sdk-14.04-qml-dev1") c = ClickReviewLint(self.test_name) c.check_framework() r = c.click_report - expected_counts = {'info': 1, 'warn': 0, 'error': 0} + expected_counts = {'info': 2, 'warn': 0, 'error': 0} self.check_results(r, expected_counts) def test_check_framework_bad(self): @@ -592,5 +593,14 @@ c = ClickReviewLint(self.test_name) c.check_framework() r = c.click_report - expected_counts = {'info': 0, 'warn': 0, 'error': 1} + expected_counts = {'info': None, 'warn': 0, 'error': 1} + self.check_results(r, expected_counts) + + def test_check_framework_obsolete(self): + '''Test check_framework() - obsolete''' + self.set_test_manifest("framework", "ubuntu-sdk-13.10") + c = ClickReviewLint(self.test_name) + c.check_framework() + r = c.click_report + expected_counts = {'info': None, 'warn': 0, 'error': 1} self.check_results(r, expected_counts) diff -Nru click-reviewers-tools-0.6/clickreviews/tests/test_cr_security.py click-reviewers-tools-0.7/clickreviews/tests/test_cr_security.py --- click-reviewers-tools-0.6/clickreviews/tests/test_cr_security.py 2014-04-22 11:08:53.000000000 +0000 +++ click-reviewers-tools-0.7/clickreviews/tests/test_cr_security.py 2014-05-05 08:33:55.000000000 +0000 @@ -294,6 +294,7 @@ self.set_test_security_manifest(self.default_appname, "policy_groups", ["audio", + "content_exchange", "location", "networking", "video", @@ -311,6 +312,7 @@ self.set_test_security_manifest(self.default_appname, "policy_groups", ["audio", + "content_exchange", "location", "networking", "video", @@ -331,7 +333,7 @@ c = ClickReviewSecurity(self.test_name) c.check_policy_groups_webapps() report = c.click_report - expected_counts = {'info': 0, 'warn': 0, 'error': 1} + expected_counts = {'info': None, 'warn': 0, 'error': 1} self.check_results(report, expected_counts) def test_check_policy_groups_webapps_missing(self): @@ -347,6 +349,34 @@ expected_counts = {'info': 0, 'warn': 0, 'error': 1} self.check_results(report, expected_counts) + def test_check_policy_groups_webapps_missing_webview(self): + '''Test check_policy_groups_webapps() - missing webview''' + self.set_test_manifest("framework", "ubuntu-sdk-14.04-qml-dev1") + self.set_test_security_manifest(self.default_appname, + "template", "ubuntu-webapp") + self.set_test_security_manifest(self.default_appname, + "policy_groups", + ["networking"]) + c = ClickReviewSecurity(self.test_name) + c.check_policy_groups_webapps() + report = c.click_report + expected_counts = {'info': None, 'warn': 1, 'error': 0} + self.check_results(report, expected_counts) + + def test_check_policy_groups_webapps_missing_webview_1310(self): + '''Test check_policy_groups_webapps() - missing webview (13.10)''' + self.set_test_manifest("framework", "ubuntu-sdk-13.10") + self.set_test_security_manifest(self.default_appname, + "template", "ubuntu-webapp") + self.set_test_security_manifest(self.default_appname, + "policy_groups", + ["networking"]) + c = ClickReviewSecurity(self.test_name) + c.check_policy_groups_webapps() + report = c.click_report + expected_counts = {'info': 2, 'warn': 0, 'error': 0} + self.check_results(report, expected_counts) + def test_check_policy_groups_webapps_bad(self): '''Test check_policy_groups_webapps() - bad''' self.set_test_security_manifest(self.default_appname, @@ -357,7 +387,7 @@ c = ClickReviewSecurity(self.test_name) c.check_policy_groups_webapps() report = c.click_report - expected_counts = {'info': 0, 'warn': 0, 'error': 1} + expected_counts = {'info': None, 'warn': 0, 'error': 1} self.check_results(report, expected_counts) def test_check_policy_groups(self): diff -Nru click-reviewers-tools-0.6/debian/bzr-builder.manifest click-reviewers-tools-0.7/debian/bzr-builder.manifest --- click-reviewers-tools-0.6/debian/bzr-builder.manifest 2014-04-22 11:08:53.000000000 +0000 +++ click-reviewers-tools-0.7/debian/bzr-builder.manifest 2014-05-05 08:33:55.000000000 +0000 @@ -1,2 +1,2 @@ -# bzr-builder format 0.3 deb-version {debupstream}-0~184 -lp:click-reviewers-tools revid:daniel.holbach@canonical.com-20140417161343-c3tkos5j2nmtk9zd +# bzr-builder format 0.3 deb-version {debupstream}-0~194 +lp:click-reviewers-tools revid:daniel.holbach@canonical.com-20140505081411-j0unfdezjcp18mwt diff -Nru click-reviewers-tools-0.6/debian/changelog click-reviewers-tools-0.7/debian/changelog --- click-reviewers-tools-0.6/debian/changelog 2014-04-22 11:08:53.000000000 +0000 +++ click-reviewers-tools-0.7/debian/changelog 2014-05-05 08:33:55.000000000 +0000 @@ -1,22 +1,35 @@ -click-reviewers-tools (0.6-0~184~ubuntu14.04.1) trusty; urgency=low +click-reviewers-tools (0.7-0~194~ubuntu14.04.1) trusty; urgency=low * Auto build. - -- Daniel Holbach Tue, 22 Apr 2014 11:08:53 +0000 + -- Daniel Holbach Mon, 05 May 2014 08:33:55 +0000 -click-reviewers-tools (0.6) UNRELEASED; urgency=medium +click-reviewers-tools (0.7) UNRELEASED; urgency=medium + + * clickreviews/cr_lint.py: add link to more info about "Please use newer + framework". Thanks Alan Pope. + + -- Daniel Holbach Tue, 29 Apr 2014 16:37:24 +0200 + +click-reviewers-tools (0.6) utopic; urgency=medium [ Daniel Holbach ] - * d/control: bump apparmor-easyprof-ubuntu requirement to 1.0.44. + * d/control: bump apparmor-easyprof-ubuntu requirement to 1.0.44. This should safeguard against #1292418 (test-suite failing on saucy). * clickreviews/cr_desktop.py: check for deprecated execs, add cordova-ubuntu-2.8 to the list. (LP: #1307533) [ Jamie Strandboge ] - * clickreviews/cr_security.py: webview policy can be used by webapps - * clickreviews/tests/test_cr_security.py: tests for above + * clickreviews/cr_security.py: + - webview policy can be used by webapps + - content_exchange policy can be used by webapps (LP: #1308184) + - clickreviews/tests/test_cr_security.py: tests for above + - warn if webview not used with ubuntu-webapp template on non-13.10 + frameworks + * clickreviews/cr_lint.py: obsolete ubuntu-sdk-13.10 framework + * clickreviews/cr_functional.py: warn if using UbuntuWebView 0.1 - -- Daniel Holbach Thu, 13 Mar 2014 15:12:44 +0100 + -- Jamie Strandboge Mon, 28 Apr 2014 13:01:08 -0500 click-reviewers-tools (0.5) trusty; urgency=medium