| Name | Modified | Size | Downloads / Week |
|---|---|---|---|
| Parent folder | |||
| README.md | 2025-12-21 | 5.5 kB | |
| cppcheck-2.19.0-x64-Setup.msi | 2025-12-21 | 23.8 MB | |
| cppcheck-2.19.0.zip | 2025-12-21 | 4.4 MB | |
| cppcheck-2.19.0.tar.gz | 2025-12-21 | 4.0 MB | |
| cppcheck-2.19.0.tar.bz2 | 2025-12-21 | 3.2 MB | |
| Totals: 5 Items | 35.3 MB | 82 | |
!/bin/bash
A script for creating release packages. The release packages are create in the home directory.
Create release candidate
========================
Review trac roadmap, are tickets closed properly?
Only tickets that should be retargeted should be open.
update cppcheck used in premium addon CI
create jira issue "CI: update cppcheck binary"
cd ~/cppchecksolutions/addon/tools && python3 ci-update-cppcheck.py
check every isPremiumEnabled call: TODO write helper script
- every id should be in --errorlist
git grep 'isPremiumEnabled[(]"' | sed 's/.isPremiumEnabled[(]"//' | sed 's/".//' | sort | uniq > ids1.txt
./cppcheck --errorlist | grep ' id="' | sed 's/. id="//' | sed 's/".//' | sort | uniq > ids2.txt
diff -y ids1.txt ids2.txt
- premiumaddon: check coverage.py
python3 coverage.py --id ; sort ids-*.txt | uniq > ~/cppcheck/ids3.txt
diff -y ids2.txt ids3.txt
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 CXXOPTS=-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 --suppress=normalCheckLevelMaxBranches --xml cli gui/.cpp lib 2> selfcheck.xml
Generate lib/checkers.cpp (TODO the premium checkers should not be statically coded)
cd ~/cppchecksolutions/cppcheck && python3 tools/get_checkers.py > lib/checkers.cpp
Update copyright year TODO release script
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
Update GUI translations
lupdate gui.pro
Create 2.18.x branch
git checkout -b 2.18.x ; git push -u origin 2.18.x
Release notes:
- ensure safety critical issues are listed properly
- empty the releasenotes.txt in main branch
Update version numbers in:
python3 tools/release-set-version.py 2.19.0
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"
Ensure that CI is happy
Tag:
git tag 2.8-rc1
git push --tags
Release
=======
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, install and test cppcheck
copy manual from build-manual
Update download link on index.php main page
Trac:
1. Create ticket "2.18 safety cosmetic changes"
git log --format=oneline 2.17.0..HEAD | egrep -v "^[0-9a-f][ ][ ]([Ff]ix|fixed|Fixup|Fixes|refs)?[ ]#[0-9]+"
2. Check priorities for all tickets in milestone. Should be: safety-*
3. Create new milestone
4. Close old milestone
write a news
save "cppcheck --doc" output on wiki
compile new democlient:
ssh -t danielmarjamaki,cppcheck@shell.sourceforge.net create
./build-cppcheck.sh
run daca with new release
1. edit tools/donate-cpu-server.py. Update OLD_VERSION and SERVER_VERSION
2. scp -i ~/.ssh/osuosl_id_rsa tools/donate-cpu-server.py danielmarjamaki@cppcheck1.osuosl.org:/var/daca@home/
Backup:
* trac: cd /var && nice tar -cJf ~/trac.tar.xz trac-cppcheck/db/trac.db
* daca: cd /var && nice tar -cJf ~/daca.tar.xz daca@home
* git: git checkout -f && git checkout main && git pull && tar -cJf git.tar.xz .git
* git log 2.16.0..2.17.0 > Changelog
* mkdir out && python3 ~/cppchecksolutions/release/getWorkflowAndIssueLogs.py -r danmar/cppcheck -t 2.15.0 -p out
Folder/tag to use
folder=$1 tag=$folder.0
Name of release
releasename=cppcheck-$tag
set -e
cd ~/cppcheck
git checkout $tag
rm -rf upload 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/$folder/ rm $releasename. cd ..
Generate version.txt
make -j12 rm -f cppcheck.cfg ./cppcheck --version > upload/version.txt
cd ~/cppcheck/upload scp version.txt 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 -j12 FILESDIR=~/.cppcheck/$tag MATCHCOMPILER=yes CXXOPTS=-O2 mv cppcheck ~/.cppcheck/cppcheck-$tag
git checkout main