X-Git-Url: https://git.donarmstrong.com/?p=debbugs-presentations.git;a=blobdiff_plain;f=debbugs.Rnw;h=f387a7ca5de519a885b3ffe9b1438383411e26ea;hp=1f233b095a124dbdaaa09cc5322ec533b3dd1c3e;hb=refs%2Fheads%2Fdebconf17;hpb=0609e64c7d1b00d404d07779396bdaef4b1b1d97 diff --git a/debbugs.Rnw b/debbugs.Rnw index 1f233b0..f387a7c 100644 --- a/debbugs.Rnw +++ b/debbugs.Rnw @@ -1,3 +1,42 @@ + +%\usepackage{libertine} +\usepackage{fontspec} +\setmainfont[Ligatures=TeX]{FreeSerif} +\setsansfont[Ligatures=TeX]{FreeSans} +\setmonofont{FreeMono} +\usepackage[Symbols]{ucharclasses} +\newfontfamily{\defaultfont}{FreeSerif} +%\newfontfamily{\symbolfont}{FreeSerif} +\newfontfamily{\sansfont}{FreeSans} +\setDefaultTransitions{\bgroup\defaultfont}{\egroup} +\usepackage{url} +\usepackage{fancyhdr} +\usepackage{graphicx} +\usepackage[bf]{caption} +\usepackage{rotating} +\usepackage{wrapfig} +\usepackage{fancybox} +\usepackage{booktabs} +\usepackage{minted} +\usepackage{tcolorbox} +\usepackage{etoolbox} +\BeforeBeginEnvironment{minted}{\begin{tcolorbox}}% +\AfterEndEnvironment{minted}{\end{tcolorbox}}% +% \usepackage{multirow} +\usepackage{acronym} +\usepackage{qrcode} +\usepackage[backend=biber,natbib=true,hyperref=true,style=nature]{biblatex} +\addbibresource{references.bib} +% \usepackage[nomargin,inline,draft]{fixme} +% \newcommand{\DLA}[1]{\textcolor{red}{\fxnote{DLA: #1}}} +% \usepackage[hyperfigures,bookmarks,colorlinks,citecolor=black,filecolor=black,linkcolor=black,urlcolor=black]{hyperref} +\usepackage{texshade} +\usepackage{tikz} +\usepackage{nameref} +\usepackage{zref-xr,zref-user} +\renewcommand*{\bibfont}{\tiny} +\usepackage[absolute,overlay]{textpos} + \mode { \usetheme{Montpellier} @@ -5,80 +44,24 @@ % \setbeamercovered{transparent} } - -\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{setspace} -\usepackage[backend=biber,natbib=true,hyperref=true,style=numeric-comp]{biblatex} -\bibliography{references} -% \usepackage[hyperfigures,bookmarks,colorlinks]{hyperref} - +\setbeamertemplate{navigation symbols}{}%remove navigation symbols \usepackage[nomargin,inline,draft]{fixme} -%\usepackage[x11names,svgnames]{xcolor} -\usepackage{texshade} -\usepackage[absolute,overlay]{textpos} -\usepackage{tikz} -\usepackage{nameref} -\usepackage{ulem} -\usepackage{zref-xr,zref-user} \usepackage{listings} -\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{\begin{tikzpicture}% Pale figure {\node[opacity=0.3] {\includegraphics[width=2cm,keepaspectratio]{figures/openlogo-crop.pdf}};}% \end{tikzpicture}} \author{Don Armstrong} \title{Debbugs} -\subtitle{Database Ho!} -%\date{August 11th, 2008} -\titlegraphic{\includegraphics[height=0.3\textheight,keepaspectratio]{figures/openlogo-crop.pdf}} +\subtitle{22 Years of Bugs} +\date{August 10th, 2017} +\titlegraphic{\includegraphics[height=0.2\textheight,keepaspectratio]{figures/openlogo-crop.pdf}} \subject{BTS} +\setbeamercolor{postit}{fg=black,bg=yellow} + % State of the BTS: new features, changes and tips % % The bug tracking system is where all bugs that affect Debian are @@ -104,26 +87,36 @@ % - release to experimental -<>= +<>= library(lattice) library(xtable) library(ggplot2) +library("scales") library(reshape2) -opts_chunk$set(dev="cairo_pdf",out.width="\\textwidth",out.height="0.8\\textheight",out.extra="keepaspectratio") +library("data.table") +opts_chunk$set(dev="cairo_pdf",out.width="\\textwidth",out.height="0.8\\textheight",out.extra="keepaspectratio",fig.width=6/1.2,fig.height=4/1.2) opts_chunk$set(cache=TRUE, autodep=TRUE) -options(device = function(file, width = 8, height = 7, ...) { +options(device = function(file, width = 6/1.2, height = 4/1.2, ...) { cairo_pdf(tempfile(), width = width, height = height, ...) }) @ +<>= +scientific_10 <- function(x) { + parse(text=gsub("e", " %*% 10^", scientific_format()(x))) +} +@ \begin{document} %\setbeamercolor{frametitle}[bg=-red!90!green!10,fg=black] \frame[plain]{\titlepage - Source available at \url{http://git.donarmstrong.com/debbugs-presentations.git} + Code and slides are here: + \qrcode[padding]{https://dla2.us/p/debbugs2017} + \url{https://dla2.us/p/debbugs2017} + } % \begin{frame}{Debbugs} @@ -137,13 +130,12 @@ options(device = function(file, width = 8, height = 7, ...) { \begin{columns} \column{0.5\textwidth} \begin{itemize} - \item Bug Statitics - \item Introduction to Debbugs + \item Bug Statistics \item New features - \item Planned features - \item Places you can help + \item How you can help + \item Answer questions/discussion \end{itemize} - \column{0.5\textwidth} + \column{0.4\textwidth} \includegraphics[width=\textwidth,keepaspectratio]{images/rc_buggy} \end{columns} \end{frame} @@ -163,44 +155,80 @@ options(device = function(file, width = 8, height = 7, ...) { \section{Bugs in Debian} \subsection{Bug Reporting Rate} -\begin{frame}{How many bugs do we have?} +\begin{frame}{Bugs from the beginning of time} \begin{center} -<>= -bug.growth <- read.table("data/sorted_bug_growth_for_r_every_500.txt",stringsAsFactors=FALSE); +<>= +bug.growth <- fread("data/sorted_bug_growth_for_r_every_500.txt") colnames(bug.growth) <- c("time","bugs") -bug.growth <- bug.growth[pmax(bug.growth$bugs) <= as.numeric(bug.growth$bugs),] -bug.growth$date <- - as.POSIXct(ISOdatetime(1970,1,1,0,0,0)+as.numeric(bug.growth$time)) -print(ggplot(bug.growth[bug.growth$date > as.POSIXct(ISOdatetime(2005,1,1,0,0,0)),],aes(x=date,y=bugs))+ +bug.growth <- bug.growth[pmax(bugs) <= as.numeric(bugs),] +bug.growth <- bug.growth[order(time),] +while (bug.growth[,any(c(0,diff(bugs)) < 0)]) { + bug.growth <- + bug.growth[c(0,diff(bugs))>=0,] +} +bug.growth[,date:= + as.POSIXct(ISOdatetime(1970,1,1,0,0,0)+ + as.numeric(bug.growth$time))] +bug.growth[,`bugs per day`:=c(0,diff(bugs)/ + as.double(diff(date),"days")) + ] +print(ggplot(bug.growth,#[date > as.POSIXct(ISOdatetime(2005,1,1,0,0,0)),], + aes(x=date,y=bugs))+ xlab("Time")+ylab("Bugs filed in Debian")+ - geom_point()+stat_smooth(method="lm")+ - ggtitle("Bug growth versus time")) + scale_y_continuous(labels = scientific_10)+ + geom_point()) @ \end{center} \end{frame} -\begin{frame} +\begin{frame}[fragile]{Bug Growth Rate} +<>= +print(ggplot(bug.growth[date > as.POSIXct(ISOdatetime(2014,1,1,0,0,0)),], + aes(x=date,y=`bugs per day`))+ + xlab("Time")+ylab("Bugs filed per day") + + scale_y_log10(breaks=c(60,100,200,400,800)) + + geom_line()+stat_smooth(method="lm") + + geom_label(data=data.table(date=as.POSIXct(ISOdatetime(2015,04,25,0,0,0)),"bugs per day"=400),label="Jessie",color="red") + + geom_label(data=data.table(date=as.POSIXct(ISOdatetime(2017,06,17,0,0,0)),"bugs per day"=400),label="Stretch",color="purple") + ) +@ +\end{frame} + +\begin{frame}[fragile]{Is the bug filing rate decreasing?} +\tiny +<>= +summary(lm(log(`bugs per day`)~date,bug.growth[date > "2014-01-01 PST",])) +@ +\normalsize +Not significantly decreasing. +\end{frame} + +\begin{frame}{My entries into Christian's game} \begin{columns} \column{0.5\textwidth} \begin{center} -<>= -print(ggplot(bug.growth[bug.growth$date > as.POSIXct(ISOdatetime(2013,1,1,0,0,0)),],aes(x=date,y=bugs))+ +<>= +print(ggplot(bug.growth[date > as.POSIXct(ISOdatetime(2015,1,1,0,0,0)),], + aes(x=date,y=bugs))+ xlab("Time")+ylab("Bugs filed in Debian")+ - geom_point()+stat_smooth(method="lm")+ - ggtitle("Christian Perrier's Plot")) + scale_y_continuous(labels = scientific_10)+ + geom_point()+stat_smooth(method="lm")) bugs.filed.per.day <- lm(bugs~date,bug.growth)$coeff[2]*3600*24 -temp.lm <- lm(date~bugs,bug.growth[bug.growth$date > as.POSIXct(ISOdatetime(2013,1,1,0,0,0)),]) -bug.760000 <- - as.POSIXct(ISOdatetime(1970,1,1,0,0,0)+as.numeric(predict(temp.lm,data.frame(bugs=760000,date=NA)))) -bug.800000 <- - as.POSIXct(ISOdatetime(1970,1,1,0,0,0)+as.numeric(predict(temp.lm,data.frame(bugs=800000,date=NA)))) +temp.lm <- lm(date~bugs,bug.growth[date > as.POSIXct(ISOdatetime(2015,1,1,0,0,0)),]) +bug.880000 <- + as.POSIXct(ISOdatetime(1970,1,1,0,0,0)+as.numeric(predict(temp.lm,data.frame(bugs=880000,date=NA)))) +bug.900000 <- + as.POSIXct(ISOdatetime(1970,1,1,0,0,0)+as.numeric(predict(temp.lm,data.frame(bugs=900000,date=NA)))) +bug.1000000 <- + as.POSIXct(ISOdatetime(1970,1,1,0,0,0)+as.numeric(predict(temp.lm,data.frame(bugs=1000000,date=NA)))) @ \end{center} \column{0.5\textwidth} Roughly \Sexpr{format(bugs.filed.per.day,digits=1)} bugs are filed per -day. The 760000th bug will be filed at \Sexpr{bug.760000}, and the -800000th bug will be filed at \Sexpr{bug.800000}. +day. The 880000th bug will be filed at \Sexpr{bug.880000}, the +900000th bug will be filed at \Sexpr{bug.900000}, and bug one million will be filled +\Sexpr{bug.1000000}. \end{columns} \end{frame} @@ -208,68 +236,60 @@ day. The 760000th bug will be filed at \Sexpr{bug.760000}, and the \subsection{Bug Fixing Rate} \begin{frame} \begin{center} -<>= -bug.closed.series <- read.table(file="data/bug_closed_time_series.txt") +<>= +bug.closed.series <- fread(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.series[,week:= + gsub("(\\d+)-(\\d+)","\\2",year.week)] +bug.closed.series[,year:= + gsub("(\\d+)-(\\d+)","\\1",year.week)] +bug.closed.series[,doy:= as.numeric(week)*7] +bug.closed.series[,year.doy:= + paste(sep="-",year,doy)] +bug.closed.series[,date:= + as.POSIXct(strptime(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)),], +print(ggplot(bug.closed.series[date > as.POSIXct(ISOdatetime(2008,1,1,0,0,0)),], aes(x=date,y=archived.bugs/7))+geom_line()+stat_smooth(method="lm")+ ylab("Bugs archived Per Day")+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]) +bugs.closed.per.day <- + bug.closed.series[,sum(archived.bugs)]/ + as.numeric(bug.closed.series[nrow(bug.closed.series),date]- + bug.closed.series[1,date]) @ \end{center} Roughly \Sexpr{format(bugs.closed.per.day,digits=1)} bugs are closed per day. \end{frame} \subsection{RC Bugs} -\begin{frame} +\begin{frame}{RC Bugs in the Past Year} \begin{center} -<>= +<>= rc.bugs <- - read.table(file="data/rc_bugs.txt", - 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")) + data.table(read.table(file="data/rc_bugs.txt", + header=TRUE,fill=TRUE)) +rc.bugs[,date:= + as.POSIXct(strptime(date, + format="%Y%m%d%H%M"))] +rc.bugs[,unknown:=NULL] +rc.bugs[,unknown.1:=NULL] +for (i in 1:10) { + rc.bugs <- rc.bugs[c(0,diff(total)) > -1000,] +} rc.bugs.long <- - 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))+ + data.table(melt(rc.bugs,id="date")) +print(ggplot(rc.bugs.long[date > + as.POSIXct(ISOdatetime(2016,08,1,0,0,0)),] + ,aes(x=date,y=value,color=variable))+ geom_line()+ - ggtitle("RC Bugs in the past year")+ - ylab("RC Bugs")+xlab("Time")+ - theme(legend.position=c(0.9,0.5))+ - guides(color=guide_legend(title="Measure"))) - + ylab("# of Release Critical Bugs")+xlab("Time")+ + theme(legend.position="top")+ + scale_color_discrete("Measure")) @ \end{center} - \setbeamercolor{postit}{fg=black,bg=yellow} - \begin{textblock}{4}(6,4) - \begin{onlyenv}<2> - \begin{beamercolorbox}[sep=1em,wd=5cm]{postit} - \centering \huge Too many RC bugs! - \end{beamercolorbox} - \end{onlyenv} - \end{textblock} - \end{frame} \section{Debbugs Structure and Infrastructure} @@ -288,17 +308,11 @@ print(ggplot(rc.bugs.long[rc.bugs.long$date > \end{center} \end{frame} -\section{Database Ho!} +\section{New Features} -\subsection{Overall Database Design} +\subsection{Database} -\begin{frame}{Overall Database Design} - \begin{center} - \input{debbugs_layout_db} - \end{center} -\end{frame} - -\subsection{Perl Database Infrastucture} +\subsubsection{Perl Database Infrastucture} \begin{frame}{Perl Database Infrastructure} \begin{itemize} \item DBIx::Class @@ -309,63 +323,115 @@ print(ggplot(rc.bugs.long[rc.bugs.long$date > \end{frame} -\subsection{SQL Design} -\begin{frame}{SQL Schema} - \includegraphics[width=\textwidth,keepaspectratio]{figures/schema.png} - \begin{itemize} - \item Current Debbugs SQL Schema - \end{itemize} -\end{frame} - -\subsubsection{dak SQL Design} -\begin{frame}{dak SQL Schema} - \includegraphics[width=\textwidth,keepaspectratio]{figures/dak_schema.png} - \begin{itemize} - \item Inspiration taken from dak SQL Schema where appropriate - \end{itemize} -\end{frame} - -\subsection{SQL Loading} +\subsubsection{SQL Loading} \begin{frame}[fragile]{SQL Loading} % SQL loading \begin{itemize} \item Load bugs -\begin{lstlisting}[language=sh] +\begin{minted}{sh} debbugs-loadsql bugs; debbugs-loadsql bugs archive; -\end{lstlisting} +\end{minted} \item Load Versioning information -\begin{lstlisting}[language=sh] +\begin{minted}{sh} debbugs-loadsql versions; debbugs-loadsql debinfo; -\end{lstlisting} +\end{minted} \end{itemize} \end{frame} -\subsection{SQL Working} -\begin{frame}[fragile]{SQL Working} - % example SQL query -\begin{lstlisting}[language=SQL] -SELECT count(*) FROM bug -WHERE last_modified > '2014-07-01' -AND done IS NOT NULL -AND owner IS NOT NULL; -\end{lstlisting} -\begin{visibleenv}<2> -\begin{lstlisting} - count +\subsubsection{Fun Queries} + +\begin{frame}[fragile]{Messages to bugs} +\small +\begin{minted}{sql} +SELECT count(*),c.addr FROM +message_correspondent mc +JOIN correspondent c ON mc.correspondent=c.id +WHERE correspondent_type='from' +GROUP BY mc.correspondent,c.addr +ORDER BY count DESC LIMIT 5; +\end{minted} +\begin{verbatim} + count | addr +-------+--------------------------------- + 5123 | bubulle@debian.org + 4346 | joeyh@debian.org + 4214 | biebl@debian.org + 3875 | tbm@cyrius.com + 3632 | ftpmaster@ftp-master.debian.org +\end{verbatim} +\end{frame} + +\begin{frame}[fragile]{Single-message correspondents} +\small +\begin{minted}{sql} +SELECT count (*) FROM +(SELECT count(*),c.addr + FROM message_correspondent mc + JOIN correspondent c ON + mc.correspondent=c.id + WHERE correspondent_type='from' + GROUP BY mc.correspondent, + c.addr + HAVING count(*) = 1) AS foo; +\end{minted} +\begin{verbatim} + count ------- - 521 -\end{lstlisting} -\end{visibleenv} + 30215 +\end{verbatim} +\end{frame} + + + +\begin{frame}[fragile]{More fun queries} +\begin{minted}{sql} +SELECT count(*),t.tag +FROM bug b +JOIN bug_tag bt ON b.id=bt.bug +JOIN tag t on bt.tag=t.id +GROUP by bt.tag,t.tag +ORDER by count DESC LIMIT 5; +\end{minted} +\begin{verbatim} + count | tag +--------+---------------- + 141184 | patch + 42288 | upstream + 39466 | sid + 33640 | l10n + 25566 | fixed-upstream +\end{verbatim} +\end{frame} + +\subsection{Database status caching} +\begin{frame}[fragile]{Status caching ``working''} +\begin{minted}{sql} +SELECT count(*),status +FROM bug_status_cache bsc +JOIN suite s ON bsc.suite=s.id +WHERE s.suite_name='unstable' +GROUP by status; +\end{minted} +\begin{verbatim} + count | status +--------+-------- + 514488 | fixed + 234155 | absent + 3923 | found +\end{verbatim} \end{frame} \subsection{Work still needed for SQL} \begin{frame}{Work Still needed for SQL} \begin{itemize} -\item Logfile loading (for full text searching) -\item Status Caching (for faster page loading) -\item Testing +\item Integration into CGI (\texttt{bugreport.cgi} and + \texttt{pkgreport.cgi}) +\item Database loading/update is slow in some cases +\item Some corrupted bugs have been exposed by the loading (#167851 + and #280931); likely others +\item Testing (Mainly of queries) \item Deployment \end{itemize} \end{frame} @@ -377,98 +443,27 @@ AND owner IS NOT NULL; \begin{columns} \column{0.5\textwidth} \begin{itemize} - \item mailto links (demo) - \item forcemerge does the right thing - \item control at submit time + \item Format-flowed messages are wrapped + \item https links everywhere + \item etag caching support everywhere + \item a11y (accessibility, ♿) tag + \item newcomer (⎈) tag + \item Usercategories now selectable (Categorize/order using) \end{itemize} \column{0.5\textwidth} \includegraphics[width=\textwidth,keepaspectratio]{images/telegraph_bug} \end{columns} \end{frame} -\section{Future 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 - \end{itemize} - \end{itemize} -\end{frame} - -\subsection{Statistics} -\begin{frame}{Statistics} - \begin{columns} - \column{0.5\textwidth} - \begin{itemize} - \item Track status changes over time - \item Bugs found/fixed/absent in stable/testing/unstable over time - \item Bug submission times - \item Bug closure times - \item Bug mail rates - \item Per package, severity, maintainer tracking of the above - \end{itemize} - \column{0.5\textwidth} - \begin{center} - \includegraphics[width=\textwidth,height=0.35\textheight,keepaspectratio]{images/bug} - \end{center} - \end{columns} -\end{frame} - - -\subsection{Additional Planned Features} -\begin{frame}{More planned features} - \begin{columns} - \column{0.5\textwidth} - \begin{itemize} - \item HTTP based reporting system with e-mail roundtrip - \item Release Debbugs again - \item Bug mailing lists in Debbugs - \begin{itemize} - \item Avoid duplicate mail - \item Opt in/out of mail - \end{itemize} - \item Merging of merged bug reports - \item Threading in report - \end{itemize} - \column{0.5\textwidth} - \includegraphics[width=\textwidth,keepaspectratio]{images/fixed_bug} - \end{columns} -\end{frame} - -\begin{frame}{Even More planned features} - \begin{columns} - \column{0.5\textwidth} - \begin{itemize} - \item Usercategory duplication and replay - \item Remote Attachments - \item New Spool Storage Format - \item Usertags visibility - \item Smarter CGI options - \end{itemize} - \column{0.5\textwidth} - \includegraphics[width=\textwidth,keepaspectratio]{images/fixed_bug} - \end{columns} -\end{frame} - - - - - -\section{Places you can help} +\section{Contributing to Debbugs} \begin{frame}{7 tasks seeking contributors} \begin{itemize} \item Documentation of Usercategories \item Implementation of rss feeds for packages and bugs \item CGI options on pkgreport.cgi for usertags et al. \#536378) - \item Documentation of multipe-package reassign and when it or + \item Documentation of multiple-package reassign and when it or affects should be used - \item Mailto link with subject, references, etc. all filled in \item Documentation for local-debbugs configuration file (behaves like bts select) \end{itemize} @@ -476,20 +471,40 @@ AND owner IS NOT NULL; \begin{frame}{Getting started on these tasks} \begin{itemize} - \item Upstream branches: \url{http://bugs.debian.org/debbugs-source/} + \item Upstream branches: \url{https://bugs.debian.org/debbugs-source/} \begin{itemize} - \item master (upstream debbugs): git clone \url{http://bugs.debian.org/debbugs-source/debbugs.git} - \item debian (debian branch): git clone -b debian \url{http://bugs.debian.org/debbugs-source/debbugs.git} + \item master (upstream debbugs): git clone \url{https://bugs.debian.org/debbugs-source/debbugs.git} + \item debian (debian branch): git clone -b debian \url{https://bugs.debian.org/debbugs-source/debbugs.git} \item Checked out branches are also available at - \url{http://bugs.debian.org/debbugs-source/master} and - \url{http://bugs.debian.org/debbugs-source/debian} + \url{https://bugs.debian.org/debbugs-source/master} and + \url{https://bugs.debian.org/debbugs-source/debian} \end{itemize} - \item My branches: \url{http://git.donarmstrong.com/debbugs.git} + \item My branches: \url{https://git.donarmstrong.com/debbugs.git} \item Mailing list debian-debbugs@lists.debian.org \item IRC \#debbugs or \#debian-bugs on irc.debian.org; I'm dondelelcaro \end{itemize} \end{frame} +\begin{frame}[fragile]{Using \texttt{local-debbugs} to work on these tasks} +\footnotesize +\begin{minted}{sh} +git clone \ + https://bugs.debian.org/debbugs-source/debbugs.git +cd debbugs +# get some bugs +perl -I. ./bin/local-debbugs --mirror +# start a web daemon +perl -I. ./bin/local-debbugs --daemon +# show some of my bugs (use your own search here) +perl -I. ./bin/local-debbugs --search bugs.debian.org +# stop the daemon +perl -I. ./bin/local-debbugs --stop +# hack and repeat +perl -I. ./bin/local-debbugs --daemon +perl -I. ./bin/local-debbugs --show 614351 +\end{minted} +\end{frame} + \begin{frame}{The Debbugs Team} \begin{itemize} \item Current team @@ -510,7 +525,9 @@ AND owner IS NOT NULL; \end{frame} \begin{frame}{Questions?} - \includegraphics[width=0.8\textwidth,height=0.8\textheight,keepaspectratio]{images/don_at_burning_man.jpg} +\begin{center} +\includegraphics[height=0.8\textheight,keepaspectratio]{images/relevant_xkcd} +\end{center} \end{frame} \end{document}