def main()

in release.py [0:0]


def main() -> None:
    args = parse_args()
    current_version = get_current_version()
    release_version: str = args.release_version
    new_dev_version: str = args.new_dev_version

    git_status_output = (
        run(["git", "status", "-s"], capture_output=True)
        .stdout.decode()
        .strip()
    )
    if git_status_output != "":
        print(
            "Git working directory is not clean, commit or stash all changes. Exiting.",
            file=sys.stderr,
        )
        sys.exit(1)

    print(
        "Current version: {}\nReleasing new version {}\nBumping dev version to {}".format(
            current_version, release_version, new_dev_version
        )
    )

    # create new release branch
    run(["git", "clean", "-fdx", "-e", "venv/", "-e", ".tox/"])
    run(
        [
            "git",
            "checkout",
            "-b",
            "release-pr/{}".format(release_version),
            "origin/main",
        ],
        cwd=repo_root(),
    )

    create_release_commit(release_version=release_version,)
    create_new_dev_commit(
        release_version=release_version, new_dev_version=new_dev_version,
    )