[calm - Cygwin server-side packaging maintenance script] branch master, updated. 20200129-10-ga86f5ec
jturney@sourceware.org
jturney@sourceware.org
Thu Feb 20 15:19:00 GMT 2020
https://sourceware.org/git/gitweb.cgi?p=cygwin-apps/calm.git;h=a86f5ecf1f84bf5e7f6a90549d03c3d68c7c535b
commit a86f5ecf1f84bf5e7f6a90549d03c3d68c7c535b
Author: Jon Turney <jon.turney@dronecode.org.uk>
Date: Wed Feb 19 18:58:53 2020 +0000
Improve test wrapper script to pass arguments
https://sourceware.org/git/gitweb.cgi?p=cygwin-apps/calm.git;h=31865d5e209689b94844a6208e2df4840ae842f4
commit 31865d5e209689b94844a6208e2df4840ae842f4
Author: Jon Turney <jon.turney@dronecode.org.uk>
Date: Tue Feb 18 23:29:40 2020 +0000
Transfer 'perl5_26' annotation from comment to a notes: key
Transfer 'perl5_26' annotation from comment to a notes: key. This
ensures it survives other hint transformations.
Diff:
---
calm/fix-annotate-perl-hint.py | 38 ++++++++++++++++++--------------------
calm/hint.py | 8 ++++++++
test.sh | 2 +-
3 files changed, 27 insertions(+), 21 deletions(-)
diff --git a/calm/fix-annotate-perl-hint.py b/calm/fix-annotate-perl-hint.py
index 55b27eb..d3cf1cf 100644
--- a/calm/fix-annotate-perl-hint.py
+++ b/calm/fix-annotate-perl-hint.py
@@ -21,17 +21,9 @@
# THE SOFTWARE.
#
-#
-# Annotate existing hints with requires: perl with a comment noting these
-# require perl5.26 (or possibly earlier), before we deploy perl5.30. Later
-# these comments can be transformed into an requires: on an additional provides:
-# in perl_base package.
-#
-
import argparse
import logging
import os
-import re
import shutil
import sys
@@ -46,29 +38,35 @@ from . import hint
def fix_one_hint(dirpath, hintfile):
pn = os.path.join(dirpath, hintfile)
+ annotation = False
with open(pn, 'r') as f:
for l in f:
- if 'perl5_26' in l:
- logging.info("%s already annotated" % (hintfile))
- return
+ if '# perl5_26' in l:
+ logging.info("%s has annotation comment" % (hintfile))
+ annotation = True
+ break
+
+ if not annotation:
+ return
hints = hint.hint_file_parse(pn, hint.pvr)
- requires = hints.get('requires', '').split()
- if requires:
- if ('perl_base' in requires) or ('perl' in requires):
- logging.info("%s has perl in requires" % (hintfile))
+ hints.pop('parse-warnings', None)
+ if 'parse-errors' in hints:
+ logging.error('invalid hints %s' % hintfile)
+ return
+
+ hints['notes'] = 'perl5_26'
- shutil.copy2(pn, pn + '.bak')
- with open(pn, 'a') as f:
- print("# perl5_26", file=f)
+ # write updated hints
+ shutil.copy2(pn, pn + '.bak')
+ hint.hint_file_write(pn, hints)
def fix_hints(relarea):
for (dirpath, subdirs, files) in os.walk(relarea):
for f in files:
- match = re.match(r'^.*\.hint$', f)
- if match:
+ if f.endswith('.hint'):
fix_one_hint(dirpath, f)
#
diff --git a/calm/hint.py b/calm/hint.py
index 608cc96..c2d702c 100755
--- a/calm/hint.py
+++ b/calm/hint.py
@@ -57,6 +57,7 @@ hintkeys[pvr] = {
'disable-check': 'val',
'provides': 'val',
'conflicts': 'val',
+ 'notes': 'val', # tool notes; not significant to calm itself
}
hintkeys[override] = {
@@ -328,6 +329,13 @@ def hint_file_parse(fn, kind):
return hints
+# write hints |hints| to file |fn|
+def hint_file_write(fn, hints):
+ with open(fn, 'w') as f:
+ for k, v in hints.items():
+ print("%s: %s" % (k, v), file=f)
+
+
#
# words that Cygwin package maintainers apparently can't spell correctly
#
diff --git a/test.sh b/test.sh
index b4f1c39..259b48f 100755
--- a/test.sh
+++ b/test.sh
@@ -1,2 +1,2 @@
#!/usr/bin/bash
-exec python3 -m unittest discover
+exec python3 -m unittest discover "$@"
More information about the Cygwin-apps-cvs
mailing list