File: README.release

package info (click to toggle)
nsf 2.4.0-1
  • links: PTS, VCS
  • area: main
  • in suites: sid, trixie
  • size: 13,208 kB
  • sloc: ansic: 32,687; tcl: 10,723; sh: 660; pascal: 176; javascript: 135; lisp: 41; makefile: 24
file content (173 lines) | stat: -rw-r--r-- 6,509 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
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=<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.3 to branches/only sections
      commit that change
      (continue with tagging)

   - tag version in git and commit
       git tag -a 2.3.0 -m 2.3.0
       git push --tags
       # git push --follow-tags
       # git push commit

       In case retagging is necessary:
         git tag -d 2.3.0
         git tag -a 2.3.0 -m 2.3.0
         git push origin -f --tags

   - create branches for CI systems (Travis, AppVeyor)
     git checkout -b 2.3 2.3.0
     git push origin 2.3
     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.3.0.tar.gz |sort -rn -k 5,6|less


  -  put NX API and shell onto sourceforge:
      * 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.3.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 ....