Legoktm has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/201246

Change subject: make-release: Don't re-list all bundled extensions for each 
release
......................................................................

make-release: Don't re-list all bundled extensions for each release

Instead, store a base set of extensions from 1.18, and list the changes
that have happened in each release.

Change-Id: I0799da0eea8720470f9b127c2a67c76a32b052f6
---
M make-release/make-release.py
M make-release/make-release.yaml
A make-release/tests/test_make-release.py
3 files changed, 70 insertions(+), 91 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/tools/release 
refs/changes/46/201246/1

diff --git a/make-release/make-release.py b/make-release/make-release.py
index f62d794..fa8fb41 100755
--- a/make-release/make-release.py
+++ b/make-release/make-release.py
@@ -299,8 +299,20 @@
         """
         if extensions is None:
             extensions = []
-        return extensions + self.config.get('bundles', {}).get('mediawiki-' +
-                                                               version.major)
+        if 'bundles' not in self.config:
+            return extensions
+        bundles = self.config['bundles']
+        base = set(bundles['base'])
+        for release in sorted(list(bundles)):
+            if release.startswith('mediawiki-') and release <= 'mediawiki-' + 
version.major:
+                changes = bundles[release]
+                if 'add' in changes:
+                    for repo in changes['add']:
+                        base.add(repo)
+                if 'remove' in changes:
+                    for repo in changes['remove']:
+                        base.remove(repo)
+        return sorted(extensions + list(base))
 
     def main(self):
         " return value should be usable as an exit code"
diff --git a/make-release/make-release.yaml b/make-release/make-release.yaml
index 5c33667..999a9b3 100644
--- a/make-release/make-release.yaml
+++ b/make-release/make-release.yaml
@@ -1,6 +1,6 @@
 # vim: set et ts=4 sw=4: -*- mode: yaml-mode; yaml-indent-offset: 4 -*-
 bundles:
-    mediawiki-1.18: &base
+    base: # 1.18
         - extensions/ConfirmEdit
         - extensions/Gadgets
         - extensions/Nuke
@@ -8,98 +8,34 @@
         - extensions/Renameuser
         - extensions/Vector
         - extensions/WikiEditor
-    mediawiki-1.19: *base
-    mediawiki-1.20: *base
     mediawiki-1.21:
-        - extensions/ConfirmEdit
-        - extensions/Gadgets
-        - extensions/Nuke
-        - extensions/ParserFunctions
-        - extensions/PdfHandler
-        - extensions/Renameuser
-        - extensions/SpamBlacklist
-        - extensions/Vector
-        - extensions/WikiEditor
+        add:
+            - extensions/PdfHandler
+            - extensions/SpamBlacklist
     mediawiki-1.22:
-        - extensions/Cite
-        - extensions/ConfirmEdit
-        - extensions/Gadgets
-        - extensions/ImageMap
-        - extensions/InputBox
-        - extensions/Interwiki
-        - extensions/LocalisationUpdate
-        - extensions/Nuke
-        - extensions/ParserFunctions
-        - extensions/PdfHandler
-        - extensions/Poem
-        - extensions/Renameuser
-        - extensions/SimpleAntiSpam
-        - extensions/SpamBlacklist
-        - extensions/SyntaxHighlight_GeSHi
-        - extensions/TitleBlacklist
-        - extensions/Vector
-        - extensions/WikiEditor
+        add:
+            - extensions/Cite
+            - extensions/ImageMap
+            - extensions/InputBox
+            - extensions/Interwiki
+            - extensions/LocalisationUpdate
+            - extensions/Poem
+            - extensions/SimpleAntiSpam
+            - extensions/SyntaxHighlight_GeSHi
+            - extensions/TitleBlacklist
     mediawiki-1.23:
-        - extensions/Cite
-        - extensions/ConfirmEdit
-        - extensions/Gadgets
-        - extensions/ImageMap
-        - extensions/InputBox
-        - extensions/Interwiki
-        - extensions/LocalisationUpdate
-        - extensions/Nuke
-        - extensions/ParserFunctions
-        - extensions/PdfHandler
-        - extensions/Poem
-        - extensions/Renameuser
-        - extensions/SpamBlacklist
-        - extensions/SyntaxHighlight_GeSHi
-        - extensions/TitleBlacklist
-        - extensions/WikiEditor
+        remove:
+            - extensions/SimpleAntiSpam
+            - extensions/Vector
     mediawiki-1.24:
-        - extensions/Cite
-        - extensions/ConfirmEdit
-        - extensions/Gadgets
-        - extensions/ImageMap
-        - extensions/InputBox
-        - extensions/Interwiki
-        - extensions/LocalisationUpdate
-        - extensions/Nuke
-        - extensions/ParserFunctions
-        - extensions/PdfHandler
-        - extensions/Poem
-        - extensions/Renameuser
-        - extensions/SpamBlacklist
-        - extensions/SyntaxHighlight_GeSHi
-        - extensions/TitleBlacklist
-        - extensions/WikiEditor
-        - skins/CologneBlue
-        - skins/Modern
-        - skins/MonoBook
-        - skins/Vector
-    mediawiki-1.25: &mw125
-        - extensions/Cite
-        - extensions/CiteThisPage
-        - extensions/ConfirmEdit
-        - extensions/Gadgets
-        - extensions/ImageMap
-        - extensions/InputBox
-        - extensions/Interwiki
-        - extensions/LocalisationUpdate
-        - extensions/Nuke
-        - extensions/ParserFunctions
-        - extensions/PdfHandler
-        - extensions/Poem
-        - extensions/Renameuser
-        - extensions/SpamBlacklist
-        - extensions/SyntaxHighlight_GeSHi
-        - extensions/TitleBlacklist
-        - extensions/WikiEditor
-        - skins/CologneBlue
-        - skins/Modern
-        - skins/MonoBook
-        - skins/Vector
-    mediawiki-snapshot: *mw125
+        add:
+            - skins/CologneBlue
+            - skins/Modern
+            - skins/MonoBook
+            - skins/Vector
+    mediawiki-1.25:
+        add:
+            - extensions/CiteThisPage
     smw:
         - AdminLinks
         - ApprovedRevs
diff --git a/make-release/tests/test_make-release.py 
b/make-release/tests/test_make-release.py
new file mode 100644
index 0000000..769325d
--- /dev/null
+++ b/make-release/tests/test_make-release.py
@@ -0,0 +1,31 @@
+#!/usr/bin/env python2
+
+import unittest
+
+makerelease = __import__('make-release')
+
+
+class Struct:
+    def __init__(self, **entries):
+        self.__dict__.update(entries)
+
+
+class MakeReleaseTest(unittest.TestCase):
+    def getMakeRelease(self, options):
+        if 'conffile' not in options:
+            options['conffile'] = '../make-release.yaml'
+        return makerelease.MakeRelease(Struct(**options))
+
+    def test_get_extensions_for_version(self):
+        mr = self.getMakeRelease({'version': '1.25.0'})
+        # Added in 1.25
+        self.assertIn('extensions/CiteThisPage', 
mr.get_extensions_for_version(mr.version))
+
+        mr = self.getMakeRelease({'version': '1.23.0'})
+        # Removed in 1.23
+        self.assertNotIn('extensions/SimpleAntiSpam', 
mr.get_extensions_for_version(mr.version))
+        # But if explicitly specified, still included
+        self.assertIn('extensions/SimpleAntiSpam', 
mr.get_extensions_for_version(
+            mr.version,
+            ['extensions/SimpleAntiSpam'])
+        )

-- 
To view, visit https://gerrit.wikimedia.org/r/201246
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I0799da0eea8720470f9b127c2a67c76a32b052f6
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/tools/release
Gerrit-Branch: master
Gerrit-Owner: Legoktm <[email protected]>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to