1 Commits

Author SHA1 Message Date
d35ef995a3 bump version to 0.4.0
Some checks failed
Security Scan / security (pull_request) Successful in 42s
Security Scan / dependency-check (pull_request) Successful in 46s
Test Suite / lint (pull_request) Failing after 31s
Test Suite / test (3.11) (pull_request) Successful in 1m28s
Test Suite / build (pull_request) Has been skipped
2025-09-07 16:47:13 -07:00
5 changed files with 215 additions and 1 deletions

133
bump_version.py Executable file
View File

@@ -0,0 +1,133 @@
#!/usr/bin/env python3
"""
Version bump script for EmbeddingBuddy.
Automatically updates version in pyproject.toml following semantic versioning.
"""
import argparse
import re
import sys
from pathlib import Path
def get_current_version(pyproject_path: Path) -> str:
"""Extract current version from pyproject.toml."""
content = pyproject_path.read_text()
match = re.search(r'version\s*=\s*"([^"]+)"', content)
if not match:
raise ValueError("Could not find version in pyproject.toml")
return match.group(1)
def parse_version(version_str: str) -> tuple[int, int, int]:
"""Parse semantic version string into major, minor, patch tuple."""
match = re.match(r'(\d+)\.(\d+)\.(\d+)', version_str)
if not match:
raise ValueError(f"Invalid version format: {version_str}")
return int(match.group(1)), int(match.group(2)), int(match.group(3))
def bump_version(current: str, bump_type: str) -> str:
"""Bump version based on type (major, minor, patch)."""
major, minor, patch = parse_version(current)
if bump_type == "major":
return f"{major + 1}.0.0"
elif bump_type == "minor":
return f"{major}.{minor + 1}.0"
elif bump_type == "patch":
return f"{major}.{minor}.{patch + 1}"
else:
raise ValueError(f"Invalid bump type: {bump_type}")
def update_version_in_file(pyproject_path: Path, new_version: str) -> None:
"""Update version in pyproject.toml file."""
content = pyproject_path.read_text()
updated_content = re.sub(
r'version\s*=\s*"[^"]+"',
f'version = "{new_version}"',
content
)
pyproject_path.write_text(updated_content)
def main():
"""Main version bump function."""
parser = argparse.ArgumentParser(
description="Bump version in pyproject.toml",
formatter_class=argparse.RawDescriptionHelpFormatter,
epilog="""
Examples:
python bump_version.py patch # 0.3.0 -> 0.3.1
python bump_version.py minor # 0.3.0 -> 0.4.0
python bump_version.py major # 0.3.0 -> 1.0.0
python bump_version.py --set 1.2.3 # Set specific version
Semantic versioning guide:
- patch: Bug fixes, no API changes
- minor: New features, backward compatible
- major: Breaking changes, not backward compatible
"""
)
group = parser.add_mutually_exclusive_group(required=True)
group.add_argument(
"bump_type",
nargs="?",
choices=["major", "minor", "patch"],
help="Type of version bump"
)
group.add_argument(
"--set",
dest="set_version",
help="Set specific version (e.g., 1.2.3)"
)
parser.add_argument(
"--dry-run",
action="store_true",
help="Show what would be changed without making changes"
)
args = parser.parse_args()
# Find pyproject.toml
pyproject_path = Path("pyproject.toml")
if not pyproject_path.exists():
print("❌ pyproject.toml not found in current directory")
sys.exit(1)
try:
current_version = get_current_version(pyproject_path)
print(f"📦 Current version: {current_version}")
if args.set_version:
# Validate the set version format
parse_version(args.set_version)
new_version = args.set_version
else:
new_version = bump_version(current_version, args.bump_type)
print(f"🚀 New version: {new_version}")
if args.dry_run:
print("🔍 Dry run - no changes made")
else:
update_version_in_file(pyproject_path, new_version)
print("✅ Version updated in pyproject.toml")
print()
print("💡 Next steps:")
print(" 1. Review changes: git diff")
print(" 2. Commit changes: git add . && git commit -m 'bump version to {}'".format(new_version))
print(" 3. Tag release: git tag v{}".format(new_version))
except ValueError as e:
print(f"❌ Error: {e}")
sys.exit(1)
except Exception as e:
print(f"❌ Unexpected error: {e}")
sys.exit(1)
if __name__ == "__main__":
main()

File diff suppressed because one or more lines are too long

1
prompts-raw.ndjson Normal file

File diff suppressed because one or more lines are too long

64
prompts.ndjson Normal file

File diff suppressed because one or more lines are too long

View File

@@ -1,6 +1,6 @@
[project]
name = "embeddingbuddy"
version = "0.3.0"
version = "0.4.0"
description = "A Python Dash application for interactive exploration and visualization of embedding vectors through dimensionality reduction techniques."
readme = "README.md"
requires-python = ">=3.11"