You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
# Extract version from [project] section, first match only
52
+
CURRENT_VERSION=$(grep -m 1 -A 5 '^\[project\]' pyproject.toml | grep 'version = ' | sed 's/version = "\(.*\)"/\1/')
52
53
BASE_VERSION=$(echo $CURRENT_VERSION | sed 's/a.*//')
53
54
VERSION="${BASE_VERSION}a${TOTAL_COMMITS}"
54
55
echo "Auto-generated alpha version: $VERSION"
55
56
fi
56
57
echo "version=$VERSION" >> $GITHUB_OUTPUT
58
+
echo "Calculated version: $VERSION"
57
59
58
60
- name: Update versions in all files
59
61
run: |
60
62
VERSION="${{ steps.version.outputs.version }}"
61
63
echo "Updating to version: $VERSION"
62
64
63
-
# Update all pyproject.toml files - match only lines with 'version = "...'
64
-
sed -i 's/^version = "[^"]*"/version = "'"$VERSION"'"/' pyproject.toml
65
-
sed -i 's/^version = "[^"]*"/version = "'"$VERSION"'"/' packages/myfy-core/pyproject.toml
66
-
sed -i 's/^version = "[^"]*"/version = "'"$VERSION"'"/' packages/myfy-web/pyproject.toml
67
-
sed -i 's/^version = "[^"]*"/version = "'"$VERSION"'"/' packages/myfy-cli/pyproject.toml
68
-
sed -i 's/^version = "[^"]*"/version = "'"$VERSION"'"/' packages/myfy-frontend/pyproject.toml
69
-
sed -i 's/^version = "[^"]*"/version = "'"$VERSION"'"/' packages/myfy/pyproject.toml
70
-
71
-
# Update all version.py files
72
-
sed -i 's/__version__ = "[^"]*"/__version__ = "'"$VERSION"'"/' packages/myfy-core/myfy/core/version.py
73
-
sed -i 's/__version__ = "[^"]*"/__version__ = "'"$VERSION"'"/' packages/myfy-web/myfy/web/version.py
74
-
sed -i 's/__version__ = "[^"]*"/__version__ = "'"$VERSION"'"/' packages/myfy-cli/myfy_cli/version.py
75
-
sed -i 's/__version__ = "[^"]*"/__version__ = "'"$VERSION"'"/' packages/myfy-frontend/myfy/frontend/version.py
76
-
sed -i 's/__version__ = "[^"]*"/__version__ = "'"$VERSION"'"/' packages/myfy/myfy/version.py
77
-
78
-
# Update dependency constraints to match new version (only base version, not alpha suffix)
79
-
BASE_VERSION=$(echo $VERSION | sed 's/a.*//')
80
-
sed -i 's/myfy-core~=[0-9a-z.]*/myfy-core~='"$BASE_VERSION"'/' packages/myfy-web/pyproject.toml
81
-
sed -i 's/myfy-core~=[0-9a-z.]*/myfy-core~='"$BASE_VERSION"'/' packages/myfy-cli/pyproject.toml
82
-
sed -i 's/myfy-core~=[0-9a-z.]*/myfy-core~='"$BASE_VERSION"'/' packages/myfy-frontend/pyproject.toml
83
-
sed -i 's/myfy-web~=[0-9a-z.]*/myfy-web~='"$BASE_VERSION"'/' packages/myfy-frontend/pyproject.toml
84
-
sed -i 's/myfy-core~=[0-9a-z.]*/myfy-core~='"$BASE_VERSION"'/' packages/myfy/pyproject.toml
85
-
sed -i 's/myfy-cli~=[0-9a-z.]*/myfy-cli~='"$BASE_VERSION"'/' packages/myfy/pyproject.toml
86
-
sed -i 's/myfy-web~=[0-9a-z.]*/myfy-web~='"$BASE_VERSION"'/' packages/myfy/pyproject.toml
65
+
# Use Python to safely update TOML files
66
+
python3 << 'PYTHON_SCRIPT'
67
+
import re
68
+
import sys
69
+
70
+
version = "${{ steps.version.outputs.version }}"
71
+
base_version = version.split('a')[0] if 'a' in version else version.split('b')[0] if 'b' in version else version.split('rc')[0] if 'rc' in version else version
match = re.search(r'\[project\][^\[]*version = "([^"]*)"', content)
88
+
version = match.group(1) if match else None
89
+
90
+
if not version:
91
+
print("Error: Could not determine version")
92
+
exit(1)
93
+
94
+
base_version = version.split('a')[0] if 'a' in version else version.split('b')[0] if 'b' in version else version.split('rc')[0] if 'rc' in version else version
0 commit comments