Steps for a beta release: - docs: * update all docs with asciidoc in doc/ - code: * Tcl 8.5: * configure with --enable-development make test * configure with --enable-memcount=yes make test 2>&1|cat |fgrep Overall * configure with --enable-development and activate valgrind in Makefile make test 2>&1|cat |fgrep "definitely lost" (8.5.11 ok, when every test returns "40 bytes in 2 blocks") (8.5.14 ok, when on test reurns "64 bytes in 1 blocks") * get rid of non-ansi-c make "CFLAGS_DEFAULT=-ansi -pedantic" (warnings are ok, errors not) * compile with clang make "CC=clang" make "CC=clang" test * run static analysis: make cppcheck #/opt/local/bin/scan-build-mp-8.0 -enable-checker alpha make /opt/local/bin/scan-build-mp-8.0 make /opt/local/bin/scan-view-mp-8.0 ... * run Coverity (7.6.0, requires gcc 4.8): (sudo port install gcc48) (download Coverity Build Tool from https://scan.coverity.com/download/) make clean rm -rf cov-int/ /usr/local/cov-analysis-macosx-7.6.0/bin/cov-build --dir cov-int make CC=gcc-mp-4.8 tar czvf /tmp/nsf.tgz cov-int curl --form token=jJ1QoqZ2Ksriz6JXtI3aHg \ --form email= \ --form file=@/tmp/nsf.tgz \ --form version="`git describe --tags`" \ --form description="maintenance checkout" \ https://scan.coverity.com/builds?project=Next+Scripting+Framework * configure without --enable-development make install make install-aol test with NaviServer/AOLserver (xowiki/xowf) * Tcl 8.6: * configure with --enable-development make test * configure with --enable-memcount=yes make test 2>&1|cat |fgrep Overall * configure with --enable-development and activate valgrind in Makefile make test 2>&1|cat |fgrep "definitely lost" (8.6b2 ok, when every test returns "40 bytes in 2 blocks") (8.6.0 or later ok, when every test returns "0 bytes in 0 blocks") * valgrind via vagrant: 1. Install vagrant: https://www.vagrantup.com/downloads 2. Install VirtualBox: https://www.virtualbox.org/wiki/Downloads 3. Check out newest box version: https://app.vagrantup.com/boxes/search?utf8=%E2%9C%93&sort=created&provider=&q=by+chef+bento%2Fubuntu-*+ 4. $ mkdir -p ~/VMs/ubuntu-21.04 5. Add NSF as synced folder: Vagrantfile config.vm.synced_folder "/path/to/nsf", "/home/vagrant/nsf" config.vm.synced_folder "/path/to/tcl", "/home/vagrant/tcl" 5. $ cd VMs/ubuntu-21.04 $ vagrant init bento/ubuntu-21.04 $ vagrant up $ vagrant ssh 6. With box: vagrant@vagrant:~$ bash vagrant@vagrant:~$ apt update; apt upgrade vagrant@vagrant:~$ apt install valgrind 7. Setup `apt install tcl-dev` or a custom tcl build 8. vagrant@vagrant:~$ cd nsf && ./configure CFLAGS=-DPURIFY --enable-development 9. Activate valgrind in Makefile (uncomment line with TCLSH plus valgrind) 10. vagrant@vagrant:~$ cat valgrind.out | fgrep "definitely lost" 11. vagrant@vagrant:~$ cat valgrind.out | fgrep "ERROR SUMMARY" (incl. invalid reads) - test tk apps under windows - Announcement * Summarize changes since the last release in doc/Announce-VERSION As source use e.g. git log --date-order --date=short|less ~/scripts/git-changelog2 -- 2.3.0..HEAD --no-merges > ChangeLog-2.3.0-HEAD Get: https://git.savannah.gnu.org/gitweb/?p=gnulib.git;a=blob_plain;f=build-aux/gitlog-to-changelog;hb=HEAD curl -Lo ../git-changelog 'https://git.savannah.gnu.org/gitweb/?p=gnulib.git;a=blob_plain;f=build-aux/gitlog-to-changelog;hb=HEAD' Run: ../git-changelog 2.3.0..HEAD --format=%s%n%b[%h] -- --no-merges > ChangeLog-2.3.0-HEAD Diffstats: git diff --stat 2.3.0..HEAD * Run spell checker over announcement + ChangeLog * git add announcement - rebuild documentation * Prerequisites: o dtplite (tcllib) o asciidoc (port install asciidoc) o Chrome * make doc * make pdfdoc (currently, it is necessary to manually edit next-tutorial.html and next-migration.html and replace setInterval() + next 4 lines by reinstall()) * call "make doc" again to remove editing traces - build test-tar-file * make tar * check content of tar file tar ztvf ../nsf2.4.0.tar.gz |sort -rn -k 5,6|less - create branch entries for CI systems (Travis, AppVeyor) add 2.4 to branches/only sections commit that change (continue with tagging) - tag version in git and commit git tag -a 2.4.0 -m 2.4.0 git push --tags # git push --follow-tags # git push commit In case retagging is necessary: git tag -d 2.4.0 git tag -a 2.4.0 -m 2.4.0 git push origin -f --tags - create branches for CI systems (Travis, AppVeyor) git checkout -b 2.4 2.4.0 git push origin 2.4 register a cron task for the new branch on Travis (website) - build tar * (make sure accurate COMMIT file is present, e.g., run ./configure once?) * make tar * check content of tar file tar ztvf ../nsf2.4.0.tar.gz |sort -rn -k 5,6|less - put NX API and shell onto sourceforge: * (Make sure to have performed ./configure once, so that version.inc is in place!) * cd doc/ * dtplite -o /tmp/doc/ -style man.css -header header.html.inc html . * mv /tmp/doc/toc.html /tmp/doc/index.html * scp -r /tmp/doc/* {gneumann|foxcruiser}@web.sourceforge.net:/home/project-web/next-scripting/htdocs/ * check https://next-scripting.sourceforge.io/ - update archive at sourceforge * create folder with version name * upload tar file to new folder * upload announce to new folder and rename it to README - update web site * Stefan, please add recommended steps here - prepare next release: rename folder containing nsf (e.g. to nsf2.4.0) update version number in * configure.ac (NsfVersion, NSF_MAJOR_VERSION, NSF_MINOR_VERSION) * library/nx/nx.tcl * library/nx/pkgIndex.tcl * library/xotcl/library/xotcl2.tcl * win/pkg.vc * library/serialize/serializer.tcl * library/mongodb/nx-mongo.tcl * library/mongodb/configure.ac in SRCDIR and SRCDIR/library/mongodb/ autoconf ./configure ....