Hello @potiuk 

I believe you wrote this script - [`prepare_provider_packages.py`](https://github.com/apache/airflow/blob/master/dev/provider_packages/prepare_provider_packages.py).

I am wondering if there is any reason why you did not use the standard library - [`argument.ArgumentParser`](https://docs.python.org/3/library/argparse.html) in this script?
https://docs.python.org/3/library/argparse.html
https://github.com/apache/airflow/blob/550395192929f86376151b4385cea6b8dfb76e8e/dev/provider_packages/prepare_provider_packages.py#L1518-L1552

This makes the code overly complex and, by the way, more prone to errors e.g.  ``usage()`` method describes the `--version-suffix-for-pypi` parameter, but we changed its name to `--version-suffix`.

What do you think to rewrite this script to use the standard library? Do we have a requirement that prevents this? I think of something similar to [my gist](https://gist.github.com/mik-laj/ff008718fc6cec9fe929731b8c62d6f8).

dev/provider_packages/prepare_provider_packages.py
ReleaseInfo(
                        release_version=release_version,
                        release_version_no_leading_zeros=release_version_no_leading_zeros,
                        last_commit_hash=last_commit_hash,
                        content=content,
                        file_name=file_name,
                    )
                )
    return past_releases
def get_latest_release(provider_package_path: str, backport_packages: bool) -> ReleaseInfo:
    """
    Gets information about the latest release.
    :param provider_package_path: path of package
    :param backport_packages: whether to prepare regular (False) or backport (True) packages
    :return: latest release information
    """
    releases = get_all_releases(
        provider_package_path=provider_package_path, backport_packages=backport_packages
    )
    if len(releases) == 0:
        return ReleaseInfo(
            release_version="0.0.0",
            release_version_no_leading_zeros="0.0.0",
            last_commit_hash="no_hash",
            content="empty",
            file_name="no_file",
        )
    else:
        return releases[0]
def get_previous_release_info(