in release.py [0:0]
def create_release_commit(release_version: str,) -> None:
release_version_parsed = Version(release_version)
today = datetime.now().strftime("%Y-%m-%d")
alternate_suffix_paths = {
repo_root() / package_name: suffix
for package_name, suffix in ALTERNATE_SUFFIXES.items()
}
for package_root in repo_root().glob("opentelemetry-*/"):
if package_root in alternate_suffix_paths:
suffix = alternate_suffix_paths[package_root]
release_version_use = release_version_parsed.base_version + suffix
# verify the resulting version is valid by PEP440
try:
Version(release_version_use)
except InvalidVersion as e:
raise Exception(
"Resulting version string for package {} with specified suffix '{}' "
"is not valid: {}".format(package_root.name, suffix, e,),
)
else:
release_version_use = release_version
# Update version.py files
find_and_replace(
r'__version__ = ".*"',
'__version__ = "{}"'.format(release_version_use),
package_root.glob("**/version.py"),
)
# Mark release in changelogs
find_and_replace(
r"\#\#\ Unreleased",
rf"## Unreleased\n\n## Version {release_version_use}\n\nReleased {today}",
[package_root / "CHANGELOG.md"],
)
git_commit_with_message(
RELEASE_COMMIT_FMT.format(release_version=release_version)
)