mirror of
https://github.com/aljazceru/turso.git
synced 2025-12-18 17:14:20 +01:00
update update-script to properly handle JS workspace
This commit is contained in:
@@ -17,13 +17,20 @@ from pathlib import Path
|
|||||||
# Define all npm package paths in one place
|
# Define all npm package paths in one place
|
||||||
NPM_PACKAGES = [
|
NPM_PACKAGES = [
|
||||||
"bindings/javascript",
|
"bindings/javascript",
|
||||||
"bindings/javascript/npm/darwin-universal",
|
"bindings/javascript/packages/common",
|
||||||
"bindings/javascript/npm/linux-x64-gnu",
|
"bindings/javascript/packages/native",
|
||||||
"bindings/javascript/npm/win32-x64-msvc",
|
"bindings/javascript/packages/browser",
|
||||||
"bindings/javascript/npm/wasm32-wasip1-threads",
|
|
||||||
"sync/javascript",
|
"sync/javascript",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
NPM_WORKSPACE_PACKAGES = [
|
||||||
|
"@tursodatabase/database-common"
|
||||||
|
]
|
||||||
|
|
||||||
|
NPM_WORKSPACES = [
|
||||||
|
"bindings/javascript"
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
def parse_args():
|
def parse_args():
|
||||||
parser = argparse.ArgumentParser(description="Update version in project files")
|
parser = argparse.ArgumentParser(description="Update version in project files")
|
||||||
@@ -79,6 +86,11 @@ def update_package_json(dir_path, new_version): # noqa: C901
|
|||||||
|
|
||||||
# Update version regardless of current value
|
# Update version regardless of current value
|
||||||
package_data["version"] = new_version
|
package_data["version"] = new_version
|
||||||
|
if "dependencies" in package_data:
|
||||||
|
for dependency in package_data["dependencies"].keys():
|
||||||
|
if dependency not in NPM_WORKSPACE_PACKAGES:
|
||||||
|
continue
|
||||||
|
package_data["dependencies"][dependency] = f"^{new_version}"
|
||||||
|
|
||||||
# Write updated package.json
|
# Write updated package.json
|
||||||
with open(package_path, "w") as f:
|
with open(package_path, "w") as f:
|
||||||
@@ -120,6 +132,25 @@ def update_package_json(dir_path, new_version): # noqa: C901
|
|||||||
except Exception:
|
except Exception:
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
def run_npm_install(path):
|
||||||
|
"""Run npm install to update package-lock.json"""
|
||||||
|
try:
|
||||||
|
# Run cargo update showing its output with verbose flag
|
||||||
|
print(f"Info: run npm install at path {path}")
|
||||||
|
subprocess.run(["npm", "install"], check=True, cwd=path)
|
||||||
|
return True
|
||||||
|
except Exception:
|
||||||
|
return False
|
||||||
|
|
||||||
|
def run_yarn_install(path):
|
||||||
|
"""Run yarn install to update yarn-lock.json"""
|
||||||
|
try:
|
||||||
|
# Run cargo update showing its output with verbose flag
|
||||||
|
print(f"Info: run yarn install at path {path}")
|
||||||
|
subprocess.run(["yarn", "install"], check=True, cwd=path)
|
||||||
|
return True
|
||||||
|
except Exception:
|
||||||
|
return False
|
||||||
|
|
||||||
def update_all_packages(new_version):
|
def update_all_packages(new_version):
|
||||||
"""Update all npm packages with the new version."""
|
"""Update all npm packages with the new version."""
|
||||||
@@ -127,6 +158,9 @@ def update_all_packages(new_version):
|
|||||||
for package_path in NPM_PACKAGES:
|
for package_path in NPM_PACKAGES:
|
||||||
result = update_package_json(package_path, new_version)
|
result = update_package_json(package_path, new_version)
|
||||||
results.append((package_path, result))
|
results.append((package_path, result))
|
||||||
|
for workspace_path in NPM_WORKSPACES:
|
||||||
|
run_npm_install(workspace_path)
|
||||||
|
run_yarn_install(workspace_path)
|
||||||
return results
|
return results
|
||||||
|
|
||||||
|
|
||||||
@@ -134,6 +168,7 @@ def run_cargo_update():
|
|||||||
"""Run cargo update to update the Cargo.lock file."""
|
"""Run cargo update to update the Cargo.lock file."""
|
||||||
try:
|
try:
|
||||||
# Run cargo update showing its output with verbose flag
|
# Run cargo update showing its output with verbose flag
|
||||||
|
print(f"Info: run cargo update")
|
||||||
subprocess.run(["cargo", "update", "--workspace", "--verbose"], check=True)
|
subprocess.run(["cargo", "update", "--workspace", "--verbose"], check=True)
|
||||||
return True
|
return True
|
||||||
except Exception:
|
except Exception:
|
||||||
@@ -150,11 +185,14 @@ def create_git_commit_and_tag(version):
|
|||||||
for package_path in NPM_PACKAGES:
|
for package_path in NPM_PACKAGES:
|
||||||
package_json = f"{package_path}/package.json"
|
package_json = f"{package_path}/package.json"
|
||||||
package_lock = f"{package_path}/package-lock.json"
|
package_lock = f"{package_path}/package-lock.json"
|
||||||
|
yarn_lock = f"{package_path}/yarn.lock"
|
||||||
|
|
||||||
if os.path.exists(package_json):
|
if os.path.exists(package_json):
|
||||||
files_to_add.append(package_json)
|
files_to_add.append(package_json)
|
||||||
if os.path.exists(package_lock):
|
if os.path.exists(package_lock):
|
||||||
files_to_add.append(package_lock)
|
files_to_add.append(package_lock)
|
||||||
|
if os.path.exists(yarn_lock):
|
||||||
|
files_to_add.append(yarn_lock)
|
||||||
|
|
||||||
# Add each file individually
|
# Add each file individually
|
||||||
for file in files_to_add:
|
for file in files_to_add:
|
||||||
|
|||||||
Reference in New Issue
Block a user