From f62596ea8b97727ab8366965faf6f316d463ebf7 Mon Sep 17 00:00:00 2001 From: Mohammad Akhlaghi Date: Sun, 26 Jan 2020 02:55:43 +0000 Subject: General project structure and configuration described In the last few days I have been writing these two sections in the middle of other work. But I am making this commit because it has already become a lot! I am now going onto the description of `./project make'. --- tex/src/figure-file-architecture.tex | 97 +++++++++++++++++++++++------------- 1 file changed, 62 insertions(+), 35 deletions(-) (limited to 'tex/src/figure-file-architecture.tex') diff --git a/tex/src/figure-file-architecture.tex b/tex/src/figure-file-architecture.tex index 5c00e6e..c892232 100644 --- a/tex/src/figure-file-architecture.tex +++ b/tex/src/figure-file-architecture.tex @@ -1,3 +1,5 @@ +\newcommand{\fullfilearchitecture}{} + \begin{tikzpicture}[ line width=1.5pt, black!50, @@ -10,118 +12,143 @@ %% project/ \node [dirbox, at={(0,4cm)}, minimum width=15cm, minimum height=9cm, label={[shift={(0,-5mm)}]\texttt{project/}}] {}; + \ifdefined\fullfilearchitecture \node [node-nonterminal-thin, at={(-6.0cm,3.3cm)}] {COPYING}; + \fi \node [node-nonterminal-thin, at={(-3.5cm,3.3cm)}] {paper.tex}; + \ifdefined\fullfilearchitecture \node [node-nonterminal-thin, at={(-1.0cm,3.3cm)}] {project}; \node [node-nonterminal-thin, at={(+1.5cm,3.3cm)}] {README.md}; \node [node-nonterminal-thin, at={(+4.25cm,3.3cm)}, - text width=2.5cm, text depth=-3pt] {README-hacking.md}; + text width=2.5cm, text depth=-3pt] {README-hacking.md}; + \fi %% reproduce/ \node [dirbox, at={(-1.4cm,2.6cm)}, minimum width=11.9cm, minimum height=6cm, - label={[shift={(0,-5mm)}]\texttt{reproduce/}}] {}; + label={[shift={(0,-5mm)}]\texttt{reproduce/}}, fill=brown!15!white] {}; %% reproduce/software/ \node [dirbox, at={(-4.35cm,2.1cm)}, minimum width=5.7cm, minimum height=5.3cm, - label={[shift={(0,-5mm)}]\texttt{software/}}] {}; + label={[shift={(0,-5mm)}]\texttt{software/}}, fill=brown!20!white] {}; %% reproduce/software/config \node [dirbox, at={(-5.75cm,1.5cm)}, minimum width=2.6cm, minimum height=2.1cm, - label={[shift={(0,-5mm)}]\texttt{config/}}] {}; + label={[shift={(0,-5mm)}]\texttt{config/}}, fill=brown!25!white] {}; + \ifdefined\fullfilearchitecture \node [node-nonterminal-thin, at={(-5.75cm,0.8cm)}] {LOCAL.conf.in}; + \fi \node [node-nonterminal-thin, at={(-5.75cm,0.3cm)}] {versions.conf}; + \ifdefined\fullfilearchitecture \node [node-nonterminal-thin, at={(-5.75cm,-0.2cm)}] {checksums.conf}; + \fi %% reproduce/software/make \node [dirbox, at={(-2.95cm,1.5cm)}, minimum width=2.6cm, minimum height=2.1cm, - label={[shift={(0,-5mm)}]\texttt{make/}}] {}; + label={[shift={(0,-5mm)}]\texttt{make/}}, fill=brown!25!white] {}; + \ifdefined\fullfilearchitecture \node [node-nonterminal-thin, at={(-2.95cm,0.8cm)}] {basic.mk}; + \fi \node [node-nonterminal-thin, at={(-2.95cm,0.3cm)}] {high-level.mk}; + \ifdefined\fullfilearchitecture \node [node-nonterminal-thin, at={(-2.95cm,-0.2cm)}] {python.mk}; + \fi %% reproduce/software/bash \node [dirbox, at={(-5.75cm,-0.8cm)}, minimum width=2.6cm, minimum height=2.1cm, - label={[shift={(0,-5mm)}]\texttt{bash/}}] {}; + label={[shift={(0,-5mm)}]\texttt{bash/}}, fill=brown!25!white] {}; + \ifdefined\fullfilearchitecture \node [node-nonterminal-thin, at={(-5.75cm,-1.5cm)}] {bashrc.sh}; \node [node-nonterminal-thin, at={(-5.75cm,-2.0cm)}] {configure.sh}; - \node [node-nonterminal-thin, at={(-5.75cm,-2.5cm)}] {git-pre-comit}; + \fi %% reproduce/software/bibtex \node [dirbox, at={(-2.95cm,-0.8cm)}, minimum width=2.6cm, minimum height=2.1cm, - label={[shift={(0,-5mm)}]\texttt{bibtex/}}] {}; + label={[shift={(0,-5mm)}]\texttt{bibtex/}}, fill=brown!25!white] {}; + \ifdefined\fullfilearchitecture \node [node-nonterminal-thin, at={(-2.95cm,-1.5cm)}] {fftw.tex}; \node [node-nonterminal-thin, at={(-2.95cm,-2.0cm)}] {numpy.tex}; \node [node-nonterminal-thin, at={(-2.95cm,-2.5cm)}] {gnuastro.tex}; + \fi %% reproduce/analysis/ \node [dirbox, at={(1.55cm,2.1cm)}, minimum width=5.7cm, minimum height=5.3cm, - label={[shift={(0,-5mm)}]\texttt{analysis/}}] {}; + label={[shift={(0,-5mm)}]\texttt{analysis/}}, fill=brown!20!white] {}; %% reproduce/analysis/config \node [dirbox, at={(0.15cm,1.5cm)}, minimum width=2.6cm, minimum height=2.1cm, - label={[shift={(0,-5mm)}]\texttt{config/}}] {}; + label={[shift={(0,-5mm)}]\texttt{config/}}, fill=brown!25!white] {}; \node [node-nonterminal-thin, at={(0.15cm,0.8cm)}] {INPUTS.conf}; \node [node-nonterminal-thin, at={(0.15cm,0.3cm)}] {param-1.conf}; \node [node-nonterminal-thin, at={(0.15cm,-0.2cm)}] {param-2.conf}; %% reproduce/analysis/make \node [dirbox, at={(2.95cm,1.5cm)}, minimum width=2.6cm, minimum height=2.1cm, - label={[shift={(0,-5mm)}]\texttt{make/}}] {}; + label={[shift={(0,-5mm)}]\texttt{make/}}, fill=brown!25!white] {}; \node [node-nonterminal-thin, at={(2.95cm,0.8cm)}] {initialize.mk}; \node [node-nonterminal-thin, at={(2.95cm,0.3cm)}] {download.mk}; \node [node-nonterminal-thin, at={(2.95cm,-0.2cm)}] {analysis-1.mk}; %% reproduce/analysis/bash \node [dirbox, at={(0.15cm,-0.8cm)}, minimum width=2.6cm, minimum height=2.1cm, - label={[shift={(0,-5mm)}]\texttt{bash/}}] {}; - \node [node-nonterminal-thin, at={(0.15cm,-1.5cm)}] {process-1.sh}; - \node [node-nonterminal-thin, at={(0.15cm,-2.0cm)}] {process-2.sh}; - \node [node-nonterminal-thin, at={(0.15cm,-2.5cm)}] {process-3.sh}; + label={[shift={(0,-5mm)}]\texttt{bash/}}, fill=brown!25!white] {}; + \ifdefined\fullfilearchitecture + \node [node-nonterminal-thin, at={(0.15cm,-1.5cm)}] {process-A.sh}; + \fi %% reproduce/analysis/python \node [dirbox, at={(2.95cm,-0.8cm)}, minimum width=2.6cm, minimum height=2.1cm, - label={[shift={(0,-5mm)}]\texttt{python/}}] {}; - \node [node-nonterminal-thin, at={(2.95cm,-1.5cm)}] {operation-1.py}; - \node [node-nonterminal-thin, at={(2.95cm,-2.0cm)}] {operation-2.py}; - \node [node-nonterminal-thin, at={(2.95cm,-2.5cm)}] {fitting-plot.py}; + label={[shift={(0,-5mm)}]\texttt{python/}}, fill=brown!25!white] {}; + \ifdefined\fullfilearchitecture + \node [node-nonterminal-thin, at={(2.95cm,-1.5cm)}] {operation-B.py}; + \node [node-nonterminal-thin, at={(2.95cm,-2.0cm)}] {fitting-plot.py}; + \fi %% tex/ \node [dirbox, at={(6cm,2.6cm)}, minimum width=2.7cm, minimum height=6cm, - label={[shift={(0,-5mm)}]\texttt{tex/}}] {}; + label={[shift={(0,-5mm)}]\texttt{tex/}}, fill=brown!15!white] {}; %% tex/src \node [dirbox, at={(6cm,2.1cm)}, minimum width=2.5cm, minimum height=2.1cm, - label={[shift={(0,-5mm)}]\texttt{src/}}] {}; + label={[shift={(0,-5mm)}]\texttt{src/}}, fill=brown!20!white] {}; + \ifdefined\fullfilearchitecture \node [node-nonterminal-thin, at={(6cm,1.4cm)}] {preamble-1.tex}; - \node [node-nonterminal-thin, at={(6cm,0.9cm)}] {preamble-2.tex}; - \node [node-nonterminal-thin, at={(6cm,0.4cm)}] {figure-1.tex}; + \node [node-nonterminal-thin, at={(6cm,0.9cm)}] {figure-1.tex}; + \fi %% tex/build + \ifdefined\fullfilearchitecture \node [dirbox, at={(6cm,-0.2cm)}, minimum width=2.5cm, minimum height=1.3cm, - label={[shift={(0,-5mm)}]\texttt{build/}}, dashed] {}; + label={[shift={(0,-5mm)}]\texttt{build/}}, dashed, , fill=brown!20!white] {}; \node [anchor=west, at={(4.7cm,-1.0cm)}] {\scriptsize\sf Symbolic link to}; \node [anchor=west, at={(4.7cm,-1.3cm)}] {\scriptsize\sf \LaTeX{} build directory.}; + \fi - %% tex/build + %% tex/tikz + \ifdefined\fullfilearchitecture \node [dirbox, at={(6cm,-1.7cm)}, minimum width=2.5cm, minimum height=1.6cm, - label={[shift={(0,-5mm)}]\texttt{tikz/}}, dashed] {}; + label={[shift={(0,-5mm)}]\texttt{tikz/}}, dashed, fill=brown!20!white] {}; \node [anchor=west, at={(4.67cm,-2.5cm)}] {\scriptsize\sf Symbolic link to TikZ}; \node [anchor=west, at={(4.67cm,-2.8cm)}] {\scriptsize\sf directory (figures built}; \node [anchor=west, at={(4.67cm,-3.1cm)}] {\scriptsize\sf by \LaTeX).}; + \fi %% .local - \node [dirbox, at={(-3.6cm,-3.7cm)}, minimum width=7cm, minimum height=1.2cm, - label={[shift={(0,-5mm)}]\texttt{.local/}}, dashed] {}; - \node [anchor=west, at={(-7.1cm,-4.4cm)}] + \ifdefined\fullfilearchitecture + \node [dirbox, at={(-3.6cm,-3.6cm)}, minimum width=7cm, minimum height=1.2cm, + label={[shift={(0,-5mm)}]\texttt{.local/}}, dashed, fill=brown!15!white] {}; + \node [anchor=west, at={(-7.1cm,-4.3cm)}] {\scriptsize\sf Symbolic link to project's software environment, e.g., }; - \node [anchor=west, at={(-7.1cm,-4.7cm)}] + \node [anchor=west, at={(-7.1cm,-4.6cm)}] {\scriptsize\sf Python or R, run `\texttt{.local/bin/python}' or `\texttt{.local/bin/R}'}; + \fi %% .build - \node [dirbox, at={(3.6cm,-3.7cm)}, minimum width=7cm, minimum height=1.2cm, - label={[shift={(0,-5mm)}]\texttt{.build/}}, dashed] {}; - \node [anchor=west, at={(0.1cm,-4.4cm)}] + \ifdefined\fullfilearchitecture + \node [dirbox, at={(3.6cm,-3.6cm)}, minimum width=7cm, minimum height=1.2cm, + label={[shift={(0,-5mm)}]\texttt{.build/}}, dashed, fill=brown!15!white] {}; + \node [anchor=west, at={(0.1cm,-4.3cm)}] {\scriptsize\sf Symbolic link to project's top-level build directory.}; - \node [anchor=west, at={(0.1cm,-4.7cm)}] - {\scriptsize\sf Enabling easy access to built project components.}; + \node [anchor=west, at={(0.1cm,-4.6cm)}] + {\scriptsize\sf Enabling easy access to all of project's built components.}; + \fi \end{tikzpicture} -- cgit v1.2.1