Download Latest Version cppcheck-2.19.0.tar.gz (4.0 MB)
Email in envelope

Get an email when there's a new version of cppcheck

Home / cppcheck / 2.19
Name Modified Size InfoDownloads / 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

Source: README.md, updated 2025-12-21