commit: 70b2518f12f63071f0192c23826188bd456698e7 Author: Michał Górny <mgorny <AT> gentoo <DOT> org> AuthorDate: Tue Jan 23 21:42:19 2018 +0000 Commit: Michał Górny <mgorny <AT> gentoo <DOT> org> CommitDate: Fri Jan 26 14:50:50 2018 +0000 URL: https://gitweb.gentoo.org/proj/gentoolkit.git/commit/?id=70b2518f
eshowkw: Always group Prefix keywords last Always group all Prefix keywords after other types of keywords. This not only ensures that fbsd sorts first but more importantly stabilizes the LHS output between regular and -P variant -- that is, -P always adds additional keywords at the end. pym/gentoolkit/eshowkw/keywords_header.py | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/pym/gentoolkit/eshowkw/keywords_header.py b/pym/gentoolkit/eshowkw/keywords_header.py index ce3e8d4..6557f60 100644 --- a/pym/gentoolkit/eshowkw/keywords_header.py +++ b/pym/gentoolkit/eshowkw/keywords_header.py @@ -142,12 +142,16 @@ class keywords_header: break # sort by, in order (to match Bugzilla): - # 1. arch, then ~arch - # 2. profile stability - # 3. short keywords, then long (prefix, fbsd) - # 4. keyword name in reverse component order - normal.sort(key=lambda kw: (kw in self.__TESTING_KW_ARCHS, - levels.get(kw, 99), kw.count('-'), list(reversed(kw.split('-'))))) + # 1. non-prefix, then prefix (stable output between -P and not) + # 2. arch, then ~arch + # 3. profile stability + # 4. short keywords, then long (prefix, fbsd) + # 5. keyword name in reverse component order + normal.sort(key=lambda kw: (self.__isPrefix(kw), + kw in self.__TESTING_KW_ARCHS, + levels.get(kw, 99), + kw.count('-'), + list(reversed(kw.split('-'))))) return normal def __readAdditionalFields(self):