From: Michael Tremer Date: Fri, 2 Oct 2015 21:22:14 +0000 (+0100) Subject: Add talk: Submitting Patches X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=HEAD;p=people%2Fms%2Ftalks.git Add talk: Submitting Patches Signed-off-by: Michael Tremer --- diff --git a/2015_-_Submitting_Patches/main.tex b/2015_-_Submitting_Patches/main.tex new file mode 100644 index 0000000..20c615a --- /dev/null +++ b/2015_-_Submitting_Patches/main.tex @@ -0,0 +1,365 @@ + +\documentclass[serif,mathserif,compress]{beamer} + +\usepackage{beamerthemesplit} + +\usetheme{default} +\useoutertheme{default} + +\usepackage[british]{babel} +\usepackage{amsmath} +\usepackage{amsfonts} +\usepackage{color} +\usepackage{epsfig} +\usepackage{listings} +\usepackage{marvosym} +\usepackage{texnansi} +\usepackage{verbatim} +\usepackage{xspace} + +% Make this a 16:9 presentation +\setlength{\paperwidth}{171 mm} +\setlength{\paperheight}{96 mm} +\setlength{\textwidth}{151 mm} +\setlength{\textheight}{86 mm} + +\usepackage[default,osfigures,scale=0.95]{opensans} +\usepackage[T1]{fontenc} +\usepackage[utf8]{inputenc} + +% Set sans-serif font. +%\renewcommand\sfdefault{phv} +%\renewcommand\familydefault{\sfdefault} + +% Define some colours. +\definecolor{myred}{rgb}{0.53,0.01,0} +\definecolor{mygrey}{rgb}{0.3,0.3,0.3} + +% Make a nice gradient as background. +%\setbeamertemplate{background canvas}[vertical shading] +%[bottom=black, middle=myred, top=myred] +\setbeamercolor{background canvas}{bg=white, fg=mygrey} +\setbeamercolor{frametitle}{fg=mygrey,bg=mygrey!20} +\setbeamercolor{section in head/foot}{bg=myred} +\setbeamercolor{subsection in head/foot}{fg=white} +\setbeamercolor{author in head/foot}{bg=myred} +\setbeamercolor{date in head/foot}{fg=white} + +% Highlight elements in some sort of grey. +\setbeamercolor{structure}{fg=mygrey} +\setbeamercolor{normal text}{bg=black, fg=mygrey} + +% Use round bullets in lists. +\setbeamertemplate{items}[circle] + +% Use bigger fonts for titles. +\setbeamerfont{title}{size=\Huge} +\setbeamerfont{frametitle}{size=\large} + +% Don't clutter the pages with useless navigations. +\setbeamertemplate{navigation symbols}{} + +\lstdefinestyle{console}{% + language=bash, + basicstyle=\ttfamily\fontsize{3.5}{6}\selectfont\color{white}, + frame=none, + rulecolor=\color{white}, + backgroundcolor=\color{black}, + breaklines=false, + breakindent=0pt, + lineskip={0pt}, + escapeinside={<@}{@>} +} + +% Author information. +\author[Michael Tremer]{Michael Tremer} +\institute{IPFire Project} + +% The title of the presentation. +\title{Submitting Patches} +\subtitle{Contributing to the IPFire project made easy} + +\date{October 10\textsuperscript{th}, 2015} + +\newcommand{\spacer}{\vspace{4 mm}} + +\newcommand{\screenshot}[1]{\centerline{% + \includegraphics[width=\textwidth]{#1}}} + +\newcommand{\slug}[1]{ + \vspace*{\fill} + + \begin{center} + \LARGE #1 + \end{center} + + \vspace*{\fill} +} + +\newcommand{\subslug}[1]{ + \slug{\normalsize #1} +} + +\begin{document} + \maketitle + + %\section*{Outline} + %\frame{\tableofcontents} + + \section{Introduction} + + \begin{frame} + \slug{We are an Open Source project \\ + \pause ... and use an open development approach} + \end{frame} + + \begin{frame} + \slug{Everyone is welcome to contribute} + \subslug{No skills required} + \end{frame} + + \begin{frame} + \slug{This might look complicated \\ + - it is mostly common sense} + \end{frame} + + \begin{frame} + \slug{Why does all this matter? \\ + \pause Our brains are good with patterns} + \end{frame} + + \section{Obtaining the Sources} + + \begin{frame} + \slug{We are using \texttt{git}} + \end{frame} + + \begin{frame} + \slug{Everything we do is in a git repository somewhere on \\ + \url{http://git.ipfire.org}} + \end{frame} + + \subsection{Setting up Git} + + \begin{frame} + \frametitle{Setting up Git} + + \slug{Introduce yourself} + + \subslug{We want to know who you are \\ + Real name required} + \pause + + \subslug{ + \texttt{git config ----global user.name ``Michael Tremer''} \\ + \texttt{git config ----global user.email michael.tremer@ipfire.org} + } + \end{frame} + + \subsection{Setting up Git for Email} + + \begin{frame} + \frametitle{Setting up Git for Email} + + \slug{Git needs to send email...} + + \subslug{ + \texttt{git config ----global sendemail.smtpencryption tls} \\ + \texttt{git config ----global sendemail.smtpserver mail01.ipfire.org} \\ + \texttt{git config ----global sendemail.smtpserverport 587} \\ + \texttt{git config ----global sendemail.smtpuser ms} + } + + \subslug{(You can use what ever mail server you want...)} + \end{frame} + + \subsection{Creating a Development Branch} + + \begin{frame} + \frametitle{Creating a Development Branch} + + \begin{columns}[T] % align columns + \begin{column}{.78\textwidth} + \slug{We use development branches for each feature} + + \subslug{ + \texttt{git checkout -b my-feature -t origin/master} + } + \end{column}% + \hfill% + \begin{column}{.28\textwidth} + \includegraphics[height=.85\textheight]{res/git-branches} + \end{column}% + \end{columns} + \end{frame} + + \section{Making Changes} + + \begin{frame} + \slug{Time to hack...} + \pause + + \subslug{But there are some rules...} + \end{frame} + + \begin{frame} + \subslug{Check with us before starting working on bigger things} + \pause + + \subslug{Separate your changes \\ + e.g. bug fixes vs. performance enhancements} + \pause + + \subslug{Send small patches \\ each one justifiable on its own merits} + \pause + + \subslug{Make sure that everything builds \\ mark dependencies} + \pause + + \subslug{Style-check your changes} + \pause + + \subslug{Test!} + \end{frame} + + \subsection{Committing Changes} + + \begin{frame} + \frametitle{Committing Changes} + + \slug{Committing a patch means \\ adding it to the project's history} + \pause + + \subslug{It will be in there for forever} + \end{frame} + + \subsection{Writing a commit message} + + \begin{frame} + \frametitle{Writing a good commit message} + + \slug{Describe your changes} + \pause + + \subslug{What motivated you to develop this patch?} + \subslug{What is the impact of the patch?} + \subslug{Are there user-visible changes?} + \end{frame} + + \begin{frame} + \frametitle{Writing a good commit message} + + \slug{Describe \underline{how} you solved the problem} + \pause + + \subslug{Include technical details} + \subslug{(If this step is getting difficult your patch is probably too complex)} + \end{frame} + + \begin{frame} + \frametitle{Writing a good commit message} + + \slug{Add useful information} + \pause + + \subslug{Bug IDs} + \subslug{Mailing list discussions \\ + (including a quick summary)} + \end{frame} + + \subsection{Git Tags} + + \begin{frame} + \frametitle{Git tags - Who did what?} + + \slug{Sign your work} + + \subslug{\texttt{Signed-off-by: Michael Tremer }} + \end{frame} + + \begin{frame} + \frametitle{Git tags - Who did what?} + + \slug{Credit your collaborators} + + \subslug{Reported-by: | Tested-by: | Reviewed-by: | Suggested-by:} + \end{frame} + + \subsection{Why all this?} + + \begin{frame} + \slug{Why all this?} + \pause + + \subslug{Commit messages will be read by the reviewers of your patch... \\ + \pause (help them to make reviewing your changes easier)} + + \pause + \subslug{...and after many years} + \end{frame} + + \section{Review} + + \begin{frame} + \slug{Every patch must be reviewed} + + \subslug{Respond to any comments - don't get discouraged - or impatient} + \end{frame} + + \begin{frame} + \frametitle{Who to send patches to?} + + \slug{The maintainer of a subsystem} + \slug{\underline{and} at least one mailing list} + \end{frame} + + \subsection{Submitting Patches} + + \begin{frame} + \slug{We use email only} + + \subslug{Pull requests only for bigger changes \& maintainers \\ + No GitHub pull requests} + \end{frame} + + \begin{frame} + \frametitle{Patch format} + + \begin{itemize} + \item Must include a From: header (with the real name and email address) + \item Subject line starting with \texttt{[PATCH]} + \item The commit message + \item \texttt{Signed-off-by:} line + \item The actual changes in the unified diff format + \end{itemize} + \pause + + \slug{\texttt{git send-email} automates all that} + \end{frame} + + \subsection{Patchwork} + + \subsection{Track what is going on...} + + \begin{frame} + \frametitle{Track what is going on...} + + \slug{\url{http://patchwork.ipfire.org/}} + \pause + + \subslug{Help us reviewing patches} + \end{frame} + + \section*{The End} + + \begin{frame} + \begin{center} + \includegraphics[height=.5\textheight]{res/ipfire_tux_512x512.png} + \end{center} + + \subslug{ + Read everything on \\ + \url{http://wiki.ipfire.org/devel/submit-patches} + } + \end{frame} +\end{document} diff --git a/2015_-_Submitting_Patches/res/git-branches.eps b/2015_-_Submitting_Patches/res/git-branches.eps new file mode 100644 index 0000000..c0f3706 --- /dev/null +++ b/2015_-_Submitting_Patches/res/git-branches.eps @@ -0,0 +1,378 @@ +%!PS-Adobe-3.0 EPSF-3.0 +%%Creator: cairo 1.14.2 (http://cairographics.org) +%%CreationDate: Fri Oct 2 19:45:33 2015 +%%Pages: 1 +%%DocumentData: Clean7Bit +%%LanguageLevel: 2 +%%BoundingBox: 14 13 199 578 +%%EndComments +%%BeginProlog +save +50 dict begin +/q { gsave } bind def +/Q { grestore } bind def +/cm { 6 array astore concat } bind def +/w { setlinewidth } bind def +/J { setlinecap } bind def +/j { setlinejoin } bind def +/M { setmiterlimit } bind def +/d { setdash } bind def +/m { moveto } bind def +/l { lineto } bind def +/c { curveto } bind def +/h { closepath } bind def +/re { exch dup neg 3 1 roll 5 3 roll moveto 0 rlineto + 0 exch rlineto 0 rlineto closepath } bind def +/S { stroke } bind def +/f { fill } bind def +/f* { eofill } bind def +/n { newpath } bind def +/W { clip } bind def +/W* { eoclip } bind def +/BT { } bind def +/ET { } bind def +/pdfmark where { pop globaldict /?pdfmark /exec load put } + { globaldict begin /?pdfmark /pop load def /pdfmark + /cleartomark load def end } ifelse +/BDC { mark 3 1 roll /BDC pdfmark } bind def +/EMC { mark /EMC pdfmark } bind def +/cairo_store_point { /cairo_point_y exch def /cairo_point_x exch def } def +/Tj { show currentpoint cairo_store_point } bind def +/TJ { + { + dup + type /stringtype eq + { show } { -0.001 mul 0 cairo_font_matrix dtransform rmoveto } ifelse + } forall + currentpoint cairo_store_point +} bind def +/cairo_selectfont { cairo_font_matrix aload pop pop pop 0 0 6 array astore + cairo_font exch selectfont cairo_point_x cairo_point_y moveto } bind def +/Tf { pop /cairo_font exch def /cairo_font_matrix where + { pop cairo_selectfont } if } bind def +/Td { matrix translate cairo_font_matrix matrix concatmatrix dup + /cairo_font_matrix exch def dup 4 get exch 5 get cairo_store_point + /cairo_font where { pop cairo_selectfont } if } bind def +/Tm { 2 copy 8 2 roll 6 array astore /cairo_font_matrix exch def + cairo_store_point /cairo_font where { pop cairo_selectfont } if } bind def +/g { setgray } bind def +/rg { setrgbcolor } bind def +/d1 { setcachedevice } bind def +%%EndProlog +%%BeginSetup +%%EndSetup +%%Page: 1 1 +%%BeginPageSetup +%%PageBoundingBox: 14 13 199 578 +%%EndPageSetup +q 14 13 185 565 rectclip q +0 0.266667 0.666667 rg +197.602 514.173 m 197.602 503.443 188.902 494.747 178.172 494.747 c 167.445 + 494.747 158.746 503.443 158.746 514.173 c 158.746 524.903 167.445 533.599 + 178.172 533.599 c 188.902 533.599 197.602 524.903 197.602 514.173 c h +197.602 514.173 m f +0 g +1.146738 w +0 J +1 j +[] 0.0 d +4 M q 1 0 0 -1 0 591.454224 cm +197.602 77.281 m 197.602 88.012 188.902 96.707 178.172 96.707 c 167.445 + 96.707 158.746 88.012 158.746 77.281 c 158.746 66.551 167.445 57.855 178.172 + 57.855 c 188.902 57.855 197.602 66.551 197.602 77.281 c h +197.602 77.281 m S Q +1.161414 w +0 j +q 1 0 0 -1 0 591.454224 cm +177.797 135.168 m 177.777 97.953 l S Q +177.789 467.9 m 173.141 472.544 l 177.797 456.286 l 182.434 472.548 l h +177.789 467.9 m f* +1.161414 w +q -0.00058259 1 1 0.00058259 0 591.454224 cm +-123.658 177.717 m -119.011 173.071 l -135.272 177.718 l -119.012 182.364 + l h +-123.658 177.717 m S Q +0 0.266667 0.666667 rg +197.602 432.571 m 197.602 421.845 188.902 413.146 178.172 413.146 c 167.445 + 413.146 158.746 421.845 158.746 432.571 c 158.746 443.302 167.445 452.001 + 178.172 452.001 c 188.902 452.001 197.602 443.302 197.602 432.571 c h +197.602 432.571 m f +0 g +1.146738 w +1 j +q 1 0 0 -1 0 591.454224 cm +197.602 158.883 m 197.602 169.609 188.902 178.309 178.172 178.309 c 167.445 + 178.309 158.746 169.609 158.746 158.883 c 158.746 148.152 167.445 139.453 + 178.172 139.453 c 188.902 139.453 197.602 148.152 197.602 158.883 c h +197.602 158.883 m S Q +1.2 w +0 j +q 1 0 0 -1 0 591.454224 cm +177.793 321.457 m 177.781 180.719 l S Q +177.793 281.997 m 172.992 286.794 l 177.793 269.997 l 182.59 286.794 l +h +177.793 281.997 m f* +1.2 w +q -0.0000864007 1 1 0.0000864007 0 591.454224 cm +-309.472 177.766 m -304.675 172.966 l -321.472 177.765 l -304.676 182.564 + l h +-309.472 177.766 m S Q +0 0.666667 0.831373 rg +108 376.571 m 108 365.845 99.301 357.146 88.574 357.146 c 77.844 357.146 + 69.148 365.845 69.148 376.571 c 69.148 387.302 77.844 396.001 88.574 396.001 + c 99.301 396.001 108 387.302 108 376.571 c h +108 376.571 m f +0 g +1.146738 w +1 j +q 1 0 0 -1 0 591.454224 cm +108 214.883 m 108 225.609 99.301 234.309 88.574 234.309 c 77.844 234.309 + 69.148 225.609 69.148 214.883 c 69.148 204.152 77.844 195.453 88.574 195.453 + c 99.301 195.453 108 204.152 108 214.883 c h +108 214.883 m S Q +0 0.666667 0.831373 rg +88.199 318.689 m 88.176 355.9 l f* +0 g +1.161414 w +0 j +q 1 0 0 -1 0 591.454224 cm +88.199 272.766 m 88.176 235.555 l S Q +88.191 330.302 m 83.543 334.943 l 88.199 318.689 l 92.832 334.95 l h +88.191 330.302 m f* +1.161414 w +q -0.00058259 1 1 0.00058259 0 591.454224 cm +-261.204 88.039 m -256.56 83.393 l -272.817 88.04 l -256.558 92.683 l h +-261.204 88.039 m S Q +0 0.666667 0.831373 rg +108 291.775 m 108 281.044 99.301 272.345 88.574 272.345 c 77.844 272.345 + 69.148 281.044 69.148 291.775 c 69.148 302.501 77.844 311.2 88.574 311.2 + c 99.301 311.2 108 302.501 108 291.775 c h +108 291.775 m f +0 g +1.146738 w +1 j +q 1 0 0 -1 0 591.454224 cm +108 299.68 m 108 310.41 99.301 319.109 88.574 319.109 c 77.844 319.109 +69.148 310.41 69.148 299.68 c 69.148 288.953 77.844 280.254 88.574 280.254 + c 99.301 280.254 108 288.953 108 299.68 c h +108 299.68 m S Q +0 1 0.4 rg +53.602 285.372 m 53.602 274.646 44.902 265.946 34.172 265.946 c 23.445 +265.946 14.746 274.646 14.746 285.372 c 14.746 296.103 23.445 304.798 34.172 + 304.798 c 44.902 304.798 53.602 296.103 53.602 285.372 c h +53.602 285.372 m f +0 g +q 1 0 0 -1 0 591.454224 cm +53.602 306.082 m 53.602 316.809 44.902 325.508 34.172 325.508 c 23.445 +325.508 14.746 316.809 14.746 306.082 c 14.746 295.352 23.445 286.656 34.172 + 286.656 c 44.902 286.656 53.602 295.352 53.602 306.082 c h +53.602 306.082 m S Q +0 1 0.4 rg +33.797 227.485 m 33.777 264.7 l f* +0 g +1.161414 w +0 j +q 1 0 0 -1 0 591.454224 cm +33.797 363.969 m 33.777 326.754 l S Q +33.789 239.103 m 29.141 243.743 l 33.797 227.485 l 38.434 243.751 l h +33.789 239.103 m f* +1.161414 w +q -0.00058259 1 1 0.00058259 0 591.454224 cm +-352.371 33.584 m -347.728 28.938 l -363.988 33.585 l -347.725 38.231 l + h +-352.371 33.584 m S Q +0 1 0.4 rg +53.602 203.775 m 53.602 193.044 44.902 184.345 34.172 184.345 c 23.445 +184.345 14.746 193.044 14.746 203.775 c 14.746 214.501 23.445 223.2 34.172 + 223.2 c 44.902 223.2 53.602 214.501 53.602 203.775 c h +53.602 203.775 m f +0 g +1.146738 w +1 j +q 1 0 0 -1 0 591.454224 cm +53.602 387.68 m 53.602 398.41 44.902 407.109 34.172 407.109 c 23.445 407.109 + 14.746 398.41 14.746 387.68 c 14.746 376.953 23.445 368.254 34.172 368.254 + c 44.902 368.254 53.602 376.953 53.602 387.68 c h +53.602 387.68 m S Q +0 1 0.4 rg +53.602 451.775 m 53.602 441.044 44.902 432.345 34.172 432.345 c 23.445 +432.345 14.746 441.044 14.746 451.775 c 14.746 462.501 23.445 471.2 34.172 + 471.2 c 44.902 471.2 53.602 462.501 53.602 451.775 c h +53.602 451.775 m f +0 g +q 1 0 0 -1 0 591.454224 cm +53.602 139.68 m 53.602 150.41 44.902 159.109 34.172 159.109 c 23.445 159.109 + 14.746 150.41 14.746 139.68 c 14.746 128.953 23.445 120.254 34.172 120.254 + c 44.902 120.254 53.602 128.953 53.602 139.68 c h +53.602 139.68 m S Q +0 1 0.4 rg +33.797 393.888 m 33.777 431.099 l f* +0 g +1.161414 w +0 j +q 1 0 0 -1 0 591.454224 cm +33.797 197.566 m 33.777 160.355 l S Q +33.789 405.501 m 29.141 410.146 l 33.797 393.888 l 38.434 410.15 l h +33.789 405.501 m f* +1.161414 w +q -0.00058259 1 1 0.00058259 0 591.454224 cm +-185.973 33.681 m -181.326 29.035 l -197.586 33.682 l -181.327 38.328 l + h +-185.973 33.681 m S Q +0 1 0.4 rg +53.602 366.974 m 53.602 356.243 44.902 347.548 34.172 347.548 c 23.445 +347.548 14.746 356.243 14.746 366.974 c 14.746 377.704 23.445 386.4 34.172 + 386.4 c 44.902 386.4 53.602 377.704 53.602 366.974 c h +53.602 366.974 m f +0 g +1.146738 w +1 j +q 1 0 0 -1 0 591.454224 cm +53.602 224.48 m 53.602 235.211 44.902 243.906 34.172 243.906 c 23.445 243.906 + 14.746 235.211 14.746 224.48 c 14.746 213.75 23.445 205.055 34.172 205.055 + c 44.902 205.055 53.602 213.75 53.602 224.48 c h +53.602 224.48 m S Q +0 1 0.4 rg +33.797 309.087 m 33.777 346.302 l f* +0 g +1.161414 w +0 j +q 1 0 0 -1 0 591.454224 cm +33.797 282.367 m 33.777 245.152 l S Q +33.789 320.7 m 29.141 325.345 l 33.797 309.087 l 38.434 325.349 l h +33.789 320.7 m f* +1.161414 w +q -0.00058259 1 1 0.00058259 0 591.454224 cm +-270.773 33.631 m -266.126 28.986 l -282.387 33.632 l -266.128 38.279 l + h +-270.773 33.631 m S Q +1.2 w +q 1 0 0 -1 0 591.454224 cm +60.371 124.609 m 153.516 84.609 l 154.086 85.18 l S Q +71.398 471.579 m 73.914 477.884 l 60.371 466.845 l 77.703 469.064 l h +71.398 471.579 m f* +1.102624 w +q 1 0.429448 0.429448 -1 0 591.454224 cm +16.817 127.097 m 21.227 122.686 l 5.79 127.096 l 21.228 131.507 l h +16.817 127.097 m S Q +1.2 w +q 1 0 0 -1 0 591.454224 cm +106.73 196.453 m 155.586 175.473 l 155.887 175.77 l S Q +117.758 399.735 m 120.273 406.04 l 106.73 395.001 l 124.062 397.22 l h +117.758 399.735 m f* +1.102624 w +q 1 0.429448 0.429448 -1 0 591.454224 cm +29.909 204.563 m 34.319 200.152 l 18.882 204.562 l 34.32 208.973 l h +29.909 204.563 m S Q +0 0.266667 0.666667 rg +197.602 245.372 m 197.602 234.646 188.902 225.946 178.172 225.946 c 167.445 + 225.946 158.746 234.646 158.746 245.372 c 158.746 256.103 167.445 264.798 + 178.172 264.798 c 188.902 264.798 197.602 256.103 197.602 245.372 c h +197.602 245.372 m f +0 g +1.146738 w +1 j +q 1 0 0 -1 0 591.454224 cm +197.602 346.082 m 197.602 356.809 188.902 365.508 178.172 365.508 c 167.445 + 365.508 158.746 356.809 158.746 346.082 c 158.746 335.352 167.445 326.656 + 178.172 326.656 c 188.902 326.656 197.602 335.352 197.602 346.082 c h +197.602 346.082 m S Q +1.161414 w +0 j +q 1 0 0 -1 0 591.454224 cm +177.797 403.969 m 177.777 366.754 l S Q +177.789 199.103 m 173.141 203.743 l 177.797 187.485 l 182.434 203.751 l + h +177.789 199.103 m f* +1.161414 w +q -0.00058259 1 1 0.00058259 0 591.454224 cm +-392.455 177.56 m -387.812 172.915 l -404.072 177.561 l -387.809 182.208 + l h +-392.455 177.56 m S Q +0 0.266667 0.666667 rg +197.602 158.974 m 197.602 148.243 188.902 139.548 178.172 139.548 c 167.445 + 139.548 158.746 148.243 158.746 158.974 c 158.746 169.704 167.445 178.4 + 178.172 178.4 c 188.902 178.4 197.602 169.704 197.602 158.974 c h +197.602 158.974 m f +0 g +1.146738 w +1 j +q 1 0 0 -1 0 591.454224 cm +197.602 432.48 m 197.602 443.211 188.902 451.906 178.172 451.906 c 167.445 + 451.906 158.746 443.211 158.746 432.48 c 158.746 421.75 167.445 413.055 + 178.172 413.055 c 188.902 413.055 197.602 421.75 197.602 432.48 c h +197.602 432.48 m S Q +1.161414 w +0 j +q 1 0 0 -1 0 591.454224 cm +177.797 490.367 m 177.777 453.152 l S Q +177.789 112.7 m 173.141 117.345 l 177.797 101.087 l 182.434 117.349 l h +177.789 112.7 m f* +1.161414 w +q -0.00058259 1 1 0.00058259 0 591.454224 cm +-478.857 177.51 m -474.21 172.864 l -490.471 177.511 l -474.212 182.157 + l h +-478.857 177.51 m S Q +0 0.266667 0.666667 rg +197.602 74.173 m 197.602 63.443 188.902 54.747 178.172 54.747 c 167.445 + 54.747 158.746 63.443 158.746 74.173 c 158.746 84.903 167.445 93.599 178.172 + 93.599 c 188.902 93.599 197.602 84.903 197.602 74.173 c h +197.602 74.173 m f +0 g +1.146738 w +1 j +q 1 0 0 -1 0 591.454224 cm +197.602 517.281 m 197.602 528.012 188.902 536.707 178.172 536.707 c 167.445 + 536.707 158.746 528.012 158.746 517.281 c 158.746 506.551 167.445 497.855 + 178.172 497.855 c 188.902 497.855 197.602 506.551 197.602 517.281 c h +197.602 517.281 m S Q +1.161414 w +0 j +q 1 0 0 -1 0 591.454224 cm +177.797 575.168 m 177.777 537.953 l S Q +177.789 27.9 m 173.141 32.544 l 177.797 16.286 l 182.434 32.548 l h +177.789 27.9 m f* +1.161414 w +q -0.00058259 1 1 0.00058259 0 591.454224 cm +-563.658 177.461 m -559.011 172.815 l -575.271 177.462 l -559.012 182.108 + l h +-563.658 177.461 m S Q +1.2 w +q 1 0 0 -1 0 591.454224 cm +154.305 335.652 m 105.449 314.672 l 105.148 314.973 l S Q +143.277 260.536 m 136.973 258.021 l 154.305 255.802 l 140.762 266.841 l + h +143.277 260.536 m f* +1.102624 w +q -1 0.429448 0.429448 1 0 591.454224 cm +-240.952 -227.442 m -236.541 -231.852 l -251.979 -227.441 l -236.542 -223.031 + l h +-240.952 -227.442 m S Q +1.2 w +q 1 0 0 -1 0 591.454224 cm +152.504 433.41 m 59.359 393.41 l 58.789 393.98 l S Q +141.477 162.778 m 135.172 160.263 l 152.504 158.044 l 138.961 169.083 l + h +141.477 162.778 m f* +1.102624 w +q -1 0.429448 0.429448 1 0 591.454224 cm +-274.876 -310.631 m -270.465 -315.041 l -285.903 -310.63 l -270.466 -306.22 + l h +-274.876 -310.631 m S Q +177.797 539.485 m 177.777 576.7 l f* +1.1616 w +q 1 0 0 -1 0 591.454224 cm +177.797 51.969 m 177.777 14.754 l S Q +177.789 551.103 m 173.141 555.747 l 177.797 539.485 l 182.434 555.751 l + h +177.789 551.103 m f* +1.1616 w +q -0.00058259 1 1 0.00058259 0 591.454224 cm +-40.455 177.765 m -35.808 173.12 l -52.072 177.767 l -35.809 182.413 l +h +-40.455 177.765 m S Q +Q Q +showpage +%%Trailer +end restore +%%EOF diff --git a/2015_-_Submitting_Patches/res/git-branches.svg b/2015_-_Submitting_Patches/res/git-branches.svg new file mode 100644 index 0000000..b09fb0a --- /dev/null +++ b/2015_-_Submitting_Patches/res/git-branches.svg @@ -0,0 +1,357 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/2015_-_Submitting_Patches/res/ipfire_tux_512x512.png b/2015_-_Submitting_Patches/res/ipfire_tux_512x512.png new file mode 100644 index 0000000..ec2bab2 Binary files /dev/null and b/2015_-_Submitting_Patches/res/ipfire_tux_512x512.png differ diff --git a/render.sh b/render.sh index 7b4fbcc..60f5473 100755 --- a/render.sh +++ b/render.sh @@ -5,6 +5,7 @@ PDFLATEX="pdflatex" TALKS="2012_-_Introduction_to_the_Pakfire_Build_Service" TALKS="${TALKS} 2014_-_A_look_into_the_past_and_future" TALKS="${TALKS} 2015_-_IPFire_3_Networking" +TALKS="${TALKS} 2015_-_Submitting_Patches" for talk in ${TALKS}; do (