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)