import argparse
import pathlib
import textwrap

current_dir = (pathlib.Path(__file__).parent / "..").resolve()

TEMPLATE = """# Upcoming Release 

## New Features:
No changes to highlight.

## Bug Fixes:
No changes to highlight.

## Other Changes:
No changes to highlight.

## Breaking Changes:
No changes to highlight.

"""


def format_release_notes(latest_version: str):
    upcoming = current_dir / "CHANGELOG.md"
    with open(upcoming, "r") as latest:
        lines = latest.readlines()
        assert "# Upcoming Release" in lines[0]
    with open(upcoming, "w") as latest:
        if latest_version.startswith("v"):
            lines[0] = latest_version.replace("v", "# Version ") + "\n"
        else:
            lines[0] = "# Version " + latest_version + "\n"
        lines = textwrap.dedent(TEMPLATE).splitlines(keepends=True) + lines
        latest.writelines(lines)


if __name__ == "__main__":
    parser = argparse.ArgumentParser(description="Upload a demo to a space")
    parser.add_argument("latest_version", type=str, help="Name of demo to upload")
    args = parser.parse_args()
    format_release_notes(args.latest_version)