\documentclass{beamer}
\usepackage[utf8]{inputenc}
\usepackage{graphicx}
\usepackage{palatino} % use palatino as the default font
\usetheme{Boadilla}
\usecolortheme{seahorse}

% outline
\AtBeginSection[]
{
  \begin{frame}
    \frametitle{Plan}
    \small
    \tableofcontents[currentsection,hideothersubsections]
    \normalsize
  \end{frame}
}

\title{The State of mentors.debian.net}
\subtitle{GSOC and Beyond}
\author{Nicolas Dandrimont}
\date{2012-11-25}

\begin{document}

\frame{\titlepage}

\frame{\tableofcontents}

\section{Introduction}
\subsection{whoami}
\begin{frame}
  \frametitle{Nicolas Dandrimont in Debian}

  \begin{itemize}
    \item Package maintainer since 2010
    \item Debian Maintainer since 2011
    \item Debexpo victi\^{}Wmaintainer since early 2012
  \end{itemize}

\end{frame}
\begin{frame}
  \frametitle{Nicolas Dandrimont in ``Real life''}

  \begin{itemize}
    \item Linux sysadmin/``IT guy'' in a French ``Grande École''
    \item web-based tools maintenance (drupal, django)
    \item 320+ client machines running fedora 8 (I know, I've only
      been here three months)
  \end{itemize}

\end{frame}

\subsection{What is this talk about}
\begin{frame}
  \frametitle{What this talk is not about}

  \begin{itemize}
    \item sponsoring is hard
    \item workflow debate
    \item salvaging packages
  \end{itemize}

\end{frame}

\begin{frame}
  \frametitle{mentors.debian.net}

  \begin{itemize}
    \item Platform for Debian Package Maintainance newcomers to upload
      and share their packages
    \item Automated QA analysis of uploaded packages
    \item sponsor - sponsoree connection
  \end{itemize}

\end{frame}

\section{mentors.debian.net}
\subsection{Sponsoring packages into Debian}

\begin{frame}
  \frametitle{Show of hands}

  \Large{Who here knows how contributing a package to Debian works?}

\end{frame}

\begin{frame}
  \frametitle{Debian Package Maintainers}

  There are three ``classes'' of package maintainers:
  \begin{itemize}
    \item Debian Developers: can upload any package at any time
    \item Debian Maintainers: can upload the packages they have been
      allowed to by DDs
    \item Sponsored Maintainers: cannot upload by themselves: need to
      be sponsored by a DD
  \end{itemize}

\end{frame}

\begin{frame}
  \frametitle{``newcomer'' workflow}

  Quite a lengthy process:
  \begin{enumerate}
    \item Prepare a package (either NEW or update)
    \item Upload it somewhere
    \item Find a sponsor
      \begin{itemize}
        \item File a sponsorship-requests bug / write the debian-mentors list
        \item Find a team
        \item Prod your previous sponsor
      \end{itemize}
    \item Update according to the sponsor's review, rinse, repeat
    \item ????????
    \item Upload!
  \end{enumerate}

\end{frame}

\begin{frame}
  \frametitle{Why mentors.debian.net?}

  \begin{itemize}
    \item A central place for sponsored maintainers to \emph{upload} and
      \emph{share} their packages for \emph{review}
      \pause
    \item A companion to the debian-mentors mailing-list
    \item A place for developers of Debian derivatives too
      (Ubuntu's ``Debian-first'' policy comes to mind)
  \end{itemize}

\end{frame}

\subsection{How did we get there?}

\begin{frame}
  \frametitle{A brief history of mentors.debian.net}
  \begin{itemize}
    \item Initiated by Christoph Haas and others long ago
    \item Replaced by more recent software (debexpo) in 2011
  \end{itemize}
\end{frame}

\begin{frame}
  \frametitle{A brief history of debexpo}
  \begin{itemize}[<+->]
    \item A 2008 GSoC project by Jonny Lamb, mentored by Christoph
      Haas (initial commit 2008/06/01)
      \begin{itemize}
        \item Goal: ``personal package archive'' for Debian
      \end{itemize}
    \item Languishing project until 2010, when Asheesh Laroia and Jan
      Dittberner took over (2010/06/22)
      \begin{itemize}
        \item Goal: mentors.debian.net replacement
      \end{itemize}
    \item Asheesh and Arno Töll make debexpo replace the old
      mentors.d.n site (2011/08/11)
    \item UI improvements (debexpo v2, 2012/02/26)
    \item GSoC 2012 (debexpo v3, 2012/11/25 ?)
  \end{itemize}

\end{frame}

\subsection{Technical stack}

\begin{frame}
  \frametitle{Software stack}

  \begin{itemize}
    \item Pylons 1.0
      \begin{itemize}
        \item mako templating engine
        \item ``routes'' for the routing
        \item not supported anymore, superseded by Pyramid
      \end{itemize}
    \item SQLAlchemy
    \item webhelpers
    \item the usual debian-related modules (python-debian, python-apt, ...)
  \end{itemize}

\end{frame}

\begin{frame}
  \frametitle{Low-level infrastructure}
  \begin{itemize}
    \item hosted on a Wavecon virtual machine (Arno's workplace)
    \item Debian Squeeze with a few backports
    \item Apache and mod\_wsgi
    \item A patched ftp server (allow anonymous uploads without file overwrites)
  \end{itemize}
\end{frame}


\section{Summer of Code work}
\subsection{Clément Schreiner}

\begin{frame}
  \frametitle{Automatic package---sponsor matching}

  \begin{itemize}
    \item For a maintainer : finding a sponsor = lengthy process
    \item For a sponsor : flow of packages to be sponsored = overwhelming
  \end{itemize}

  \pause

  The goal of the project is two-fold
  \begin{itemize}
    \item giving sponsored maintainers a ``list'' of potential sponsors to prod
    \item giving potential sponsors a list of packages to look out for
  \end{itemize}

    All this automatically

\end{frame}

\begin{frame}
  \frametitle{In the background}

  \begin{itemize}
    \item Semantic package analysis : find out ``traits'' for a package
    \item Upload history analysis : what did a given DD upload, what
      are his interests?
    \item Fuzzy clustering (hopefully with feedback)
  \end{itemize}

\end{frame}

\begin{frame}
  \frametitle{Problems encountered}
  \begin{itemize}
    \item No proper metadata storage API for packages in debexpo
    \item Package analysis is heavy: when to do it?
  \end{itemize}
\end{frame}

\begin{frame}
  \frametitle{Outcomes}
  \begin{itemize}
    \item Rewrite of the metadata storage API to make it easier to query
    \item Integration of debtags' package analysis heuristics
    \item Matching stub
  \end{itemize}

  \pause
  TODO:
  \begin{itemize}
    \item proper matching
    \item team integration
  \end{itemize}
\end{frame}

\subsection{Baptiste Mouterde}

\begin{frame}
  \frametitle{Improved package review interface}
  The issue: Several ``competing'' platforms for package reviews
  \begin{itemize}
    \item mentors.debian.net ``comments''
    \item debian-mentors mailing-list
    \item sponsorship-requests bugs
    \item team mailing-lists
  \end{itemize}

  \pause

  The goal:
  \begin{itemize}
    \item getting all the information in one place: mentors.d.n
    \item while still allowing the use of the other platforms
    \item catering for our friends from derivative distributions
  \end{itemize}
\end{frame}

\begin{frame}
  \frametitle{A tricky task}

  \begin{itemize}
    \item source browser : need to extend our package storage pool to
      get the flat source
    \item review interface : need to rework completely the (broken,
      useless) comment engine
    \item need to connect to the mailing-list and the BTS properly for
      three-way integration
  \end{itemize}

\end{frame}

\begin{frame}
  \frametitle{Outcomes}
  \begin{itemize}
    \item a git-based package storage backend
    \item a source-code browser with in-line review capabilities
    \item the basis for a ``karma'' system
    \item a connector for mailing-lists, not yet deployed
  \end{itemize}
\end{frame}

\section{The road ahead}
\subsection{Further integration with the BTS-based workflow}

\begin{frame}
  \frametitle{The new sponsorship-requests workflow}

  Tracking sponsorship-requests as bugs is an improvement over just
  having the history in the debian-mentors archive. \\~\\

  \pause

  But mentors.debian.net lacks integration with it. \\~\\

  A nice interface: \url{http://mentors.pault.ag/} (and yes, the queue
  is loooong). Having such a view in mentors.d.n would be (very) good.

\end{frame}

\subsection{Catering to packaging teams}

\begin{frame}
  \frametitle{Package maintainance is shifting towards teams}

  There are more and more packaging teams, each with their own
  workflow (tracking packages via their SCM on alioth, via their
  mailing-list, via a PET, ...) \\~\\

  \pause

  mentors.debian.net needs to take that into account and give teams
  tools to help with their workflow. \\~\\

  Goal: reducing the number of entry points for newcomers,
  streamlining the sponsorship process.


\end{frame}

\subsection{mentors.debian.*org*?}

\begin{frame}
  \frametitle{A critical piece of infrastructure, not official yet}

  Half of Debian's packages are maintained by sponsored maintainers. A
  lot of the newcomers come through mentors.debian.net, but that
  service is run off of ``personal'' resources in an unofficial
  fashion. \\~\\

  The (main) issue: people are allowed to upload random crap and mentors.d.n
  distributes it (no NEW queue). \\~\\

  \pause

  Solution (thanks to zack and SPI lawyers): disclaim responsibility on
  user-contributed content by having the users (GPG-)sign an agreement
  before uploads are allowed.

\end{frame}

\section{Wrapping up}

\begin{frame}
  \frametitle{A small team with big ideas}

  Even with the GSoC, we are a small team of very busy people (Arno is
  working on his Masters Thesis, I just changed jobs, ...), and there
  are lots to do. \\~\\

  As usual, help is welcome!

\end{frame}

\begin{frame}
  \frametitle{How to help?}

  We don't really have/use a mailing-list, so your best bet is coming
  to see us on IRC: $\sharp$debexpo on irc.debian.org. \\~\\

  You can take a look at our wiki pages :
  http://wiki.debian.org/Debexpo/Development

\end{frame}

\begin{frame}

\LARGE{Thanks for listening!}

\end{frame}


\end{document}
