Skip to content

Commit 543f3b7

Browse files
committed
The version format changed but the scripts that process it didn't. Oops.
1 parent b295732 commit 543f3b7

3 files changed

Lines changed: 39 additions & 15 deletions

File tree

CMakeLists.txt

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,21 +6,21 @@
66

77
cmake_minimum_required(VERSION 3.10)
88

9-
# Read version from file
10-
set(PROJECT_VERSION_FULL "0.0.0-0")
9+
# Read version from file (format: major.minor.patch)
10+
set(PROJECT_VERSION_FULL "0.1.0")
1111
if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/VERSION")
1212
file(READ "${CMAKE_CURRENT_SOURCE_DIR}/VERSION" VER_FILE_CONTENT)
1313
if(VER_FILE_CONTENT)
1414
string(STRIP "${VER_FILE_CONTENT}" VER_FILE_CONTENT_STRIPPED)
1515
if(VER_FILE_CONTENT_STRIPPED)
16-
set(PROJECT_VERSION_FULL "${VER_FILE_CONTENT_STRIPPED}")
16+
# Extract only the numeric part (major.minor.patch) before any non-numeric suffix
17+
string(REGEX MATCH "^[0-9]+\\.[0-9]+\\.[0-9]+" PROJECT_VERSION_FULL "${VER_FILE_CONTENT_STRIPPED}")
1718
endif()
1819
endif()
1920
endif()
2021

21-
# CMake project version must be numeric (major.minor.patch.tweak)
22-
string(REPLACE "-" "." PROJECT_VERSION_CMAKE "${PROJECT_VERSION_FULL}")
23-
project(yafl VERSION ${PROJECT_VERSION_CMAKE} LANGUAGES C)
22+
# Use version directly with CMake project
23+
project(yafl VERSION ${PROJECT_VERSION_FULL} LANGUAGES C)
2424

2525
# ============================================================================
2626
# Enforce Out-of-Source Builds

VERSION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
0.1.0-
1+
0.1.0

scripts/increment_version.sh

Lines changed: 32 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,25 +2,49 @@
22
set -e
33

44
VERSION_FILE="VERSION"
5+
BUMP_TYPE="${1:-patch}" # patch, minor, or major (default: patch)
56

67
if [ ! -f "$VERSION_FILE" ]; then
78
echo "Error: $VERSION_FILE not found."
89
exit 1
910
fi
1011

11-
CURRENT_VERSION=$(cat "$VERSION_FILE")
12+
CURRENT_VERSION=$(cat "$VERSION_FILE" | xargs) # Strip whitespace
1213

13-
# Split into BASE (Boost version) and RELEASE (N)
14-
BASE_VERSION=${CURRENT_VERSION%-*}
15-
RELEASE_NUM=${CURRENT_VERSION##*-}
14+
# Validate format (major.minor.patch)
15+
if ! [[ $CURRENT_VERSION =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]]; then
16+
echo "Error: VERSION must be in format major.minor.patch, got: $CURRENT_VERSION"
17+
exit 1
18+
fi
19+
20+
# Split version into components
21+
IFS='.' read -r MAJOR MINOR PATCH <<< "$CURRENT_VERSION"
22+
23+
# Increment based on bump type
24+
case "$BUMP_TYPE" in
25+
major)
26+
MAJOR=$((MAJOR + 1))
27+
MINOR=0
28+
PATCH=0
29+
;;
30+
minor)
31+
MINOR=$((MINOR + 1))
32+
PATCH=0
33+
;;
34+
patch)
35+
PATCH=$((PATCH + 1))
36+
;;
37+
*)
38+
echo "Error: BUMP_TYPE must be 'major', 'minor', or 'patch', got: $BUMP_TYPE"
39+
exit 1
40+
;;
41+
esac
1642

17-
# Increment N
18-
NEW_RELEASE_NUM=$((RELEASE_NUM + 1))
19-
NEW_VERSION="${BASE_VERSION}-${NEW_RELEASE_NUM}"
43+
NEW_VERSION="${MAJOR}.${MINOR}.${PATCH}"
2044

2145
echo "$NEW_VERSION" > "$VERSION_FILE"
2246

23-
echo "Version bumped: $CURRENT_VERSION -> $NEW_VERSION"
47+
echo "Version bumped: $CURRENT_VERSION -> $NEW_VERSION (type: $BUMP_TYPE)"
2448
if [ -n "$GITHUB_OUTPUT" ]; then
2549
echo "version=$NEW_VERSION" >> "$GITHUB_OUTPUT"
2650
fi

0 commit comments

Comments
 (0)