LightGraphs.jl Transition

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.

48 Likes

For reference, there are currently 13 open issues labeled bug and 19 open pull requests. https://github.com/sbromberger/LightGraphs.jl/issues?q=is%3Aissue+is%3Aopen+label%3Abug

4 Likes

What is the best alternative?

is the documentation also deleted? I am trying to open the documentation but I can not access it.

2 Likes

https://sbromberger.github.io/LightGraphs.jl/stable/

The docs are also available at JuliaHub. I apologize for the disruption.

2 Likes

@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?

1 Like

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.

9 Likes

Will there be any bug fixes?

Yes bug fixes will continue under the new repo mentioned above

1 Like

Ok, but the new repo is not public yet, right? And it will have a new name?

1 Like

Good to know that development will continue

I’ve got an open PR. Should I migrate this myself?

Yes it will have a new name and be public very soon :slight_smile:
@jlapeyre yes porting the PR to the new repo will help a great deal

17 Likes

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.

48 Likes

Rebranding is a small thing if it allows us to be the bigger person eh… community.

9 Likes

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

  1. LightGraphsExtras.jl → GraphsExtras.jl
  2. LightGraphsMatchings.jl → GraphsMatchings.jl
  3. LightGraphsFlows.jl → GraphsFlows.jl

You can track Graphs.jl adoption on JuliaHub

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.

73 Likes

1.4.0

Impressive you managed to make that a non-breaking update.

6 Likes

awesome news!

2 Likes

It is very much a breaking update. The previous version of the Graphs package was 0.10.3.

7 Likes