Skip to content
Snippets Groups Projects
Commit a5536031 authored by Allan Blanchard's avatar Allan Blanchard
Browse files

[release] fix set-version

parent b9daaa0c
No related branches found
No related tags found
No related merge requests found
......@@ -29,13 +29,13 @@ if ! test -f VERSION; then
fi
if test -z "$NEXT"; then
echo "Missing argument. Usage is:"
echo "\$ ./dev/set-version.sh <NN.M>"
echo "\$ ./dev/set-version.sh [<NN.M>|dev]"
echo "See the Release Management Documentation for an example."
exit 2
fi
# For macOS: use gsed if available, otherwise test if sed is BSD
if command -v gsed &> /dev/null; then
if command -v gsed &>/dev/null; then
SED=gsed
else
if sed --version 2>/dev/null | grep -q GNU; then
......@@ -46,64 +46,82 @@ else
fi
fi
NEXT_MAJOR=$(echo "$NEXT" | $SED -e s/\\\([0-9]*\\\).[0-9]*.*/\\1/)
NEXT_MINOR=$(echo "$NEXT" | $SED -e s/[0-9]*.\\\([0-9]*\\\).*/\\1/)
NEXT_CODENAME=$(grep "$NEXT_MAJOR " ./doc/release/periodic-elements.txt | cut -d " " -f2)
CURRENT=$(cat VERSION)
CURRENT_MAJOR=$(echo "$CURRENT" | $SED -e s/\\\([0-9]*\\\).[0-9]*.*/\\1/)
CURRENT_MINOR=$(echo "$CURRENT" | $SED -e s/[0-9]*.\\\([0-9]*\\\).*/\\1/)
CURRENT_CODENAME=$(grep "$CURRENT_MAJOR " ./doc/release/periodic-elements.txt | cut -d " " -f2)
echo "NEXT VERSION is:"
echo "- MAJOR: $NEXT_MAJOR"
echo "- MINOR: $NEXT_MINOR"
echo "- CODENAME: $NEXT_CODENAME"
if [[ $NEXT == "dev" ]]; then
echo "Set VERSION to $CURRENT+dev"
echo "Continue? [y/N] "
read CHOICE
case "${CHOICE}" in
"Y" | "y") ;;
*) exit 1 ;;
esac
echo ""
echo "Continue? [y/N] "
read CHOICE
case "${CHOICE}" in
"Y"|"y") ;;
echo "$CURRENT+dev" >VERSION
$SED -i "s/^version: .*/version: \"$CURRENT+dev\"/g" opam
$SED -i "s/^version: .*/version: \"$CURRENT+dev\"/g" tools/lint/frama-c-lint.opam
$SED -i "s/^version: .*/version: \"$CURRENT+dev\"/g" tools/hdrck/frama-c-hdrck.opam
else
NEXT_MAJOR=$(echo "$NEXT" | $SED -e s/\\\([0-9]*\\\).[0-9]*.*/\\1/)
NEXT_MINOR=$(echo "$NEXT" | $SED -e s/[0-9]*.\\\([0-9]*\\\).*/\\1/)
NEXT_CODENAME=$(grep "$NEXT_MAJOR " ./doc/release/periodic-elements.txt | cut -d " " -f2)
echo "NEXT VERSION is:"
echo "- MAJOR: $NEXT_MAJOR"
echo "- MINOR: $NEXT_MINOR"
echo "- CODENAME: $NEXT_CODENAME"
echo ""
echo "Continue? [y/N] "
read CHOICE
case "${CHOICE}" in
"Y" | "y") ;;
*) exit 1 ;;
esac
esac
# Version
# Version
echo "$NEXT" > VERSION
echo "$NEXT_CODENAME" > VERSION_CODENAME
echo "$NEXT" >VERSION
echo "$NEXT_CODENAME" >VERSION_CODENAME
# Opam file
$SED -i "s/^version: .*/version: \"$NEXT_MAJOR.$NEXT_MINOR\"/g" opam
$SED -i "s/\(.*\)$CURRENT_MAJOR.$CURRENT_MINOR-$CURRENT_CODENAME\(.*\)/\1$NEXT_MAJOR.$NEXT_MINOR-$NEXT_CODENAME\2/g" opam
# Opam files
$SED -i "s/^version: .*/version: \"$NEXT_MAJOR.$NEXT_MINOR\"/g" opam
$SED -i "s/\(.*\)$CURRENT_MAJOR.$CURRENT_MINOR-$CURRENT_CODENAME\(.*\)/\1$NEXT_MAJOR.$NEXT_MINOR-$NEXT_CODENAME\2/g" opam
# Changelogs
$SED -i "s/^version: .*/version: \"$NEXT_MAJOR.$NEXT_MINOR\"/g" tools/lint/frama-c-lint.opam
$SED -i "s/^version: .*/version: \"$NEXT_MAJOR.$NEXT_MINOR\"/g" tools/hdrck/frama-c-hdrck.opam
FC_CL_MSG_FUTURE="Open Source Release <next-release>"
FC_CL_MSG_NEXT="Open Source Release $NEXT_MAJOR.$NEXT_MINOR ($NEXT_CODENAME)"
FC_CL_LIN="###############################################################################"
# Changelogs
$SED -i "s/\($FC_CL_MSG_FUTURE\)/\1\n$FC_CL_LIN\n\n$FC_CL_LIN\n$FC_CL_MSG_NEXT/g" Changelog
FC_CL_MSG_FUTURE="Open Source Release <next-release>"
FC_CL_MSG_NEXT="Open Source Release $NEXT_MAJOR.$NEXT_MINOR ($NEXT_CODENAME)"
FC_CL_LIN="###############################################################################"
EA_CL_MSG_FUTURE="Plugin E-ACSL <next-release>"
EA_CL_MSG_NEXT="Plugin E-ACSL $NEXT_MAJOR.$NEXT_MINOR ($NEXT_CODENAME)"
$SED -i "s/\($FC_CL_MSG_FUTURE\)/\1\n$FC_CL_LIN\n\n$FC_CL_LIN\n$FC_CL_MSG_NEXT/g" Changelog
$SED -i "s/\($EA_CL_MSG_FUTURE\)/\1\n$FC_CL_LIN\n\n$FC_CL_LIN\n$EA_CL_MSG_NEXT/g" src/plugins/e-acsl/doc/Changelog
EA_CL_MSG_FUTURE="Plugin E-ACSL <next-release>"
EA_CL_MSG_NEXT="Plugin E-ACSL $NEXT_MAJOR.$NEXT_MINOR ($NEXT_CODENAME)"
WP_CL_MSG_FUTURE="Plugin WP <next-release>"
WP_CL_MSG_NEXT="Plugin WP $NEXT_MAJOR.$NEXT_MINOR ($NEXT_CODENAME)"
$SED -i "s/\($EA_CL_MSG_FUTURE\)/\1\n$FC_CL_LIN\n\n$FC_CL_LIN\n$EA_CL_MSG_NEXT/g" src/plugins/e-acsl/doc/Changelog
$SED -i "s/\($WP_CL_MSG_FUTURE\)/\1\n$FC_CL_LIN\n\n$FC_CL_LIN\n$WP_CL_MSG_NEXT/g" src/plugins/wp/Changelog
WP_CL_MSG_FUTURE="Plugin WP <next-release>"
WP_CL_MSG_NEXT="Plugin WP $NEXT_MAJOR.$NEXT_MINOR ($NEXT_CODENAME)"
# API doc
find src -name '*.ml*' -exec $SED -i -e "s/Frama-C+dev/${NEXT}-${NEXT_CODENAME}/gI" '{}' ';'
$SED -i "s/\($WP_CL_MSG_FUTURE\)/\1\n$FC_CL_LIN\n\n$FC_CL_LIN\n$WP_CL_MSG_NEXT/g" src/plugins/wp/Changelog
# Manuals changes
$SED -i "s/\(^\\\\section\*{Frama-C+dev}\)/%\1\n\n\\\\section\*{$NEXT_MAJOR.$NEXT_MINOR ($NEXT_CODENAME)}/g" \
doc/userman/user-changes.tex
$SED -i "s/\(^\\\\section\*{Frama-C+dev}\)/%\1\n\n\\\\section\*{$NEXT_MAJOR.$NEXT_MINOR ($NEXT_CODENAME)}/g" \
doc/developer/changes.tex
$SED -i "s/\(^\\\\subsection{Frama-C+dev}\)/%\1\n\n\\\\subsection{Frama-C $NEXT_CODENAME}/g" \
doc/aorai/main.tex
$SED -i "s/\(^\\\\section\*{E-ACSL \\\\eacslpluginversion \\\\eacslplugincodename}\)/%\1\n\n\\\\section\*{E-ACSL $NEXT_MAJOR.$NEXT_MINOR $NEXT_CODENAME}/g" \
src/plugins/e-acsl/doc/userman/changes.tex
# API doc
find src -name '*.ml*' -exec $SED -i -e "s/Frama-C+dev/${NEXT}-${NEXT_CODENAME}/gI" '{}' ';'
# Manuals changes
$SED -i "s/\(^\\\\section\*{Frama-C+dev}\)/%\1\n\n\\\\section\*{$NEXT_MAJOR.$NEXT_MINOR ($NEXT_CODENAME)}/g" \
doc/userman/user-changes.tex
$SED -i "s/\(^\\\\section\*{Frama-C+dev}\)/%\1\n\n\\\\section\*{$NEXT_MAJOR.$NEXT_MINOR ($NEXT_CODENAME)}/g" \
doc/developer/changes.tex
$SED -i "s/\(^\\\\subsection{Frama-C+dev}\)/%\1\n\n\\\\subsection{Frama-C $NEXT_CODENAME}/g" \
doc/aorai/main.tex
$SED -i "s/\(^\\\\section\*{E-ACSL \\\\eacslpluginversion \\\\eacslplugincodename}\)/%\1\n\n\\\\section\*{E-ACSL $NEXT_MAJOR.$NEXT_MINOR $NEXT_CODENAME}/g" \
src/plugins/e-acsl/doc/userman/changes.tex
fi
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment