From 437c261b344f76d2ab354b8058dcb3e9a5e55f7d Mon Sep 17 00:00:00 2001 From: Alec Leamas Date: Wed, 13 Aug 2025 18:34:58 +0200 Subject: [PATCH 1/3] Add frozen-metadata directory --- frozen-metadata/.gitkeep | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 frozen-metadata/.gitkeep diff --git a/frozen-metadata/.gitkeep b/frozen-metadata/.gitkeep new file mode 100644 index 0000000000..e69de29bb2 From cfba97ce2fbf55dcfcbd8abf6b76844ea8bc6a7d Mon Sep 17 00:00:00 2001 From: Alec Leamas Date: Wed, 13 Aug 2025 20:10:08 +0200 Subject: [PATCH 2/3] ocpn-metadata: Add --frozendir option Adds an optional second source directory. This is aimed for frozen plugins which are not regularly updated. --- tools/ocpn-metadata | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/tools/ocpn-metadata b/tools/ocpn-metadata index f624a242ad..c492e9feb6 100755 --- a/tools/ocpn-metadata +++ b/tools/ocpn-metadata @@ -69,7 +69,10 @@ def get_args(paths): help='Overwrite possibly existing source files.') generate_parser.add_argument( '--userdir', metavar='dir', default=paths["userdir"], - help='source directory [%s]' % paths["userdir"]) + help='regular source directory [%s]' % paths["userdir"]) + generate_parser.add_argument( + '--frozendir', metavar='dir', default='', + help='frozen source directory [""]') generate_parser.add_argument( '--destfile', metavar='path', default=paths["destfile"], help='destination path [%s]' % paths["destfile"]) @@ -86,7 +89,7 @@ def get_args(paths): return args -def generate(sourcedir, destfile, version, date): +def generate(sourcedir, frozendir, destfile, version, date): """Generate a new ocpn-plugins.xml.""" tree = ET.Element('plugins') version_elem = ET.SubElement(tree, "version") @@ -94,7 +97,9 @@ def generate(sourcedir, destfile, version, date): date_elem = ET.SubElement(tree, "date") date_elem.text = \ date if date else datetime.datetime.now().strftime('%Y-%m-%d %H:%M') - for path in sorted(Path(sourcedir).glob("*.xml")): + paths = sorted(Path(sourcedir).glob("*.xml")) + if bool(frozendir): paths.extend(sorted(Path(frozendir).glob("*.xml"))) + for path in paths: try: subtree = ET.parse(str(path)) except ET.ParseError as ex: @@ -142,7 +147,7 @@ def main(): errprint("The file %s is in the way" % args.destfile) errprint("Please remove or use --force") sys.exit(1) - generate(args.userdir, args.destfile, args.version, args.date) + generate(args.userdir, args.frozendir, args.destfile, args.version, args.date) print("Generated new ocpn-plugins.xml at " + args.destfile) From 73f0d69f5d453d63173ad2ece727ed765a51d2d7 Mon Sep 17 00:00:00 2001 From: Alec Leamas Date: Wed, 13 Aug 2025 20:18:13 +0200 Subject: [PATCH 3/3] GA: merge: Use also frozen-metadata as source --- ci/ga_merge.sh | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/ci/ga_merge.sh b/ci/ga_merge.sh index 3bd45c990c..b8ea702f2b 100755 --- a/ci/ga_merge.sh +++ b/ci/ga_merge.sh @@ -18,7 +18,8 @@ echo "Using upstream: ... ${upstream##https:}" git remote add upstream $upstream git fetch upstream $GITHUB_REF:base_branch -tools/ocpn-metadata generate --userdir metadata --destfile ocpn-plugins.new +tools/ocpn-metadata generate --userdir metadata --frozendir frozen-metadata \ + --destfile ocpn-plugins.new sed -ie '//d' ocpn-plugins.new ocpn-plugins.xml if git diff -b --quiet --no-index ocpn-plugins.xml ocpn-plugins.new; then echo "ocpn-plugins.xml is already up do date -- exiting" @@ -26,8 +27,8 @@ if git diff -b --quiet --no-index ocpn-plugins.xml ocpn-plugins.new; then fi echo "Re-generating ocpn-plugins.xml to match metadata." -tools/ocpn-metadata generate \ - --userdir metadata --destfile ocpn-plugins.xml --force +tools/ocpn-metadata generate --userdir metadata --frozendir frozen-metadata \ + --destfile ocpn-plugins.xmlö --force git config --local user.email "action@github.com" git config --local user.name "$GITHUB_ACTOR" git add ocpn-plugins.xml