The Julia Language project

This page contains the details of a technical writing project accepted for Google Season of Docs.

Project summary

Open source organization:
The Julia Language
Technical writer:
Shuo Liu
Project name:
LightGraphs Docs 2.0 & User-Friendly JuliaGraphs Tutorials
Project length:
Long running (5 months)

Project description

In this long-running project, I will better the website and documentation of modules in JuliaGraphs. Specifically, my work will include but not limit to the following contents.

LightGraphs Docs 2.0 - 10 Weeks

  • Overview: LightGraphs.jl is an optimized lightweight graph package for Julia, which serves as the core of JuliaGraphs ecosystem. The upcoming version 2.0 of LightGraphs represents a fundamental change in the LightGraphs API. I will make sure the documentation represents the latest and greatest features of LightGraphs.
  • Deliverables: I will perform an audit of the existing API docs to see what documentation can stay the same and analyze the changes made in the 2.0 release to ensure they are properly documented with examples. During this process, I will write posts that highlight major changes in the 2.0 release. To help the newcomers to better understand LightGraphs, I will create beginner guides for those taking their first step into the world of using graphs in Julia.
  • Notes: In this project, Documenter.jl will be used as the document generator to build the LightGraphs docs. Besides API references for modules like Coloring.jl, I also need them for the submodules such as greedy_color.jl. I will explore how to add them to renew the LightGraphs documentation. Besides, graph theory is a pretty technical field of mathematics and obscure to those without a mathematical background. I have engaged in academic research for about 2 years and written many blog posts on my personal website, thus I am confident to explain the gist of different algorithms and give hints of which to use in various situations when creating the beginner guides.

JuliaGraphs Tutorials - 10 Weeks

  • Overview: Many of the documentations of JuliaGraphs packages are developer-oriented. I will add some simple examples and illustrate the usage for each feature, making it more accessible for users.
  • Deliverables: I will perform an audit of the existing LightGraphs tutorials to see what materials need to be added and demonstrate the usage and motivation of each feature. Then I will follow the manner of JuliaGraphsTutorials to expand JuliaGraphs tutorials including beginner guide in the LightGraphs ecosystem.
  • Notes: The content of JuliaGraphsTutorials is not thorough enough currently, the deliverables listed above are mostly for the LightGraphs package. If time permits, I will also add tutorials for other modules in JuliaGraphs such as GraphPlot.jl, MetaGraphs.jl, and SimpleWeightedGraphs.jl.

JuliaGraphs Central Website - 4 Weeks

  • Overview: The central website of JuliaGraphs offers an overview of the ecosystem's packages. However, it is still mostly a description and can be further improved to become the first resource for people getting started with graphs in Julia. I'm going to find an intuitive way with visualization to highlight the features of various JuliaGraphs packages.
  • Deliverables: I will offer use cases and examples to highlight the functionalities of JuliaGraphs packages and perform an audit to make sure they are still relevant and supported. I will create a section which highlights the different uses of the various packages in different domains (Healthcare, Education, etc.) If time allows, I will research visual explanations of the algorithms used in Graphs.
  • Notes: Many JuliaGraphs packages have been widely used in different domains. Besides plotting extensions like DiGraph for NetworkViz, some other applications in specific subjects that I am going to include are MetaGraph for BioStructures in Biology, DijkstraState for TrafficAssighnment in Urban Planning, DiGraph for TreeView in Education, etc.