From 6864cdba2bb65069d15d26e0b9af6ade8edd0ec3 Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Wed, 5 Feb 2020 22:03:46 -0600 Subject: doc: add data flow diagram using Graph::Easy Maybe this can make it easier for new and potential users to understand what's going on. --- Documentation/flow.ge | 27 +++++++++++++++++++++++++++ Documentation/flow.txt | 32 ++++++++++++++++++++++++++++++++ Documentation/include.mk | 18 +++++++++++++++++- 3 files changed, 76 insertions(+), 1 deletion(-) create mode 100644 Documentation/flow.ge create mode 100644 Documentation/flow.txt (limited to 'Documentation') diff --git a/Documentation/flow.ge b/Documentation/flow.ge new file mode 100644 index 00000000..27f2bfcb --- /dev/null +++ b/Documentation/flow.ge @@ -0,0 +1,27 @@ +# public-inbox data flow +# +# Note: choose either "delivery tools" OR "git mirroring tools" +# for a given inboxdir. Combining them for the SAME inboxdir +# will cause conflicts. Of course, different inboxdirs may +# choose different means of getting mail into them. + +graph { flow: down } + +[delivery tools:\n + public-inbox-mda\n + public-inbox-watch\n + public-inbox-learn] -> [inboxdir] + +[git mirroring tools:\n + grok-pull,\n + various scripts +] -- git (clone|fetch) &&\n + public-inbox-index --> [inboxdir] + +[inboxdir] -> +[read-only daemons:\n + public-inbox-httpd\n + public-inbox-nntpd] + +# Copyright 2020 all contributors +# License: AGPL-3.0+ diff --git a/Documentation/flow.txt b/Documentation/flow.txt new file mode 100644 index 00000000..ac3459e4 --- /dev/null +++ b/Documentation/flow.txt @@ -0,0 +1,32 @@ +# public-inbox data flow +# +# Note: choose either "delivery tools" OR "git mirroring tools" +# for a given inboxdir. Combining them for the SAME inboxdir +# will cause conflicts. Of course, different inboxdirs may +# choose different means of getting mail into them. + + +--------------------+ + | delivery tools: | + | public-inbox-mda | + | public-inbox-watch | + | public-inbox-learn | + +--------------------+ + | + | + v ++----------------------+ +--------------------+ +| git mirroring tools: | git (clone|fetch) && | | +| grok-pull, | public-inbox-index | inboxdir | +| various scripts | ----------------------> | | ++----------------------+ +--------------------+ + | + | + v + +--------------------+ + | read-only daemons: | + | public-inbox-httpd | + | public-inbox-nntpd | + +--------------------+ + +# Copyright 2020 all contributors +# License: AGPL-3.0+ diff --git a/Documentation/include.mk b/Documentation/include.mk index 3d88fcec..41de0a72 100644 --- a/Documentation/include.mk +++ b/Documentation/include.mk @@ -10,6 +10,9 @@ MAN = man # this is "xml" on FreeBSD and maybe some other distros: XMLSTARLET = xmlstarlet +# libgraph-easy-perl from Debian, Graph::Easy from CPAN +GRAPH_EASY = graph-easy + # same as pod2text COLUMNS = 76 @@ -62,6 +65,17 @@ Documentation/standards.txt : Documentation/standards.perl touch -r Documentation/standards.perl $@+ mv $@+ $@ +# flow.txt is checked into git since Graph::Easy isn't in many distros +Documentation/flow.txt : Documentation/flow.ge + (sed -ne '1,/^$$/p' $@+ + touch -r Documentation/flow.ge $@+ + mv $@+ $@ + NEWS NEWS.atom NEWS.html : $(news_deps) $(PERL) -I lib -w Documentation/mknews.perl $@ $(RELEASES) @@ -99,7 +113,9 @@ rsync-doc: NEWS.atom.gz clean-doc: $(RM_F) $(man1) $(man5) $(man7) $(man8) $(gz_docs) $(docs_html) \ $(mantxt) $(rsync_xdocs) \ - NEWS NEWS.atom NEWS.html Documentation/standards.txt + NEWS NEWS.atom NEWS.html Documentation/standards.txt \ + Documentation/flow.html Documentation/flow.html.gz \ + Documentation/flow.txt.gz clean :: clean-doc -- cgit v1.2.3-24-ge0c7