[162] | 1 | \documentclass [compress, t]{beamer}
|
---|
| 2 | \usepackage{styles/beamerthemeMarseille}
|
---|
| 3 | \usepackage[latin1]{inputenc}
|
---|
| 4 | \usepackage{epsfig}
|
---|
| 5 | \usepackage{graphicx}
|
---|
| 6 | \usepackage{graphics}
|
---|
| 7 | \usepackage{subfigure}
|
---|
| 8 | \usepackage{color}
|
---|
| 9 | \usepackage{algorithmic}
|
---|
| 10 | \usepackage{algorithm}
|
---|
| 11 | \usepackage{pgfarrows, pgfnodes}
|
---|
| 12 | \usepackage{url}
|
---|
| 13 | \usepackage{textcomp}
|
---|
| 14 | \usepackage{url}\urlstyle{sf}
|
---|
| 15 | \usepackage{xspace}
|
---|
[164] | 16 | \usepackage{listings}
|
---|
[162] | 17 |
|
---|
[164] | 18 | % Beamer Options
|
---|
| 19 | \setbeamercovered{dynamic}
|
---|
| 20 | \setbeamertemplate{blocks}[rounded][shadow=true]
|
---|
| 21 | \setbeamertemplate{background canvas}[vertical shading][bottom=white,top=structure.fg!20]
|
---|
| 22 |
|
---|
| 23 | %%%% macros %%%%
|
---|
| 24 |
|
---|
[162] | 25 | % Macros
|
---|
| 26 | \newcommand{\cmt} {{\em CMT}\@\xspace}%
|
---|
| 27 | \newcommand{\svn} {{\em SVN}\@\xspace}%
|
---|
[167] | 28 | \newcommand{\cvs} {{\em CVS}\@\xspace}%
|
---|
[162] | 29 |
|
---|
| 30 | \setbeamercovered{dynamic}
|
---|
| 31 |
|
---|
| 32 |
|
---|
| 33 | \definecolor{rltgreen}{rgb}{0,0.5,0}
|
---|
| 34 | \pgfdeclareimage[height=1.1cm]{LogoLAL}{logos/logoLAL50ansgrand}
|
---|
| 35 | \logo{ \pgfuseimage{LogoLAL} }
|
---|
| 36 |
|
---|
| 37 | \title{CMT/SVN news, \\ Atlas SW/SIT meeting}
|
---|
[163] | 38 | \author{Christian Arnault, Vincent Garonne\\
|
---|
| 39 | \{arnault,garonne\}@lal.in2p3.fr}
|
---|
[175] | 40 | \institute{Laboratoire de l'Accélérateur Linéaire}
|
---|
[162] | 41 | \date {April 6, 2006} % \today
|
---|
| 42 |
|
---|
| 43 | \begin{document}
|
---|
| 44 |
|
---|
| 45 | % Transparent: Première page
|
---|
| 46 | \begin{frame}
|
---|
| 47 | \maketitle
|
---|
| 48 | %\textcolor{gray}{\it \scriptsize }
|
---|
| 49 | \end{frame}
|
---|
| 50 |
|
---|
[165] | 51 | \section*{Outline}
|
---|
[162] | 52 | \frame
|
---|
| 53 | {
|
---|
[164] | 54 | % \frametitle{Outline}
|
---|
[162] | 55 | \vfill
|
---|
[164] | 56 | \begin{block}{Outline}
|
---|
| 57 | \tableofcontents[hideallsubsections]
|
---|
| 58 | \end{block}
|
---|
[162] | 59 | }
|
---|
| 60 |
|
---|
| 61 | %------------------------------- SECTION -------------------------%
|
---|
[165] | 62 | \section[\cmt]{\cmt news, feedbacks and futur improvements}
|
---|
[174] | 63 | %---- Slide 1 -----%
|
---|
| 64 | \frame{
|
---|
| 65 | \setbeamertemplate{blocks}[default]
|
---|
| 66 | \vfill \hfill
|
---|
| 67 | \begin{block}{\begin{center} \large CMT news \end{center}}
|
---|
| 68 | \end{block}
|
---|
| 69 | }
|
---|
[164] | 70 |
|
---|
[165] | 71 | %\subsection{The new v1r18p20060301 release}
|
---|
| 72 |
|
---|
[164] | 73 | %---- Slide 1 -----%
|
---|
[165] | 74 | \frame
|
---|
[162] | 75 | {
|
---|
[165] | 76 | \frametitle{\cmt news (1)}
|
---|
[164] | 77 |
|
---|
[165] | 78 | \begin{block}{New \cmt release (version v1r18p20060301) }
|
---|
[176] | 79 | No major improvements but fixed several problems with the existing
|
---|
| 80 | CMT versions, including:
|
---|
[164] | 81 | \begin{itemize}
|
---|
| 82 | \item Non-existent directories are no longer removed from search paths
|
---|
[165] | 83 | \item Add new warning messages in relation with setup checking which are
|
---|
[167] | 84 | explicitly called with the \texttt{--warnings option}
|
---|
[164] | 85 | \item The run-time environment for a release can be setup by specifying
|
---|
[167] | 86 | the "runtime" during setup command, e.g.: \\
|
---|
[164] | 87 | \texttt{> source $\sim$/cmthome/setup.sh -tag=11.0.4,runtime}
|
---|
[165] | 88 | \item New version of the AtlasSettings package (backwards compatible)
|
---|
| 89 | \end{itemize}
|
---|
| 90 | \end{block}
|
---|
| 91 | }
|
---|
| 92 |
|
---|
| 93 | %---- Slide 2 -----%
|
---|
| 94 | \frame
|
---|
| 95 | {
|
---|
| 96 | \frametitle{\cmt news (2)}
|
---|
| 97 | \begin{block}{New \cmt release (version v1r18p20060301)}
|
---|
| 98 | \begin{itemize}
|
---|
[176] | 99 | \item Change the internal system for setting environment variables in a proper way
|
---|
[165] | 100 | \item Better support of the (non-)version-directory mode in severals cases:
|
---|
| 101 | \begin{itemize}
|
---|
| 102 | \setbeamertemplate{itemize items}[circle]
|
---|
| 103 | \item Option to force package version directories to be created when using
|
---|
| 104 | "\texttt{cmt co}":\\
|
---|
| 105 | \texttt{set CMTSTRUCTURINGSTYLE "with\_version\_directory"}
|
---|
| 106 | \item Resp. \texttt{"without\_version\_directory"} force a package version directory not
|
---|
[164] | 107 | to be created.
|
---|
[165] | 108 | \end{itemize}
|
---|
| 109 | \item See Changelog~\cite{cmt_changelog} for more informations
|
---|
[164] | 110 | \end{itemize}
|
---|
| 111 | \end{block}
|
---|
[162] | 112 | }
|
---|
| 113 |
|
---|
[165] | 114 | %---- Slide 3 -----%
|
---|
| 115 | \frame
|
---|
| 116 | {
|
---|
| 117 | \frametitle{\cmt feedbacks}
|
---|
[167] | 118 |
|
---|
| 119 | \begin{block}{Reports}
|
---|
[165] | 120 | \begin{itemize}
|
---|
[170] | 121 | \item Tested on the nightlies with "no" problems except
|
---|
| 122 | \begin{itemize}
|
---|
| 123 | \setbeamertemplate{itemize items}[circle]
|
---|
| 124 | \item Should understand the problem of eternal loop
|
---|
[176] | 125 | encountered with dictionaries ...
|
---|
[170] | 126 | \end{itemize}
|
---|
[165] | 127 | \item Should be the `stable' v1r18 in the futur
|
---|
[167] | 128 | \item Problems encountered with the cmtcvs plugin in the way cvs tags are printed :
|
---|
[165] | 129 | \begin{itemize}
|
---|
| 130 | \setbeamertemplate{itemize items}[circle]
|
---|
[167] | 131 | \item Thanks to D. Chamont, this is fixed and should
|
---|
| 132 | be available for the next plugin release
|
---|
[165] | 133 | \end{itemize}
|
---|
[167] | 134 | \end{itemize}
|
---|
| 135 | \end{block}
|
---|
[174] | 136 | }
|
---|
| 137 |
|
---|
| 138 | \frame
|
---|
| 139 | {
|
---|
| 140 | \frametitle{\cmt Future}
|
---|
[167] | 141 | \begin{block}{Future improvements planned for the next \cmt release :}
|
---|
[165] | 142 | \begin{itemize}
|
---|
| 143 | \setbeamertemplate{itemize items}[circle]
|
---|
| 144 | \item Request for having a macro that reflects all active tags , i.d.
|
---|
| 145 | we should introduce a link between the macro and tag concepts
|
---|
| 146 | \item Improve the log message mechanism for message classification
|
---|
[174] | 147 | within \cmt, e.g. "à la" Python's logging module~\cite{module_logging},
|
---|
| 148 | Apache's logging module~\cite{log4cxx}
|
---|
[167] | 149 | \end{itemize}
|
---|
[165] | 150 | \end{block}
|
---|
| 151 | }
|
---|
| 152 |
|
---|
[162] | 153 | %------------------------------- SECTION -------------------------%
|
---|
[176] | 154 | \section[SVN]{Exploring SVN for Atlas}
|
---|
[174] | 155 | %---- Slide 1 -----%
|
---|
| 156 | \frame{
|
---|
| 157 | \setbeamertemplate{blocks}[default]
|
---|
| 158 | \vfill \hfill
|
---|
| 159 | \begin{block}{\begin{center} \large Exploring SVN for Atlas\end{center}}
|
---|
| 160 | \end{block}
|
---|
| 161 | }
|
---|
| 162 |
|
---|
| 163 | %------------------------------- SLIDE -------------------------%
|
---|
| 164 | \frame
|
---|
| 165 | {
|
---|
| 166 | \frametitle{Scenario for Atlas}
|
---|
| 167 |
|
---|
[176] | 168 | \begin{block}{Roadmap}
|
---|
[174] | 169 | \begin{enumerate}
|
---|
| 170 | \item Convert the Atlas CVS repository into a Subversion one
|
---|
| 171 | \item Provide tools to provide synchronization operations between \cvs and \svn repositories
|
---|
| 172 | \begin{itemize}
|
---|
| 173 | \setbeamertemplate{itemize items}[circle]
|
---|
| 174 | \item For a certain period, we will have both system running at the same time
|
---|
| 175 | \item remark: iterative transition is less painful for the developers :)
|
---|
| 176 | \end{itemize}
|
---|
| 177 | \item Incorporate \svn in the complex Atlas software management chain, it supposes impact to :
|
---|
| 178 | \begin{itemize}
|
---|
| 179 | \setbeamertemplate{itemize items}[circle]
|
---|
| 180 | \item CMT
|
---|
| 181 | \item Tag Collector
|
---|
| 182 | \item Nicos
|
---|
| 183 | \end{itemize}
|
---|
| 184 | \item If successful, we could do the permanent switch; if not ... :(
|
---|
| 185 | \end{enumerate}
|
---|
| 186 | \end{block}
|
---|
| 187 | }
|
---|
| 188 |
|
---|
| 189 | %------------------------------- SLIDE -------------------------%
|
---|
| 190 | \frame
|
---|
| 191 | {
|
---|
| 192 | \frametitle{Converting CVS Repository to Subversion}
|
---|
| 193 | \begin{block}{}
|
---|
| 194 | \begin{itemize}
|
---|
[176] | 195 | \item We have developed our own tool \texttt{"cvs2svn.py"}
|
---|
[174] | 196 | \item We have selected the following organization for each project/package/tag:\\
|
---|
| 197 | \texttt{\textcolor{blue}{
|
---|
| 198 | <project>/.../<package>/trunk/...\\
|
---|
| 199 | <project>/.../<package>/tags/<tag>/...}}
|
---|
| 200 | \end{itemize}
|
---|
| 201 | \end{block}
|
---|
| 202 |
|
---|
| 203 | \begin{block}{}
|
---|
| 204 | \begin{itemize}
|
---|
| 205 | \item The complete Atlas cvs repository has been converted to a svn one. The svn url is :\\
|
---|
| 206 | {\small \texttt{\url{file:///afs/cern.ch/atlas/software/svnrepository/repository}}}
|
---|
| 207 | \item It takes a looong time to do that the first time
|
---|
| 208 | \begin{itemize}
|
---|
| 209 | \setbeamertemplate{itemize items}[circle]
|
---|
| 210 | \item Try different \svn backends: Berkley DB, \underline{\svn file system}
|
---|
| 211 | \item It takes me ~one week to complete the procedure, e.g. 8 hours for the AtlasCore project
|
---|
| 212 | \item but update will only concern recent tags
|
---|
| 213 | \end{itemize}
|
---|
| 214 | \end{itemize}
|
---|
| 215 | \end{block}
|
---|
| 216 | }
|
---|
| 217 |
|
---|
| 218 | %------------------------------- SLIDE -------------------------%
|
---|
| 219 | \frame
|
---|
| 220 | {
|
---|
| 221 | \frametitle{Conversion validation and management tools}
|
---|
| 222 |
|
---|
| 223 | \begin{block}{Conversion validation tools}
|
---|
| 224 | \begin{itemize}
|
---|
| 225 | \item We have implemented several tests to check the quality of the
|
---|
| 226 | conversion:
|
---|
| 227 | \begin{itemize}
|
---|
| 228 | \setbeamertemplate{itemize items}[circle]
|
---|
| 229 | \item Comparing the sources at each tag with diff tests
|
---|
| 230 | \item Comparing the list of tags for a package
|
---|
| 231 | \item Check global structure of the \svn repository
|
---|
| 232 | \item \url{/afs/cern.ch/atlas/scripts/testcvs2svn.py}
|
---|
| 233 | \end{itemize}
|
---|
| 234 | \end{itemize}
|
---|
| 235 | \end{block}
|
---|
| 236 |
|
---|
| 237 | \begin{block}{Management tools}
|
---|
| 238 | \begin{itemize}
|
---|
| 239 | \item We have also implemented a script which re-organizes the SVN repository:\\
|
---|
| 240 | \texttt{ \textcolor{blue}{
|
---|
| 241 | <project>/.../<package>/trunk/...\\
|
---|
| 242 | <project>/.../<package>/<tag>/...}}
|
---|
| 243 | \end{itemize}
|
---|
| 244 | \end{block}
|
---|
| 245 | }
|
---|
| 246 |
|
---|
| 247 | %------------------------------- SLIDE -------------------------%
|
---|
| 248 | \frame
|
---|
| 249 | {
|
---|
| 250 | \frametitle{Performance and scalability}
|
---|
| 251 | \begin{block}{Test stress scenario}
|
---|
| 252 | We define the following {\bf action} for an user:
|
---|
| 253 | \begin{itemize}
|
---|
| 254 | \item User selects randomly a package
|
---|
| 255 | \item He extracts and modifies it, then registers it until the operation is successful
|
---|
| 256 | \item Then he sleeps $n$ seconds with $n$ sort randomly $ \in [1, T_{max}]$
|
---|
| 257 | \end{itemize}
|
---|
| 258 | \end{block}
|
---|
| 259 |
|
---|
| 260 | \begin{block}{Experiment parameters}
|
---|
| 261 | \begin{itemize}
|
---|
| 262 | \item We have done experiments with different:
|
---|
| 263 | \begin{itemize}
|
---|
| 264 | \setbeamertemplate{itemize items}[circle]
|
---|
| 265 | \item Total number of users (10, \textcolor{blue}{100}, 1000)
|
---|
| 266 | \item Total number of packages (10, \textcolor{blue}{1000}, 10.000)
|
---|
| 267 | \end{itemize}
|
---|
| 268 | \item Concurrent user actions were launched by a multi-threaded program
|
---|
| 269 | ({\small\texttt{\url{/afs/cern.ch/user/v/vgaronne/svnTestStress}}})
|
---|
| 270 | \end{itemize}
|
---|
| 271 | \end{block}
|
---|
| 272 | }
|
---|
| 273 |
|
---|
| 274 | %------------------------------- SLIDE -------------------------%
|
---|
| 275 | \frame{
|
---|
| 276 | \frametitle{Performance and scalability - Results}
|
---|
| 277 | \begin{block}{}
|
---|
| 278 | \begin{itemize}
|
---|
| 279 | \item Let ${\cal R}atio$ be the ratio $\frac {Total~number~of~users} {{Total~number~of~packages}}$
|
---|
| 280 | \end{itemize}
|
---|
| 281 | \end{block}
|
---|
| 282 |
|
---|
| 283 | \begin{block}{}
|
---|
| 284 | We obtained :
|
---|
| 285 | \small
|
---|
| 286 | \begin{center}
|
---|
| 287 | \begin{tabular}{ccc}
|
---|
| 288 | \hline ${\cal R}atio$ & $T_{max}$ & Average action time (s) \\ \hline
|
---|
| 289 | 0.01 & 3600.0& 1.34 \\
|
---|
| 290 | 0.01 & 100.0& 1.06 \\
|
---|
| 291 | 0.01 & 10.0 & 1.38 \\
|
---|
| 292 | \textcolor{blue}{0.1} & \textcolor{blue}{ 3600.0} & \textcolor{blue}{5.77} \\
|
---|
| 293 | \textcolor{blue}{0.1}& \textcolor{blue}{100.0}& \textcolor{blue}{4.26} \\
|
---|
| 294 | \textcolor{blue}{0.1} & \textcolor{blue}{10.0} & \textcolor{blue}{6.96} \\
|
---|
| 295 | 1.0 & 3600.0 & 7.42 \\
|
---|
| 296 | 1.0 & 100.0& 7.06 \\
|
---|
| 297 | 1.0 & 10.0& 8.88\\
|
---|
| 298 | \end{tabular}
|
---|
| 299 | \end{center}
|
---|
| 300 | {\footnotesize\textcolor{blue}{**In blue, the values relevant for Atlas}}
|
---|
| 301 | \end{block}
|
---|
| 302 | }
|
---|
| 303 |
|
---|
| 304 | %------------------------------- SLIDE -------------------------%
|
---|
| 305 | \frame{
|
---|
| 306 | \frametitle{A brief summary by pictures}
|
---|
| 307 | %\begin{center}
|
---|
| 308 | %\vfill
|
---|
| 309 | \includegraphics<1>[width=0.92\paperwidth,height=0.74\paperheight]{figures/SVN_integration00}
|
---|
| 310 | \includegraphics<2>[width=0.92\paperwidth,height=0.74\paperheight]{figures/SVN_integration01}
|
---|
| 311 | \includegraphics<3>[width=0.92\paperwidth,height=0.74\paperheight]{figures/SVN_integration02}
|
---|
| 312 | \includegraphics<4>[width=0.92\paperwidth,height=0.74\paperheight]{figures/SVN_integration03}
|
---|
| 313 | \includegraphics<5>[width=0.92\paperwidth,height=0.74\paperheight]{figures/SVN_integration04}
|
---|
| 314 | \includegraphics<6>[width=0.92\paperwidth,height=0.74\paperheight]{figures/SVN_integration05}
|
---|
| 315 | %+\end{center}
|
---|
| 316 | }
|
---|
| 317 |
|
---|
| 318 | %------------------------------- SLIDE -------------------------%
|
---|
| 319 | \frame{
|
---|
| 320 | \frametitle{Synchronization operations}
|
---|
| 321 | \begin{block} {Mainly at the user level:}
|
---|
| 322 | \begin{itemize}
|
---|
| 323 | \item We proposed a script \texttt{"asvn"} that mimics the CVS syntax for SVN, including the synchronization operations on tags:
|
---|
| 324 | \begin{itemize}
|
---|
| 325 | \setbeamertemplate{itemize items}[circle]
|
---|
| 326 | \item Non exhaustive commands are: checkin, checkout , tag, ...
|
---|
| 327 | \item Provides also cmt specific commands working with SVN, e.g.
|
---|
| 328 | recursive checkout, svntags, svnsubprojects, ...
|
---|
| 329 | \item see \url{/afs/cern.ch/atlas/scripts/asvn}
|
---|
| 330 | \end{itemize}
|
---|
| 331 | \item \textcolor{red} {We assume that when users switch completely to svn for a package,
|
---|
| 332 | they will not work anymore with \cvs for this package, otherwise we will have integrity problems}
|
---|
| 333 | \item The synchronization operation should be triggered at the user/developer level during tag operations\\
|
---|
| 334 | \texttt{> asvn --sync tag Package-00-00-01 Package}
|
---|
| 335 | \end{itemize}
|
---|
| 336 | \end{block}
|
---|
| 337 | }
|
---|
| 338 |
|
---|
| 339 | %------------------------------- SLIDE -------------------------%
|
---|
| 340 | \frame{
|
---|
| 341 | \frametitle{Impact to the Atlas software management chain and tools}
|
---|
| 342 |
|
---|
| 343 | \begin{block} {Impact to the work model}
|
---|
| 344 | \begin{itemize}
|
---|
| 345 | \item No real change is expected
|
---|
| 346 | \end{itemize}
|
---|
| 347 | \end{block}
|
---|
| 348 |
|
---|
| 349 | \begin{block} {Impact to the tools}
|
---|
| 350 | \begin{itemize}
|
---|
| 351 | \item CMT: The \texttt{"asvn"} script previously presented covers these aspects
|
---|
| 352 | \item Tag Collector: Needs an interface to SVN, but should be much simpler than the interface to CVS. If not possible immediately,
|
---|
| 353 | we could go on temporally with the synchronized Atlas CVS repository
|
---|
| 354 | \item NICOS: Normaly only concerned with checkout operations ?
|
---|
| 355 | \end{itemize}
|
---|
| 356 | \end{block}
|
---|
| 357 | }
|
---|
| 358 |
|
---|
| 359 | %------------------------------- SECTION -------------------------%
|
---|
| 360 | \section{Conclusion}
|
---|
| 361 |
|
---|
| 362 | %------------------------------- SLIDE -------------------------%
|
---|
| 363 | \frame{
|
---|
| 364 | \frametitle{Conclusion}
|
---|
| 365 |
|
---|
| 366 | \begin{block} {}
|
---|
| 367 | \begin{itemize}
|
---|
| 368 | \item All the necessary tools are in place to start using SVN in Atlas
|
---|
| 369 | \begin{itemize}
|
---|
| 370 | \item Doing more tests to validate the atlas svn repository
|
---|
| 371 | \end{itemize}
|
---|
| 372 | \item Testing by real users, will help to tune, customize and improve these tools
|
---|
| 373 | \begin{itemize}
|
---|
| 374 | \item We need friendly users !
|
---|
| 375 | \end{itemize}
|
---|
| 376 | \item After, we could define milestones for the all conversion
|
---|
| 377 | \item We should clarify the migration policy
|
---|
| 378 | \begin{itemize}
|
---|
| 379 | \item Management of the "CVSROOT/commitavail" file for each package
|
---|
| 380 | to guaranty synchronization between CVS and SVN repository
|
---|
| 381 | \end{itemize}
|
---|
| 382 |
|
---|
| 383 | \item Implementing the interface to SVN in Tag Collector, depends
|
---|
| 384 | on TC team availability
|
---|
[176] | 385 | \item SVN should be installed at cern and supported by IT
|
---|
[174] | 386 | \end{itemize}
|
---|
| 387 | \end{block}
|
---|
| 388 |
|
---|
| 389 | }
|
---|
| 390 |
|
---|
| 391 |
|
---|
| 392 | %------------------------------- SECTION -------------------------%
|
---|
[165] | 393 | \section{References}
|
---|
[162] | 394 | %------------------------------- FRAME-------------------------%
|
---|
[164] | 395 | \frame[allowframebreaks]
|
---|
| 396 | {
|
---|
[165] | 397 | \frametitle{References}
|
---|
[170] | 398 | %\nocite{*}
|
---|
[164] | 399 | \bibliographystyle{unsrt}
|
---|
| 400 | \bibliography{CMT06-04-2006-sit}
|
---|
| 401 | }
|
---|
[162] | 402 |
|
---|
| 403 | \end{document}
|
---|
| 404 | %------------------------------- End Of File -------------------------% |
---|