-
Notifications
You must be signed in to change notification settings - Fork 248
Description
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).