diff --git a/util.py b/util.py index d11d6716a..7cd5ee116 100644 --- a/util.py +++ b/util.py @@ -11,6 +11,7 @@ NB: This is not part of the core sqlfluff code. import os import re import shutil +import subprocess import time import click @@ -74,6 +75,24 @@ def convert_pep440_to_semver(version: str) -> str: return f"{base_version}-{semver_pre_type}.{pre_num}" +def check_cargo_installed(): + """Check if cargo is installed and available. + + Returns: + bool: True if cargo is installed, False otherwise. + """ + try: + result = subprocess.run( + ["cargo", "--version"], + capture_output=True, + text=True, + check=False, + ) + return result.returncode == 0 + except FileNotFoundError: + return False + + @cli.command() @click.argument("new_version_num") def release(new_version_num): @@ -261,6 +280,27 @@ def release(new_version_num): write_file.write(line) write_file.close() + # Update Cargo.lock via `cargo check` + if check_cargo_installed(): + click.echo("Running cargo check to update Cargo.lock...") + result = subprocess.run( + ["cargo", "check"], + cwd="sqlfluffrs", + capture_output=True, + text=True, + check=False, + ) + if result.returncode == 0: + click.echo("✓ Rust cargo check complete") + else: + click.echo("✗ Rust cargo check failed:") + if result.stdout: + click.echo(result.stdout) + if result.stderr: + click.echo(result.stderr) + else: + click.echo("Error: cargo not installed, unable to update Cargo.lock") + keys = ["version"] if not is_pre_release: # Only update stable_version if it's not a pre-release.