diff --git a/debexpo/plugins/distribution.py b/debexpo/plugins/distribution.py new file mode 100644 index 0000000000000000000000000000000000000000..569ee632ba658852d548185a1e2809a3b7860cf8 --- /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 0000000000000000000000000000000000000000..100af115f93887c4210f3f40762c87b1a89cdbfa --- /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 0000000000000000000000000000000000000000..01eeaa0968ff54af521306b5d5c753ede4968d2b --- /dev/null +++ b/debexpo/templates/plugins/distribution/text.mako @@ -0,0 +1 @@ +${o.outcome} diff --git a/development.ini b/development.ini index 9e31f8353877041b8b3558ffa2e825af1e433eb8..b289e4ade0bdd6de0f22294a0aa2ab3fad79610b 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