From 96114f66fbdb100b1d6f1c03a535c6dedd920f6a Mon Sep 17 00:00:00 2001 From: Stefano Zacchiroli <zack@upsilon.cc> Date: Fri, 9 Feb 2018 14:32:03 +0100 Subject: [PATCH] docs: add preliminary version of the Merkle DAG diagram --- docs/data-model.rst | 8 ++++++++ docs/images/.gitignore | 2 ++ docs/images/Makefile | 25 +++++++++++++++++++++++++ docs/images/swh-merkle-dag.dia | Bin 0 -> 5482 bytes 4 files changed, 35 insertions(+) create mode 100644 docs/images/.gitignore create mode 100644 docs/images/Makefile create mode 100644 docs/images/swh-merkle-dag.dia diff --git a/docs/data-model.rst b/docs/data-model.rst index 1693ae49..8058c214 100644 --- a/docs/data-model.rst +++ b/docs/data-model.rst @@ -3,6 +3,14 @@ Data model ========== +.. _swh-merkle-dag: +.. figure:: images/swh-merkle-dag.svg + :width: 1024px + :align: center + + Software Heritage archive as a Merkle DAG, augmented with crawling + information (click to zoom). + TODO Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor diff --git a/docs/images/.gitignore b/docs/images/.gitignore new file mode 100644 index 00000000..e9c694ce --- /dev/null +++ b/docs/images/.gitignore @@ -0,0 +1,2 @@ +swh-merkle-dag.pdf +swh-merkle-dag.svg diff --git a/docs/images/Makefile b/docs/images/Makefile new file mode 100644 index 00000000..fc8352ce --- /dev/null +++ b/docs/images/Makefile @@ -0,0 +1,25 @@ + +MERKLE_DAG = swh-merkle-dag.svg + +BUILD_TARGETS = +BUILD_TARGETS += $(MERKLE_DAG) + +all: $(BUILD_TARGETS) + + +# dia exporters + +%.eps: %.dia + dia -t eps --export $@ $< + +%.svg: %.dia + dia -t svg --export $@ $< + +# generic converters + +%.pdf: %.eps + epstopdf $< + + +clean: + -rm -f $(BUILD_TARGETS) diff --git a/docs/images/swh-merkle-dag.dia b/docs/images/swh-merkle-dag.dia new file mode 100644 index 0000000000000000000000000000000000000000..3e4ddc9106078a68c83869a4bf98cbf26a2d90ae GIT binary patch literal 5482 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 literal 0 HcmV?d00001 -- GitLab