% $Id$
\documentclass[notes]{beamer}
\usepackage[frenchb]{babel}
\usepackage[T1]{fontenc}
\usepackage{moreverb}
\usepackage{graphicx}

\mode<presentation>
{
  \definecolor{beamerstructure}{RGB}{143,79,112}
  \definecolor{sidebackground}{RGB}{230,242,250}
  \color{beamerstructure}
  \usetheme[secheader]{Madrid}
  \usepackage{times}
  \userightsidebarcolortemplate{\color{sidebackground}}
  \beamertemplateballitem
}

\AtBeginSection[]
{
\begin{frame}<beamer>
    \frametitle{Plan}
    \tableofcontents[currentsection,hideothersubsections]
\end{frame}
}

\title{Forge}
\subtitle{Suivi de code}
\author{Olivier Thauvin}
\date{\today}

\begin{document}

\frame{\titlepage}

\section{Généralité}

\begin{frame}[fragile]
\begin{block}{Les besoins:}
\begin{itemize}
\item gerer les comptes des developeurs/contributeurs
\pause
\item gérer les évolutions du code
\pause
\item gérer la documentation
\pause
\item gérer les bogues (les rapports et leur corrections)
\pause
\item fournir le code aux utilisateurs
\end{itemize}
\end{block}
\pause
\vfill

\begin{block}{type de projets}
\begin{itemize}
\item programmes \textit{(C, Fortran, Perl, python)}
\item site web
\item documentations
\item \ldots
\end{itemize}
\pause

Cette présentation en \LaTeX:
\verb$Id$
\end{block}

\end{frame}

\subsection{Versionnement de code}

\begin{frame}
\frametitle{Versionner: Définition}
\begin{block}{suivi:}
\begin{itemize}
    \item trace des changement: personne, horodatage, commentaires
    \item gestion de plusieurs variantes du code
    \item points de reprise
    \item annulation facile en cas d'erreur
\end{itemize}
\end{block}
\pause
\vfill
\begin{block}{partage:}
    \begin{itemize}
    \item travail à plusieurs personnes
    \item travail depuis plusieurs ordinateurs
    \end{itemize}
\end{block}
\pause
\vfill
\begin{block}{sauvegarde:}
    \begin{itemize}
    \item tout le code est sur le serveur
    \end{itemize}
\end{block}
\end{frame}

\begin{frame}
\frametitle{Exemple de \og{}Revision Control System\fg{}}
\begin{block}{Les plus connus}
\begin{itemize}
\item Subversion
\item git
\item cvs, rcs (obsolètes)
\end{itemize}
\end{block}
\vfill
\begin{block}{Quelques autres\ldots}
\begin{itemize}
\item darcs
\item bzr
\item mercurial
\item \ldots
\end{itemize}
\end{block}
\end{frame}

\subsection{Communication}

\begin{frame}
\frametitle{Type de communications}
\begin{block}{Pourquoi communiquer?}
\begin{itemize}
\item documentation
\pause
\item support
\pause
\item discussion interne
\pause
\item annonces
\end{itemize}
\end{block}
\vfill
\pause
\begin{block}{Qui?}
\begin{itemize}
\item $developeurs \Rightarrow developeurs$
\pause
\item $developeurs \Rightarrow utilisateurs$
\pause
\item $developeurs \Leftrightarrow utilisateurs$
\pause
\item $utilisateurs \Rightarrow utilisateurs$
\end{itemize}
\end{block}
\end{frame}

\begin{frame}
\frametitle{Outils}
\begin{block}{Outils}
\begin{itemize}
\item Listes de diffusion
\pause
\item Wiki
\pause
\item Messagerie instantannée (Jabber, Irc)
\pause
\item Forums
\pause
\item Blog
\end{itemize}
\end{block}
\end{frame}

\subsection{Gestion d'incidents}

\begin{frame}
\frametitle{\og{}Bug tracker\fg{}}
\begin{block}{But}
\begin{itemize}
\item remonter un problème, une demande
\item chercher les problèmes existants, similaire
\pause
\item discuter dessus, commenter, ajouter des informations
\pause
\item affecter la tache à quelqu'un
\item noter leur résolution (ou non résolution)
\end{itemize}
\end{block}
\pause
\vfill
\begin{block}{Exemple d'outils}
\begin{itemize}
\item bugzilla
\item mantis
\item Launchpad
\item \ldots
\end{itemize}
\end{block}
\end{frame}

%%\subsection{Feuilles de route}

\subsection{Distribuer le code}

\begin{frame}[fragile]
\frametitle{Distribuer le code}
\begin{block}{Utilisateurs}
\begin{itemize}
\item sous forme d'archive (\verb+tar.gz+, \verb+.zip+, \ldots)
\item par \verb+ftp+, \verb+http+, \ldots
\end{itemize}
\end{block}
\vfill
\pause
\begin{block}{Developeurs, testeurs et contributeurs:}
Accès au gestionnaire de code:
\begin{itemize}
\item anonymement
\item accès au dépôt de code
\item en lecture seule
\end{itemize}
\end{block}
\end{frame}

\section{Forge.Ipsl.jussieu.fr}

\subsection{Services fournis}

\subsubsection{Gestionnaire de versionnement}

\begin{frame}
\frametitle{Versionnement}
\begin{block}{Subversion}
\begin{itemize}
\item simple
\item proche de CVS
\item administration réduite
\item fiable
\end{itemize}
\end{block}
\vfill
\pause

\begin{block}{Autres VCS}
\begin{itemize}
\item cvs
\item darcs
\item git
\item tla-arch
\item \ldots
\end{itemize}
\end{block}
\end{frame}

\subsubsection{Outils divers}

\begin{frame}
\frametitle{Liste de diffusion: Mailman}
\begin{block}{Pourquoi Mailman}
\begin{itemize}
\item simple
\item peu de maintenance
\item configurable
\end{itemize}
\end{block}
\vfill
\pause
\begin{exampleblock}{Exemple d'utilisation:}
Envois des commits sur une liste.
\end{exampleblock}
\end{frame}


\begin{frame}
\frametitle{ViewVC}
\begin{block}{Role:}
Naviguer dans le dépot de code via le web
\end{block}
\pause
\vfill
\begin{exampleblock}{ViewVC}
\center{
\includegraphics[width=0.7\linewidth]{viewcvs}
}
\end{exampleblock}
\end{frame}

\subsubsection{Trac}

\begin{frame}
\frametitle{Trac}
\begin{block}{Résumé}
\begin{itemize}
\item application Web
\item gestion de code informatique
\end{itemize}
\end{block}
\pause
\vfill
\begin{block}{Fourni:}
\begin{itemize}
\item un wiki
\item un agenda
\item navigation dans le code
\item gestion des incidents/bogues
\end{itemize}
\end{block}
\end{frame}

\begin{frame}
\frametitle{Trac}
\begin{exampleblock}{Trac: Wiki}
\center{
\includegraphics[width=1.0\linewidth]{trac-wiki}
}
\end{exampleblock}
\end{frame}

\begin{frame}
\frametitle{Trac}
\begin{exampleblock}{Trac: Navigation dans le code}
\center{
\includegraphics[width=1.0\linewidth]{trac-browser}
}
\end{exampleblock}
\end{frame}

\begin{frame}
\frametitle{Trac}
\begin{exampleblock}{Trac: Tickets}
\center{
\includegraphics[width=1.0\linewidth]{trac-ticket}
}
\end{exampleblock}
\end{frame}

\subsection{Administration}

\begin{frame}
\frametitle{Gestion}
\begin{block}{Gestion des comptes}
\begin{itemize}
\item création des projets sur demande
\item création des comptes utilisateur par les responsables de projet
\item gestion des membres par les responsables de projet
\item pas besoin d'être personnel IPSL (coopération)
\end{itemize}
\end{block}
\vfill
\pause

\begin{block}{Accès au code}
\begin{itemize}
\item possibilité d'accès aux code:
    \begin{itemize}
    \item lecture anonyme
    \item lecture seulement authentifié
    \item écriture (authentifié)
    \end{itemize}
\pause
\item Accessibilité définie par projet
\end{itemize}
\end{block}
\end{frame}

\begin{frame}
\frametitle{Gestion des comptes utilisateur}
\begin{block}{Interface Web}
\center{
\includegraphics[width=0.8\linewidth]{admin-forge}
}
\end{block}
\end{frame}

\begin{frame}
\frametitle{Sécurité}
\begin{block}{Assurance vie}
\begin{itemize}
\item ordinateur garanti 5 ans sur site
\item disques durs en redondances
\item 2 backups: IPSL et CCR
\end{itemize}
\end{block}
\end{frame}

\section*{Fin}

\begin{frame}
\frametitle{Reférences et questions}
\begin{block}{}
\begin{itemize}
\item \href{http://forge.ipsl.jussieu.fr/}{http://forge.ipsl.jussieu.fr/}:
  page principale

\item \href{http://forge.ipsl.jussieu.fr/forge}{http://forge.ipsl.jussieu.fr/forge}:
  la documentation
\end{itemize}
\end{block}
\pause
\vfill
\begin{block}{}
\huge{Questions ?}
\end{block}
\end{frame}

\end{document}
