MarkAHershberger has uploaded a new change for review.

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

Change subject: Specify extensions in the yaml file
......................................................................

Specify extensions in the yaml file

* Moved get_extensions_version to a method in MakeRelease
* Use MwVersion instead of strings
* Map major version number to a list of extensions in to include

Change-Id: Ic96c1f834d44b601f3bcbd22eeac50728cd27379
---
M make-release/make-release.py
M make-release/make-release.yaml
2 files changed, 149 insertions(+), 124 deletions(-)


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

diff --git a/make-release/make-release.py b/make-release/make-release.py
index ca3bddd..82e2161 100755
--- a/make-release/make-release.py
+++ b/make-release/make-release.py
@@ -20,68 +20,6 @@
 import yaml
 
 
-def get_extensions_for_version(version, extensions=None):
-    """
-    Get the list of extensions to bundle for the given
-    MediaWiki core version
-
-    :param version: A string like "1.21"
-    :param extensions: Extensions that are already being included
-    :type extensions: list
-    :return: List of extensions to include
-    """
-    if extensions is None:
-        extensions = []
-
-    core_extensions = [
-        'ConfirmEdit',
-        'Gadgets',
-        'Nuke',
-        'ParserFunctions',
-        'PdfHandler',
-        'Renameuser',
-        'SpamBlacklist',
-        'Vector',
-        'WikiEditor',
-    ]
-    new_extensions = [
-        'Cite',
-        'ImageMap',
-        'Interwiki',
-        'TitleBlacklist',
-        'SpamBlacklist',
-        'Poem',
-        'InputBox',
-        'LocalisationUpdate',
-        'SyntaxHighlight_GeSHi',
-        'SimpleAntiSpam',
-    ]
-    old_core_extensions = [
-        'ConfirmEdit',
-        'Gadgets',
-        'Nuke',
-        'ParserFunctions',
-        'Renameuser',
-        'Vector',
-        'WikiEditor',
-    ]
-
-    # Export extensions for inclusion
-    if version > '1.21':
-        extensions += core_extensions + new_extensions
-    elif version > '1.20':
-        extensions += core_extensions
-    elif version > '1.17':
-        extensions += old_core_extensions
-
-    if version > '1.22':
-        extensions.remove('Vector')
-        extensions.remove('SimpleAntiSpam')
-
-    # Return unique elements (order not preserved)
-    return list(set(extensions))
-
-
 def get_tag_from_version(version):
     """
     Get the tag to checkout from git
@@ -340,13 +278,25 @@
         with open(self.options.conffile) as f:
             self.config = yaml.load(f)
 
+    def get_extensions_for_version(self, version, extensions=None):
+        """
+        Get the list of extensions to bundle for the given
+        MediaWiki core version
+
+        :param version: A string like "1.21"
+        :param extensions: Extensions that are already being included
+        :type extensions: list
+        :return: List of extensions to include
+        """
+        return self.config.get('bundles', {}).get('mediawiki-' + version.major)
+
     def main(self):
         " return value should be usable as an exit code"
 
         extensions = []
         bundles = self.config.get('bundles', {})
 
-        logging.info("Doing release for %s", self.version)
+        logging.info("Doing release for %s", self.version.raw)
 
         if self.version.branch is None:
             logging.debug("No branch, assuming '%s'. Override with --branch.", 
options.branch)
@@ -372,7 +322,7 @@
             # Given the previous version on the command line
             self.makeRelease(
                 extensions=extensions,
-                version=options.version,
+                version=self.version,
                 dir=self.version.major)
             return 0
 
@@ -387,7 +337,7 @@
         if noPrevious or options.no_previous:
             self.makeRelease(
                 extensions=extensions,
-                version=options.version,
+                version=self.version,
                 dir=self.version.major)
         else:
             if not self.ask("Was %s the previous release?" %
@@ -397,7 +347,7 @@
 
             self.makeRelease(
                 extensions=extensions,
-                version=options.version,
+                version=self.version,
                 dir=options.buildroot)
         return 0
 
@@ -571,7 +521,7 @@
         if not os.path.exists(dir):
             os.mkdir(dir)
 
-        package = 'mediawiki-' + version
+        package = 'mediawiki-' + version.raw
 
         # Export the target
         self.export(tag, package, buildDir)
@@ -581,7 +531,7 @@
             self.patchExport(patch, package)
 
         extExclude = []
-        for ext in get_extensions_for_version(version, extensions):
+        for ext in self.get_extensions_for_version(version, extensions):
             self.exportExtension(branch, ext, package)
             extExclude.append("--exclude")
             extExclude.append("extensions/" + ext)
@@ -590,7 +540,7 @@
         outFiles = []
         outFiles.append(
             self.makeTarFile(
-                package='mediawiki-core-' + version,
+                package='mediawiki-core-' + version.raw,
                 targetDir=package,
                 dir=buildDir,
                 argAdd=extExclude)
@@ -609,7 +559,7 @@
             self.export(get_tag_from_version(prevVersion),
                         prevDir, buildDir)
 
-            for ext in get_extensions_for_version(prevVersion, extensions):
+            for ext in self.get_extensions_for_version(MwVersion(prevVersion), 
extensions):
                 self.exportExtension(branch, ext, prevDir)
 
             self.makePatch(
@@ -617,7 +567,7 @@
             outFiles.append(package + '.patch.gz')
             logging.debug('%s.patch.gz written', package)
             if os.path.exists(package + '/languages/messages'):
-                i18nPatch = 'mediawiki-i18n-' + version + '.patch.gz'
+                i18nPatch = 'mediawiki-i18n-' + version.raw + '.patch.gz'
                 if (self.makePatch(
                         buildDir, i18nPatch, prevDir, package, 'i18n')):
                     outFiles.append(i18nPatch)
@@ -644,7 +594,7 @@
         # Generate upload tarball
         tar = self.options.tar_command
         args = [tar, '-C', buildDir,
-                '-cf', uploadDir + '/upload-' + version + '.tar']
+                '-cf', uploadDir + '/upload-' + version.raw + '.tar']
         args.extend(uploadFiles)
         proc = subprocess.Popen(args)
         if proc.wait() != 0:
diff --git a/make-release/make-release.yaml b/make-release/make-release.yaml
index 0bceec3..fd48c77 100644
--- a/make-release/make-release.yaml
+++ b/make-release/make-release.yaml
@@ -1,56 +1,131 @@
 # vim: set et ts=4 sw=4: -*- mode: yaml-mode; yaml-indent-offset: 4 -*-
 bundles:
-  smw:
-    - AdminLinks
-    - ApprovedRevs
-    - Arrays
-    - DataTransfer,
-    - ExternalData
-    - HeaderTabs
-    - Maps
-    - PageSchemas
-    - ReplaceText
-    - SemanticCompoundQueries
-    - SemanticDrilldown,
-    - SemanticForms,
-    - SemanticFormsInputs,
-    - SemanticImageInput
-    - SemanticInternalObjects
-    - SemanticMaps
-    - SemanticMediaWiki
-    - SemanticResultFormats
-    - SemanticTasks
-    - SemanticWatchlist
-    - Validator
-    - Widgets
+    mediawiki-1.18: &base
+        - ConfirmEdit
+        - Gadgets
+        - Nuke
+        - ParserFunctions
+        - Renameuser
+        - Vector
+        - WikiEditor
+    mediawiki-1.19: *base
+    mediawiki-1.20: *base
+    mediawiki-1.21:
+        - ConfirmEdit
+        - Gadgets
+        - Nuke
+        - ParserFunctions
+        - PdfHandler
+        - Renameuser
+        - SpamBlacklist
+        - Vector
+        - WikiEditor
+    mediawiki-1.22:
+        - Cite
+        - ConfirmEdit
+        - Gadgets
+        - ImageMap
+        - InputBox
+        - Interwiki
+        - LocalisationUpdate
+        - Nuke
+        - ParserFunctions
+        - PdfHandler
+        - Poem
+        - Renameuser
+        - SimpleAntiSpam
+        - SpamBlacklist
+        - SyntaxHighlight_GeSHi
+        - TitleBlacklist
+        - Vector
+        - WikiEditor
+    mediawiki-1.23: &mw123
+        - Cite
+        - ConfirmEdit
+        - Gadgets
+        - ImageMap
+        - InputBox
+        - Interwiki
+        - LocalisationUpdate
+        - Nuke
+        - ParserFunctions
+        - PdfHandler
+        - Poem
+        - Renameuser
+        - SpamBlacklist
+        - SyntaxHighlight_GeSHi
+        - TitleBlacklist
+        - WikiEditor
+    mediawiki-1.24: *mw123
+    mediawiki-1.25:
+        - Cite
+        - CiteThisPage
+        - ConfirmEdit
+        - Gadgets
+        - ImageMap
+        - InputBox
+        - Interwiki
+        - LocalisationUpdate
+        - Nuke
+        - ParserFunctions
+        - PdfHandler
+        - Poem
+        - Renameuser
+        - SpamBlacklist
+        - SyntaxHighlight_GeSHi
+        - TitleBlacklist
+        - WikiEditor
+    smw:
+        - AdminLinks
+        - ApprovedRevs
+        - Arrays
+        - DataTransfer,
+        - ExternalData
+        - HeaderTabs
+        - Maps
+        - PageSchemas
+        - ReplaceText
+        - SemanticCompoundQueries
+        - SemanticDrilldown,
+        - SemanticForms,
+        - SemanticFormsInputs,
+        - SemanticImageInput
+        - SemanticInternalObjects
+        - SemanticMaps
+        - SemanticMediaWiki
+        - SemanticResultFormats
+        - SemanticTasks
+        - SemanticWatchlist
+        - Validator
+        - Widgets
 diff:
-  ignore:
-    - "*~"
-    - ".js*"
-    - ".git*"
-    - testsuite
-    - tests
-    - "*.xcf"
-    - "#*#"
-    - ".#*"
-    - .travis.yml
-    - messages
-    - "*.png"
-    - "*.jpg"
-    - "*.xcf"
-    - "*.gif"
-    - "*.svg"
-    - "*.tiff"
-    - "*.zip"
-    - "*.xmp"
+    ignore:
+        - "*~"
+        - ".js*"
+        - ".git*"
+        - testsuite
+        - tests
+        - "*.xcf"
+        - "#*#"
+        - ".#*"
+        - .travis.yml
+        - messages
+        - "*.png"
+        - "*.jpg"
+        - "*.xcf"
+        - "*.gif"
+        - "*.svg"
+        - "*.tiff"
+        - "*.zip"
+        - "*.xmp"
 tar:
-  ignore:
-    - "*~"
-    - ".js*"
-    - ".git*"
-    - testsuite
-    - tests
-    - "*.xcf"
-    - "#*#"
-    - ".#*"
-    - .travis.yml
+    ignore:
+        - "*~"
+        - ".js*"
+        - ".git*"
+        - testsuite
+        - tests
+        - "*.xcf"
+        - "#*#"
+        - ".#*"
+        - .travis.yml

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

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

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

Reply via email to