Merge lp:~yarkot/mailman/docs-graphviz into lp:mailman

Proposed by yarko
Status: Merged
Merged at revision: 7205
Proposed branch: lp:~yarkot/mailman/docs-graphviz
Merge into: lp:mailman
Diff against target: 109 lines (+50/-44)
1 file modified
src/mailman/docs/8-miles-high.rst (+50/-44)
To merge this branch: bzr merge lp:~yarkot/mailman/docs-graphviz
Reviewer Review Type Date Requested Status
Barry Warsaw Pending
Review via email: mp+153974@code.launchpad.net

Description of the change

clean up graphviz graph syntax, to get rid of some forward graphviz/dot errors:

base graphviz: 2.26.3 (changes continue to work w/ this also);
tested graphviz: 2.28.0, 3.30.0

- remove line-continuation back-slashes (not needed; no longer tolerated by graphviz);
- clean up message flow graph (remove redundancies; make graph flow orderly / more readable);

To post a comment you must log in.
Revision history for this message
Barry Warsaw (barry) wrote :

Thanks for taking this on Yarko.

On Mar 19, 2013, at 01:44 AM, yarko wrote:

>base graphviz: 2.26.3 (changes continue to work w/ this also);

Does it still look weird to you in 2.26.3? I'm still getting strange curvy
lines, but this could just be 2.26 acting stupid.

>tested graphviz: 2.28.0, 3.30.0

I don't have time right now to test this, but I saw that it looked better on
your box with the newer graphviz's. I don't have time to try to upgrade
Ubuntu's graphviz package (and given that Ubuntu is in feature freeze, I'd
have to justify getting the newer one in before 13.04). Given that it still
builds and doesn't look *worse* <wink>, I'll just go ahead and merge the
change.

Thanks for the contribution to Mailman!

Revision history for this message
Barry Warsaw (barry) wrote :

On Mar 22, 2013, at 05:43 AM, yarko wrote:

>If you were going to upgrade a minimum graphviz version, might as well bump
>to >= 2.30

I'll have to try to get that upgraded after the upcoming Debian Wheezy and
Ubuntu Raring releases.

Revision history for this message
yarko (yarkot) wrote :

Yes - for the record, it looks like graphviz (standalone too) 2.26.* incorrectly parses "records", so that rather than box1:field1->box2:field0, it effects/draws box2:field1->box1:field0; 2.28 draws correctly (but draws unnecessarily wavy arcs); 2.30 draws correctly, and nice, straight lines where appropriate too.

If you were going to upgrade a minimum graphviz version, might as well bump to >= 2.30

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'src/mailman/docs/8-miles-high.rst'
2--- src/mailman/docs/8-miles-high.rst 2012-12-30 23:24:26 +0000
3+++ src/mailman/docs/8-miles-high.rst 2013-03-19 01:43:24 +0000
4@@ -66,8 +66,8 @@
5
6 digraph pipeline {
7 node [shape=box, style=rounded, group=0]
8- { "MIME\ndelete" -> "cleanse headers" -> "add headers" -> \
9- "calculate\nrecipients" -> "to digest" -> "to archive" -> \
10+ { "MIME\ndelete" -> "cleanse headers" -> "add headers" ->
11+ "calculate\nrecipients" -> "to digest" -> "to archive" ->
12 "to outgoing" }
13 node [shape=box, color=lightblue, style=filled, group=1]
14 { rank=same; PIPELINE -> "MIME\ndelete" }
15@@ -91,48 +91,54 @@
16 .. graphviz::
17
18 digraph chain_rules {
19- rankdir=LR /* This gives the right orientation of the columns. */
20- rank=same
21- subgraph in { IN [shape=box, color=lightblue, style=filled] }
22- subgraph rules {
23- rankdir=TB
24- rank=same
25- node [shape=record]
26- approved [group=0, label="<f0> approved | {<f1> | <f2>}"]
27- emergency [group=0, label="<f0> emergency | {<f1> | <f2>}"]
28- loop [group=0, label="<f0> loop | {<f1> | <f2>}"]
29- modmember [group=0, label="<f0> member\nmoderated | {<f1> | <f2>}"]
30- administrivia [group=0, label="<f0> administrivia | <f1>"]
31- maxsize [group=0, label="<f0> max\ size | {<f1> | <f2>}"]
32- any [group=0, label="<f0> any | {<f1> | <f2>}"]
33- truth [label="<f0> truth | <f1>"]
34- approved:f1 -> emergency:f0 [weight=100]
35- emergency:f1 -> loop:f0
36- loop:f1 -> modmember:f0
37- modmember:f1 -> administrivia:f0
38- administrivia:f1 -> maxsize:f0
39- maxsize:f1 -> any:f0
40- any:f1 -> truth:f0
41- }
42- subgraph queues {
43- rankdir=TB
44- rank=same
45- node [shape=box, style=filled];
46- DISCARD [shape=invhouse, color=black, style=solid];
47- MODERATION [color=wheat];
48- HOLD [color=wheat];
49- }
50- { PIPELINE [shape=box, style=filled, color=cyan]; }
51-
52- IN -> approved:f0
53- approved:f2 -> PIPELINE [minlen=2]
54- loop:f2 -> DISCARD
55- modmember:f2 -> MODERATION
56-
57- emergency:f2:e -> HOLD
58- maxsize:f2 -> MODERATION
59- any:f2 -> MODERATION
60- truth:f1 -> PIPELINE [minlen=2]
61+ rankdir=LR; /* This gives the right orientation of the columns. */
62+ rank=same;
63+ subgraph in { IN [shape=box, color=lightblue, style=filled]; }
64+ subgraph rules {
65+ rankdir=TB;
66+ node [shape=record];
67+ approved [label="<in> approved | { <no> | <yes> }"];
68+ emergency [label="<in> emergency | { <no> | <yes> }"];
69+ loop [label="<in> loop | { <no> | <yes> }"];
70+ modmember [label="<in> member\nmoderated | { <no> | <yes> }"];
71+ administrivia [group="0", label="<in> administrivia | <always> "];
72+ maxsize [label="<in> max\ size | {<in> no | <yes>}"];
73+ any [label="<in> any | {<no> | <yes>}"];
74+ truth [label="<in> truth | <always>"];
75+
76+ }
77+
78+ subgraph queues {
79+ rankdir=TB;
80+ node [shape=box, style=filled];
81+ DISCARD [shape=invhouse, color=black, style=solid];
82+ MODERATION [color=wheat];
83+ HOLD [color=wheat];
84+ }
85+ { PIPELINE [shape=box, style=filled, color=cyan]; }
86+
87+ IN -> approved:in;
88+ approved:no -> emergency:in [weight="100"];
89+ approved:yes -> PIPELINE [minlen=2];
90+
91+ emergency:no -> loop:in;
92+ emergency:yes -> HOLD;
93+
94+ loop:no -> modmember:in;
95+ loop:yes -> DISCARD;
96+
97+ modmember:no -> administrivia:in;
98+ modmember:yes -> MODERATION;
99+
100+ administrivia:always -> maxsize:in;
101+
102+ maxsize:no -> any:in;
103+ maxsize:yes -> MODERATION;
104+
105+ any:no -> truth:in;
106+ any:yes -> MODERATION;
107+
108+ truth:always -> PIPELINE [minlen=2];
109 }
110
111