From 03770556e583537f5fe76bd2ed851deb91b146d6 Mon Sep 17 00:00:00 2001 From: Nikhil Manglore Date: Tue, 16 Sep 2025 20:45:08 +0000 Subject: [PATCH 1/6] Updated the code to fit our versioning strategy Signed-off-by: Nikhil Manglore --- scripts/update-versions.py | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/scripts/update-versions.py b/scripts/update-versions.py index 4fefb3f..91dd3c8 100644 --- a/scripts/update-versions.py +++ b/scripts/update-versions.py @@ -131,12 +131,20 @@ def update_versions(versions_data: Dict[str, Any], component_name: str, new_vers f"The latest Valkey version is '{valkey_version}', which is not a new major version release (X.0.0 or X.0.0-rcY)." ) sys.exit(1) - - if module_key not in versions_data[latest]["modules"]: - logging.info(f"Adding new module {module_key} to existing version block") - versions_data[latest]["modules"][module_key] = {"version": new_version} + + if patch > 0: + # For patch releases we will update all version entries with the same major.minor version for the module + for version_block in versions_data.keys(): + current_module_version = versions_data[version_block]["modules"][module_key]["version"] + current_major, current_minor, _, _ = parse_version(current_module_version) + current_major_minor = f"{current_major}.{current_minor}" + + if current_major_minor == new_major_minor_release: + versions_data[version_block]["modules"][module_key]["version"] = new_version + logging.info(f"Patch release: Updated {module_key} to {new_version} in Bundle version {version_block}") else: - versions_data[latest]["modules"][module_key]["version"] = new_version + # For major or minor releases we will only update latest block + versions_data[latest]["modules"][module_key] = {"version": new_version} try: subprocess.check_output( @@ -183,4 +191,4 @@ def update_versions(versions_data: Dict[str, Any], component_name: str, new_vers json.dump(updated_file, f, indent=2) f.write('\n') - logging.info(f"Updated {component_name} to {new_version}") \ No newline at end of file + logging.info(f"Updated valkey-{component_name} to {new_version}") \ No newline at end of file From ad41e403c5f15c97eb2ba11103e74d0206a3d4af Mon Sep 17 00:00:00 2001 From: Nikhil Manglore Date: Tue, 16 Sep 2025 20:50:52 +0000 Subject: [PATCH 2/6] Make comment more descriptive Signed-off-by: Nikhil Manglore --- scripts/update-versions.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/update-versions.py b/scripts/update-versions.py index 91dd3c8..a512a5c 100644 --- a/scripts/update-versions.py +++ b/scripts/update-versions.py @@ -133,7 +133,7 @@ def update_versions(versions_data: Dict[str, Any], component_name: str, new_vers sys.exit(1) if patch > 0: - # For patch releases we will update all version entries with the same major.minor version for the module + # For patch releases we will update all version entries with the same major.minor version as the module patch we just released for version_block in versions_data.keys(): current_module_version = versions_data[version_block]["modules"][module_key]["version"] current_major, current_minor, _, _ = parse_version(current_module_version) @@ -143,7 +143,7 @@ def update_versions(versions_data: Dict[str, Any], component_name: str, new_vers versions_data[version_block]["modules"][module_key]["version"] = new_version logging.info(f"Patch release: Updated {module_key} to {new_version} in Bundle version {version_block}") else: - # For major or minor releases we will only update latest block + # For major or minor releases we will only update latest version entry versions_data[latest]["modules"][module_key] = {"version": new_version} try: From e98cea1616c466b19a7ffada51d9eecf168b18c7 Mon Sep 17 00:00:00 2001 From: Nikhil Manglore Date: Tue, 16 Sep 2025 22:21:55 +0000 Subject: [PATCH 3/6] Remove log statement Signed-off-by: Nikhil Manglore --- scripts/update-versions.py | 1 - 1 file changed, 1 deletion(-) diff --git a/scripts/update-versions.py b/scripts/update-versions.py index a512a5c..770b1ad 100644 --- a/scripts/update-versions.py +++ b/scripts/update-versions.py @@ -7,7 +7,6 @@ import subprocess from typing import Dict, Any -logging.basicConfig(level=logging.INFO, format="%(asctime)s - %(levelname)s - %(message)s") def parse_version(version: str) -> tuple: """Parse version string into (major, minor, patch, rc).""" From 06218adf546d8c14b3519d4f678c2dec66f5ee18 Mon Sep 17 00:00:00 2001 From: Nikhil Manglore Date: Tue, 16 Sep 2025 22:25:09 +0000 Subject: [PATCH 4/6] Change logging statement to have less info Signed-off-by: Nikhil Manglore --- scripts/update-versions.py | 1 + 1 file changed, 1 insertion(+) diff --git a/scripts/update-versions.py b/scripts/update-versions.py index 770b1ad..977d4d8 100644 --- a/scripts/update-versions.py +++ b/scripts/update-versions.py @@ -7,6 +7,7 @@ import subprocess from typing import Dict, Any +logging.basicConfig(level=logging.INFO, format="%(message)s") def parse_version(version: str) -> tuple: """Parse version string into (major, minor, patch, rc).""" From c4fd54e5f8ce6f609af5c112a749d6d2577c3fba Mon Sep 17 00:00:00 2001 From: Nikhil Manglore Date: Thu, 18 Sep 2025 22:54:05 +0000 Subject: [PATCH 5/6] Improved logging Signed-off-by: Nikhil Manglore --- scripts/update-versions.py | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/scripts/update-versions.py b/scripts/update-versions.py index 977d4d8..d0947b1 100644 --- a/scripts/update-versions.py +++ b/scripts/update-versions.py @@ -81,7 +81,7 @@ def update_versions(versions_data: Dict[str, Any], component_name: str, new_vers try: subprocess.check_output( ["git", "ls-remote", "--exit-code", "--heads", "origin", "valkey-bundle-update"], stderr=subprocess.DEVNULL) - logging.info("PR exists — skipping bundle version bump.") + logging.info("There is an open PR for the branch valkey-bundle-update - bundle patch version won't be bumped.") except subprocess.CalledProcessError: bundle_major, bundle_minor, bundle_patch, bundle_rc = parse_version(existing_bundle_version) @@ -92,7 +92,7 @@ def update_versions(versions_data: Dict[str, Any], component_name: str, new_vers versions_data[new_major_minor_release]["version"] = f"{bundle_major}.{bundle_minor}.{bundle_patch}" else: versions_data[new_major_minor_release]["version"] = f"{bundle_major}.{bundle_minor}.{bundle_patch + 1}" - logging.info("No PR Exists — bumped bundle version.") + logging.info("There is no open PR for the branch valkey-bundle-update — bumping bundle patch version.") else: # New major/minor version known_modules = get_known_modules_from_versions(versions_data) @@ -149,7 +149,7 @@ def update_versions(versions_data: Dict[str, Any], component_name: str, new_vers try: subprocess.check_output( ["git", "ls-remote", "--exit-code", "--heads", "origin", "valkey-bundle-update"], stderr=subprocess.DEVNULL) - logging.info("Branch valkey-bundle-update exists — skipping bundle version patch bump.") + logging.info("There is an open PR for the branch valkey-bundle-update - bundle patch version won't be bumped.") except subprocess.CalledProcessError: current_version = versions_data[latest]["version"] bundle_major, bundle_minor, bundle_patch, bundle_rc = parse_version(current_version) @@ -160,13 +160,13 @@ def update_versions(versions_data: Dict[str, Any], component_name: str, new_vers else: # For stable versions, increment patch versions_data[latest]["version"] = f"{bundle_major}.{bundle_minor}.{bundle_patch + 1}" - logging.info("Branch valkey-bundle-update not found — bumping patch version.") + logging.info("There is no open PR for the branch valkey-bundle-update — bumping bundle patch version.") return versions_data if __name__ == "__main__": if len(sys.argv) != 4: - logging.error("Usage: update_versions.py ") + logging.error("Incorrect parameters. Usage: update_versions.py ") sys.exit(1) json_file = sys.argv[1] @@ -191,4 +191,7 @@ def update_versions(versions_data: Dict[str, Any], component_name: str, new_vers json.dump(updated_file, f, indent=2) f.write('\n') - logging.info(f"Updated valkey-{component_name} to {new_version}") \ No newline at end of file + if component_name == 'valkey': + logging.info(f"Updated {component_name} to {new_version}") + else: + logging.info(f"Updated valkey-{component_name} to {new_version}") \ No newline at end of file From 24e216f02d5936701170e42a94a0d39358846b1e Mon Sep 17 00:00:00 2001 From: Nikhil Manglore Date: Thu, 18 Sep 2025 22:56:39 +0000 Subject: [PATCH 6/6] Removed bundle option since that was only used to GA the bundle Signed-off-by: Nikhil Manglore --- .github/workflows/update-files.yml | 2 +- scripts/update-versions.py | 9 --------- 2 files changed, 1 insertion(+), 10 deletions(-) diff --git a/.github/workflows/update-files.yml b/.github/workflows/update-files.yml index 183a29b..733a1bf 100644 --- a/.github/workflows/update-files.yml +++ b/.github/workflows/update-files.yml @@ -12,7 +12,7 @@ on: description: 'Valkey Bundle component to be released' required: true type: choice - options: [valkey, json, bloom, search, ldap, bundle] + options: [valkey, json, bloom, search, ldap] permissions: contents: write diff --git a/scripts/update-versions.py b/scripts/update-versions.py index d0947b1..05a9ac9 100644 --- a/scripts/update-versions.py +++ b/scripts/update-versions.py @@ -61,15 +61,6 @@ def update_versions(versions_data: Dict[str, Any], component_name: str, new_vers new_major_minor_release = f"{major}.{minor}" latest = get_latest_major_minor(versions_data) - if component_name == "bundle": - versions_data[latest]["version"] = new_version - versions_data[latest]["valkey-server"]["version"] = get_latest_stable_module_release("valkey-io/valkey") - - for module_key in versions_data[latest]["modules"].keys(): - repo = f"valkey-io/{module_key}" - versions_data[latest]["modules"][module_key]["version"] = get_latest_stable_module_release(repo) - return versions_data - if component_name == 'valkey': existing_entry = new_major_minor_release in versions_data