This was causing some code not to be enabled in the selfchecks leading to some missing warnings.
135 lines
4.3 KiB
Bash
Executable File
135 lines
4.3 KiB
Bash
Executable File
#!/bin/bash
|
|
#
|
|
# A script for creating release packages. The release packages are create in the home directory.
|
|
#
|
|
# Create release candidate
|
|
# ========================
|
|
#
|
|
# Windows installer:
|
|
# - ensure latest build was successful
|
|
# - ensure cfg files etc are included (win_installer/cppcheck.wxs)
|
|
#
|
|
# self check, fix critical issues:
|
|
# make clean && make CXXFLAGS=-O2 MATCHCOMPILER=yes -j4
|
|
# ./cppcheck -D__CPPCHECK__ -D__GNUC__ -DCHECK_INTERNAL -DHAVE_RULES --std=c++11 --library=cppcheck-lib --library=qt --enable=style --inconclusive --inline-suppr --suppress=bitwiseOnBoolean --suppress=shadowFunction --suppress=useStlAlgorithm --suppress=*:externals/picojson.h --suppress=functionConst --suppress=functionStatic --xml cli gui/*.cpp lib 2> selfcheck.xml
|
|
#
|
|
# Update translations
|
|
# lupdate gui.pro
|
|
#
|
|
# Update copyright year
|
|
# git diff 2.8 -- */*.cpp */*.h | grep '^diff --git a/' | sed 's|.* b/||' | xargs sed -i 's/Copyright (C) 2007-20[12]./Copyright (C) 2007-2022/'
|
|
# git diff | grep '^diff --git a/'
|
|
#
|
|
# Make sure "cppcheck --errorlist" works:
|
|
# make clean && make -j4 && ./cppcheck --errorlist > errlist.xml && xmllint --noout errlist.xml
|
|
#
|
|
# Update AUTHORS using output from:
|
|
# git log --format='%aN' 2.7..HEAD | sort -u > AUTHORS2 && diff -y AUTHORS AUTHORS2 | less
|
|
#
|
|
# Create 2.8.x branch
|
|
# git checkout -b 2.8.x ; git push -u origin 2.8.x
|
|
#
|
|
# Update version numbers in:
|
|
# sed -i -r "s/version 2[.][0-9]+([.]99)*/version 2.9/" cli/main.cpp
|
|
# sed -i -r "s|2[.][0-9]+([.]99)*|2.9.0|" cmake/versions.cmake # version must have 3 parts.
|
|
# sed -i -r "s/MINOR [0-9]+/MINOR 9/" lib/version.h
|
|
# sed -i -r "s/2[.][0-9]+([.]99)*/2.9/" win_installer/productInfo.wxi
|
|
# sed -i -r "s/subtitle: Version 2\.[0-9]+/subtitle: Version 2.9/" man/*.md
|
|
# Ensure that "-rc1" is added in productInfo.wxi and lib/version.h
|
|
# Verify:
|
|
# grep '\.99' */*.[ch]* && grep '[0-9][0-9] dev' */*.[ch]*
|
|
# egrep "2\.[0-9]+" */*.h */*.cpp man/*.md | grep -v "test/test" | less
|
|
# git commit -a -m "2.8: Set versions"
|
|
#
|
|
# Build and test the windows installer
|
|
#
|
|
# Update the Makefile:
|
|
# make dmake && ./dmake --release
|
|
# git commit -a -m "2.8: Updated Makefile"
|
|
#
|
|
# Tag:
|
|
# git tag 2.8-rc1
|
|
# git push --tags
|
|
#
|
|
# Release
|
|
# =======
|
|
#
|
|
# Write release notes
|
|
#
|
|
# Remove "-rc1" from versions. Test: git grep "\-rc[0-9]"
|
|
#
|
|
# Create a release folder on sourceforge:
|
|
# https://sourceforge.net/projects/cppcheck/files/cppcheck/
|
|
#
|
|
# git tag 2.8 ; git push --tags
|
|
# ./createrelease 2.8
|
|
#
|
|
# copy msi from release-windows
|
|
# copy manual from build-manual
|
|
#
|
|
# Update download link on index.php main page
|
|
#
|
|
# write a news
|
|
#
|
|
# save "cppcheck --doc" output on wiki
|
|
#
|
|
# compile new democlient:
|
|
# ssh -t danielmarjamaki,cppcheck@shell.sourceforge.net create
|
|
# ./build-cppcheck.sh 2.8
|
|
#
|
|
# run daca with new release
|
|
# 1. edit tools/donate-cpu-server.py. Update OLD_VERSION and VERSION
|
|
# 2. scp -i ../.ssh/osuosl_id_rsa tools/donate-cpu-server.py danielmarjamaki@cppcheck1.osuosl.org:/var/daca@home/
|
|
#
|
|
# self check, fix stylistic issues:
|
|
# ./cppcheck -D__CPPCHECK__ -D__GNUC__ -DCHECK_INTERNAL -DHAVE_RULES --library=cppcheck-lib --enable=style --inconclusive --inline-suppr --suppress=bitwiseOnBoolean --suppress=shadowFunction --suppress=useStlAlgorithm --suppress=*:externals/picojson.h cli gui/*.cpp lib
|
|
#
|
|
# Set debug version (see 803eea912c9512c810a7e78d58bb927d89a6daa1)
|
|
|
|
# Tag to use
|
|
tag=$1
|
|
|
|
# Name of release
|
|
releasename=cppcheck-$tag
|
|
|
|
set -e
|
|
|
|
cd ~/cppcheck
|
|
|
|
git checkout $tag
|
|
|
|
mkdir -p upload
|
|
|
|
make clean
|
|
|
|
# Create archives..
|
|
git archive --format=tar --prefix=$releasename/ $tag | gzip > upload/$releasename.tar.gz
|
|
git archive --format=tar --prefix=$releasename/ $tag | bzip2 > upload/$releasename.tar.bz2
|
|
git archive --format=zip -9 --prefix=$releasename/ $tag > upload/$releasename.zip
|
|
cd upload
|
|
scp $releasename.* danielmarjamaki,cppcheck@frs.sourceforge.net:/home/frs/project/c/cp/cppcheck/cppcheck/$tag/
|
|
rm $releasename.*
|
|
cd ..
|
|
|
|
# Generate version.txt
|
|
make -j4
|
|
./cppcheck --version > upload/version.txt
|
|
|
|
cd ~/cppcheck/upload
|
|
scp * danielmarjamaki,cppcheck@web.sourceforge.net:htdocs/
|
|
|
|
cd ~/cppcheck
|
|
rm -rf upload
|
|
|
|
# Local cppcheck binary
|
|
mkdir -p ~/.cppcheck/$tag
|
|
cd ~/.cppcheck/$tag
|
|
cp -R ~/cppcheck/cfg .
|
|
cp -R ~/cppcheck/addons .
|
|
cp -R ~/cppcheck/platforms .
|
|
cd ~/cppcheck
|
|
make clean ; make -j4 FILESDIR=~/.cppcheck/$tag MATCHCOMPILER=yes
|
|
mv cppcheck ~/.cppcheck/cppcheck-$tag
|
|
|
|
git checkout main
|