Skip to content

Latest commit

 

History

History
375 lines (242 loc) · 9.9 KB

RELEASE_NOTES.md

File metadata and controls

375 lines (242 loc) · 9.9 KB

Release notes

What's new in 2.5.0 July 4 2022

QuikGraph

Updates:

  • Input type for transitive closure/reduction algorithms is more open (IEdgeListGraph rather than BidirectionalGraph).
  • CryptoRandom no more use deprecate random number generator.
  • Extends algorithms using CrytoRandom by default (CyclePoppingRandomTreeAlgorithm, MarkovEdgeChainBase, MinimumVertexCoverApproximationAlgorithm).

New:

  • Add cycle checking for edge set and undirected graphs (DAG - Directed Acyclic Graph check).

Misc:

  • Assembly is CLS compliant (Common Language Specification).

QuikGraph.Serialization

Fixes:

  • Fix fields being written several times during GraphML serialization for types with multiple inheritance layers.
  • Fix user data that may be skipped during GraphML deserialization.
  • Better handle null strings being serialized through GraphML serialization.

Updates:

  • Deprecate binary serialization for targets lower than .NET Framework 4.6.1.
  • Update package dependencies.

Optims:

  • Optimize generated method calls for GraphML serialization.

Misc:

  • Add target .NET Framework 4.6.1.
  • Assembly is CLS compliant (Common Language Specification).

QuikGraph.Graphviz

Updates:

  • Deprecate ToSvg API (underlying web service is down).
  • Update package dependencies.

Misc:

  • Assembly is CLS compliant (Common Language Specification).

QuikGraph.Data

Updates:

  • Update package dependencies.

Misc:

  • Assembly is CLS compliant (Common Language Specification).

QuikGraph.MSAGL

Updates:

  • Update package dependencies.

Misc:

  • Assembly is CLS compliant (Common Language Specification).

QuikGraph.Petri

Updates:

  • Update package dependencies.

Misc:

  • Assembly is CLS compliant (Common Language Specification).

What's new in 2.4.0 July 3 2022

QuikGraph

Updates:

  • Vertices and edges removal notifications from AdjacencyGraph, EdgeListGraph, BidirectionalGraph and UndirectedGraph are more consistent.

Optims:

  • Optimize vertices and/or edges removal operations on AdjacencyGraph, BidirectionalGraph, BidirectionalMatrixGraph, ClusteredAdjacencyGraph and UndirectedGraph.

New:

  • Expose a Prim relaxer.

Misc:

  • Improve library documentation related to raisable exceptions.
  • Remove the dependency to System.Reflection.TypeExtensions for .NET Standard 1.3 target.

QuikGraph.Serialization

Updates:

  • GraphML deserialization extensions now work on IMutableVertexAndEdgeSet rather than IMutableVertexAndEdgeListGraph (allow deserialization on undirected graph).
  • Update package dependencies.

Misc:

  • Add target to reduce dependencies in some cases.

QuikGraph.Graphviz

Fixes:

  • Fix the conversion to Graphviz from delegate graph implementations.

Optims:

  • Slight optimizations.

Updates:

  • Update package dependencies.

QuikGraph.Data

Updates:

  • Update package dependencies.

QuikGraph.MSAGL

Updates:

  • Update package dependencies.

QuikGraph.Petri

Updates:

  • Update package dependencies.

What's new in 2.3.1 August 30 2021

QuikGraph.Graphviz

Fixes:

  • Properly treat common vertex format when converting a graph to Graphviz.

Updates:

  • Label has priority if set over Record on GraphvizVertex.

New:

  • Add support of HTML labels.

What's new in 2.3.0 February 4 2021

QuikGraph

Fixes:

  • Fix the serialization implementation of UndirectedGraph, ArrayUndirectedGraph and UndirectedBidirectionalGraph.
  • Fix A* implementation to also compute cost on tree edge.

Updates:

  • Remove some serializable attributes from algorithms and predicates classes (homognization).
  • Remove serializable attributes from delegate graphs implementations.
  • All QuikGraph exceptions can be constructed with a custom message and an eventual inner exception.
  • CompressedSparseRowGraph also implements IEdgeListGraph interface.
  • EquateGraphs.Equate helpers now supports a wider range of graph comparisons.

New:

  • Add the IDistancesCollection to interface the distance information retrieval from shortest path algorithms. Legacy accesses to distances are marked as obsolete.

Misc:

  • Remove the dependency to System.Collections.NonGeneric for .NET Standard 1.3 target.

QuikGraph.Serialization

Updates:

  • Update package dependencies.

QuikGraph.Graphviz

Updates:

  • Update package dependencies.

New:

  • Make all Dot structures serializable.

QuikGraph.Data

Updates:

  • Update package dependencies.

QuikGraph.MSAGL

Fixes:

  • Update reference to AutomaticGraphLayout packages in order to fix assembly strong naming issues.

Updates:

  • Update package dependencies.

QuikGraph.Petri

Updates:

  • Update package dependencies.

What's new in 2.2.2 July 18 2020

QuikGraph.Serialization

Fixes:

  • Add the possibility to use a custom binder during binary serialization to control deserialized types.
  • Undirected graphs are now serializable to XML.

What's new in 2.2.1 June 19 2020 and June 25 2020

QuikGraph.Serialization

Fixes:

  • Rely on embedded GraphML xsd to validate GraphML graphs during serialization (avoid issues when GraphML website is down).

QuikGraph.Petri

This package is the same as 2.2.0 but with the right tags and description.


What's new in 2.2.0 June 7 2020, June 11 2020, June 18 2020 and June 25 2020

QuikGraph

New:

  • Use signing key to strong name library assemby.

QuikGraph.Serialization

New:

  • Use signing key to strong name library assemby.

QuikGraph.GraphViz

New:

  • Use signing key to strong name library assemby.

QuikGraph.Data

Misc:

  • Clean the library code.
  • Fully document library.
  • Use JetBrains annotations all over the library as much as possible.

QuikGraph.MSAGL

Migrate the library from GLEE to MSAGL (MSAGL is the successor of GLEE).

Fixes:

  • Fix typo in populator algorithm.
  • Fix a bug when converting undirected graph to MSAGL graph.

API Breaks

  • Some public API breaks (but should remain simple to do a migration).

Misc:

  • Clean the library code.
  • Fully document library.
  • Use JetBrains annotations all over the library as much as possible.

QuikGraph.Petri

Fixes:

  • Fix PetriNetSimulator with possible collection modified while enumerating.

Updates:

  • Really make IPetriNet immutable to enforce the difference with IMutablePetriNet.

API Breaks

  • Some public API breaks (but should remain simple to do a migration).

Misc:

  • Clean the library code.
  • Fully document library.
  • Use JetBrains annotations all over the library as much as possible.

What's new in 2.1.1 June 6 2020

QuikGraph.GraphViz

New:

  • Add support of PenWidth property for vertex, edge and graph.
  • Add support of Splines property for graph.

What's new in 2.1.0 May 11 2020 and June 3 2020

QuikGraph

Optims:

  • Use EqualityComparer<T> instead of non-generic object.Equals.

Updates:

  • Cancellation of algorithm internally use exception to abort algorithm run.

QuikGraph.Serialization

Fixes:

  • Fix a security vulnerability regarding XML serialization on target .NET Framework 3.5.

QuikGraph.GraphViz

Rework the original QuickGraph.Graphviz module into QuikGraph.Graphviz. This make possible to use the QuikGraph to Dot bridge.

Fixes:

  • Fix the floating points formatting when converted to Dot (Invariant culture).
  • Fix some implementation issues accross the library.
  • Fix labels, comments, tooltips, records and ports escaping.
  • Fix a lot of graph to Dot conversions issues (wrong properties, invalid formatting, typo, etc).

Updates:

  • Add all color representations equivalent to System.Drawing.Color or System.Windows.Media.Color to GraphvizColor.

New:

  • Add conversion extensions from System.Drawing.Font to GraphvizFont (and vice versa).

API Breaks

  • Dot escape method has been replaced by DotEscapers helpers that handle various escaping scenarios and are static.
  • Some public API breaks (but should remain simple to do a migration).

Misc:

  • Clean the library code.
  • Fully document library including convenient links to official Graphviz documentation.
  • Use JetBrains annotations all over the library as much as possible.

What's new in 2.0.0 February 16 2020

QuikGraph

Split QuikGraph package into 2 packages to extract serialization features:

  • QuikGraph
  • QuikGraph.Serialization

New:

  • Add struct based edge implementations that were in original QuickGraph (STaggedEdge, STaggedUndirectedEdge and SEquatableTaggedEdge).

Misc:

  • Package no more reference JetBrains.Annotations package, it rather uses some as internal implementation (same development experience for package consumer).

QuikGraph.Serialization

Serialization features extracted from core package.


What's new in 1.0.1 January 20 2020

Fixes:

  • Properly deal with isolated vertices for transitive reduction algorithm.
  • Properly deal with isolated vertices for transitive closure algorithm.

What's new in 1.0.0 December 10 2019

This release is based on YC.QuikGraph 3.7.5-deta with a lot of updates.

General:

  • Fully clean the library code.
  • Extend support of the library to .NET Framework 3.5+.
  • Extend support of the library to .NET Core 1.0+.
  • Various fixes for graphs and algorithms implementations.
  • Uniformize APIs and behaviors of graphs and algorithms implementations.

Note: Only keep the Core of QuikGraph for this package (feature split).

API Breaks

  • Some public API breaks (but should remain simple to do a migration).
  • Some edges structures are removed, the classes implementations are preferred due to C# limitations.
  • Some algorithms are not usable for now (wrong implementations) and are removed from public API.

Misc:

  • Generate a documentation for the library via DocFX.
  • Use JetBrains annotations all over the library as much as possible.