From: Don Armstrong Date: Sun, 24 Aug 2014 02:41:35 +0000 (-0700) Subject: update debbugs X-Git-Url: https://git.donarmstrong.com/?p=debbugs-presentations.git;a=commitdiff_plain;h=0a1fd959de387ed0d890005eb470256f3a7f6b8c update debbugs --- diff --git a/debconf14/debbugs.Rnw b/debconf14/debbugs.Rnw index 0ff7ffd..048c4c7 100644 --- a/debconf14/debbugs.Rnw +++ b/debconf14/debbugs.Rnw @@ -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} @@ -59,6 +105,13 @@ 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 <- 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} -<>= +<>= 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} -<>= -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) +<>= +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 <- 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 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}