From 158dbe2bbad88af34cca5af605c1444e1efb4019 Mon Sep 17 00:00:00 2001 From: Mohammad Akhlaghi Date: Tue, 4 Jun 2019 03:08:44 +0200 Subject: Added Git branching and history graph A graph was added showing how Git branching and history are used to verfiy the integrity of the result. --- tex/git-branch.tex | 90 +++++++++++++++++++++++++++++++++++++++++ tex/plot.tex | 109 -------------------------------------------------- tex/project-graph.tex | 109 ++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 199 insertions(+), 109 deletions(-) create mode 100644 tex/git-branch.tex delete mode 100644 tex/plot.tex create mode 100644 tex/project-graph.tex (limited to 'tex') diff --git a/tex/git-branch.tex b/tex/git-branch.tex new file mode 100644 index 0000000..98234d3 --- /dev/null +++ b/tex/git-branch.tex @@ -0,0 +1,90 @@ +\begin{columns} + \column{5cm} + \vspace{-0.4cm} + + \begin{tikzpicture} + + \draw [white] (0,0) -- (0,8.3); + + %% Template branch. + \ifdefined\tofuture + \draw[->, line width=2mm] (0,0) -- (0,8.2); + \else + \draw[->, line width=2mm] (0,0) -- (0,6.5); + \fi + + %% Project branch. + \ifdefined\projbranch + \draw[line width=2mm] (0,1.5) -- (1,2); + \ifdefined\tofuture + \draw[->, line width=2mm] (0.95,1.92) -- (0.95,8); + \else + \draw[->, line width=2mm] (0.95,1.92) -- (0.95,7); + \fi + \fi + + %% Merge link + \ifdefined\mergebranch + \draw[line width=2mm] (0,5.5) -- (0.95,6.05); + \fi + + %% Template commits. + \ifdefined\tofuture + \foreach \y in {0.55,...,7.55} + \draw [fill=green!80!blue, opacity=0.5] (0,\y) circle [radius=2.1mm]; + \else + \foreach \y in {0.55,...,6.5} + \draw [fill=green!80!blue, opacity=0.5] (0,\y) circle [radius=2.1mm]; + \fi + + %% Project commits. + \ifdefined\projbranch + \draw[anchor=north] (1,1.7) node {Project}; + + \ifdefined\tofuture + \foreach \y in {2,...,7.55} + \draw [fill=red!60!green, opacity=0.5] (0.95,\y) circle [radius=2.1mm]; + \else + \ifdefined\mergebranch + \foreach \y in {2,...,6.5} + \draw [fill=red!60!green, opacity=0.5] (0.95,\y) circle [radius=2.1mm]; + \else + \foreach \y in {2,...,5} + \draw [fill=red!60!green, opacity=0.5] (0.95,\y) circle [radius=2.1mm]; + \fi + \fi + \fi + + \draw[anchor=north] (0,0) node {Template}; + + %% Happy scientist + \ifdefined\githappy + \node [inner sep=0pt] at (3.5,6) {\includegraphics[width=2cm]{img/happy.jpg}}; + \node [inner sep=0pt] at (4.15,7.3) {\includegraphics[width=0.2cm]{img/checkmark.png}}; + \draw[anchor=east] (2.4,7) node {\footnotesize\texttt{5cfe2eab}}; + \draw[anchor=south] (4.5,7) node [rotate=20] {\tiny\texttt{5cfe2eab}}; + \fi + + \end{tikzpicture} + + \column{6cm} + \begin{itemize} + \setlength\itemsep{0.6cm} + \item Template's history is recorded. + \ifdefined\projbranch + \item New projects: a branch in the history. + \fi + \ifdefined\mergebranch + \item Low-level updates in the template can always be imported into + a project. + \fi + \ifdefined\tofuture + \item The template and project will \alert{evolve}. + \fi + \ifdefined\githappy + \item Upon publication, the \alert{Git hash} is enough to verify the + integrity of the result. + \item During research this encourages creative tests on any step. + \fi + \end{itemize} +\end{columns} diff --git a/tex/plot.tex b/tex/plot.tex deleted file mode 100644 index 566a9e7..0000000 --- a/tex/plot.tex +++ /dev/null @@ -1,109 +0,0 @@ -\small -\Wider[5em]{ - -\begin{tikzpicture}[>=stealth, thick, black!50, text=black, - every new ->/.style={shorten >=1pt}, - hv path/.style={to path={-| (\tikztotarget)}}, - graphs/every graph/.style={edges=rounded corners}] - - %% This white line is only added to fix the vertical position of the - %% figure so it doesn't change as we add more boxes. - \draw [white] (0,-4.2) -- (0,4.2); - \draw [white] (-0.5,0) -- (12,0); - - \graph[grow right sep, simple] { - { [nodes={yshift=7mm}] - soft/Software [gbox] -> build/Build [bbox], - hard/Hardware/data [gbox, yshift=-0.5cm] -- - p1 [coordinate, xshift=2cm, yshift=-0.5cm] - } -- [hv path] - p2 [coordinate] -> - srun/Run software on data [bbox] -> - paper/Paper [bbox] - }; - - \ifdefined\paperfinal - \node (happy) [inner sep=0pt, below=of paper, yshift=+8mm] - {\includegraphics[width=2cm]{img/happy-question.jpg}}; - \node (happyurl) [below=of happy, xshift=-9.5mm, yshift=+1cm] - {\tiny \url{https://heywhatwhatdidyousay.wordpress.com}}; - \node (qurl) [below=of happyurl, xshift=10.5mm, yshift=+1.2cm] - {\tiny \url{http://pngimages.net}}; - \else - \ifdefined\paperinit - \node (happy) [inner sep=0pt, below=of paper, yshift=+8mm] - {\includegraphics[width=2cm]{img/happy.jpg}}; - \node (happyurl) [below=of happy, xshift=-9.5mm, yshift=+1cm] - {\tiny \url{https://heywhatwhatdidyousay.wordpress.com}}; - \fi - \fi - - %% Software... - \ifdefined\sver - \node (sver) [rbox, above=of soft, yshift=-8mm, opacity=\nodeopacity] {What version?}; - \fi - \ifdefined\srep - \node (srep) [rbox, above=of sver, yshift=-8mm, opacity=\nodeopacity] {Repository?}; - \fi - - %% Hardware... - \ifdefined\db - \node (db) [rbox, below=of hard, yshift=+8mm, opacity=\nodeopacity] {Data base?}; - \fi - \ifdefined\calib - \node (calib) [rbox, below=of db, yshift=+8mm, opacity=\nodeopacity] {Calibration/version?}; - \fi - \ifdefined\corr - \node (corr) [rbox, below=of calib, yshift=+8mm, opacity=\nodeopacity] {Integrity?}; - \fi - - %% Build - \ifdefined\dver - \node (dver) [rbox, above=of build, yshift=-8mm, opacity=\nodeopacity] {Dependencies?}; - \fi - \ifdefined\ddver - \node (ddver) [rbox, above=of dver, yshift=-8mm, opacity=\nodeopacity] {Dep. versions?}; - \fi - \ifdefined\confopt - \node (confopt) [rbox, above=of ddver, yshift=-8mm, opacity=\nodeopacity] {Config options?}; - \fi - \ifdefined\confenv - \node (confenv) [rbox, above=of confopt, yshift=-8mm, opacity=\nodeopacity] {Config environment?}; - \fi - - %% Run software ... - \ifdefined\runord - \node (runord) [rbox, above=of srun, yshift=-8mm, opacity=\nodeopacity] {What order?}; - \fi - \ifdefined\runopt - \node (runopt) [rbox, above=of runord, yshift=-8mm, opacity=\nodeopacity] {Runtime options?}; - \fi - \ifdefined\humanerr - \node (humanerr) [rbox, above=of runopt, yshift=-8mm, opacity=\nodeopacity] {Human error?}; - \fi - \ifdefined\depupdate - \node (depupdate) [rbox, below=of srun, yshift=+8mm, opacity=\nodeopacity] {Environment update?}; - \fi - \ifdefined\coauth - \node (coaut) [rbox, below=of depupdate, yshift=+8mm, opacity=\nodeopacity] {In sync with coauthors?}; - \fi - - %% Paper ... - \ifdefined\varsinpaper - \node (varsinpaper) [rbox, above=of paper, xshift=-1mm, yshift=-8mm, opacity=1] {Sync with analysis?}; - \fi - \ifdefined\recordinfo - \node (recordinfo) [rbox, above=of varsinpaper, yshift=-8mm, opacity=\nodeopacity] {Report this info?}; - \fi - \ifdefined\softcite - \node (softcite) [rbox, above=of recordinfo, yshift=-8mm, opacity=\nodeopacity] {Cited software?}; - \fi - \ifdefined\prevchange - \node (prevchange) [rbox, above=of softcite, yshift=-8mm, opacity=\nodeopacity] {History recorded?}; - \fi - - \ifdefined\gitlogo - \node [inner sep=0pt, opacity=0.5] at (5.5,0) {\includegraphics[width=10cm]{img/git.png}}; - \fi -\end{tikzpicture} -} diff --git a/tex/project-graph.tex b/tex/project-graph.tex new file mode 100644 index 0000000..566a9e7 --- /dev/null +++ b/tex/project-graph.tex @@ -0,0 +1,109 @@ +\small +\Wider[5em]{ + +\begin{tikzpicture}[>=stealth, thick, black!50, text=black, + every new ->/.style={shorten >=1pt}, + hv path/.style={to path={-| (\tikztotarget)}}, + graphs/every graph/.style={edges=rounded corners}] + + %% This white line is only added to fix the vertical position of the + %% figure so it doesn't change as we add more boxes. + \draw [white] (0,-4.2) -- (0,4.2); + \draw [white] (-0.5,0) -- (12,0); + + \graph[grow right sep, simple] { + { [nodes={yshift=7mm}] + soft/Software [gbox] -> build/Build [bbox], + hard/Hardware/data [gbox, yshift=-0.5cm] -- + p1 [coordinate, xshift=2cm, yshift=-0.5cm] + } -- [hv path] + p2 [coordinate] -> + srun/Run software on data [bbox] -> + paper/Paper [bbox] + }; + + \ifdefined\paperfinal + \node (happy) [inner sep=0pt, below=of paper, yshift=+8mm] + {\includegraphics[width=2cm]{img/happy-question.jpg}}; + \node (happyurl) [below=of happy, xshift=-9.5mm, yshift=+1cm] + {\tiny \url{https://heywhatwhatdidyousay.wordpress.com}}; + \node (qurl) [below=of happyurl, xshift=10.5mm, yshift=+1.2cm] + {\tiny \url{http://pngimages.net}}; + \else + \ifdefined\paperinit + \node (happy) [inner sep=0pt, below=of paper, yshift=+8mm] + {\includegraphics[width=2cm]{img/happy.jpg}}; + \node (happyurl) [below=of happy, xshift=-9.5mm, yshift=+1cm] + {\tiny \url{https://heywhatwhatdidyousay.wordpress.com}}; + \fi + \fi + + %% Software... + \ifdefined\sver + \node (sver) [rbox, above=of soft, yshift=-8mm, opacity=\nodeopacity] {What version?}; + \fi + \ifdefined\srep + \node (srep) [rbox, above=of sver, yshift=-8mm, opacity=\nodeopacity] {Repository?}; + \fi + + %% Hardware... + \ifdefined\db + \node (db) [rbox, below=of hard, yshift=+8mm, opacity=\nodeopacity] {Data base?}; + \fi + \ifdefined\calib + \node (calib) [rbox, below=of db, yshift=+8mm, opacity=\nodeopacity] {Calibration/version?}; + \fi + \ifdefined\corr + \node (corr) [rbox, below=of calib, yshift=+8mm, opacity=\nodeopacity] {Integrity?}; + \fi + + %% Build + \ifdefined\dver + \node (dver) [rbox, above=of build, yshift=-8mm, opacity=\nodeopacity] {Dependencies?}; + \fi + \ifdefined\ddver + \node (ddver) [rbox, above=of dver, yshift=-8mm, opacity=\nodeopacity] {Dep. versions?}; + \fi + \ifdefined\confopt + \node (confopt) [rbox, above=of ddver, yshift=-8mm, opacity=\nodeopacity] {Config options?}; + \fi + \ifdefined\confenv + \node (confenv) [rbox, above=of confopt, yshift=-8mm, opacity=\nodeopacity] {Config environment?}; + \fi + + %% Run software ... + \ifdefined\runord + \node (runord) [rbox, above=of srun, yshift=-8mm, opacity=\nodeopacity] {What order?}; + \fi + \ifdefined\runopt + \node (runopt) [rbox, above=of runord, yshift=-8mm, opacity=\nodeopacity] {Runtime options?}; + \fi + \ifdefined\humanerr + \node (humanerr) [rbox, above=of runopt, yshift=-8mm, opacity=\nodeopacity] {Human error?}; + \fi + \ifdefined\depupdate + \node (depupdate) [rbox, below=of srun, yshift=+8mm, opacity=\nodeopacity] {Environment update?}; + \fi + \ifdefined\coauth + \node (coaut) [rbox, below=of depupdate, yshift=+8mm, opacity=\nodeopacity] {In sync with coauthors?}; + \fi + + %% Paper ... + \ifdefined\varsinpaper + \node (varsinpaper) [rbox, above=of paper, xshift=-1mm, yshift=-8mm, opacity=1] {Sync with analysis?}; + \fi + \ifdefined\recordinfo + \node (recordinfo) [rbox, above=of varsinpaper, yshift=-8mm, opacity=\nodeopacity] {Report this info?}; + \fi + \ifdefined\softcite + \node (softcite) [rbox, above=of recordinfo, yshift=-8mm, opacity=\nodeopacity] {Cited software?}; + \fi + \ifdefined\prevchange + \node (prevchange) [rbox, above=of softcite, yshift=-8mm, opacity=\nodeopacity] {History recorded?}; + \fi + + \ifdefined\gitlogo + \node [inner sep=0pt, opacity=0.5] at (5.5,0) {\includegraphics[width=10cm]{img/git.png}}; + \fi +\end{tikzpicture} +} -- cgit v1.2.1