mirror of
				https://github.com/allenai/olmocr.git
				synced 2025-10-30 17:39:33 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			79 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			79 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #!/bin/bash
 | |
| 
 | |
| set -e
 | |
| 
 | |
| # Function to extract version components from version.py using regex
 | |
| get_version_from_file() {
 | |
|     VERSION_FILE="olmocr/version.py"
 | |
| 
 | |
|     if [[ ! -f "$VERSION_FILE" ]]; then
 | |
|         echo "Error: $VERSION_FILE does not exist."
 | |
|         exit 1
 | |
|     fi
 | |
| 
 | |
|     # Extract _MAJOR
 | |
|     _MAJOR=$(grep -E '^_MAJOR\s*=\s*"([^"]+)"' "$VERSION_FILE" | sed -E 's/_MAJOR\s*=\s*"([^"]+)"/\1/')
 | |
|     if [[ -z "$_MAJOR" ]]; then
 | |
|         echo "Error: Could not extract _MAJOR from $VERSION_FILE."
 | |
|         exit 1
 | |
|     fi
 | |
| 
 | |
|     # Extract _MINOR
 | |
|     _MINOR=$(grep -E '^_MINOR\s*=\s*"([^"]+)"' "$VERSION_FILE" | sed -E 's/_MINOR\s*=\s*"([^"]+)"/\1/')
 | |
|     if [[ -z "$_MINOR" ]]; then
 | |
|         echo "Error: Could not extract _MINOR from $VERSION_FILE."
 | |
|         exit 1
 | |
|     fi
 | |
| 
 | |
|     # Extract _PATCH
 | |
|     _PATCH=$(grep -E '^_PATCH\s*=\s*"([^"]+)"' "$VERSION_FILE" | sed -E 's/_PATCH\s*=\s*"([^"]+)"/\1/')
 | |
|     if [[ -z "$_PATCH" ]]; then
 | |
|         echo "Error: Could not extract _PATCH from $VERSION_FILE."
 | |
|         exit 1
 | |
|     fi
 | |
| 
 | |
|     # Extract _SUFFIX (optional)
 | |
|     _SUFFIX=$(grep -E '^_SUFFIX\s*=\s*"([^"]*)"' "$VERSION_FILE" | sed -E 's/_SUFFIX\s*=\s*"([^"]*)"/\1/')
 | |
|     if [[ -z "$_SUFFIX" ]]; then
 | |
|         _SUFFIX=""
 | |
|     fi
 | |
| 
 | |
|     # Construct VERSION
 | |
|     VERSION_PY="${_MAJOR}.${_MINOR}.${_PATCH}${_SUFFIX}"
 | |
|     echo "$VERSION_PY"
 | |
| }
 | |
| 
 | |
| TAG=$(python -c 'from olmocr.version import VERSION; print("v" + VERSION)')
 | |
| 
 | |
| # Get the VERSION from version.py
 | |
| VERSION_PY=$(get_version_from_file)
 | |
| 
 | |
| # Compare the two versions
 | |
| if [[ "v$VERSION_PY" != "$TAG" ]]; then
 | |
|     echo "Version mismatch detected:"
 | |
|     echo "  Python reported version: $TAG"
 | |
|     echo "  version.py contains: v$VERSION_PY"
 | |
|     echo
 | |
|     read -p "The versions do not match. Please run 'pip install -e .' to synchronize versions. Do you want to continue? [Y/n] " prompt
 | |
| 
 | |
|     if [[ ! "$prompt" =~ ^([yY][eE][sS]|[yY])$ ]]; then
 | |
|         echo "Release process aborted due to version mismatch."
 | |
|         exit 1
 | |
|     else
 | |
|         echo "Proceeding with the release despite the version mismatch."
 | |
|     fi
 | |
| fi
 | |
| 
 | |
| read -p "Creating new release for $TAG. Do you want to continue? [Y/n] " prompt
 | |
| 
 | |
| if [[ $prompt == "y" || $prompt == "Y" || $prompt == "yes" || $prompt == "Yes" ]]; then
 | |
|     python scripts/prepare_changelog.py
 | |
|     git add -A
 | |
|     git commit -m "Bump version to $TAG for release" || true && git push
 | |
|     echo "Creating new git tag $TAG"
 | |
|     git tag "$TAG" -m "$TAG"
 | |
|     git push --tags
 | |
| else
 | |
|     echo "Cancelled"
 | |
|     exit 1
 | |
| fi | 
