Legoktm has uploaded a new change for review. ( https://gerrit.wikimedia.org/r/375064 )
Change subject: Move functions related to building extension lists into mw.py ...................................................................... Move functions related to building extension lists into mw.py Also explicitly mention the dependency upon requests in requirements.txt. Change-Id: I11e7ce414d2a76e5e59d3f5b45ae0bab2940f5ca --- A mw.py M requirements.txt M run.py 3 files changed, 60 insertions(+), 35 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/labs/libraryupgrader refs/changes/64/375064/1 diff --git a/mw.py b/mw.py new file mode 100644 index 0000000..1497e98 --- /dev/null +++ b/mw.py @@ -0,0 +1,53 @@ +#!/usr/bin/env python3 +""" +Common functions for MediaWiki stuff things. +Copyright (C) 2017 Kunal Mehta <lego...@member.fsf.org> + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU Affero General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Affero General Public License for more details. + +You should have received a copy of the GNU Affero General Public License +along with this program. If not, see <http://www.gnu.org/licenses/>. +""" + +import prefetch_generator +import requests + + +s = requests.session() + + +@prefetch_generator.background() +def get_extension_list(library): + r = s.get('https://www.mediawiki.org/w/api.php?action=query&list=extdistrepos&formatversion=2&format=json') + for ext in r.json()['query']['extdistrepos']['extensions']: + version = repo_info('mediawiki/extensions/' + ext, library) + if version: + yield {'ext': ext, 'version': version} + + +def repo_info(repo: str, library: str): + phab = get_phab_file(repo, 'composer.json') + if phab: + version = phab.get('require-dev', {}).get(library) + if version: + return version + return None + + +def get_phab_file(gerrit_name, path): + url = 'https://phabricator.wikimedia.org/r/p/{};browse/master/{}?view=raw'.format(gerrit_name, path) + # url = 'https://raw.githubusercontent.com/wikimedia/{}/master/{}'.format(gerrit_name.replace('/', '-'), path) + print('Fetching ' + url) + r = s.get(url) + try: + return r.json() + except: + return None diff --git a/requirements.txt b/requirements.txt index 1952b2e..8cf18f0 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1 +1,2 @@ prefetch_generator +requests diff --git a/run.py b/run.py index 4a2666d..5569fce 100755 --- a/run.py +++ b/run.py @@ -20,13 +20,13 @@ from collections import defaultdict import json import os -import prefetch_generator -import requests import sys import app import docker +import mw +CODESNIFFER = 'mediawiki/mediawiki-codesniffer' CONCURRENT = 10 DOCKER_IMAGE = 'libraryupgrader' VERSIONS = ['same', 'dev-master'] @@ -36,37 +36,6 @@ CONFIG = json.load(f) else: CONFIG = {} - -s = requests.session() - - -@prefetch_generator.background() -def get_extension_list(library): - r = s.get('https://www.mediawiki.org/w/api.php?action=query&list=extdistrepos&formatversion=2&format=json') - for ext in r.json()['query']['extdistrepos']['extensions']: - phab = get_phab_file('mediawiki/extensions/' + ext, 'composer.json') - if phab: - version = phab.get('require-dev', {}).get(library) - if version: - yield {'ext': ext, 'version': version} - - -def get_phab_file(gerrit_name, path): - url = 'https://phabricator.wikimedia.org/r/p/{};browse/master/{}?view=raw'.format(gerrit_name, path) - # url = 'https://raw.githubusercontent.com/wikimedia/{}/master/{}'.format(gerrit_name.replace('/', '-'), path) - print('Fetching ' + url) - r = s.get(url) - try: - return r.json() - except: - return None - - -def has_codesniffer(ext_name): - d = get_phab_file('mediawiki/extensions/' + ext_name, 'composer.json') - if d: - return d.get('require-dev', {}).get('mediawiki/mediawiki-codesniffer', False) - return False def run(ext_name, version, mode): @@ -101,7 +70,7 @@ data = defaultdict(dict) for version in VERSIONS: cleanup = set() - for info in get_extension_list('mediawiki/mediawiki-codesniffer'): + for info in mw.get_extension_list(CODESNIFFER): # Save PHPCS version data[info['ext']]['PHPCS'] = info['version'] run(info['ext'], version=version, mode='test') @@ -140,7 +109,9 @@ version = sys.argv[2] except IndexError: version = 'dev-master' - if not has_codesniffer(sys.argv[1]): + + info = mw.repo_info('mediawiki/extensions/' + sys.argv[1], CODESNIFFER) + if not info: print('Doesnt have codesniffer.') sys.exit(1) run(sys.argv[1], version=version, mode=mode) -- To view, visit https://gerrit.wikimedia.org/r/375064 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I11e7ce414d2a76e5e59d3f5b45ae0bab2940f5ca Gerrit-PatchSet: 1 Gerrit-Project: labs/libraryupgrader Gerrit-Branch: master Gerrit-Owner: Legoktm <lego...@member.fsf.org> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits