]> git.smokeofanarchy.ru Git - space-station-14.git/commitdiff
Make changelog script able to manage admin changelogs (#24033)
authorPieter-Jan Briers <pieterjan.briers+git@gmail.com>
Sun, 14 Jan 2024 00:16:37 +0000 (01:16 +0100)
committerGitHub <noreply@github.com>
Sun, 14 Jan 2024 00:16:37 +0000 (01:16 +0100)
* Make changelog script able to manage admin changelogs

* I forgot to remove the comment

* Yeah that should probably just be an exclusion instead.

Resources/Changelog/Parts/parts_here.txt
Tools/update_changelog.py

index 0cd4a0cc29c0c694da54b37a3fc504206c526cf4..b7940037505b9663ab4b496f946844a19eb06b1b 100644 (file)
@@ -1,6 +1,8 @@
 The part YAML takes the following format:
 
 author: Your_Name_Here
+category: Admin # if left out, falls under the main changelog
 changes:
   - type: Fix # One of the following: Add, Remove, Tweak, Fix
     message: Your change here!
+
index 53f6d8875460f1198e4fd121a3dd787aa0a8192c..04a35bb45ffa26ff67c9743f2780189a93b7ec86 100755 (executable)
@@ -12,6 +12,7 @@ MAX_ENTRIES = 500
 HEADER_RE = r"(?::cl:|πŸ†‘) *\r?\n(.+)$"
 ENTRY_RE = r"^ *[*-]? *(\S[^\n\r]+)\r?$"
 
+CATEGORY_MAIN = "Main"
 
 # From https://stackoverflow.com/a/37958106/4678631
 class NoDatesSafeLoader(yaml.SafeLoader):
@@ -33,9 +34,12 @@ def main():
     parser = argparse.ArgumentParser()
     parser.add_argument("changelog_file")
     parser.add_argument("parts_dir")
+    parser.add_argument("--category", default=CATEGORY_MAIN)
 
     args = parser.parse_args()
 
+    category = args.category
+
     with open(args.changelog_file, "r", encoding="utf-8-sig") as f:
         current_data = yaml.load(f, Loader=NoDatesSafeLoader)
 
@@ -54,7 +58,13 @@ def main():
         partpath = os.path.join(args.parts_dir, partname)
         print(partpath)
 
-        partyaml = yaml.load(open(partpath, "r", encoding="utf-8-sig"), Loader=NoDatesSafeLoader)
+        with open(partpath, "r", encoding="utf-8-sig") as f:
+            partyaml = yaml.load(f, Loader=NoDatesSafeLoader)
+
+        part_category = partyaml.get("category", CATEGORY_MAIN)
+        if part_category != category:
+            print(f"Skipping: wrong category ({part_category} vs {category})")
+            continue
 
         author = partyaml["author"]
         time = partyaml.get(
@@ -86,8 +96,13 @@ def main():
         print(f"Removing {overflow} old entries.")
         entries_list = entries_list[overflow:]
 
-    with open(args.changelog_file, "w") as f:
-        yaml.safe_dump({"Entries": entries_list}, f)
+    new_data = {"Entries": entries_list}
+    for key, value in current_data.items():
+        if key != "Entries":
+            new_data[key] = value
+
+    with open(args.changelog_file, "w", encoding="utf-8-sig") as f:
+        yaml.safe_dump(new_data, f)
 
 
 main()