Pass port information to BGL
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 25/100
Research direction
Start with the boost::read_graphviz() documentation and its “Future Work” note about passing port information to BGL. Clarify the desired representation for port-to-port edges, the default behavior when ports are absent, and the API scope using the sample DOT graph; done requires maintainer agreement on that design before implementation.
Written by the indexing model from the issue text.
Description
I read in section "Future Work" of boost::read_graphviz():
- Passing port information to BGL.
[...]
I couldn't find any related ongoing work on Github:
- Is someone working on this already?
- Is this still something that BGL would want to implement?
I would be interested in the feature, and I would even be interested in implementing it myself if nothing's already being done. That being said, I have zero familiarity with boost's code base, so I'd be interested in getting some pointers as to how you would like to get it done.
With ports, I understand that edges now connect ports, and not nodes... Plus, ports are optional, so we'd need to have a default one. Without being familiar with the code base, I guess this change will require a not-so-small patch.
As for the use case, (IMO) it's especially useful to draw network layouts (with information like "which port of device X is connected to which port of device Y").
graph {
node [shape=record];
rankdir=LR
0 [label="switch 1|{<eth1>eth1|<eth2>eth2|<eth3>eth3|<eth4>eth4}"];
1 [label="switch 2|{<eth1>eth1|<eth2>eth2|<eth3>eth3|<eth4>eth4}"];
2 [label="switch 3|{<eth1>eth1|<eth2>eth2|<eth3>eth3|<eth4>eth4}"];
0:eth1 -- 1:eth1;
1:eth2 -- 2:eth1;
2:eth2 -- 0:eth2;
}
- Dominant language
- C++
- Stars
- 395
- Forks
- 239
- Avg merge
- 18h 50m
- Merged PRs (30d)
- 20
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from boostorg/graph
-
beginner friendly
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
-
algorithm beginner friendly priority: high
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
-
Difficulty 5/5 Over a week Newbie friendliness 30/100
-
priority: high warning
-
algorithm
boostorg/graph#493 · 22 comments · 1 reaction · 2 assignees ·
Similar issues
-
Difficulty 1/5 Under an hour Newbie friendliness 90/100
AXERA-TECH/ax-llm#77 ·
-
Difficulty 1/5 Under an hour Newbie friendliness 90/100
games-on-whales/wolf#509 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
-
bug-unconfirmed
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
NVIDIA/cuda-samples#453 ·