-
Notifications
You must be signed in to change notification settings - Fork 7
/
Copy pathReleaseChecklist
109 lines (75 loc) · 2.63 KB
/
ReleaseChecklist
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
Check done by tools/checklist.csh
=================================
Prototypes in .cpp files? Move to headers!
C's malloc or free used anywhere?
C++ new or delete used anywhere?
C++ fstream, iostream, cout used anywhere?
System headers included directly in cpp files, instead of via common_magma.h?
(There are a few exceptions allowed.)
CUDA or CUBLAS functions used without MAGMA wrappers?
(Some don't have wrappers yet.)
Any instances of (N+nb-1)/nb, etc. creep back in (ceildiv, roundup)?
Style guide compliance (spaces, etc.)
Manual checking of code
=================================
All new functions documented accurately?
All new functions in testing/run_tests.py?
All new functions in sparse-iter/testing/run_tests.py?
All functions pass run_tests.py?
Compilation checks
=================================
Documentation
cd docs && ./groups.sh -- any groups unused or undefined?
(currently QUARK undefined; geqrf_tile unused)
cd docs && make
check errors in output_err
open docs/html/index.html and browse through Modules to see that things look right
Compile & run with -DNDEBUG (no asserts)
This is how MathWorks compiles it.
Compile & run on:
This script will compile and save output from each make.inc file:
tools/checklist_builds.csh [ acml atlas mkl-gcc mkl-icc mkl-gcc-ilp64 mkl-icc-ilp64 ... ]
Linux
icc, gcc
MKL
MKL ILP64
ACML 5 or 6
OpenBLAS
MacOS using gcc & veclib
Windows using CMake & MKL
CUDA 5.0
CUDA 5.5
CUDA 6.0
CUDA 6.5
CUDA 7.0
pgi compilers?
Any compiler warnings?
Posting tar files
=================================
# e.g., for release 1.2.3, optionally beta 4 or release candidate 5
# (1) generate tar file
./tools/MakeMagmaRelease.pl 1.2.3 [-b 4] [-c 5]
When making the final tar file (i.e., after all release testing), this asks to
automatically update the version in magma.h in the SVN & tag the release.
# (2) copy and make group writable, world readable
scp magma-1.2.3.tar.gz zoot:/mnt/projectsfiles/magma/downloads/
ssh zoot
cd /mnt/projectsfiles/magma/downloads
chmod 664 magma-1.2.3.tar.gz
# (3) install web documentation (still on zoot)
cd /mnt/projectsfiles/magma
# move old out of the way
mv doxygen doxygen-old
# move new into place
tar -zxvf downloads/magma-1.2.3.tar.gz magma-1.2.3/docs/html
mv magma-1.2.3/docs/html doxygen
chmod -R a+rX,g+w doxygen
rm -rf magma-1.2.3
# check online
http://icl.cs.utk.edu/magma/
click on Documentation, which should go to here:
http://icl.cs.utk.edu/projectsfiles/magma/doxygen/
# after everything looks good, remove old docs
/bin/rm -rf doxygen-old
# (4) post announcement
verify that you can download it via web browser (i.e., link is correct)