-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathREADME.release
More file actions
177 lines (151 loc) · 6.57 KB
/
Copy pathREADME.release
File metadata and controls
177 lines (151 loc) · 6.57 KB
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
174
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.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, ::xotcl::version, ::xotcl::patchlevel
* win/pkg.vc
* library/serialize/serializer.tcl
* library/mongodb/nx-mongo.tcl
* library/mongodb/configure.ac
* library/mongodb/pkgIndex.tcl
* library/xotcl/library/serialize/Serializer.xotcl
in SRCDIR and SRCDIR/library/mongodb/
autoconf
./configure ....