aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad Akhlaghi <mohammad@akhlaghi.org>2019-06-04 03:08:44 +0200
committerMohammad Akhlaghi <mohammad@akhlaghi.org>2019-06-04 03:08:44 +0200
commit158dbe2bbad88af34cca5af605c1444e1efb4019 (patch)
treee0bdfb697dd019201a973b9fd380f0cfc6514759
parent05593d91a4148d2c852e263995a170007dbfb628 (diff)
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.
-rw-r--r--Makefile3
-rw-r--r--img/checkmark.pngbin0 -> 3433 bytes
-rw-r--r--img/ull.pngbin0 -> 5413 bytes
-rw-r--r--reproducible-paper.tex66
-rw-r--r--tex/git-branch.tex90
-rw-r--r--tex/project-graph.tex (renamed from tex/plot.tex)0
6 files changed, 131 insertions, 28 deletions
diff --git a/Makefile b/Makefile
index fdfc2b7..2a573d4 100644
--- a/Makefile
+++ b/Makefile
@@ -1,5 +1,6 @@
# PDF slides:
-reproducible-paper.pdf: reproducible-paper.tex tex/plot.tex
+reproducible-paper.pdf: reproducible-paper.tex \
+ tex/project-graph.tex tex/git-branch.tex
# We'll run pdflatex two times so the page numbers and
# internal links also work.
pdflatex reproducible-paper
diff --git a/img/checkmark.png b/img/checkmark.png
new file mode 100644
index 0000000..c2500da
--- /dev/null
+++ b/img/checkmark.png
Binary files differ
diff --git a/img/ull.png b/img/ull.png
new file mode 100644
index 0000000..492abb9
--- /dev/null
+++ b/img/ull.png
Binary files differ
diff --git a/reproducible-paper.tex b/reproducible-paper.tex
index e96d60b..52e0842 100644
--- a/reproducible-paper.tex
+++ b/reproducible-paper.tex
@@ -18,8 +18,9 @@
%% Set the author
\author{Mohammad Akhlaghi\\\vspace{2mm}\footnotesize Instituto de
Astrof\'isica de Canarias ({\scriptsize IAC}),\\Tenerife, Spain\\
- \vspace{0.5cm}\includegraphics[width=1.8cm]{img/iac.png}
- \includegraphics[width=3cm]{img/sundial.png}%\vspace{0.5cm}
+ \vspace{0.5cm} \raisebox{+0.8\height}{\includegraphics[width=2cm]{img/ull.png}}{ }{
+ }\includegraphics[width=1.5cm]{img/iac.png}{ }{ }{
+ }\includegraphics[width=2cm]{img/sundial.png}\vspace{0.5cm}
}
%% Set the date and insitutional logos.
@@ -116,47 +117,47 @@
\newcommand{\nodeopacity}{1}
- \begin{frame}{General outline of a project} \include{tex/plot} \end{frame}
+ \begin{frame}{General outline of a project} \include{tex/project-graph} \end{frame}
\newcommand{\paperinit}{}
- \begin{frame}{General outline of a project} \include{tex/plot} \end{frame}
+ \begin{frame}{General outline of a project} \include{tex/project-graph} \end{frame}
\newcommand{\sver}{}
- \begin{frame}{General outline of a project} \include{tex/plot} \end{frame}
+ \begin{frame}{General outline of a project} \include{tex/project-graph} \end{frame}
\newcommand{\srep}{}
- \begin{frame}{General outline of a project} \include{tex/plot} \end{frame}
+ \begin{frame}{General outline of a project} \include{tex/project-graph} \end{frame}
\newcommand{\dver}{}
- \begin{frame}{General outline of a project} \include{tex/plot} \end{frame}
+ \begin{frame}{General outline of a project} \include{tex/project-graph} \end{frame}
\newcommand{\ddver}{}
- \begin{frame}{General outline of a project} \include{tex/plot} \end{frame}
+ \begin{frame}{General outline of a project} \include{tex/project-graph} \end{frame}
\newcommand{\confopt}{}
- \begin{frame}{General outline of a project} \include{tex/plot} \end{frame}
+ \begin{frame}{General outline of a project} \include{tex/project-graph} \end{frame}
\newcommand{\confenv}{}
- \begin{frame}{General outline of a project} \include{tex/plot} \end{frame}
+ \begin{frame}{General outline of a project} \include{tex/project-graph} \end{frame}
\newcommand{\db}{}
- \begin{frame}{General outline of a project} \include{tex/plot} \end{frame}
+ \begin{frame}{General outline of a project} \include{tex/project-graph} \end{frame}
\newcommand{\calib}{}
- \begin{frame}{General outline of a project} \include{tex/plot} \end{frame}
+ \begin{frame}{General outline of a project} \include{tex/project-graph} \end{frame}
\newcommand{\corr}{}
- \begin{frame}{General outline of a project} \include{tex/plot} \end{frame}
+ \begin{frame}{General outline of a project} \include{tex/project-graph} \end{frame}
\newcommand{\runord}{}
- \begin{frame}{General outline of a project} \include{tex/plot} \end{frame}
+ \begin{frame}{General outline of a project} \include{tex/project-graph} \end{frame}
\newcommand{\runopt}{}
- \begin{frame}{General outline of a project} \include{tex/plot} \end{frame}
+ \begin{frame}{General outline of a project} \include{tex/project-graph} \end{frame}
\newcommand{\humanerr}{}
- \begin{frame}{General outline of a project} \include{tex/plot} \end{frame}
+ \begin{frame}{General outline of a project} \include{tex/project-graph} \end{frame}
\newcommand{\depupdate}{}
- \begin{frame}{General outline of a project} \include{tex/plot} \end{frame}
+ \begin{frame}{General outline of a project} \include{tex/project-graph} \end{frame}
\newcommand{\coauth}{}
- \begin{frame}{General outline of a project} \include{tex/plot} \end{frame}
+ \begin{frame}{General outline of a project} \include{tex/project-graph} \end{frame}
\newcommand{\varsinpaper}{}
- \begin{frame}{General outline of a project} \include{tex/plot} \end{frame}
+ \begin{frame}{General outline of a project} \include{tex/project-graph} \end{frame}
\newcommand{\recordinfo}{}
- \begin{frame}{General outline of a project} \include{tex/plot} \end{frame}
+ \begin{frame}{General outline of a project} \include{tex/project-graph} \end{frame}
\newcommand{\softcite}{}
- \begin{frame}{General outline of a project} \include{tex/plot} \end{frame}
+ \begin{frame}{General outline of a project} \include{tex/project-graph} \end{frame}
\newcommand{\prevchange}{}
- \begin{frame}{General outline of a project} \include{tex/plot} \end{frame}
+ \begin{frame}{General outline of a project} \include{tex/project-graph} \end{frame}
\newcommand{\paperfinal}{}
- \begin{frame}{General outline of a project} \include{tex/plot} \end{frame}
+ \begin{frame}{General outline of a project} \include{tex/project-graph} \end{frame}
%% Don't show the happy scientist any more.
\let\paperfinal\undefined
@@ -215,7 +216,7 @@
\renewcommand{\nodeopacity}{0.3}
- \begin{frame}{General outline of a project} \include{tex/plot} \end{frame}
+ \begin{frame}{General outline of a project} \include{tex/project-graph} \end{frame}
@@ -519,14 +520,25 @@
\renewcommand{\nodeopacity}{1}
\begin{frame}{Everything in plain text (machine and human readable)}
- \include{tex/plot} \end{frame}
- \newcommand{\paperinit}{}
+ \include{tex/project-graph} \end{frame}
\newcommand{\gitlogo}{}
\begin{frame}{Everything in plain text (machine and human readable)}
- \include{tex/plot}
+ \include{tex/project-graph}
\end{frame}
+
+ \begin{frame}{New projects branch from template} \include{tex/git-branch} \end{frame}
+ \newcommand{\projbranch}{}
+ \begin{frame}{New projects branch from template} \include{tex/git-branch} \end{frame}
+ \newcommand{\mergebranch}{}
+ \begin{frame}{New projects branch from template} \include{tex/git-branch} \end{frame}
+ \newcommand{\tofuture}{}
+ \begin{frame}{New projects branch from template} \include{tex/git-branch} \end{frame}
+ \newcommand{\githappy}{}
+ \begin{frame}{New projects branch from template} \include{tex/git-branch} \end{frame}
+
+
\begin{frame}{Publication of the project}
A reproducible project using this template will have the following
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/project-graph.tex
index 566a9e7..566a9e7 100644
--- a/tex/plot.tex
+++ b/tex/project-graph.tex