Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Switch to a better graph library #14

Closed
jacosro opened this issue Jan 10, 2020 · 2 comments · Fixed by #21
Closed

Switch to a better graph library #14

jacosro opened this issue Jan 10, 2020 · 2 comments · Fixed by #21
Assignees
Labels
enhancement New feature or request

Comments

@jacosro
Copy link
Collaborator

jacosro commented Jan 10, 2020

The library currently used for building graphs (graphlib) is deprecated. We should switch to a better and updated library like JGraphT, which would give us the following improvements:

However, this implies a big refactoring of the whole project, removing completely all graphlib stuff and replacing it for the new library, which is a big time-consuming task. We should consider if it 's worth it.

@cargaji

@cargaji
Copy link
Collaborator

cargaji commented Jan 14, 2020

  • No bugs, as it's maintained

The bugs are known and patched. Switching to a new library means finding new bugs. If we switch, we have to be extra careful with the implementation of hashcode and equals.

  • Optimized and better designed

The optimizations sound useful, specially if we used the default implementations.

  • Provides graph visualization and interoperability with DOT

Our implementation for dot is more extensible, specially considering different kinds of edges with special styles, which is a bit less straightforward in JGraphT.

The refactoring time may not be that high, specially if we adapt the graph classes (graphs, nodes and nodes) to the new library, without changing their public API, and then migrate their API with an IDE. However, I think there are some design decisions that we'd need to discuss.

@jacosro
Copy link
Collaborator Author

jacosro commented Jan 20, 2020

Current state:

  • Removed graphlib
  • Cleaned code

Bugs detected:

  • Data dependencies not working in foreach
  • DOTExporter not working

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants