]> git.donarmstrong.com Git - debbugs-presentations.git/commitdiff
update debbugs
authorDon Armstrong <don@donarmstrong.com>
Sun, 24 Aug 2014 02:41:35 +0000 (19:41 -0700)
committerDon Armstrong <don@donarmstrong.com>
Sun, 24 Aug 2014 02:41:35 +0000 (19:41 -0700)
debconf14/debbugs.Rnw

index 0ff7ffdfcb90deb7ee2114508e75efee8708fbe0..048c4c7e8f16b20e58e449fa2df544bf6a140b68 100644 (file)
@@ -6,26 +6,72 @@
 }
 
 
-\usepackage{rotating}
+\usepackage[no-math]{fontspec}
+\setmainfont[ExternalLocation, 
+             Mapping=tex-text,
+             BoldFont=FreeSerifBold,
+             ItalicFont=FreeSerifItalic,
+             BoldItalicFont=FreeSerifBoldItalic]{FreeSerif}
+\setsansfont[ExternalLocation, 
+             Mapping=tex-text,
+             BoldFont=FreeSerifBold,
+             ItalicFont=FreeSerifItalic,
+             BoldItalicFont=FreeSerifBoldItalic,
+             Scale=MatchLowercase]{FreeSerif}
+\setmonofont{FreeMono}
+
+\usepackage{booktabs}
 \usepackage{multirow}
-\usepackage[english]{babel}
-\usepackage[utf8x]{inputenc}
-\usepackage{ucs}
-\usepackage{textcomp}
-\usepackage[T1]{fontenc}
-\usepackage[draft]{fixme}
-\usepackage{amsfonts}
-\usepackage{wasysym}
-\usepackage{tikz}
+\usepackage{setspace}
+\usepackage[backend=biber,natbib=true,hyperref=true,style=numeric-comp]{biblatex}
+\bibliography{references}
+% \usepackage[hyperfigures,bookmarks,colorlinks]{hyperref}
+
+
+\usepackage[nomargin,inline,draft]{fixme}
+%\usepackage[x11names,svgnames]{xcolor}
+\usepackage{texshade}
 \usepackage[absolute,overlay]{textpos}
-\usepackage{hyperref}
-\usepackage[normalem]{ulem}
-\usepackage{Sweave}
+\usepackage{tikz}
+\usepackage{nameref}
+\usepackage{ulem}
+\usepackage{zref-xr,zref-user}
+
+\newenvironment{narrow}[2]{%
+  \begin{list}{}{%
+      \setlength{\topsep}{0pt}%
+      \setlength{\leftmargin}{#1}%
+      \setlength{\rightmargin}{#2}%
+      \setlength{\listparindent}{\parindent}%
+      \setlength{\itemindent}{\parindent}%
+      \setlength{\parsep}{\parskip}}%
+  \item[]}{\end{list}}
+\def\newblock{\hskip}
+\newenvironment{paperquote}{%
+  \begin{quote}%
+     \it
+  }%
+  {\end{quote}}
+\renewcommand{\textfraction}{0.15}
+\renewcommand{\topfraction}{0.85}
+\renewcommand{\bottomfraction}{0.65}
+\renewcommand{\floatpagefraction}{0.60}
+%\renewcommand{\baselinestretch}{1.8}
+\newenvironment{enumerate*}%
+  {\begin{enumerate}%
+    \setlength{\itemsep}{0pt}%
+    \setlength{\parskip}{0pt}}%
+  {\end{enumerate}}
+\newenvironment{itemize*}%
+  {\begin{itemize}%
+    \setlength{\itemsep}{0pt}%
+    \setlength{\parskip}{0pt}}%
+  {\end{itemize}}
 
 \logo{\includegraphics[width=2cm]{figures/openlogo.pdf}}
 \author{Don Armstrong}
 \title{Debbugs}
-\subtitle{New developments in the ongoing struggle against bugs}
+\subtitle{Database Ho!}
 %\date{August 11th, 2008}
 \titlegraphic{\includegraphics[height=0.3\textheight,keepaspectratio]{figures/openlogo-crop.pdf}}
 \subject{BTS}
 library(lattice)
 library(xtable)
 library(ggplot2)
+library(reshape2)
+opts_chunk$set(dev="cairo_pdf",out.width="\\textwidth",out.height="0.7\\textheight",out.extra="keepaspectratio")
+opts_chunk$set(cache=TRUE, autodep=TRUE)
+options(device = function(file, width = 8, height = 7, ...) {
+  cairo_pdf(tempfile(), width = width, height = height, ...)
+})
+
 @ 
 
 
@@ -88,13 +141,13 @@ library(ggplot2)
     \item Places you can help
     \end{itemize}
     \column{0.5\textwidth}
-    \includegraphics[width=\textwidth,keepaspectratio]{figures/rc_buggy_big}
+    \includegraphics[width=\textwidth,keepaspectratio]{images/rc_buggy}
   \end{columns}
 \end{frame}
 \begin{frame}{Goals of the BTS}
   \begin{columns}
   \column{0.4\textwidth}
-    \includegraphics[width=\textwidth,keepaspectratio]{figures/not_a_bug_but_a_feature}
+    \includegraphics[width=\textwidth,keepaspectratio]{images/not_a_bug}
   \column{0.6\textwidth}
   \begin{itemize}
   \item Reporting of \only<1>{Features}\only<2>{Bugs}
@@ -105,12 +158,11 @@ library(ggplot2)
 \end{columns}
 \end{frame}
 
-\subsection{Reporting, Tracking, and Fixing Bugs}
+\section{Bugs in Debian}
+\subsection{Bug Reporting Rate}
 \begin{frame}{How many bugs do we have?}
   \begin{center}
-    \only<1>{\includegraphics[width=\textwidth,height=0.4\textheight,keepaspectratio]{figures/politicial_pictures_bill_gates_list_bugs}}
-    \only<2>{
-<<bug.growth,fig=TRUE,echo=FALSE,fig.width=6,fig.height=6>>=
+<<bug.growth,fig=TRUE,echo=FALSE>>=
 bug.growth <- read.table("data/sorted_bug_growth_for_r_every_500.txt",stringsAsFactors=FALSE);
 colnames(bug.growth) <- c("time","bugs")
 bug.growth <- bug.growth[pmax(bug.growth$bugs) <= as.numeric(bug.growth$bugs),]
@@ -121,13 +173,12 @@ print(ggplot(bug.growth[bug.growth$date > as.POSIXct(ISOdatetime(2005,1,1,0,0,0)
       geom_point()+stat_smooth(method="lm")+
       ggtitle("Bug growth versus time"))
 @ 
-}
 \end{center}
 \end{frame}
 
 \begin{frame}
   \begin{center}
-<<bugs.filed,fig=TRUE,echo=FALSE,fig.width=6,fig.height=6>>=
+<<bugs.filed,fig=TRUE,echo=FALSE,warning=FALSE>>=
 print(ggplot(bug.growth[bug.growth$date > as.POSIXct(ISOdatetime(2013,1,1,0,0,0)),],aes(x=date,y=bugs))+
       xlab("Time")+ylab("Bugs filed in Debian")+
       geom_point()+stat_smooth(method="lm")+
@@ -136,49 +187,63 @@ bugs.filed.per.day <-
   lm(bugs~date,bug.growth)$coeff[2]*3600*24
 @ 
 \end{center}
-We average roughly \Sexpr{format(bugs.filed.per.day,digits=1)} bugs filed per day.
+Roughly \Sexpr{format(bugs.filed.per.day,digits=1)} bugs are filed per day.
 \end{frame}
 
 
+\subsection{Bug Fixing Rate}
 \begin{frame}
   \begin{center}
-<<bugs.closed,fig=TRUE,echo=FALSE,width=7,height=5>>=
-bug.closed.series <- read.table("data/bug_closed_time_series.txt")
-bug.closed.ts <- ts(bug.closed.series,start=1,frequency=7)
-plot(bug.closed.ts,xlab="Weeks since 2008",ylab="Bugs archived per week",main="Bug closure rate over time")
-lines(loess.smooth(1:NROW(bug.closed.ts),bug.closed.ts),col="red",lwd=2)
-bugs.closed.per.day <- mean(bug.closed.ts)
+<<bugs.closed,fig=TRUE,echo=FALSE,width=7,height=5,warning=FALSE,error=FALSE>>=
+bug.closed.series <- read.table(file="data/bug_closed_time_series.txt")
+colnames(bug.closed.series) <- c("archived.bugs","year.week")
+bug.closed.series$week <-
+    gsub("(\\d+)-(\\d+)","\\2",bug.closed.series$year.week)
+bug.closed.series$year <-
+    gsub("(\\d+)-(\\d+)","\\1",bug.closed.series$year.week)
+bug.closed.series$doy <- 
+    as.numeric(bug.closed.series$week)*7
+bug.closed.series$year.doy <- 
+    paste(sep="-",bug.closed.series$year,bug.closed.series$doy)
+bug.closed.series$date <-
+  as.POSIXct(strptime(bug.closed.series$year.doy,
+                      format="%Y-%j"))
+
+# bug.closed.ts <- ts(bug.closed.series[,1],start=1,frequency=7)
+
+print(ggplot(bug.closed.series[bug.closed.series$date > as.POSIXct(ISOdatetime(2008,1,1,0,0,0)),],
+             aes(x=date,y=archived.bugs))+geom_line()+stat_smooth(method="lm")+
+      ylab("Archived bugs")+xlab("Time"))
+bugs.closed.per.day <- 
+    sum(bug.closed.series$archived.bugs)/
+    as.numeric(bug.closed.series$date[nrow(bug.closed.series)]-bug.closed.series$date[1])
 @ 
   \end{center}
-We close roughly \Sexpr{format(bugs.closed.per.day,digits=1)} bugs per day.
+Roughly \Sexpr{format(bugs.closed.per.day,digits=1)} bugs are closed per day.
 \end{frame}
 
+\subsection{RC Bugs}
 \begin{frame}
   \begin{center}
 <<rc.bugs,fig=TRUE,echo=FALSE,width=7,height=7>>=
 rc.bugs <-
   read.table(file="data/rc_bugs.txt",
-             header=1)
+             header=TRUE,fill=TRUE)
 rc.bugs <- data.frame(rc.bugs)
 rc.bugs <- rc.bugs[,c(-5,-7)]
 rc.bugs$date <-
   as.POSIXct(strptime(rc.bugs$date,
                       format="%Y%m%d%H%M"))
 rc.bugs.long <-
-  reshape(rc.bugs,
-    direction="long",
-    idvar="date",
-    timevar="type",
-    times=colnames(rc.bugs)[-1],
-    varying=colnames(rc.bugs)[-1],
-    v.names="bugs")
-complicated.figure <- 
-  xyplot(bugs~date,groups=type,type='l',main="RC Bugs in the past year",
-  rc.bugs.long[rc.bugs.long$date > 
-   strptime("2009-08-01",
-     format="%Y-%m-%d"),],
-         auto.key=list(space="bottom"))
-print(complicated.figure)
+    melt(rc.bugs,id="date")
+print(ggplot(rc.bugs.long[rc.bugs.long$date > 
+                          as.POSIXct(ISOdatetime(2013,08,1,0,0,0)),]
+             ,aes(x=date,y=value,color=variable))+
+      geom_line()+
+      ggtitle("RC Bugs in the past year")+
+      theme(legend.position=c(0.9,0.5))+
+      guides(color=guide_legend(title="Measure")))
+
 @ 
 \end{center}
   \setbeamercolor{postit}{fg=black,bg=yellow}
@@ -192,22 +257,56 @@ print(complicated.figure)
 
 \end{frame}
 
-\subsection{Debbugs Structure and Infrastructure}
+\section{Debbugs Structure and Infrastructure}
 
+\subsection{BTS System Diagram}
 \begin{frame}{BTS system Diagram}
   \begin{center}
     \includegraphics[width=\textwidth,height=\textheight,keepaspectratio]{figures/bug_global_layout}
   \end{center}
 \end{frame}
 
+\subsection{Debbugs Box Diagram}
 \begin{frame}{Debbugs Box Diagram}
   \begin{center}
     \input{debbugs_layout}
   \end{center}
 \end{frame}
 
+\section{Database Ho!}
+
+\subsection{Overall Database Design}
+
+\begin{frame}{Overall Database Design}
+  \begin{center}
+    \input{debbugs_layout}
+  \end{center}
+\end{frame}
+
+\subsection{Perl Database Infrastucture}
+\begin{frame}{Perl Database Infrastructure}
+  \begin{itemize}
+  \item DBIx::Class
+  \item DBIx::Class::Schema::Loader -- SQL schema to DBIx::Class
+  \item DBIx::Class::DeploymentHandler -- Upgrades of Schema
+  \item Debbugs::DB -- Debbugs SQL Module
+  \end{itemize}
+\end{frame}
+
+
+\subsection{SQL Design}
+\begin{frame}{SQL Schema}
+  \includegraphics[width=\textwidth,keepaspectratio]{figures/schema.png}
+\end{frame}
+
+\subsubsection{DAK SQL Design}
+\begin{frame}{DAK SQL Schema}
+  \includegraphics[width=\textwidth,keepaspectratio]{figures/dak_schema.png}
+\end{frame}
 
 \section{New(ish) Features}
+
+\subsection{New Changes}
 \begin{frame}{New Changes}
   \begin{itemize}
   \item CVE linkified (eg, \href{http://bugs.debian.org/570743}{\#570743})
@@ -217,17 +316,6 @@ print(complicated.figure)
   \end{itemize}
 \end{frame}
 
-\begin{frame}{Status Caching}
-  \begin{itemize}
-  \item Cache status of bugs (presence/absence at all distributions)
-  \item Speed up display of \url{http://bugs.debian.org/src:linux-2.6}
-  \item Allows for reverse status lookup
-    \begin{itemize}
-    \item Enables finding bugs which are present in testing or unstable
-    \item Eventually replace functionality of \url{bts.turmzimmer.net}
-    \end{itemize}
-  \end{itemize}
-\end{frame}
 
 \subsection{Affects}
 \begin{frame}{Affects}
@@ -241,7 +329,7 @@ print(complicated.figure)
 \end{frame}
 
 \begin{frame}{Affects: Implemented}
-  \includegraphics[width=\textwidth,height=\textheight,keepaspectratio]{figures/affects}
+%  \includegraphics[width=\textwidth,height=\textheight,keepaspectratio]{figures/affects}
 \end{frame}
 
 \subsection{Summary}
@@ -258,7 +346,7 @@ print(complicated.figure)
 \end{frame}
 
 \begin{frame}{Summary: Implemented}
-  \includegraphics[width=\textwidth,height=\textheight,keepaspectratio]{figures/summary}
+%  \includegraphics[width=\textwidth,height=\textheight,keepaspectratio]{figures/summary}
 \end{frame}
 
 
@@ -300,7 +388,7 @@ print(complicated.figure)
     \item Needs better documentation
     \end{itemize}
     \column{0.5\textwidth}
-    \includegraphics[width=\textwidth,keepaspectratio]{figures/happy_bug}
+%    \includegraphics[width=\textwidth,keepaspectratio]{figures/happy_bug}
   \end{columns}
 \end{frame}
 
@@ -332,27 +420,13 @@ print(complicated.figure)
 %   \end{itemize}
 % \end{frame}
 
-% \begin{frame}{Silly Symbols}
-%   \begin{tabular}{c c c c}
-%     Merged         & = & Fixed Versions & \smiley \\
-%     Blocked        & ♙ & Blocks         & ♔ \\
-%     Forwarded      & ↝ & Archived       & ♲ \\
-%     Affects        & ☣ & wontfix        & \frownie \\
-%     patch          & + & moreinfo       & M \\
-%     unreproducible & R & security       & S \\
-%     pending        & P & fixed          & F \\
-%     help           & H & fixed-upstream & U \\
-%     upstream       & u &                &   \\
-%   \end{tabular}
-% \end{frame}
-
 \begin{frame}{Silly Symbols}
   \begin{center}
-  \begin{tabular}{c c  c c}
-    Merged         & = & Fixed Versions & \smiley \\
-    Blocked        & \includegraphics[height=0.5cm,keepaspectratio]{figures/blocked} & Blocks         & \includegraphics[height=0.5cm,keepaspectratio]{figures/blocks} \\
-    Forwarded      & ↝ & Archived       & \includegraphics[height=0.5cm,keepaspectratio]{figures/archived} \\
-    Affects        & \includegraphics[height=0.5cm,keepaspectratio]{figures/affects_icon} & wontfix        & \frownie \\
+  \begin{tabular}{c c c c}
+    Merged         & = & Fixed Versions &  \\
+    Blocked        & ♙ & Blocks         & ♔ \\
+    Forwarded      & ↝ & Archived       &  \\
+    Affects        & ☣ & wontfix        & ☹ \\
     patch          & + & moreinfo       & M \\
     unreproducible & R & security       & S \\
     pending        & P & fixed          & F \\
@@ -362,8 +436,37 @@ print(complicated.figure)
 \end{center}
 \end{frame}
 
+% \begin{frame}{Silly Symbols}
+%   \begin{center}
+%   \begin{tabular}{c c  c c}
+%     Merged         & = & Fixed Versions & \smiley \\
+%     Blocked        & \includegraphics[height=0.5cm,keepaspectratio]{figures/blocked} & Blocks         & \includegraphics[height=0.5cm,keepaspectratio]{figures/blocks} \\
+%     Forwarded      & ↝ & Archived       & \includegraphics[height=0.5cm,keepaspectratio]{figures/archived} \\
+%     Affects        & \includegraphics[height=0.5cm,keepaspectratio]{figures/affects_icon} & wontfix        & \frownie \\
+%     patch          & + & moreinfo       & M \\
+%     unreproducible & R & security       & S \\
+%     pending        & P & fixed          & F \\
+%     help           & H & fixed-upstream & U \\
+%     upstream       & u &                &   \\
+%   \end{tabular}
+% \end{center}
+% \end{frame}
+
 \section{Planned features}
 
+\subsection{Status Caching}
+\begin{frame}{Status Caching}
+  \begin{itemize}
+  \item Cache status of bugs (presence/absence at all distributions)
+  \item Speed up display of \url{http://bugs.debian.org/src:linux-2.6}
+  \item Allows for reverse status lookup
+    \begin{itemize}
+    \item Enables finding bugs which are present in testing or unstable
+    \item Eventually replace functionality of \url{bts.turmzimmer.net}
+    \end{itemize}
+  \end{itemize}
+\end{frame}
+
 \begin{frame}{Planned features}
   \begin{itemize}
   \item<alert@2> Control Commands in Submit
@@ -423,7 +526,7 @@ print(complicated.figure)
     \item Smarter CGI options
     \end{itemize}
     \column{0.5\textwidth}
-    \includegraphics[width=\textwidth,keepaspectratio]{figures/oh_hai_bug}
+%    \includegraphics[width=\textwidth,keepaspectratio]{figures/oh_hai_bug}
   \end{columns}
 \end{frame}
 
@@ -440,7 +543,7 @@ print(complicated.figure)
     \item Per package, severity, maintainer tracking of the above
     \end{itemize}
     \begin{center}
-      \includegraphics[width=\textwidth,height=0.35\textheight,keepaspectratio]{figures/surprised_bugs_life}
+%      \includegraphics[width=\textwidth,height=0.35\textheight,keepaspectratio]{figures/surprised_bugs_life}
     \end{center}
 %  \end{columns}
 \end{frame}
@@ -667,6 +770,11 @@ print(complicated.figure)
   \item You!
   \end{itemize}
 \end{frame}
+
+\begin{frame}
+  \includegraphics[width=0.8\textwidth,height=0.8\textheight,keepaspectratio]{images/don_at_burning_man.jpg}
+\end{frame}
+
 \end{document}