From 0d6de77f7ed68b27008eb3f1b88bf2ae47950b39 Mon Sep 17 00:00:00 2001 From: Nicolas Dandrimont Date: Sun, 26 Feb 2012 17:38:37 +0100 Subject: [PATCH] Add a distribution checking plugin to warn on UNRELEASED packages --- debexpo/plugins/distribution.py | 63 +++++++++++++++++++ .../templates/plugins/distribution/html.mako | 3 + .../templates/plugins/distribution/text.mako | 1 + development.ini | 2 +- 4 files changed, 68 insertions(+), 1 deletion(-) create mode 100644 debexpo/plugins/distribution.py create mode 100644 debexpo/templates/plugins/distribution/html.mako create mode 100644 debexpo/templates/plugins/distribution/text.mako diff --git a/debexpo/plugins/distribution.py b/debexpo/plugins/distribution.py new file mode 100644 index 00000000..569ee632 --- /dev/null +++ b/debexpo/plugins/distribution.py @@ -0,0 +1,63 @@ +# -*- coding: utf-8 -*- +# +# distribution.py — distribution check plugin +# +# This file is part of debexpo - http://debexpo.workaround.org +# +# Copyright © 2012 Nicolas Dandrimont +# +# Permission is hereby granted, free of charge, to any person +# obtaining a copy of this software and associated documentation +# files (the "Software"), to deal in the Software without +# restriction, including without limitation the rights to use, +# copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the +# Software is furnished to do so, subject to the following +# conditions: +# +# The above copyright notice and this permission notice shall be +# included in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +# OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT +# HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +# WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +# OTHER DEALINGS IN THE SOFTWARE. + +""" +Distribution checks. +""" + +__author__ = 'Nicolas Dandrimont' +__copyright__ = ', '.join([ + 'Copyright © 2012 Nicolas Dandrimont', + ]) +__license__ = 'MIT' + +import logging +import os + +from debexpo.lib import constants +from debexpo.plugins import BasePlugin + +class DistributionPlugin(BasePlugin): + + def test_distribution(self): + """ + Checks whether the package is for the UNRELEASED distribution + """ + + data = { + "is-unreleased": False, + } + distribution = self.changes["Distribution"] + + if distribution.lower() == "unreleased": + data["is-unreleased"] = True + self.failed("Package uploaded for the unreleased distribution", data, constants.PLUGIN_SEVERITY_ERROR) + + +plugin = DistributionPlugin diff --git a/debexpo/templates/plugins/distribution/html.mako b/debexpo/templates/plugins/distribution/html.mako new file mode 100644 index 00000000..100af115 --- /dev/null +++ b/debexpo/templates/plugins/distribution/html.mako @@ -0,0 +1,3 @@ +
+${o.outcome} +
diff --git a/debexpo/templates/plugins/distribution/text.mako b/debexpo/templates/plugins/distribution/text.mako new file mode 100644 index 00000000..01eeaa09 --- /dev/null +++ b/debexpo/templates/plugins/distribution/text.mako @@ -0,0 +1 @@ +${o.outcome} diff --git a/development.ini b/development.ini index 9e31f835..b289e4ad 100644 --- a/development.ini +++ b/development.ini @@ -70,7 +70,7 @@ debexpo.debian_specific = true debexpo.plugins.post_upload = getorigtarball notuploader # What qa plugins to run, in this order -debexpo.plugins.qa = lintian native maintaineremail watchfile closedbugs controlfields diffclean buildsystem debianqa +debexpo.plugins.qa = lintian native maintaineremail watchfile closedbugs controlfields diffclean buildsystem debianqa distribution # What plugins to run when the package is uploaded to Debian, in this order debexpo.plugins.post_upload_to_debian = removepackage -- GitLab