##// END OF EJS Templates
use relative filename in latex and dvips commands
use relative filename in latex and dvips commands

File last commit:

r27520:b2f71a87
r27702:df3b1605
Show More
release_helper.sh
251 lines | 6.4 KiB | application/x-sh | BashLexer
/ tools / release_helper.sh
Matthias Bussonnier
add release helper
r24981 # Simple tool to help for release
Matthias Bussonnier
a few typos
r25315 # when releasing with bash, simple source it to get asked questions.
Matthias Bussonnier
add release helper
r24981
Matthias Bussonnier
Add stats and some early checks in release script
r25157 # misc check before starting
python -c 'import keyring'
python -c 'import twine'
python -c 'import sphinx'
python -c 'import sphinx_rtd_theme'
Nikita Kniazev
Remove iptest and other Nose-dependent code
r27042 python -c 'import pytest'
Matthias Bussonnier
Add stats and some early checks in release script
r25157
Matthias Bussonnier
add release helper
r24981
Matthias Bussonnier
update colors
r25179 BLACK=$(tput setaf 1)
Matthias Bussonnier
release 7.6.0
r25128 RED=$(tput setaf 1)
Matthias Bussonnier
update colors
r25179 GREEN=$(tput setaf 2)
YELLOW=$(tput setaf 3)
BLUE=$(tput setaf 4)
MAGENTA=$(tput setaf 5)
CYAN=$(tput setaf 6)
WHITE=$(tput setaf 7)
Matthias Bussonnier
release 7.6.0
r25128 NOR=$(tput sgr0)
Matthias Bussonnier
add release helper
r24981
Matthias Bussonnier
release script zsh compatibility
r27183 echo "Will use $BLUE'$EDITOR'$NOR to edit files when necessary"
Matthias Bussonnier
some updates to the release scripts
r25282 echo -n "PREV_RELEASE (X.y.z) [$PREV_RELEASE]: "
read input
PREV_RELEASE=${input:-$PREV_RELEASE}
echo -n "MILESTONE (X.y) [$MILESTONE]: "
read input
MILESTONE=${input:-$MILESTONE}
echo -n "VERSION (X.y.z) [$VERSION]:"
read input
VERSION=${input:-$VERSION}
Matthias Bussonnier
back to dev, and tools updates
r25300 echo -n "BRANCH (master|X.y) [$BRANCH]:"
Matthias Bussonnier
some updates to the release scripts
r25282 read input
Matthias Bussonnier
back to dev, and tools updates
r25300 BRANCH=${input:-$BRANCH}
Matthias Bussonnier
some updates to the release scripts
r25282
ask_section(){
echo
Matthias Bussonnier
release script zsh compatibility
r27183 echo $BLUE"$1"$NOR
Matthias Bussonnier
reset color after asking or it stays green
r25411 echo -n $GREEN"Press Enter to continue, S to skip: "$NOR
Matthias Bussonnier
release script zsh compatibility
r27183 if [ "$ZSH_NAME" = "zsh" ] ; then
read -k1 value
value=${value%$'\n'}
else
read -n1 value
fi
if [ -z "$value" ] || [ $value = 'y' ]; then
Matthias Bussonnier
some updates to the release scripts
r25282 return 0
fi
return 1
}
Matthias Bussonnier
more updates to documentation aud automation
r24982
Matthias Bussonnier
Improvement to release script
r26558 maybe_edit(){
echo
echo $BLUE"$1"$NOR
Matthias Bussonnier
release script zsh compatibility
r27183 echo -n $GREEN"Press ${BLUE}e$GREEN to Edit ${BLUE}$1$GREEN, any other keys to skip: "$NOR
if [ "$ZSH_NAME" = "zsh" ] ; then
read -k1 value
value=${value%$'\n'}
else
read -n1 value
fi
Matthias Bussonnier
Improvement to release script
r26558 echo
if [ $value = 'e' ] ; then
Matthias Bussonnier
release script zsh compatibility
r27183 $=EDITOR $1
Matthias Bussonnier
Improvement to release script
r26558 fi
}
Matthias Bussonnier
add release helper
r24981
Matthias Bussonnier
more updates to documentation aud automation
r24982 echo
Dimitri Papadopoulos
Typos found by codespell
r26875 if ask_section "Updating what's new with information from docs/source/whatsnew/pr"
Matthias Bussonnier
some updates to the release scripts
r25282 then
python tools/update_whatsnew.py
echo
echo $BLUE"please move the contents of "docs/source/whatsnew/development.rst" to version-X.rst"$NOR
echo $GREEN"Press enter to continue"$NOR
read
fi
if ask_section "Gen Stats, and authors"
then
echo
echo $BLUE"here are all the authors that contributed to this release:"$NOR
git log --format="%aN <%aE>" $PREV_RELEASE... | sort -u -f
echo
Matthias Bussonnier
update v7 stats
r25298 echo $BLUE"If you see any duplicates cancel (Ctrl-C), then edit .mailmap."
echo $GREEN"Press enter to continue:"$NOR
Matthias Bussonnier
some updates to the release scripts
r25282 read
echo $BLUE"generating stats"$NOR
python tools/github_stats.py --milestone $MILESTONE > stats.rst
Matthias Bussonnier
add release helper
r24981
Matthias Bussonnier
some updates to the release scripts
r25282 echo $BLUE"stats.rst files generated."$NOR
echo $GREEN"Please merge it with the right file (github-stats-X.rst) and commit."$NOR
echo $GREEN"press enter to continue."$NOR
read
Matthias Bussonnier
add release helper
r24981
Matthias Bussonnier
some updates to the release scripts
r25282 fi
Matthias Bussonnier
add release helper
r24981
Matthias Bussonnier
Add instruction to list the API changes....
r25776 if ask_section "Generate API difference (using frapuccino)"
then
echo $BLUE"Checking out $PREV_RELEASE"$NOR
git checkout $PREV_RELEASE
Matthias Bussonnier
Update API comparison using frappuccino....
r27311 sleep 1
Matthias Bussonnier
Add instruction to list the API changes....
r25776 echo $BLUE"Saving API to file $PREV_RELEASE"$NOR
Matthias Bussonnier
Update API comparison using frappuccino....
r27311 frappuccino IPython IPython.kernel IPython.lib IPython.qt IPython.lib.kernel IPython.html IPython.frontend IPython.external --save IPython-$PREV_RELEASE.json
luz paz
Fix various typos...
r27520 echo $BLUE"coming back to $BRANCH"$NOR
Matthias Bussonnier
Add instruction to list the API changes....
r25776 git checkout $BRANCH
Matthias Bussonnier
Update API comparison using frappuccino....
r27311 sleep 1
Matthias Bussonnier
Add instruction to list the API changes....
r25776 echo $BLUE"comparing ..."$NOR
Matthias Bussonnier
Update API comparison using frappuccino....
r27311 frappuccino IPython IPython.kernel IPython.lib --compare IPython-$PREV_RELEASE.json
Matthias Bussonnier
Add instruction to list the API changes....
r25776 echo $GREEN"Use the above guideline to write an API changelog ..."$NOR
echo $GREEN"Press any keys to continue"$NOR
read
fi
Matthias Bussonnier
add release helper
r24981 echo "Cleaning repository"
git clean -xfdi
Matthias Bussonnier
release 7.8.0
r25182 echo $GREEN"please update version number in ${RED}IPython/core/release.py${NOR} , Do not commit yet – we'll do it later."$NOR
Matthias Bussonnier
try to auto comment ''/.dev
r25946 echo $GREEN"I tried ${RED}sed -i bkp -e '/Uncomment/s/^# //g' IPython/core/release.py${NOR}"
sed -i bkp -e '/Uncomment/s/^# //g' IPython/core/release.py
rm IPython/core/release.pybkp
Matthias Bussonnier
release script zsh compatibility
r27183 git diff | cat
Matthias Bussonnier
Improvement to release script
r26558 maybe_edit IPython/core/release.py
Matthias Bussonnier
add release helper
r24981
Matthias Bussonnier
release 7.8.0
r25182 echo $GREEN"Press enter to continue"$NOR
Matthias Bussonnier
add release helper
r24981 read
Matthias Bussonnier
more updates to documentation aud automation
r24982
Matthias Bussonnier
some sections
r25314 if ask_section "Build the documentation ?"
then
make html -C docs
echo
echo $GREEN"Check the docs, press enter to continue"$NOR
read
Matthias Bussonnier
more updates to documentation aud automation
r24982
Matthias Bussonnier
some sections
r25314 fi
Matthias Bussonnier
more updates to documentation aud automation
r24982
Matthias Bussonnier
a few typos
r25315 if ask_section "Should we commit, tag, push... etc ? "
Matthias Bussonnier
some sections
r25314 then
echo
Matthias Bussonnier
release 7.11.1
r25406 echo $BLUE"Let's commit : git commit -am \"release $VERSION\" -S"
Matthias Bussonnier
some sections
r25314 echo $GREEN"Press enter to commit"$NOR
read
git commit -am "release $VERSION" -S
echo
echo $BLUE"git push origin \$BRANCH ($BRANCH)?"$NOR
echo $GREEN"Make sure you can push"$NOR
echo $GREEN"Press enter to continue"$NOR
read
git push origin $BRANCH
echo
echo "Let's tag : git tag -am \"release $VERSION\" \"$VERSION\" -s"
echo $GREEN"Press enter to tag commit"$NOR
read
git tag -am "release $VERSION" "$VERSION" -s
echo
echo $BLUE"And push the tag: git push origin \$VERSION ?"$NOR
echo $GREEN"Press enter to continue"$NOR
read
git push origin $VERSION
echo $GREEN"please update version number and back to .dev in ${RED}IPython/core/release.py"
Matthias Bussonnier
try to auto comment ''/.dev
r25946 echo $GREEN"I tried ${RED}sed -i bkp -e '/Uncomment/s/^/# /g' IPython/core/release.py${NOR}"
sed -i bkp -e '/Uncomment/s/^/# /g' IPython/core/release.py
rm IPython/core/release.pybkp
Matthias Bussonnier
release script zsh compatibility
r27183 git diff | cat
Matthias Bussonnier
try to auto comment ''/.dev
r25946 echo $GREEN"Please bump ${RED}the minor version number${NOR}"
Matthias Bussonnier
Improvement to release script
r26558 maybe_edit IPython/core/release.py
Matthias Bussonnier
some sections
r25314 echo ${BLUE}"Do not commit yet – we'll do it later."$NOR
Matthias Bussonnier
try to auto comment ''/.dev
r25946
Matthias Bussonnier
some sections
r25314
echo $GREEN"Press enter to continue"$NOR
read
echo
Matthias Bussonnier
some updates to release tool
r25404 echo "Let's commit : "$BLUE"git commit -am \"back to dev\""$NOR
Matthias Bussonnier
some sections
r25314 echo $GREEN"Press enter to commit"$NOR
read
Matthias Bussonnier
some updates to release tool
r25404 git commit -am "back to dev"
Matthias Bussonnier
some updates to release scripts
r25412
echo
echo $BLUE"git push origin \$BRANCH ($BRANCH)?"$NOR
echo $GREEN"Press enter to continue"$NOR
read
git push origin $BRANCH
Matthias Bussonnier
some sections
r25314
echo
echo $BLUE"let's : git checkout $VERSION"$NOR
echo $GREEN"Press enter to continue"$NOR
read
git checkout $VERSION
fi
Matthias Bussonnier
back to dev, and tools updates
r25300
Matthias Bussonnier
some sections
r25314 if ask_section "Should we build and release ?"
then
Matthias Bussonnier
Update the release process to attempt reproducible builds....
r25769
echo $BLUE"going to set SOURCE_DATE_EPOCH"$NOR
echo $BLUE'export SOURCE_DATE_EPOCH=$(git show -s --format=%ct HEAD)'$NOR
echo $GREEN"Press enter to continue"$NOR
read
export SOURCE_DATE_EPOCH=$(git show -s --format=%ct HEAD)
echo $BLUE"SOURCE_DATE_EPOCH set to $SOURCE_DATE_EPOCH"$NOR
echo $GREEN"Press enter to continue"$NOR
read
echo
echo $BLUE"Attempting to build package..."$NOR
tools/release
echo $RED'$ shasum -a 256 dist/*'
shasum -a 256 dist/*
echo $NOR
echo $BLUE"We are going to rebuild, node the hash above, and compare them to the rebuild"$NOR
echo $GREEN"Press enter to continue"$NOR
read
Matthias Bussonnier
back to dev, and tools updates
r25300
Matthias Bussonnier
some sections
r25314 echo
echo $BLUE"Attempting to build package..."$NOR
Matthias Bussonnier
back to dev
r25275
Matthias Bussonnier
some updates to release tool
r25404 tools/release
Matthias Bussonnier
print the version on crash
r25284
Matthias Bussonnier
Update the release process to attempt reproducible builds....
r25769 echo $RED"Check the shasum for SOURCE_DATE_EPOCH=$SOURCE_DATE_EPOCH"
echo $RED'$ shasum -a 256 dist/*'
Matthias Bussonnier
some sections
r25314 shasum -a 256 dist/*
Matthias Bussonnier
some updates to release tool
r25404 echo $NOR
Matthias Bussonnier
release 7.6.0
r25128
Matthias Bussonnier
some sections
r25314 if ask_section "upload packages ?"
then
Matthias Bussonnier
some updates to release tool
r25404 tools/release upload
Matthias Bussonnier
some sections
r25314 fi
fi