Releases: nohype-ai/SwiftNodes
Releases · nohype-ai/SwiftNodes
Generic Edge Weight
This update turns the former edge count into a proper generically typed edge weight, whereby Graph and GraphEdge each gain another type parameter. This, of course, is a breaking change, and all tests had to be adjusted.
API Consistency
New or Changed:
- More consistent and powerful API (includes renames, removals and additions)
- Subscript access to graph values
- func to remove node
- No more node id determination closure, neither in API nor internally
- value map function that creates a new graph with a mapped value type
- edge-, value- and node filters – each as a mutating and a copying variant
- graph is conditionally
Codable - graphs can be expressed as
Dictionaryliterals and certain ones asArrayliterals
Big Rework
New or Changed:
- Many API changes, including added, removed and renamed functions
- Algorithms to find and filter essential edges
Sendableconformance is conditional- Algorithm APIs refers to nodes and edges by ID instead of full value
- Some API types are opaque
- Loads of new tests
- New initializers to create complete graphs with edges
- Graphs are conditionally
Equatable - Nodes in graphs no longer have an order and can not be sorted anymore
- Correct counts returned by ancestor counts algorithm
- Algorithm to find transitive edges (the edges that are not in the transitive reduction)
- Four functions to filter by edges
Concurrency Safety
- Since 0.4.0, Graph is
Sendable. Now that is documented.
Support Other Platforms
Fixes compile issues on iOS, tvOS and watchOS
Stabilize Dependency Version
Since SwiftNodes is intended as true open-source software, its dependency versions must be stable so it can itself be a stable dependency.
API Renames and Documentation
API Clean Up
Cleans up the API by renaming some stuff. Also adds 2 convenience functions.
Start Semantic Versioning
This is the beginning of a commitment to semantic versioning.
See https://github.com/codeface-io/SwiftNodes#development-status for details.