diff --git a/release b/release index b739d8d6..d4d58b2a 100755 --- a/release +++ b/release @@ -12,13 +12,13 @@ VERSION=$1 CURRENT_BRANCH=$(git rev-parse --abbrev-ref HEAD) if [ "$CURRENT_BRANCH" = "main" ]; then - if [[ ! "$VERSION" =~ ^v[0-9]+\.[0-9]+\.[0-9]+$ ]]; then + if [[ ! "$VERSION" =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]]; then echo "Error: On 'main' branch, only release tags (X.Y.Z) are allowed." exit 1 fi else - if [[ ! "$VERSION" =~ -rc ]]; then - echo "Error: On branch '$CURRENT_BRANCH', only RC tags (containing -rc) are allowed." + if [[ ! "$VERSION" =~ ^[0-9]+\.[0-9]+\.[0-9]+-rc\.[0-9]+$ ]]; then + echo "Error: On branch '$CURRENT_BRANCH', only RC tags matching X.Y.Z-rc.W are allowed (e.g., 1.0.0-rc.1)." exit 1 fi fi @@ -28,12 +28,48 @@ CURRENT_DATE=$(date +%Y-%m-%d) echo "Preparing release $VERSION..." -echo "Updating package.json to version $CLEAN_VERSION..." -sed -i "s/\"version\": \".*\"/\"version\": \"$CLEAN_VERSION\"/" package.json -echo "Updating CITATION.cff..." -sed -i "s/^version: .*/version: $CLEAN_VERSION/" CITATION.cff -sed -i "s/^date-released: .*/date-released: \"$CURRENT_DATE\"/" CITATION.cff +# package.json +if [ -f package.json ]; then + echo "Updating package.json..." + if sed --version >/dev/null 2>&1; then + sed -i "s/\"version\": \".*\"/\"version\": \"$CLEAN_VERSION\"/" package.json + else + sed -i '' "s/\"version\": \".*\"/\"version\": \"$CLEAN_VERSION\"/" package.json + fi +fi + +# pyproject.toml +if [ -f pyproject.toml ]; then + echo "Updating pyproject.toml..." + if sed --version >/dev/null 2>&1; then + sed -i "s/^version = \".*\"/version = \"$CLEAN_VERSION\"/" pyproject.toml + else + sed -i '' "s/^version = \".*\"/version = \"$CLEAN_VERSION\"/" pyproject.toml + fi +fi + +# Cargo.toml +if [ -f Cargo.toml ]; then + echo "Updating Cargo.toml..." + if sed --version >/dev/null 2>&1; then + sed -i "s/^version = \".*\"/version = \"$CLEAN_VERSION\"/" Cargo.toml + else + sed -i '' "s/^version = \".*\"/version = \"$CLEAN_VERSION\"/" Cargo.toml + fi +fi + +# CITATION.cff +if [ -f CITATION.cff ]; then + echo "Updating CITATION.cff..." + if sed --version >/dev/null 2>&1; then + sed -i "s/^version: .*/version: $CLEAN_VERSION/" CITATION.cff + sed -i "s/^date-released: .*/date-released: \"$CURRENT_DATE\"/" CITATION.cff + else + sed -i '' "s/^version: .*/version: $CLEAN_VERSION/" CITATION.cff + sed -i '' "s/^date-released: .*/date-released: \"$CURRENT_DATE\"/" CITATION.cff + fi +fi git add .