SwiftGraph v3.0.0 Release Notes

Release Date: 2019-04-12 // about 5 years ago
    • ๐Ÿ”จ This is an API breaking refactor
    • This version requires Swift 5.0 (Xcode 10.2)
    • Graph no longer conforms to class so structs can be Graphs (@davecom)
    • Graph and Edge are now Codable meaning all implementations must be as well including all vertex types, leading to the removal of CodableUnweightedGraph and CodableWeightedGraph, which are now unnecessary (@davecom)
    • ๐Ÿ†• New CONTRIBUTORS.md file containing some history (@davecom)
    • ๐Ÿ†• New search traversal methods (@ferranpujolcamins)
    • ๐Ÿ‘Œ Improvements to UniqueElementsGraph (@ferranpujolcamins)
    • โœ… Useful constructors for testing (@ferranpujolcamins)
    • ๐Ÿ‘Œ Improvements to UniqueElementsGraph tests (@ferranpujolcamins)
    • ๐Ÿ”จ Refactor many aspects of UnweightedGraph and WeightedGraph into conditional conformance extensions to Graph and new protocols (@ferranpujolcamins)
    • โž• Add new performance tests (@ferranpujolcamins)
    • โž• Add direction back to Edge (@ferranpujolcamins)

Previous changes from v2.0.0

    • ๐Ÿ”จ This is an API breaking refactor
    • This version requires Swift 4.2 (Xcode 10.1)
    • Graph is now a protocol instead of a class
    • ๐Ÿ†“ edgesToVertices() is now a method on Graph instead of a free function
    • The Edge protocol has been significantly simplifieid
    • UnweightedEdge and WeightedEdge are now Codable
    • ๐Ÿ‘ Subclasses of Graph CodableUnweightedGraph and CodableWeightedGraph provide serialization support to JSON and anything else Codable supports (thanks for the help, @yoiang)
    • Experimental subclass of UnweightedGraph, UniqueElementsGraph provides a union operation and guarantees no duplicate vertices & edges in a graph (thanks @ferranpujolcamins)
    • Cycle detector method that returns edges (thanks @ZevEisenberg)