mirror of
https://github.com/khoaliber/khoj.git
synced 2026-03-10 13:26:13 +00:00
Bump pre-release version in SemVer schema via bump_version script
This commit is contained in:
@@ -2,9 +2,80 @@
|
|||||||
|
|
||||||
project_root=$PWD
|
project_root=$PWD
|
||||||
|
|
||||||
while getopts 'nc:t:' opt;
|
while getopts 'nc:t:p:' opt;
|
||||||
do
|
do
|
||||||
case "${opt}" in
|
case "${opt}" in
|
||||||
|
p)
|
||||||
|
# Create pre-release SemVer version. Options: alpha, beta, rc
|
||||||
|
prerelease_type=$OPTARG
|
||||||
|
|
||||||
|
# Get the current version from web package.json to determine base version
|
||||||
|
cd $project_root/src/interface/web
|
||||||
|
current_base_version=$(grep '"version":' package.json | awk -F '"' '{print $4}')
|
||||||
|
|
||||||
|
# Extract base version (remove any existing pre-release suffix)
|
||||||
|
base_version=$(echo $current_base_version | sed 's/-.*$//')
|
||||||
|
|
||||||
|
# If current version is already 2.x.x, increment the pre-release number
|
||||||
|
if [[ $current_base_version == *"-$prerelease_type"* ]]; then
|
||||||
|
# Extract current pre-release number and increment
|
||||||
|
current_num=$(echo $current_base_version | sed "s/.*-$prerelease_type\.//" | sed 's/[^0-9]*$//')
|
||||||
|
next_num=$((current_num + 1))
|
||||||
|
current_version="$base_version-$prerelease_type.$next_num"
|
||||||
|
else
|
||||||
|
# If base version is 1.x.x, bump to 2.0.0-prerelease.1
|
||||||
|
if [[ $base_version == 1.* ]]; then
|
||||||
|
current_version="2.0.0-$prerelease_type.1"
|
||||||
|
else
|
||||||
|
# Otherwise add pre-release to current base version
|
||||||
|
current_version="$base_version-$prerelease_type.1"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Bump Web app to pre-release version
|
||||||
|
cd $project_root/src/interface/web
|
||||||
|
yarn version --new-version $current_version --no-git-tag-version
|
||||||
|
|
||||||
|
# Bump Desktop app to pre-release version
|
||||||
|
cd $project_root/src/interface/desktop
|
||||||
|
yarn version --new-version $current_version --no-git-tag-version
|
||||||
|
|
||||||
|
# Bump Obsidian plugin to pre-release version
|
||||||
|
cd $project_root/src/interface/obsidian
|
||||||
|
yarn build # verify build before bumping version
|
||||||
|
yarn version --new-version $current_version --no-git-tag-version
|
||||||
|
# append current version, min Obsidian app version from manifest to versions json
|
||||||
|
cp $project_root/versions.json .
|
||||||
|
yarn run version # run Obsidian version script
|
||||||
|
|
||||||
|
# Bump Emacs package to pre-release version
|
||||||
|
cd ../emacs
|
||||||
|
sed -E -i.bak "s/^;; Version: (.*)/;; Version: $current_version/" khoj.el
|
||||||
|
git add khoj.el
|
||||||
|
rm *.bak
|
||||||
|
|
||||||
|
# Copy current obsidian versioned files to project root
|
||||||
|
cd $project_root
|
||||||
|
cp src/interface/obsidian/versions.json .
|
||||||
|
cp src/interface/obsidian/manifest.json .
|
||||||
|
|
||||||
|
# Run pre-commit validation to fix jsons
|
||||||
|
pre-commit run --hook-stage manual --all
|
||||||
|
|
||||||
|
# Commit changes and tag commit for pre-release
|
||||||
|
git add \
|
||||||
|
$project_root/src/interface/web/package.json \
|
||||||
|
$project_root/src/interface/desktop/package.json \
|
||||||
|
$project_root/src/interface/obsidian/package.json \
|
||||||
|
$project_root/src/interface/obsidian/yarn.lock \
|
||||||
|
$project_root/src/interface/obsidian/manifest.json \
|
||||||
|
$project_root/src/interface/obsidian/versions.json \
|
||||||
|
$project_root/src/interface/emacs/khoj.el \
|
||||||
|
$project_root/manifest.json \
|
||||||
|
$project_root/versions.json
|
||||||
|
git commit -m "Release Khoj version $current_version"
|
||||||
|
git tag $current_version
|
||||||
|
;;
|
||||||
t)
|
t)
|
||||||
# Get version type to bump. Options: major, minor, patch
|
# Get version type to bump. Options: major, minor, patch
|
||||||
version_type=$OPTARG
|
version_type=$OPTARG
|
||||||
@@ -144,7 +215,11 @@ do
|
|||||||
git commit -m "Bump Khoj to pre-release version $next_version"
|
git commit -m "Bump Khoj to pre-release version $next_version"
|
||||||
;;
|
;;
|
||||||
?)
|
?)
|
||||||
echo -e "Invalid command option.\nUsage: $(basename $0) [-t] [-c] [-n]"
|
echo -e "Invalid command option.\nUsage: $(basename $0) [-t type] [-c version] [-p prerelease] [-n]"
|
||||||
|
echo -e " -t: Bump version by type (major, minor, patch)"
|
||||||
|
echo -e " -c: Set specific version"
|
||||||
|
echo -e " -p: Create pre-release version (alpha, beta, rc)"
|
||||||
|
echo -e " -n: Compute and set next version using hatch"
|
||||||
exit 1
|
exit 1
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|||||||
Reference in New Issue
Block a user