commit:     f0b974c4839d3713fdeecf11eda46a2aeee233c8
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Mar 24 09:00:04 2015 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Wed Mar 25 08:00:11 2015 +0000
URL:        https://gitweb.gentoo.org/proj/portage.git/commit/?id=f0b974c4

repoman: add --straight-to-stable (-S) option

Add an option to safely allow committing ebuilds straight to stable.
Before, this required either round trips with multiple commits or
--force option that ignored valid QA concerns and (surprisingly to many
developers) skipped some expensive QA checks.

 bin/repoman | 28 ++++++++++++++++------------
 1 file changed, 16 insertions(+), 12 deletions(-)

diff --git a/bin/repoman b/bin/repoman
index 13c220d..7101a00 100755
--- a/bin/repoman
+++ b/bin/repoman
@@ -191,6 +191,9 @@ def ParseArgs(argv, qahelp):
        parser.add_argument('-f', '--force', dest='force', default=False, 
action='store_true',
                help='Commit with QA violations')
 
+       parser.add_argument('-S', '--straight-to-stable', 
dest='straight_to_stable', default=False,
+               action='store_true', help='Allow committing straight to stable')
+
        parser.add_argument('--vcs', dest='vcs',
                help='Force using specific VCS instead of autodetection')
 
@@ -1908,18 +1911,19 @@ for x in effective_scanlist:
                                (relative_path, len(myaux['DESCRIPTION']), 
max_desc_len))
 
                keywords = myaux["KEYWORDS"].split()
-               stable_keywords = []
-               for keyword in keywords:
-                       if not keyword.startswith("~") and \
-                               not keyword.startswith("-"):
-                               stable_keywords.append(keyword)
-               if stable_keywords:
-                       if ebuild_path in new_ebuilds and catdir != "virtual":
-                               stable_keywords.sort()
-                               stats["KEYWORDS.stable"] += 1
-                               fails["KEYWORDS.stable"].append(
-                                       x + "/" + y + ".ebuild added with 
stable keywords: %s" % \
-                                               " ".join(stable_keywords))
+               if not options.straight_to_stable:
+                       stable_keywords = []
+                       for keyword in keywords:
+                               if not keyword.startswith("~") and \
+                                       not keyword.startswith("-"):
+                                       stable_keywords.append(keyword)
+                       if stable_keywords:
+                               if ebuild_path in new_ebuilds and catdir != 
"virtual":
+                                       stable_keywords.sort()
+                                       stats["KEYWORDS.stable"] += 1
+                                       fails["KEYWORDS.stable"].append(
+                                               relative_path + " added with 
stable keywords: %s" % \
+                                                       " 
".join(stable_keywords))
 
                ebuild_archs = set(kw.lstrip("~") for kw in keywords \
                        if not kw.startswith("-"))

Reply via email to