in detection_rules/devtools.py [0:0]
def bump_versions(major_release: bool, minor_release: bool, patch_release: bool, new_package: str, maturity: str):
"""Bump the versions"""
pkg_data = RULES_CONFIG.packages['package']
kibana_ver = Version.parse(pkg_data["name"], optional_minor_and_patch=True)
pkg_ver = Version.parse(pkg_data["registry_data"]["version"])
pkg_kibana_ver = Version.parse(pkg_data["registry_data"]["conditions"]["kibana.version"].lstrip("^"))
if major_release:
major_bump = kibana_ver.bump_major()
pkg_data["name"] = f"{major_bump.major}.{major_bump.minor}"
pkg_data["registry_data"]["conditions"]["kibana.version"] = f"^{pkg_kibana_ver.bump_major()}"
pkg_data["registry_data"]["version"] = str(pkg_ver.bump_major().bump_prerelease("beta"))
if minor_release:
minor_bump = kibana_ver.bump_minor()
pkg_data["name"] = f"{minor_bump.major}.{minor_bump.minor}"
pkg_data["registry_data"]["conditions"]["kibana.version"] = f"^{pkg_kibana_ver.bump_minor()}"
pkg_data["registry_data"]["version"] = str(pkg_ver.bump_minor().bump_prerelease("beta"))
if patch_release:
latest_patch_release_ver = find_latest_integration_version("security_detection_engine",
maturity, pkg_kibana_ver)
# if an existing minor or major does not have a package, bump from the last
# example is 8.10.0-beta.1 is last, but on 9.0.0 major
# example is 8.10.0-beta.1 is last, but on 8.11.0 minor
if latest_patch_release_ver.minor != pkg_kibana_ver.minor:
latest_patch_release_ver = latest_patch_release_ver.bump_minor()
if latest_patch_release_ver.major != pkg_kibana_ver.major:
latest_patch_release_ver = latest_patch_release_ver.bump_major()
if maturity == "ga":
pkg_data["registry_data"]["version"] = str(latest_patch_release_ver.bump_patch())
else:
# passing in true or false from GH actions; not using eval() for security purposes
if new_package == "true":
latest_patch_release_ver = latest_patch_release_ver.bump_patch()
pkg_data["registry_data"]["version"] = str(latest_patch_release_ver.bump_prerelease("beta"))
if 'release' in pkg_data['registry_data']:
pkg_data['registry_data']['release'] = maturity
click.echo(f"Kibana version: {pkg_data['name']}")
click.echo(f"Package Kibana version: {pkg_data['registry_data']['conditions']['kibana.version']}")
click.echo(f"Package version: {pkg_data['registry_data']['version']}")
RULES_CONFIG.packages_file.write_text(yaml.safe_dump({"package": pkg_data}))