Note: Some steps in this text are to be done by the development coordinator (currently Markus Neteler and Martin Landa) due to needed logins.
Check examples if still compiling
( cd doc/raster/r.example/ ; make clean ; make )
( cd doc/vector/v.example/ ; make clean ; make )
tools/fix_typos.sh
See https://www.transifex.com/grass-gis/grass7/dashboard/
Exception Latvian as Latvian is directly edited in git and then sync'ed from master .po files
cd locale
sh ~/software/grass-addons/tools/transifex_merge.sh
make
make verify
# ... then fix .po files as needed.
#
# requires https://trac.osgeo.org/grass/ticket/3539
## after that push fixes to transifex:
#cd locale/transifex/
#tx --debug push -t
Only allowed in RC cycle, not for final release!
Check that autoconf scripts are up-to-date:
rm -f config.guess config.sub
wget http://git.savannah.gnu.org/cgit/config.git/plain/config.guess
wget http://git.savannah.gnu.org/cgit/config.git/plain/config.sub
git diff config.guess config.sub
autoconf2.69
Now check if configure still works.
If yes, submit to git:
git checkout -b config_sub_update_r78
git add config.guess config.sub configure
git commit -m"config.guess + config.sub: updated from http://git.savannah.gnu.org/cgit/config.git/plain/" config.guess config.sub configure
# test by running ./configure
git push origin config_sub_update_r78
# open PR and merge
rm -f locale/templates/*.pot
rm -f locale/po/messages.mo
rm -f demolocation/PERMANENT/.bash*
find . -name '*~' | xargs -r rm
find . -name '*.bak' | xargs -r rm
find . -name '*.swp' | xargs -r rm
find . -name '.#*' | xargs -r rm
find . -name '*.orig' | xargs -r rm
find . -name '*.rej' | xargs -r rm
find . -name '*.o' | xargs -r rm
find . -name '*.pyc' | xargs -r rm
find . -name 'OBJ.*' | xargs -r rm -r
find . -name '__pycache__' | xargs -r rm -r
rm -f lib/python/ctypes/ctypesgencore/parser/lextab.py
rm -f gui/wxpython/menustrings.py gui/wxpython/build_ext.pyc \
gui/wxpython/xml/menudata.xml gui/wxpython/xml/module_tree_menudata.xml
chmod -R a+r *
Double check:
git status
.. see section below at end of file.
Directly edit VERSION file in GH interface:
https://github.com/OSGeo/grass/blob/releasebranch_7_8/include/VERSION
Example:
7
8
1RC1
2019
(see https://help.github.com/en/articles/creating-releases)
Preparation:
# update from GH
# assumptions:
# - own fork as "origin"
# - remote repo as "upstream"
git fetch --all --prune && git checkout releasebranch_7_8 && \
git merge upstream/releasebranch_7_8 && git push origin releasebranch_7_8
# create version env var for convenience:
MAJOR=`cat include/VERSION | head -1 | tail -1`
MINOR=`cat include/VERSION | head -2 | tail -1`
RELEASE=`cat include/VERSION | head -3 | tail -1`
VERSION=${MAJOR}.${MINOR}.${RELEASE}
echo $VERSION
# RELEASETAG variable not really needed any more:
TODAY=`date +"%Y%m%d"`
RELEASETAG=release_${TODAY}_grass_${MAJOR}_${MINOR}_${RELEASE}
echo $RELEASETAG
echo "$VERSION"
To be done in GH interface:
https://github.com/OSGeo/grass/releases/new
Tag version | target (examples): 7.8.7RC1 | releasebranch_7_8
Add release desciption (re-use existing texts as possible, from https://github.com/OSGeo/grass/releases)
If RC, then check [x] This is a pre-release
# fetch tarball from GitHub
wget https://github.com/OSGeo/grass/archive/${VERSION}.tar.gz -O grass-${VERSION}.tar.gz
md5sum grass-${VERSION}.tar.gz > grass-${VERSION}.md5sum
Using GH API here, see also
gh api repos/OSGeo/grass/releases/generate-notes -f tag_name="7.8.7" -f previous_tag_name=7.8.6 -f target_commitish=releasebranch_7_8 -q .body
Importantly, these notes need to be manually sorted into the various categories.
python3 utils/gitlog2changelog.py
mv ChangeLog ChangeLog_$VERSION
head ChangeLog_$VERSION
gzip ChangeLog_$VERSION
Directly edit VERSION file in GH interface:
https://github.com/OSGeo/grass/blob/releasebranch_7_8/include/VERSION
Example:
7
8
7dev
2022
Commit as "back to dev"
Reset local copy to GH:
# update from GH
# assumptions:
# - own fork as "origin"
# - remote repo as "upstream"
git fetch --all --prune && git checkout releasebranch_7_8 && \
git merge upstream/releasebranch_7_8 && git push origin releasebranch_7_8
Note: grasslxd only reachable via jumphost - https://wiki.osgeo.org/wiki/SAC_Service_Status#GRASS_GIS_server
# Store the source tarball (twice) in (use scp -p FILES grass:):
USER=neteler
SERVER1=grasslxd
SERVER1DIR=/var/www/code_and_data/grass$MAJOR$MINOR/source/
SERVER2=download.osgeo.org
SERVER2DIR=/osgeo/download/grass/grass$MAJOR$MINOR/source/
echo $SERVER1:$SERVER1DIR
echo $SERVER2:$SERVER2DIR
# upload along with associated files:
scp -p grass-$VERSION.* AUTHORS COPYING ChangeLog_$VERSION.gz \
INSTALL REQUIREMENTS.html SUBMITTING $USER@$SERVER1:$SERVER1DIR
scp -p grass-$VERSION.* AUTHORS COPYING ChangeLog_$VERSION.gz \
INSTALL REQUIREMENTS.html SUBMITTING $USER@$SERVER2:$SERVER2DIR
# Only at full release!
# generate link to "latest" source code
ssh $USER@$SERVER1 "cd $SERVER1DIR ; rm -f grass-$MAJOR.$MINOR-latest.tar.gz"
ssh $USER@$SERVER1 "cd $SERVER1DIR ; ln -s grass-$VERSION.tar.gz grass-$MAJOR.$MINOR-latest.tar.gz"
ssh $USER@$SERVER1 "cd $SERVER1DIR ; rm -f grass-$MAJOR.$MINOR-latest.md5sum"
ssh $USER@$SERVER1 "cd $SERVER1DIR ; ln -s grass-$VERSION.tar.md5sum grass-$MAJOR.$MINOR-latest.md5sum"
# verify
echo "https://grass.osgeo.org/grass$MAJOR$MINOR/source/"
# update winGRASS related files: Update the winGRASS version
# https://github.com/landam/wingrass-maintenance-scripts
vim wingrass-maintenance-scripts/grass_packager_release.bat
vim wingrass-maintenance-scripts/grass_addons.sh
vim wingrass-maintenance-scripts/grass_copy_wwwroot.sh
vim wingrass-maintenance-scripts/cronjob.sh # major/minor release only
# update addons - major/minor release only
vim grass-addons/tools/addons/grass-addons-publish.sh
vim grass-addons/tools/addons/grass-addons-build.sh
vim grass-addons/tools/addons/grass-addons.sh
Release is done.
To easily generate the entries for the trac Wiki release page, use the git log
approach:
# get date of previous release from https://github.com/OSGeo/grass/releases
# verify
git log --oneline --after="2021-10-10" | tac
# prepare for trac Wiki release page (incl. PR trac macro)
git log --oneline --after="2021-10-10" | cut -d' ' -f2- | sed 's+^+ * G78:+g' | sed 's+(#+(PR:+g' | sort -u
Write announcement and publish it:
Software pages:
set MAJOR=7
set MINOR=8
set PATCH=7RC1
compile $GIT_PATH/grass7 $GISBASE_PATH/grass787RC1 $ADDON_PATH/grass787RC1/addons
copy_addon 787RC1 7.8.7RC1
Via Web: