Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/cygwin-apps/calm.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJon Turney <jon.turney@dronecode.org.uk>2023-04-27 22:11:52 +0300
committerJon Turney <jon.turney@dronecode.org.uk>2023-05-02 17:17:07 +0300
commit5fc54135fc49a4dd7718bfb76ea9733b0d1cee31 (patch)
treed5a9e2f4438d5e2bc1b48dfd1c7a38e3a4ddd2b2
parentdac66d35228054ed93df79c8e97d17620eb3b355 (diff)
Add a ruby rebuilds report
Generalize the perl rebuild report logic to work for any version provide:
-rw-r--r--calm/reports.py65
-rw-r--r--test/testdata/process_arch/htdocs.expected2
2 files changed, 35 insertions, 32 deletions
diff --git a/calm/reports.py b/calm/reports.py
index 20a167c..1773840 100644
--- a/calm/reports.py
+++ b/calm/reports.py
@@ -188,49 +188,51 @@ def deprecated(args, packages, reportsdir):
template('Deprecated shared library packages', body.getvalue(), f)
-# produce a report of packages which need rebuilding for latest perl major version
+# produce a report of packages which need rebuilding for the latest major
+# version version provides
#
-def perlrebuild(args, packages, reportsdir):
+def provides_rebuild(args, packages, reportfile, provide_package):
pr_list = []
arch = 'x86_64'
# XXX: look into how we can change this, after x86 is dropped
- perl_package = packages[arch].get('perl_base', None)
- perl_provide = None
+ pp_package = packages[arch].get(provide_package, None)
+ pp_provide = None
- if perl_package:
- perl_bv = perl_package.best_version
- perl_provide = perl_package.version_hints[perl_bv]['provides']
+ if pp_package:
+ pp_bv = pp_package.best_version
+ pp_provide = pp_package.version_hints[pp_bv]['provides']
+ pp_provide_base = re.sub(r'\d+$', '', pp_provide)
- for p in packages[arch]:
- po = packages[arch][p]
- bv = po.best_version
+ for p in packages[arch]:
+ po = packages[arch][p]
+ bv = po.best_version
- depends = packages[arch][p].version_hints[bv]['depends'].split(', ')
- depends = [re.sub(r'(.*) +\(.*\)', r'\1', r) for r in depends]
+ depends = packages[arch][p].version_hints[bv]['depends'].split(', ')
+ depends = [re.sub(r'(.*) +\(.*\)', r'\1', r) for r in depends]
- for d in depends:
- if not re.match(r'perl\d+_\d+', d):
- continue
+ for d in depends:
+ if not d.startswith(pp_provide_base):
+ continue
- if d == perl_provide:
- continue
+ if d == pp_provide:
+ continue
- # requires an old perl provide
- pr = types.SimpleNamespace()
- pr.pn = p
- pr.po = po
- pr.spn = po.srcpackage(bv)
- pr.spo = packages[arch][pr.spn]
- pr.depends = d
- pr.bv = bv
+ # requires an old provide
+ pr = types.SimpleNamespace()
+ pr.pn = p
+ pr.po = po
+ pr.spn = po.srcpackage(bv)
+ pr.spo = packages[arch][pr.spn]
+ pr.depends = d
+ pr.bv = bv
- pr_list.append(pr)
- break
+ pr_list.append(pr)
+ break
body = io.StringIO()
- print(' <p>Packages whose latest version depends on a perl version provides: other than %s.</p>' % perl_provide, file=body)
+ print(' <p>Packages whose latest version depends on a version provides: other than %s.</p>' % pp_provide, file=body)
print('<table class="grid">', file=body)
print('<tr><th>package</th><th>srcpackage</th><th>version</th><th>depends</th></tr>', file=body)
@@ -241,8 +243,7 @@ def perlrebuild(args, packages, reportsdir):
print('</table>', file=body)
- r = os.path.join(reportsdir, 'perl_rebuilds.html')
- with utils.open_amifc(r) as f:
+ with utils.open_amifc(reportfile) as f:
template('Packages needing rebuilds for latest perl', body.getvalue(), f)
@@ -256,4 +257,6 @@ def do_reports(args, packages):
unmaintained(args, packages, reportsdir)
deprecated(args, packages, reportsdir)
- perlrebuild(args, packages, reportsdir)
+
+ provides_rebuild(args, packages, os.path.join(reportsdir, 'perl_rebuilds.html'), 'perl_base')
+ provides_rebuild(args, packages, os.path.join(reportsdir, 'ruby_rebuilds.html'), 'ruby')
diff --git a/test/testdata/process_arch/htdocs.expected b/test/testdata/process_arch/htdocs.expected
index 46d9d7e..55585d6 100644
--- a/test/testdata/process_arch/htdocs.expected
+++ b/test/testdata/process_arch/htdocs.expected
@@ -1,5 +1,5 @@
{'.': ['calm.db', 'packages.inc', 'src_packages.inc'],
- 'reports': ['deprecated_so.html', 'perl_rebuilds.html', 'unmaintained.html'],
+ 'reports': ['deprecated_so.html', 'perl_rebuilds.html', 'ruby_rebuilds.html', 'unmaintained.html'],
'summary': ['arc-src.html',
'arc.html',
'base-cygwin.html',