\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}