Skip to content

Commit

Permalink
Merge GEOS-Chem 14.2.3 and HEMCO 3.7.2 into dev/14.3.0
Browse files Browse the repository at this point in the history
This merge brings the following into the GEOS-Chem 14.3.0 development
branch (dev/14.3.0):

- GEOS-Chem (science codebase) 14.2.3
- HEMCO 3.7.2
- Updated CHANGELOG.md
- ./release/changeVersionNumbers.sh script

Signed-off-by: Bob Yantosca <[email protected]>
  • Loading branch information
yantosca committed Dec 1, 2023
2 parents 8d832ad + cfb0626 commit 52fe737
Show file tree
Hide file tree
Showing 4 changed files with 125 additions and 2 deletions.
119 changes: 119 additions & 0 deletions .release/changeVersionNumbers.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,119 @@
#!/bin/bash

#EOC
#------------------------------------------------------------------------------
# GEOS-Chem Global Chemical Transport Model !
#------------------------------------------------------------------------------
#BOP
#
# !MODULE: changeVersionNumbers.sh
#
# !DESCRIPTION: Bash script to change the version numbers in the appropriate
# files in the GCClassic directory structure. Run this before releasing
# a new GEOS-Chem Classic version.
#\\
#\\
# !CALLING SEQUENCE:
# $ ./changeVersionNumbers.sh X.Y.Z # X.Y.Z = GCClassic version number
#EOP
#------------------------------------------------------------------------------
#BOC

function replace() {

#========================================================================
# Function to replace text in a file via sed.
#
# 1st argument: Search pattern
# 2nd argument: Replacement text
# 3rd argument: File in which to search and replace
#========================================================================

sed -i -e "s/${1}/${2}/" "${3}"
}


function exitWithError() {

#========================================================================
# Display and error message and exit
#========================================================================

echo "Could not update version numbers in ${1}... Exiting!"
exit 1
}


function main() {

#========================================================================
# Replaces the version number in the files listed.
#
# 1st argument: New version number to use
#========================================================================

# New version number
version="${1}"

# Save this directory path and change to root directory
thisDir=$(pwd -P)
cd ..

#========================================================================
# Update version numbers in various files
#========================================================================

# Pattern to match: X.Y.Z
pattern='[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*'

# List of files to replace
files=( \
"CMakeLists.txt" \
"docs/source/conf.py" \
)

# Replace version numbers in files
for file in ${files[@]}; do
replace "${pattern}" "${version}" "${file}"
[[ $? -ne 0 ]] && exitWithError "${file}"
echo "GCClassic version updated to ${version} in ${file}"
done

#========================================================================
# Update version number and date in CHANGELOG.md
#========================================================================

# Pattern to match: "[Unreleased] - TBD"
pattern='\[.*Unreleased.*\].*'
date=$(date -Idate)

# List of files to replace
files=( \
"CHANGELOG.md" \
"src/GEOS-Chem/CHANGELOG.md" \
)

# Replace version numbers in files
for file in ${files[@]}; do
replace "${pattern}" "\[${version}\] - ${date}" "${file}"
[[ $? -ne 0 ]] && exitWithError "${file}"
echo "GCClassic version updated to ${version} in ${file}"
done

# Return to the starting directory
cd "${thisDir}"
}

# ---------------------------------------------------------------------------

# Expect 1 argument, or exit with error
if [[ $# -ne 1 ]]; then
echo "Usage: ./changeVersionNumbers.sh VERSION"
exit 1
fi

# Replace version numbers
main "${1}"

# Return status
exit $?
4 changes: 4 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,10 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
### Changed
- Updated GEOS-Chem submodule to 14.3.0

## [14.2.3] - 2023-12-01
### Added
- Script `.release/changeVersionNumbers.sh` to change version numbers before a new GEOS-Chem Classic release

## [14.2.2] - 2023-10-23
### Changed
- Updated GEOS-Chem submodule to 14.2.2
Expand Down

0 comments on commit 52fe737

Please sign in to comment.