Hello community, here is the log from the commit of package openSUSE-release-tools for openSUSE:Factory checked in at 2018-09-07 15:40:20 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/openSUSE-release-tools (Old) and /work/SRC/openSUSE:Factory/.openSUSE-release-tools.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "openSUSE-release-tools" Fri Sep 7 15:40:20 2018 rev:126 rq:633513 version:20180905.c5ceab9 Changes: -------- --- /work/SRC/openSUSE:Factory/openSUSE-release-tools/openSUSE-release-tools.changes 2018-09-04 22:58:00.741378180 +0200 +++ /work/SRC/openSUSE:Factory/.openSUSE-release-tools.new/openSUSE-release-tools.changes 2018-09-07 15:40:29.310466357 +0200 @@ -1,0 +2,9 @@ +Wed Sep 05 19:28:45 UTC 2018 - opensuse-releaset...@opensuse.org + +- Update to version 20180905.c5ceab9: + * osclib/cache: provide mechanism to init multiple times. + * Utilize CacheManager for all existing caches. + * osclib/cache_manager: provide general cache manager for all tools. + * osclib/common: provide project name and version constants. + +------------------------------------------------------------------- Old: ---- openSUSE-release-tools-20180901.9e8018f.obscpio New: ---- openSUSE-release-tools-20180905.c5ceab9.obscpio ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ openSUSE-release-tools.spec ++++++ --- /var/tmp/diff_new_pack.tTbNA1/_old 2018-09-07 15:40:29.966465654 +0200 +++ /var/tmp/diff_new_pack.tTbNA1/_new 2018-09-07 15:40:29.966465654 +0200 @@ -20,7 +20,7 @@ %define source_dir openSUSE-release-tools %define announcer_filename factory-package-news Name: openSUSE-release-tools -Version: 20180901.9e8018f +Version: 20180905.c5ceab9 Release: 0 Summary: Tools to aid in staging and release work for openSUSE/SUSE License: GPL-2.0-or-later AND MIT ++++++ _servicedata ++++++ --- /var/tmp/diff_new_pack.tTbNA1/_old 2018-09-07 15:40:30.014465603 +0200 +++ /var/tmp/diff_new_pack.tTbNA1/_new 2018-09-07 15:40:30.014465603 +0200 @@ -1,6 +1,6 @@ <servicedata> <service name="tar_scm"> <param name="url">https://github.com/openSUSE/openSUSE-release-tools.git</param> - <param name="changesrevision">e1ec1aa412450a2179e050d170945aeeb37c072f</param> + <param name="changesrevision">3b8ae3174c16650f23ef8d939dd74a5b5c0b6fca</param> </service> </servicedata> ++++++ openSUSE-release-tools-20180901.9e8018f.obscpio -> openSUSE-release-tools-20180905.c5ceab9.obscpio ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openSUSE-release-tools-20180901.9e8018f/.travis.yml new/openSUSE-release-tools-20180905.c5ceab9/.travis.yml --- old/openSUSE-release-tools-20180901.9e8018f/.travis.yml 2018-09-01 19:32:23.000000000 +0200 +++ new/openSUSE-release-tools-20180905.c5ceab9/.travis.yml 2018-09-05 21:23:21.000000000 +0200 @@ -85,7 +85,7 @@ cache: directories: # obs_clone.py - - ~/.cache/openSUSE-release-tools-clone + - ~/.cache/openSUSE-release-tools/request/clone # distribution jobs `osc build` - .docker-tmp pip: true diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openSUSE-release-tools-20180901.9e8018f/Makefile new/openSUSE-release-tools-20180905.c5ceab9/Makefile --- old/openSUSE-release-tools-20180901.9e8018f/Makefile 2018-09-01 19:32:23.000000000 +0200 +++ new/openSUSE-release-tools-20180905.c5ceab9/Makefile 2018-09-05 21:23:21.000000000 +0200 @@ -18,8 +18,8 @@ for i in osc-*.py osclib; do ln -s $(pkgdatadir)/$$i $(DESTDIR)$(oscplugindir)/$$i; done for i in $(SUBDIRS); do $(MAKE) -C $$i install; done install -m 644 systemd/* $(DESTDIR)$(unitdir) - sed -i "s/OSC_STAGING_VERSION = '.*'/OSC_STAGING_VERSION = '$(VERSION)'/" \ - $(DESTDIR)$(pkgdatadir)/osc-staging.py + sed -i "s/VERSION = '.*'/VERSION = '$(VERSION)'/" \ + $(DESTDIR)$(pkgdatadir)/osclib/common.py for i in $(pkgdata_BINS); do ln -s $(pkgdatadir)/$$i $(DESTDIR)$(bindir)/osrt-$${i%.*}; done install -m 755 script/* $(DESTDIR)$(bindir) ln -s $(pkgdatadir)/metrics/access/aggregate.php $(DESTDIR)$(bindir)/osrt-metrics-access-aggregate diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openSUSE-release-tools-20180901.9e8018f/docs/metrics.md new/openSUSE-release-tools-20180905.c5ceab9/docs/metrics.md --- old/openSUSE-release-tools-20180901.9e8018f/docs/metrics.md 2018-09-01 19:32:23.000000000 +0200 +++ new/openSUSE-release-tools-20180905.c5ceab9/docs/metrics.md 2018-09-05 21:23:21.000000000 +0200 @@ -46,7 +46,7 @@ by saving the dashboard with different defaults. Use the `--debug` option and inspect individual request XML dumps by looking in -`~/.cache/openSUSE-release-tools-metrics` or: +`~/.cache/openSUSE-release-tools/request/metrics` or: ``` osc api '/request/$reqid?withfullhistory=1' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openSUSE-release-tools-20180901.9e8018f/legal-auto.py new/openSUSE-release-tools-20180905.c5ceab9/legal-auto.py --- old/openSUSE-release-tools-20180901.9e8018f/legal-auto.py 2018-09-01 19:32:23.000000000 +0200 +++ new/openSUSE-release-tools-20180905.c5ceab9/legal-auto.py 2018-09-05 21:23:21.000000000 +0200 @@ -26,6 +26,7 @@ import osc.conf import osc.core +from osclib.cache_manager import CacheManager import ReviewBot from osclib.comments import CommentAPI @@ -189,8 +190,7 @@ self.delete_from_db(req.reqid) def _pkl_path(self): - CACHE_DIR = os.path.expanduser('~/.cache/osc-plugin-factory') - return os.path.join(CACHE_DIR, 'legaldb') + return CacheManager.directory('legal-auto') def update_project(self, project): try: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openSUSE-release-tools-20180901.9e8018f/metrics/access/README.md new/openSUSE-release-tools-20180905.c5ceab9/metrics/access/README.md --- old/openSUSE-release-tools-20180901.9e8018f/metrics/access/README.md 2018-09-01 19:32:23.000000000 +0200 +++ new/openSUSE-release-tools-20180905.c5ceab9/metrics/access/README.md 2018-09-05 21:23:21.000000000 +0200 @@ -22,7 +22,7 @@ - `aggregate.php`: invoke to manage entire process including calling (`ingest.php`) - `ingest.php`: used to parse a single log file / stream and dump summary JSON to stdout -See `~/.cache/openSUSE-release-tools-access` for cache data separated by IP protocol. A single JSON file corresponds to a single access log file. +See `~/.cache/openSUSE-release-tools/metrics-access` for cache data separated by IP protocol. A single JSON file corresponds to a single access log file. ## Future product versions diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openSUSE-release-tools-20180901.9e8018f/metrics/access/aggregate.php new/openSUSE-release-tools-20180905.c5ceab9/metrics/access/aggregate.php --- old/openSUSE-release-tools-20180901.9e8018f/metrics/access/aggregate.php 2018-09-01 19:32:23.000000000 +0200 +++ new/openSUSE-release-tools-20180905.c5ceab9/metrics/access/aggregate.php 2018-09-05 21:23:21.000000000 +0200 @@ -4,7 +4,7 @@ use InfluxDB\Point; use InfluxDB\Database; -$CACHE_DIR = $_SERVER['HOME'] . '/.cache/openSUSE-release-tools-access'; +$CACHE_DIR = $_SERVER['HOME'] . '/.cache/openSUSE-release-tools/metrics-access'; const PROTOCOLS = ['ipv4', 'ipv6']; const PONTIFEX = 'http://pontifex.infra.opensuse.org/logs'; const LANGLEY = 'http://langley.suse.de/pub/pontifex%s-opensuse.suse.de'; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openSUSE-release-tools-20180901.9e8018f/metrics.py new/openSUSE-release-tools-20180905.c5ceab9/metrics.py --- old/openSUSE-release-tools-20180901.9e8018f/metrics.py 2018-09-01 19:32:23.000000000 +0200 +++ new/openSUSE-release-tools-20180905.c5ceab9/metrics.py 2018-09-05 21:23:21.000000000 +0200 @@ -544,14 +544,13 @@ # Use separate cache since it is persistent. _, package = project_pseudometa_package(apiurl, args.project) - Cache.CACHE_DIR = Cache.CACHE_DIR + '-metrics' if args.wipe_cache: Cache.delete_all() if args.heavy_cache: Cache.PATTERNS['/search/request'] = sys.maxint Cache.PATTERNS['/source/[^/]+/{}/_history'.format(package)] = sys.maxint Cache.PATTERNS['/source/[^/]+/{}/[^/]+\?rev=.*'.format(package)] = sys.maxint - Cache.init() + Cache.init('metrics') Config(apiurl, args.project) api = StagingAPI(apiurl, args.project) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openSUSE-release-tools-20180901.9e8018f/obs_clone.py new/openSUSE-release-tools-20180905.c5ceab9/obs_clone.py --- old/openSUSE-release-tools-20180901.9e8018f/obs_clone.py 2018-09-01 19:32:23.000000000 +0200 +++ new/openSUSE-release-tools-20180905.c5ceab9/obs_clone.py 2018-09-05 21:23:21.000000000 +0200 @@ -212,12 +212,11 @@ if args.cache: from osclib.cache import Cache - Cache.CACHE_DIR = Cache.CACHE_DIR + '-clone' Cache.PATTERNS = {} # Prevent caching source information from local clone. Cache.PATTERNS['/source/[^/]+/[^/]+/[^/]+?rev'] = 0 Cache.PATTERNS['.*'] = Cache.TTL_LONG * 2 - Cache.init() + Cache.init('clone') osc.conf.config['debug'] = args.debug project_fence.project = args.project diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openSUSE-release-tools-20180901.9e8018f/osc-staging.py new/openSUSE-release-tools-20180905.c5ceab9/osc-staging.py --- old/openSUSE-release-tools-20180901.9e8018f/osc-staging.py 2018-09-01 19:32:23.000000000 +0200 +++ new/openSUSE-release-tools-20180905.c5ceab9/osc-staging.py 2018-09-05 21:23:21.000000000 +0200 @@ -39,15 +39,12 @@ from osclib.supersede_command import SupersedeCommand from osclib.prio_command import PrioCommand -OSC_STAGING_VERSION = '0.0.1' - def _print_version(self): - """ Print version information about this extension. """ - print(OSC_STAGING_VERSION) + from osclib.common import VERSION + print(VERSION) quit(0) - def _full_project_name(self, project): """Deduce the full project name.""" if project.startswith(('openSUSE', 'SUSE')): @@ -392,6 +389,9 @@ else: opts.project = 'Factory' + # Cache the remote config fetch. + Cache.init() + # Init the OBS access and configuration opts.project = self._full_project_name(opts.project) opts.apiurl = self.get_api_url() diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openSUSE-release-tools-20180901.9e8018f/osclib/cache.py new/openSUSE-release-tools-20180905.c5ceab9/osclib/cache.py --- old/openSUSE-release-tools-20180901.9e8018f/osclib/cache.py 2018-09-01 19:32:23.000000000 +0200 +++ new/openSUSE-release-tools-20180905.c5ceab9/osclib/cache.py 2018-09-05 21:23:21.000000000 +0200 @@ -12,6 +12,7 @@ from StringIO import StringIO from osc import conf from osc.core import urlopen +from osclib.cache_manager import CacheManager from time import time try: @@ -64,7 +65,7 @@ cache, but obviously not for other contributors. """ - CACHE_DIR = os.path.expanduser('~/.cache/openSUSE-release-tools') + CACHE_DIR = None TTL_LONG = 12 * 60 * 60 TTL_MEDIUM = 30 * 60 TTL_SHORT = 5 * 60 @@ -101,7 +102,14 @@ last_updated = {} @staticmethod - def init(): + def init(directory='main'): + if Cache.CACHE_DIR: + # Stick with the first initialization to allow for StagingAPI to + # ensure always enabled, but allow parent to change directory. + return + + Cache.CACHE_DIR = CacheManager.directory('request', directory) + Cache.patterns = [] for pattern in Cache.PATTERNS: Cache.patterns.append(re.compile(pattern)) @@ -249,6 +257,9 @@ @staticmethod def path(url, project, include_file=False, makedirs=False): + if not Cache.CACHE_DIR: + raise Exception('Cache.init() must be called first') + parts = [Cache.CACHE_DIR] o = urlparse.urlsplit(url) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openSUSE-release-tools-20180901.9e8018f/osclib/cache_manager.py new/openSUSE-release-tools-20180905.c5ceab9/osclib/cache_manager.py --- old/openSUSE-release-tools-20180901.9e8018f/osclib/cache_manager.py 1970-01-01 01:00:00.000000000 +0100 +++ new/openSUSE-release-tools-20180905.c5ceab9/osclib/cache_manager.py 2018-09-05 21:23:21.000000000 +0200 @@ -0,0 +1,133 @@ +from __future__ import print_function +import os +from osclib.common import NAME +import shutil +import sys +from time import time +from xdg.BaseDirectory import save_cache_path + +# Provide general cache management in the form of directory location and pruned +# contents. Of the variety of caches utilized there will be content that will +# cease to be useful, but never get cleaned up since it will never be accessed. +# This manager ensures that the entire cache is pruned periodically to remove +# files that have not been accessed recently and avoid endless growth. +class CacheManager(object): + DIRECTORY = save_cache_path(NAME) + PRUNE_FREQUENCY = 60 * 60 * 24 * 7 + PRUNE_TTL = 60 * 60 * 24 * 30 + + pruned = False + + @staticmethod + def directory(*args): + CacheManager.prune_all() + return os.path.join(CacheManager.DIRECTORY, *args) + + @staticmethod + def directory_test(): + if not CacheManager.DIRECTORY.endswith('.test'): + CacheManager.DIRECTORY = os.path.join(CacheManager.DIRECTORY, '.test') + + @staticmethod + def prune_all(): + if CacheManager.pruned: + return + CacheManager.pruned = True + + prune_lock = os.path.join(CacheManager.DIRECTORY, '.prune') + if not os.path.exists(prune_lock): + CacheManager.migrate() + elif time() - os.stat(prune_lock).st_mtime < CacheManager.PRUNE_FREQUENCY: + return + + with open(prune_lock, 'a'): + os.utime(prune_lock, None) + + print('> pruning cache', file=sys.stderr) + + accessed_prune = time() - CacheManager.PRUNE_TTL + files_pruned = 0 + bytes_pruned = 0 + for directory, subdirectories, files in os.walk(CacheManager.DIRECTORY): + files_pruned_directory = 0 + for filename in files: + path = os.path.join(directory, filename) + stat = os.stat(path) + accessed = stat.st_atime + if accessed < accessed_prune: + files_pruned_directory += 1 + files_pruned += 1 + bytes_pruned += stat.st_size + os.remove(path) + + if len(subdirectories) == 0 and len(files) - files_pruned_directory == 0: + os.rmdir(directory) + + print('> pruned {:,} files comprised of {:,} bytes'.format( + files_pruned, bytes_pruned), file=sys.stderr) + + # Migrate the variety of prior cache locations within a single parent. + @staticmethod + def migrate(first=True): + # If a old path exists then perform migration. + cache_root = save_cache_path('') + for source, destination in CacheManager.migrate_paths(): + if not os.path.exists(source): + continue + + if first: + print('> migrating caches', file=sys.stderr) + + # Move existing dir out of the way in order to nest. + cache_moved = CacheManager.DIRECTORY + '-main' + if not os.path.exists(cache_moved): + os.rename(CacheManager.DIRECTORY, cache_moved) + + # Detected need to migrate, but may have already passed -main. + CacheManager.migrate(False) + return + + # If either incompatible format, explicit removal, or newer source + # was already migrated remove the cache entirely. + if destination and os.path.exists(destination): + # Set to None to make clear in message. + destination = None + + print( + '> - {} -> {}'.format( + os.path.relpath(source, cache_root), + os.path.relpath(destination, cache_root) if destination else None), + file=sys.stderr) + + if not destination: + shutil.rmtree(source) + continue + + # Ensure parent directory exists and then move within. + destination_parent = os.path.dirname(destination) + if not os.path.exists(destination_parent): + os.makedirs(destination_parent) + os.rename(source, destination) + + @staticmethod + def migrate_paths(): + path_map = { + '{}-access': 'metrics-access', + '{}-clone': 'request/clone', + '{}-metrics': 'request/metrics', + '{}-main': 'request/main', + '{}-test': None, + 'opensuse-packagelists': 'pkglistgen', + 'opensuse-repo-checker': 'repository-meta', + 'opensuse-repo-checker-http': None, + 'osc-plugin-factory': None, + } + bases = [NAME, 'osc-plugin-factory'] + cache_root = save_cache_path('') + for base in bases: + for source, destination in path_map.items(): + source = os.path.join(cache_root, source.format(base)) + if destination: + destination = os.path.join(CacheManager.DIRECTORY, destination) + + yield source, destination diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openSUSE-release-tools-20180901.9e8018f/osclib/common.py new/openSUSE-release-tools-20180905.c5ceab9/osclib/common.py --- old/openSUSE-release-tools-20180901.9e8018f/osclib/common.py 1970-01-01 01:00:00.000000000 +0100 +++ new/openSUSE-release-tools-20180905.c5ceab9/osclib/common.py 2018-09-05 21:23:21.000000000 +0200 @@ -0,0 +1,2 @@ +NAME = 'openSUSE-release-tools' +VERSION = '0.0.0-dev' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openSUSE-release-tools-20180901.9e8018f/osclib/git.py new/openSUSE-release-tools-20180905.c5ceab9/osclib/git.py --- old/openSUSE-release-tools-20180901.9e8018f/osclib/git.py 2018-09-01 19:32:23.000000000 +0200 +++ new/openSUSE-release-tools-20180905.c5ceab9/osclib/git.py 2018-09-05 21:23:21.000000000 +0200 @@ -1,9 +1,10 @@ import os from os import path +from osclib.cache_manager import CacheManager import subprocess -from xdg.BaseDirectory import save_cache_path -CACHE_DIR = save_cache_path('openSUSE-release-tools', 'git') +# Git will not be happy if pruned, but not used enough to be worth excluding. +CACHE_DIR = CacheManager.directory('git') def clone(url, directory): return_code = subprocess.call(['git', 'clone', url, directory]) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openSUSE-release-tools-20180901.9e8018f/osclib/memoize.py new/openSUSE-release-tools-20180905.c5ceab9/osclib/memoize.py --- old/openSUSE-release-tools-20180901.9e8018f/osclib/memoize.py 2018-09-01 19:32:23.000000000 +0200 +++ new/openSUSE-release-tools-20180905.c5ceab9/osclib/memoize.py 2018-09-05 21:23:21.000000000 +0200 @@ -2,26 +2,15 @@ import fcntl from functools import wraps import os +from osclib.cache_manager import CacheManager import shelve try: import cPickle as pickle except: import pickle - -try: - from xdg.BaseDirectory import save_cache_path -except ImportError: - from xdg.BaseDirectory import xdg_cache_home - - def save_cache_path(*name): - path = os.path.join(xdg_cache_home, *name) - if not os.path.isdir(path): - os.makedirs(path) - return path - # Where the cache files are stored -CACHEDIR = save_cache_path('opensuse-repo-checker') +CACHEDIR = CacheManager.directory('memoize') def memoize(ttl=None, session=False, add_invalidate=False): @@ -175,10 +164,7 @@ _close_cache(cache) return value - cache_dir = os.path.expanduser(CACHEDIR) - if not os.path.exists(cache_dir): - os.makedirs(cache_dir) - cache_name = os.path.join(cache_dir, fn.__name__) + cache_name = os.path.join(CACHEDIR, fn.__name__) return _fn ttl = ttl if ttl else TIMEOUT diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openSUSE-release-tools-20180901.9e8018f/pkglistgen.py new/openSUSE-release-tools-20180905.c5ceab9/pkglistgen.py --- old/openSUSE-release-tools-20180901.9e8018f/pkglistgen.py 2018-09-01 19:32:23.000000000 +0200 +++ new/openSUSE-release-tools-20180905.c5ceab9/pkglistgen.py 2018-09-05 21:23:21.000000000 +0200 @@ -19,12 +19,12 @@ from osc.core import show_results_meta from osc.core import undelete_package from osc import conf +from osclib.cache_manager import CacheManager from osclib.conf import Config, str2bool from osclib.core import repository_path_expand from osclib.stagingapi import StagingAPI from osclib.util import project_list_family from osclib.util import project_list_family_prior -from xdg.BaseDirectory import save_cache_path import glob import hashlib import io @@ -47,7 +47,7 @@ import ToolBase # share header cache with repochecker -from osclib.memoize import CACHEDIR +CACHEDIR = CacheManager.directory('repository-meta') logger = logging.getLogger() @@ -1235,7 +1235,7 @@ # Cache dir specific to hostname and project. host = urlparse.urlparse(api.apiurl).hostname - cache_dir = save_cache_path('opensuse-packagelists', host, opts.project) + cache_dir = CacheManager.directory('pkglistgen', host, opts.project) if not opts.no_checkout: if os.path.exists(cache_dir): @@ -1298,7 +1298,7 @@ if drop_list: # Ensure solv files from all releases in product family are updated. print('-> solv_cache_update') - cache_dir_solv = save_cache_path('opensuse-packagelists', 'solv') + cache_dir_solv = CacheManager.directory('pkglistgen', 'solv') family_last = target_config.get('pkglistgen-product-family-last') family_include = target_config.get('pkglistgen-product-family-include') solv_prior = self.solv_cache_update( diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openSUSE-release-tools-20180901.9e8018f/rebuildpacs.pl new/openSUSE-release-tools-20180905.c5ceab9/rebuildpacs.pl --- old/openSUSE-release-tools-20180901.9e8018f/rebuildpacs.pl 2018-09-01 19:32:23.000000000 +0200 +++ new/openSUSE-release-tools-20180905.c5ceab9/rebuildpacs.pl 2018-09-05 21:23:21.000000000 +0200 @@ -175,7 +175,8 @@ my $repo = shift; my $arch = shift; - my $repodir = ($ENV{XDG_CACHE_HOME}||$ENV{HOME}."/.cache")."/opensuse-repo-checker/repo-$project-$repo-$arch"; + # Old and new in single directory, but never deployed together. + my $repodir = ($ENV{XDG_CACHE_HOME}||$ENV{HOME}."/.cache")."/openSUSE-release-tools/repository-meta/repo-$project-$repo-$arch"; mkdir($repodir); system( diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openSUSE-release-tools-20180901.9e8018f/repo_checker.py new/openSUSE-release-tools-20180905.c5ceab9/repo_checker.py --- old/openSUSE-release-tools-20180901.9e8018f/repo_checker.py 2018-09-01 19:32:23.000000000 +0200 +++ new/openSUSE-release-tools-20180905.c5ceab9/repo_checker.py 2018-09-05 21:23:21.000000000 +0200 @@ -14,6 +14,7 @@ import sys import tempfile +from osclib.cache_manager import CacheManager from osclib.conf import Config from osclib.conf import str2bool from osclib.core import BINARY_REGEX @@ -31,12 +32,12 @@ from osclib.core import repositories_published from osclib.core import target_archs from osclib.cycle import CycleDetector -from osclib.memoize import CACHEDIR from osclib.memoize import memoize from osclib.util import sha1_short import ReviewBot +CACHEDIR = CacheManager.directory('repository-meta') SCRIPT_PATH = os.path.dirname(os.path.realpath(__file__)) CheckResult = namedtuple('CheckResult', ('success', 'comment')) INSTALL_REGEX = r"^(?:can't install (.*?)|found conflict of (.*?) with (.*?)):$" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openSUSE-release-tools-20180901.9e8018f/tests/obs.py new/openSUSE-release-tools-20180905.c5ceab9/tests/obs.py --- old/openSUSE-release-tools-20180901.9e8018f/tests/obs.py 2018-09-01 19:32:23.000000000 +0200 +++ new/openSUSE-release-tools-20180905.c5ceab9/tests/obs.py 2018-09-05 21:23:21.000000000 +0200 @@ -13,6 +13,7 @@ import httpretty import osc from osclib.cache import Cache +from osclib.cache_manager import CacheManager APIURL = 'http://localhost' @@ -114,9 +115,8 @@ """Instance constructor.""" self.fixtures = fixtures - if not hasattr(Cache, '_CACHE_DIR'): - Cache._CACHE_DIR = True - Cache.CACHE_DIR += '-test' + CacheManager.directory_test() + Cache.init() Cache.delete_all() httpretty.enable() ++++++ openSUSE-release-tools.obsinfo ++++++ --- /var/tmp/diff_new_pack.tTbNA1/_old 2018-09-07 15:40:30.670464900 +0200 +++ /var/tmp/diff_new_pack.tTbNA1/_new 2018-09-07 15:40:30.670464900 +0200 @@ -1,5 +1,5 @@ name: openSUSE-release-tools -version: 20180901.9e8018f -mtime: 1535823143 -commit: 9e8018fe24a5251c66014f5d786ee5c41ea43028 +version: 20180905.c5ceab9 +mtime: 1536175401 +commit: c5ceab9ee153985c620fb8b409048ac06d60813d