Since Jan 21, 2015 @sbromberger has been leading the LightGraphs development to build a correct, flexible, and performant graph analytics toolkit. I joined the project on March 3, 2015 when I needed to isolate the maximal connected component of a large graph. At that point LightGraphs didn’t even have the induced_subgraph function. @matbesancon started contributing in January 2018 by deleting all the maximum flow code from the project. He then produced a large body of optimization related functionality in LightGraphsFlows.jl.
We shipped LightGraphs v1.0 at the same time as Julia v1.0 in August 2018, and LightGraphs has been a stable, performant, and easy to use foundation for the development and analysis of graph algorithms ever since. For the past year and half, LightGraphs has been in maintenance mode where updates have been minimal. The code works, it is reliable and fast, the development has slowed.
LightGraphs was essential to the research of several contributors including myself and Mathieu, and the attention of researchers actively solving problems with code provides development energy across the Julia ecosystem. However, our professional research agendas have shifted away from graph analytics. At this point, we invite a new generation of graph algorithm researchers and developers to take up the mantle in advancing the state of the art in graph algorithms in Julia. Seth has decided to step away from the Julia community, and would like us to stop using the LightGraphs name. Out of respect for his wishes, we have archived the original LightGraphs project. Future development will happen in a new repository in the JuliaGraphs organization.
The JuliaGraphs organization thanks the 100 contributors that helped over the years in building out such a wonderful package. In open source development, every little bit helps and is appreciated. No action is required from any users of LightGraphs at this point, and further development will continue on a new repo in the JuliaGraphs organization. We will ensure that LightGraphs as it currently exists will remain available through the standard Julia package distribution system. For example Pkg.add(“LightGraphs”) continues to install the current stable release of LightGraphs.
We should take these events as a reminder that open source software depends on volunteers. Anyone can build something that becomes critical infrastructure for the Julia ecosystem. If you are concerned about the future of graph algorithms in Julia, I hope we can find ways to help you channel that concern productively. I’m always available to chat or schedule a zoom call for anyone who wants to talk. Feel free to reach out to me @jpfairbanks or @mbesancon at any time.
@jpfairbanks Do you think LightGraphs.jl should be forked and renamed for the next iteration of graph libraries, or should it start from scratch with a different design?
I expect that the existing implementation will continue to work for the foreseeable future. The existing design is quite solid. In particular, it is easy to support the API of an AbstractGraph to allow experimentation of new data structures with the existing algorithms. Once we get through this transitional period, I’ll be happy to discuss more ambitious plans to improve the ecosystem.
In my opinion you forfeit the right to make decisions about a package’s name and future once you transfer it to an org, then leave that org yourself. The whole purpose of orgs is to ensure that open source contributions to the julia ecosystem outlast the engagement of its original authors.
Regardless, I think this is an example of just this mechanism working, in Matt and James taking steps to ensure the long-term persistence of the package in the ecosystem - incredibly important for a package with a whopping 184 direct dependents.
The JuliaGraphs organization is happy to announce that the development of graph algorithms and analytics software in Julia will continue for the foreseeable future. We have managed the disruption of the archiving of LightGraphs.jl by reclaiming the old Graphs.jl package and have released Graphs.jl at v 1.4.0 using the final version of LightGraphs which was v1.3.5. Graphs.jl is now the official home of JuliaGraphs Development.
The following packages have also been renamed to match Graphs.jl
We have brought on additional organization members including Huda Nassar (@nassarhuda), Guillame Dalle (@gdalle), and Moritz Schauer (@mschauer). Huda has brought in the MatrixNetworks.jl package for linear algebra approaches to graph analysis into the JuliaGraphs organization. Updates to the JuliaGraphs packages that depend on LightGraphs are ongoing. If you have issues on any archived repo that you would like addressed, please migrate them. We are grateful to everyone who has stepped up to bring their skills and efforts to the JuliaGraphs ecosystem.