Skip to content

Latest commit

 

History

History
102 lines (84 loc) · 4.2 KB

CHANGELOG.md

File metadata and controls

102 lines (84 loc) · 4.2 KB

3.1.0

  • Reverse a graph with reversed() (@mattpaletta)
  • Performance improvement to topologicalSort() (@dabbott)
  • Recursive initializers for UniqueElementsGraph (@ferranpujolcamins)
  • A few let vs var warnings fixed

3.0.0

  • 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)

2.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)

1.5.1

  • Project reorganized to support testing on Linux, just run swift test
  • Package.swift updated for Swift 4 package management style
  • Added detectCyles() which uses the Liu/Wang algorithm for detecting cycles up to any length in a graph
  • Added a couple unit tests for testing detectCycles()

1.5.0

  • Upgraded to Swift 4
  • Project now built with Xcode 9
  • SwiftPriorityQueue replaced with newer version

1.4.1

  • Fixed a bug in removeAllEdges() and added a test for it

1.4.0

  • Added a Minimum Spanning Tree Fuction mst() based on Jarnik's Algorithm (aka Prim's Algorithm)
  • Simplified Dijkstra's Algorithm implementation

1.3.1

  • Fixes a bug that could result in the wrong edges being removed when a vertex is removed (thanks @brandonroth)
  • Silences some warnings about printing optionals introduced in Swift 3.1

1.3.0

  • Carthage Support (via re-organizing into framework) - thanks @klundberg
  • New search methods added - versions of bfs() and dfs() that support custom goal functions
  • findAll() added as a version of bfs() with multiple potential outcomes
  • watchOS support added to Podfile

1.2.0

  • Moved search functions from free functions to extensions of Graph and WeightedGraph
  • Switched license to Apache 2.0 from MIT
  • Added topologicalSort() and isDAG
  • Changed access level for most types to open
  • Added unit tests for topologicalSort and isDAG

1.1.1

  • Fixes for the final version of Swift 3
  • Updated version of SwiftPriorityQueue
  • Added .swift-version file

1.1.0

  • Requires Swift 3
  • Minor breaking API naming changes in-line with Swift 3 expectations
  • dijkstra() has a parameter for the starting distance to the root vertex (typically zero)
  • Updated the included SwiftPriorityQueue source file

1.0.6

  • Last version to support Swift 2
  • Switched dijkstra() to use a priority queue
  • Included the source file for SwiftPriorityQueue in the project

1.0.5

  • Fixed build issues on Xcode 7.3

1.0.4

  • Fixed Swift 3 deprecations
  • Added SPM support

1.0.3

  • Separated SwiftGraph into multiple files
  • Fixed some documentation.
  • Made edges and vertices internal instead of private

1.0.2

Fixed the misspelling of Dijkstra

1.0.1

Updated to support Swift 2

1.0

Initial Stable Release - last release with Swift 1.2 support