|
|
@@ -31,13 +31,25 @@ NEW_CONTENT = os.environ.get("NEW_CONTENT", "")
|
|
|
def overwrite_changelog_section(changelog_text: str, new_content: str):
|
|
|
# Find the section for the specified version
|
|
|
version_pattern = f"## {VERSION}\n"
|
|
|
+ bracketed_version_pattern = f"## [{VERSION}]\n"
|
|
|
prev_version_pattern = f"## [{PREV_VERSION}]\n"
|
|
|
print(f"latest version: {VERSION}")
|
|
|
print(f"prev_version: {PREV_VERSION}")
|
|
|
|
|
|
+ # Try both unbracketed and bracketed version patterns
|
|
|
version_index = changelog_text.find(version_pattern)
|
|
|
if version_index == -1:
|
|
|
- raise ValueError(f"Could not find version {VERSION} in changelog")
|
|
|
+ version_index = changelog_text.find(bracketed_version_pattern)
|
|
|
+ if version_index == -1:
|
|
|
+ # If version not found, add it at the top (after the first line)
|
|
|
+ first_newline = changelog_text.find('\n')
|
|
|
+ if first_newline == -1:
|
|
|
+ # If no newline found, just prepend
|
|
|
+ return f"## [{VERSION}]\n\n{changelog_text}"
|
|
|
+ return f"{changelog_text[:first_newline + 1]}## [{VERSION}]\n\n{changelog_text[first_newline + 1:]}"
|
|
|
+ else:
|
|
|
+ # Using bracketed version
|
|
|
+ version_pattern = bracketed_version_pattern
|
|
|
|
|
|
notes_start_index = version_index + len(version_pattern)
|
|
|
notes_end_index = changelog_text.find(prev_version_pattern, notes_start_index) if PREV_VERSION and prev_version_pattern in changelog_text else len(changelog_text)
|
|
|
@@ -54,18 +66,37 @@ def overwrite_changelog_section(changelog_text: str, new_content: str):
|
|
|
# Remove the first two lines from the regular changeset format, ex: \n### Patch Changes
|
|
|
parsed_lines = "\n".join(changeset_lines[2:])
|
|
|
updated_changelog = changelog_text[:notes_start_index] + parsed_lines + changelog_text[notes_end_index:]
|
|
|
+ # Ensure version number is bracketed
|
|
|
updated_changelog = updated_changelog.replace(f"## {VERSION}", f"## [{VERSION}]")
|
|
|
return updated_changelog
|
|
|
|
|
|
-with open(CHANGELOG_PATH, 'r') as f:
|
|
|
- changelog_content = f.read()
|
|
|
+try:
|
|
|
+ print(f"Reading changelog from: {CHANGELOG_PATH}")
|
|
|
+ with open(CHANGELOG_PATH, 'r') as f:
|
|
|
+ changelog_content = f.read()
|
|
|
+
|
|
|
+ print(f"Changelog content length: {len(changelog_content)} characters")
|
|
|
+ print("First 200 characters of changelog:")
|
|
|
+ print(changelog_content[:200])
|
|
|
+ print("----------------------------------------------------------------------------------")
|
|
|
+
|
|
|
+ new_changelog = overwrite_changelog_section(changelog_content, NEW_CONTENT)
|
|
|
+
|
|
|
+ print("New changelog content:")
|
|
|
+ print("----------------------------------------------------------------------------------")
|
|
|
+ print(new_changelog)
|
|
|
+ print("----------------------------------------------------------------------------------")
|
|
|
+
|
|
|
+ print(f"Writing updated changelog back to: {CHANGELOG_PATH}")
|
|
|
+ with open(CHANGELOG_PATH, 'w') as f:
|
|
|
+ f.write(new_changelog)
|
|
|
|
|
|
-new_changelog = overwrite_changelog_section(changelog_content, NEW_CONTENT)
|
|
|
-print("----------------------------------------------------------------------------------")
|
|
|
-print(new_changelog)
|
|
|
-print("----------------------------------------------------------------------------------")
|
|
|
-# Write back to CHANGELOG.md
|
|
|
-with open(CHANGELOG_PATH, 'w') as f:
|
|
|
- f.write(new_changelog)
|
|
|
+ print(f"{CHANGELOG_PATH} updated successfully!")
|
|
|
|
|
|
-print(f"{CHANGELOG_PATH} updated successfully!")
|
|
|
+except FileNotFoundError:
|
|
|
+ print(f"Error: Changelog file not found at {CHANGELOG_PATH}")
|
|
|
+ exit(1)
|
|
|
+except Exception as e:
|
|
|
+ print(f"Error updating changelog: {str(e)}")
|
|
|
+ print(f"Current working directory: {os.getcwd()}")
|
|
|
+ exit(1)
|