Closed lockshaw closed 1 week ago
Currently the internals section of the README for graph (https://github.com/flexflow/FlexFlow/tree/repo-refactor/lib/utils/include/utils/graph#internals) is empty. It would be good to have a high-level overview that explains the overall design (inheritance, cow_ptr_t, value semantics and views, etc.) and the reasons behind it along the lines of https://diataxis.fr/explanation/. Since the graph library is large let's start out by just documenting the un-labelled graphs (Graph, GraphView, DiGraph, DiGraphView, MultiDiGraph, MultiDiGraphView) and associated interface classes (i.e., IDiGraphView, etc.). Diagrams will likely be quite useful (feel free to use plantuml). It will probably also be a good idea to have some motivating examples of, for example, the API that would result from not having cow_ptr_t, not having the distinction between DiGraph and IDiGraph, etc. Other examples of this general style of documentation in FlexFlow are the READMEs for visitable (https://github.com/flexflow/FlexFlow/blob/repo-refactor/lib/utils/README.md) and the existing graph documentation (https://github.com/flexflow/FlexFlow/blob/repo-refactor/lib/utils/include/utils/graph/README.md).
graph
cow_ptr_t
Graph
GraphView
DiGraph
DiGraphView
MultiDiGraph
MultiDiGraphView
IDiGraphView
IDiGraph
replaced by #1391
Currently the internals section of the README for
graph
(https://github.com/flexflow/FlexFlow/tree/repo-refactor/lib/utils/include/utils/graph#internals) is empty. It would be good to have a high-level overview that explains the overall design (inheritance,cow_ptr_t
, value semantics and views, etc.) and the reasons behind it along the lines of https://diataxis.fr/explanation/. Since the graph library is large let's start out by just documenting the un-labelled graphs (Graph
,GraphView
,DiGraph
,DiGraphView
,MultiDiGraph
,MultiDiGraphView
) and associated interface classes (i.e.,IDiGraphView
, etc.). Diagrams will likely be quite useful (feel free to use plantuml). It will probably also be a good idea to have some motivating examples of, for example, the API that would result from not havingcow_ptr_t
, not having the distinction betweenDiGraph
andIDiGraph
, etc. Other examples of this general style of documentation in FlexFlow are the READMEs for visitable (https://github.com/flexflow/FlexFlow/blob/repo-refactor/lib/utils/README.md) and the existing graph documentation (https://github.com/flexflow/FlexFlow/blob/repo-refactor/lib/utils/include/utils/graph/README.md).