blob: fc97825a95165f5fa43b4e5aa32a1f5d657e8ceb (
plain)
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
|
\input{configpres}
\section{Best Practices}
\title{Best Practices}
\maketitle
\subsection{Best Practices}
\begin{frame}
\frametitle{Source Code Management}
\begin{itemize}
\item repository
\item maintainer
\item patches (submit, review, acknowledge role)
\item separate development branches (maintainer merged)
\item useful commit messages (explain why)
\item open opt-in communication (mailing lists)
\item release tags
\item backups
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Code Implementation}
\begin{itemize}
\item useful comments (explain why)
\item think architecture independent (big/little endian, 32/64 bit)
\item UNIX principle (separate well-defined tasks, do it well)
\item separate interface and workcode (client/server model thinking)
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Bug Tracking}
\begin{itemize}
\item track all bugs
\item close/reopen bugs if necessary
\item include repository commit information when closing
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Reproducible Software}
\begin{itemize}
\item release tags
\item official build environment
\item reproducible build environment
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Release Testing}
\begin{itemize}
\item use official software (debug symbols available offline)
\item leak / electric fence testing
\item regression testing (using archived scripts/programs)
\item open bugs
\item document test results (from tags)
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Releases}
\begin{itemize}
\item archive release binaries
\item archive debug information (matching BuildID!)
\item capture crash data
\end{itemize}
\end{frame}
\input{tailpres}
|