From a55360312c917f60f5a1b5fb89d0c213c7767e4e Mon Sep 17 00:00:00 2001 From: Allan Blanchard <allan.blanchard@cea.fr> Date: Mon, 15 May 2023 13:38:00 +0200 Subject: [PATCH] [release] fix set-version --- dev/set-version.sh | 106 ++++++++++++++++++++++++++------------------- 1 file changed, 62 insertions(+), 44 deletions(-) diff --git a/dev/set-version.sh b/dev/set-version.sh index cbf0a4af06f..09f362f28ff 100755 --- a/dev/set-version.sh +++ b/dev/set-version.sh @@ -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 -- GitLab