Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Tool: newVersion.sh #1686

Merged
merged 2 commits into from
Feb 9, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# Preamble ####################################################################
#
cmake_minimum_required(VERSION 3.15.0)
project(WarpX VERSION 0.20.5)
project(WarpX VERSION 21.02)

include(${WarpX_SOURCE_DIR}/cmake/WarpXFunctions.cmake)

Expand Down
4 changes: 2 additions & 2 deletions Docs/source/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -66,9 +66,9 @@
# built documents.
#
# The short X.Y version.
version = '20.07'
version = u'21.02'
# The full version, including alpha/beta/rc tags.
release = ''
release = u'21.02'

# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.
Expand Down
2 changes: 1 addition & 1 deletion LICENSE.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
WarpX v20.07 Copyright (c) 2018, The Regents of the University of California, through Lawrence Berkeley National Laboratory, and Lawrence Livermore National Security, LLC, for the operation of Lawrence Livermore National Laboratory (subject to receipt of any required approvals from the U.S. Dept. of Energy). All rights reserved.
WarpX v21.02 Copyright (c) 2018-2021, The Regents of the University of California, through Lawrence Berkeley National Laboratory, and Lawrence Livermore National Security, LLC, for the operation of Lawrence Livermore National Laboratory (subject to receipt of any required approvals from the U.S. Dept. of Energy). All rights reserved.


Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
Expand Down
140 changes: 140 additions & 0 deletions Tools/Release/newVersion.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,140 @@
#!/usr/bin/env bash
#
# Copyright 2021 Axel Huebl
#
# This file is part of WarpX.#

# This file is a maintainer tool to bump the versions inside WarpX'
# source directory at all places where necessary.
#
# Note: this script is only tested with GNUtools (Linux)

set -eu -o pipefail


# Maintainer Inputs ###########################################################

echo "Hi there, this is a WarpX maintainer tool to update the source"
echo "code of WarpX to a new version number on all places where"
echo "necessary."
echo "For it to work, you need write access on the source directory and"
echo "you should be working in a clean git branch without ongoing"
echo "rebase/merge/conflict resolves and without unstaged changes."

# check source dir
REPO_DIR=$(cd $(dirname ${BASH_SOURCE})/../../ && pwd)
echo
echo "Your current source directory is: ${REPO_DIR}"
echo

read -p "Are you sure you want to continue? [y/N] " -r
echo

if [[ ! ${REPLY} =~ ^[Yy]$ ]]
then
echo "You did not confirm with 'y', aborting."
exit 1
fi

echo "We will now run a few sed commands on your source directory."
echo "Please answer the following questions about the version number"
echo "you want to set first:"
echo

read -p "MAJOR version? (e.g. year: $(date +%y)) " -r
MAJOR=${REPLY}
echo
read -p "MINOR version? (e.g. month: $(date +%m)) " -r
MINOR=${REPLY}
echo
read -p "PATCH version? (e.g. usually empty) " -r
PATCH=${REPLY}
echo
read -p "SUFFIX? (e.g. rc2, dev, ... usually empty) " -r
SUFFIX=${REPLY}
echo

if [[ -n "${SUFFIX}" ]]
then
SUFFIX_STR="-$SUFFIX"
else
SUFFIX_STR=""
fi
if [[ ! -n "${PATCH}" ]]
then
PATCH=""
fi

VERSION_STR_NOSUFFIX="${MAJOR}.${MINOR}${PATCH}"
VERSION_STR="${MAJOR}.${MINOR}${PATCH}${SUFFIX_STR}"

echo
echo "Your new version is: ${VERSION_STR}"
echo

read -p "Is this information correct? Will now start updating! [y/N] " -r
echo

if [[ ! ${REPLY} =~ ^[Yy]$ ]]
then
echo "You did not confirm with 'y', aborting."
exit 1
fi


# Updates #####################################################################

# CMake scripts
# CMakeLists.txt: project(WarpX VERSION YY.MM)
sed -i -E "s/"\
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Note: sed -E only works with GNU sed (see comment above)

Since I am currently doing the releases, this is good for now and avoids complicating the script.

"(project\(WarpX VERSION[[:blank:]]+)(.*)(\))/"\
"\1${VERSION_STR_NOSUFFIX}\3/g" \
${REPO_DIR}/CMakeLists.txt

# cmake/dependencies/AMReX.cmake:
# set(WarpX_amrex_branch "development" ... (future)
# find_package(AMReX YY.MM CONFIG ...
sed -i -E "s/"\
"(find_package\(AMReX[[:blank:]]+)(.*)([[:blank:]]+CONFIG.+)/"\
"\1${VERSION_STR_NOSUFFIX}\3/g" \
${REPO_DIR}/cmake/dependencies/AMReX.cmake

# cmake/dependencies/PICSAR.cmake (future)

# setup.py: version = '21.02',
sed -i -E "s/"\
"([[:blank:]]*version[[:blank:]]*=[[:blank:]]*')(.*)('.+)/"\
"\1${VERSION_STR}\3/g" \
${REPO_DIR}/setup.py

# Python/setup.py: version = '21.02',
sed -i -E "s/"\
"([[:blank:]]*version[[:blank:]]*=[[:blank:]]*')(.*)('.+)/"\
"\1${VERSION_STR}\3/g" \
${REPO_DIR}/Python/setup.py

# sphinx / RTD
# docs/source/conf.py
sed -i "s/"\
"[[:blank:]]*version[[:blank:]]*=[[:blank:]]*u.*/"\
"version = u'${VERSION_STR_NOSUFFIX}'/g" \
${REPO_DIR}/Docs/source/conf.py
sed -i "s/"\
"[[:blank:]]*release[[:blank:]]*=[[:blank:]]*u.*/"\
"release = u'${VERSION_STR}'/g" \
${REPO_DIR}/Docs/source/conf.py

# LICENSE
# LICENSE.txt: WarpX vYY.MM Copyright (c) 20YY, The Regents of ...
sed -i -E "s/"\
"(WarpX v)(.*)([[:blank:]]+Copyright \(c\) 2018-)(.*)(, The Regents of.*)/"\
"\1${VERSION_STR_NOSUFFIX}\3$(date +%Y)\5/g" \
${REPO_DIR}/LICENSE.txt


# Epilog ######################################################################

echo
echo "Done. Please check your source, e.g. via"
echo " git diff"
echo "now and commit the changes if no errors occured."
2 changes: 1 addition & 1 deletion cmake/dependencies/AMReX.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -155,7 +155,7 @@ macro(find_amrex)
endif()
set(COMPONENT_PRECISION ${WarpX_PRECISION} P${WarpX_PRECISION})

find_package(AMReX 21.01 CONFIG REQUIRED COMPONENTS ${COMPONENT_ASCENT} ${COMPONENT_DIM} ${COMPONENT_EB} PARTICLES ${COMPONENT_PIC} ${COMPONENT_PRECISION} TINYP LSOLVERS)
find_package(AMReX 21.02 CONFIG REQUIRED COMPONENTS ${COMPONENT_ASCENT} ${COMPONENT_DIM} ${COMPONENT_EB} PARTICLES ${COMPONENT_PIC} ${COMPONENT_PRECISION} TINYP LSOLVERS)
message(STATUS "AMReX: Found version '${AMReX_VERSION}'")
endif()
endmacro()
Expand Down