def pre()

in scripts/release.py [0:0]


def pre() -> None:
    # Ensure we have inputs
    release_version = os.getenv("RELEASE_VERSION")
    if not release_version:
        return print(
            "You must define `RELEASE_VERSION` environment variable.", file=sys.stderr
        )
    if not re.match(r"(\d){1,2}\.(\d){1,2}\.(\d){1,2}", release_version):
        return print(
            "The `RELEASE_VERSION` should match semver format.", file=sys.stderr
        )

    # Create a new branch
    # TODO: if you change the branch_name, please update the
    #       condition at .github/workflows/ci.yml
    branch_name = f"feat/pre-release-v{release_version}"
    git = detect_git()
    git("checkout", "-b", branch_name, _out=sys.stdout, _err=sys.stderr)

    # Update all files
    __set_version(release_version)

    # Update install file
    __set_version_install_file(release_version)

    # Push release branch
    git("add", "--all", _out=sys.stdout, _err=sys.stderr)
    git(
        "commit",
        "-m",
        f"release: terranova v{release_version}",
        "--no-verify",
        _out=sys.stdout,
        _err=sys.stderr,
    )
    git("push", "origin", branch_name, _out=sys.stdout, _err=sys.stderr)

    # Create a PR
    gh = detect_gh()
    gh(
        "pr",
        "create",
        "--fill",
        "--base=main",
        f"--head={branch_name}",
        _out=sys.stdout,
        _err=sys.stderr,
    )