Skip to content

Commit

Permalink
Merge branch 'releases/2.5.0'
Browse files Browse the repository at this point in the history
  • Loading branch information
KeRNeLith committed Jul 4, 2022
2 parents 14f91dc + 352b293 commit 9cd6b49
Show file tree
Hide file tree
Showing 10 changed files with 185 additions and 34 deletions.
124 changes: 124 additions & 0 deletions RELEASE_NOTES.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,127 @@
# 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
Expand All @@ -13,6 +135,8 @@
#### New:
* Add support of HTML labels.

---

## What's new in 2.3.0 February 4 2021

### QuikGraph
Expand Down
7 changes: 5 additions & 2 deletions src/QuikGraph.Data/QuikGraph.Data.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -28,9 +28,12 @@ Supports Source Link</Description>

<IsPackable>true</IsPackable>
<PackageId>QuikGraph.Data</PackageId>
<PackageReleaseNotes>➟ Release 2.3.0
<PackageReleaseNotes>➟ Release 2.5.0
Updates:
- Update package dependencies.</PackageReleaseNotes>
- Update package dependencies.

Misc:
- Assembly is CLS compliant (Common Language Specification).</PackageReleaseNotes>
<PackageTags>QuickGraph QuikGraph Graph Structure Algorithm C# .NET Serialization Data</PackageTags>
</PropertyGroup>

Expand Down
2 changes: 1 addition & 1 deletion src/QuikGraph.Graphviz/Extensions/GraphvizExtensions.cs
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,7 @@ public static string ToSvg<TVertex, TEdge>(
}

/// <summary>
/// Performs a layout from DOT to an SVG (Scalable Vector Graphics) file
/// Performs a layout from DOT to a SVG (Scalable Vector Graphics) file
/// by calling Agl through the https://rise4fun.com/ REST services.
/// </summary>
/// <param name="dot">The dot graph</param>
Expand Down
12 changes: 5 additions & 7 deletions src/QuikGraph.Graphviz/QuikGraph.Graphviz.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -28,15 +28,13 @@ Supports Source Link</Description>

<IsPackable>true</IsPackable>
<PackageId>QuikGraph.Graphviz</PackageId>
<PackageReleaseNotes>➟ Release 2.3.1
Fixes:
- Properly treat common vertex format when converting a graph to Graphviz.

<PackageReleaseNotes>➟ Release 2.5.0
Updates:
- Label has priority if set over Record on GraphvizVertex.
- Deprecate ToSvg API (underlying web service is down).
- Update package dependencies.

New:
- Add support of HTML labels.</PackageReleaseNotes>
Misc:
- Assembly is CLS compliant (Common Language Specification).</PackageReleaseNotes>
<PackageTags>QuickGraph QuikGraph Graph Structure Algorithm C# .NET Serialization Graphviz</PackageTags>
</PropertyGroup>

Expand Down
10 changes: 5 additions & 5 deletions src/QuikGraph.MSAGL/QuikGraph.MSAGL.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -28,12 +28,12 @@ Supports Source Link</Description>

<IsPackable>true</IsPackable>
<PackageId>QuikGraph.MSAGL</PackageId>
<PackageReleaseNotes>➟ Release 2.3.0
Fixes:
- Update reference to AutomaticGraphLayout packages in order to fix assembly strong naming issues.

<PackageReleaseNotes>➟ Release 2.5.0
Updates:
- Update package dependencies.</PackageReleaseNotes>
- Update package dependencies.

Misc:
- Assembly is CLS compliant (Common Language Specification).</PackageReleaseNotes>
<PackageTags>QuickGraph QuikGraph Graph Structure Algorithm C# .NET MSAGL</PackageTags>
</PropertyGroup>

Expand Down
7 changes: 5 additions & 2 deletions src/QuikGraph.Petri/QuikGraph.Petri.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -28,9 +28,12 @@ Supports Source Link</Description>

<IsPackable>true</IsPackable>
<PackageId>QuikGraph.Petri</PackageId>
<PackageReleaseNotes>➟ Release 2.3.0
<PackageReleaseNotes>➟ Release 2.5.0
Updates:
- Update package dependencies.</PackageReleaseNotes>
- Update package dependencies.

Misc:
- Assembly is CLS compliant (Common Language Specification).</PackageReleaseNotes>
<PackageTags>QuickGraph QuikGraph Graph Structure Algorithm C# .NET Petri</PackageTags>
</PropertyGroup>

Expand Down
27 changes: 22 additions & 5 deletions src/QuikGraph.Serialization/QuikGraph.Serialization.csproj
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFrameworks>net35;net40;netstandard1.3;netstandard2.0;netstandard2.1</TargetFrameworks>
<TargetFrameworks>net35;net40;net461;netstandard1.3;netstandard2.0;netstandard2.1</TargetFrameworks>

<GeneratePackageOnBuild>$(Generate_QuikGraph_Serialization)</GeneratePackageOnBuild>

Expand All @@ -28,9 +28,22 @@ Supports Source Link</Description>

<IsPackable>true</IsPackable>
<PackageId>QuikGraph.Serialization</PackageId>
<PackageReleaseNotes>➟ Release 2.3.0
<PackageReleaseNotes>➟ Release 2.5.0
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:
- Update package dependencies.</PackageReleaseNotes>
- 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).</PackageReleaseNotes>
<PackageTags>QuickGraph QuikGraph Graph Structure Algorithm C# .NET Serialization</PackageTags>
</PropertyGroup>

Expand All @@ -42,12 +55,16 @@ Updates:
<!-- Targets defines -->
<PropertyGroup Condition="'$(TargetFramework)'=='net35'">
<AssemblyTitle>QuikGraph.Serialization .NET 3.5</AssemblyTitle>
<DefineConstants>$(DefineConstants);NET35;SUPPORTS_SERIALIZATION;SUPPORTS_GRAPHS_SERIALIZATION;$(AdditionalConstants)</DefineConstants>
<DefineConstants>$(DefineConstants);NET35;SUPPORTS_SERIALIZATION;SUPPORTS_GRAPHS_SERIALIZATION;DEPRECATE_BINARY_SERIALIZATION;$(AdditionalConstants)</DefineConstants>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
</PropertyGroup>
<PropertyGroup Condition="'$(TargetFramework)'=='net40'">
<AssemblyTitle>QuikGraph.Serialization .NET 4.0</AssemblyTitle>
<DefineConstants>$(DefineConstants);NET40;SUPPORTS_SERIALIZATION;SUPPORTS_GRAPHS_SERIALIZATION;SUPPORTS_XML_DTD_PROCESSING;$(AdditionalConstants)</DefineConstants>
<DefineConstants>$(DefineConstants);NET40;SUPPORTS_SERIALIZATION;SUPPORTS_GRAPHS_SERIALIZATION;DEPRECATE_BINARY_SERIALIZATION;SUPPORTS_XML_DTD_PROCESSING;$(AdditionalConstants)</DefineConstants>
</PropertyGroup>
<PropertyGroup Condition="'$(TargetFramework)'=='net461'">
<AssemblyTitle>QuikGraph.Serialization .NET 4.6.1</AssemblyTitle>
<DefineConstants>$(DefineConstants);NET461;SUPPORTS_SERIALIZATION;SUPPORTS_GRAPHS_SERIALIZATION;SUPPORTS_XML_DTD_PROCESSING;$(AdditionalConstants)</DefineConstants>
</PropertyGroup>
<PropertyGroup Condition="'$(TargetFramework)'=='netstandard1.3'">
<AssemblyTitle>QuikGraph.Serialization .NET Standard 1.3</AssemblyTitle>
Expand Down
10 changes: 10 additions & 0 deletions src/QuikGraph.Serialization/SerializationExtensions.cs
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,11 @@ public static class SerializationExtensions
/// <exception cref="T:System.ArgumentNullException"><paramref name="graph"/> is <see langword="null"/>.</exception>
/// <exception cref="T:System.ArgumentNullException"><paramref name="stream"/> is <see langword="null"/>.</exception>
/// <exception cref="T:System.ArgumentException"><paramref name="stream"/> is not writable.</exception>
#if DEPRECATE_BINARY_SERIALIZATION
[Obsolete(
"Binary serialization on old .NET targets is deprecated.\n" +
"Consider using another kind of serialization or updating to at least .NET Framework 4.6.1+, .NET Standard 2.0+ or .NET 5.0+.")]
#endif
public static void SerializeToBinary<TVertex, TEdge>(
[NotNull] this IGraph<TVertex, TEdge> graph,
[NotNull] Stream stream)
Expand Down Expand Up @@ -61,6 +66,11 @@ public static void SerializeToBinary<TVertex, TEdge>(
/// <exception cref="T:System.ArgumentNullException"><paramref name="stream"/> is <see langword="null"/>.</exception>
/// <exception cref="T:System.ArgumentException"><paramref name="stream"/> is not readable.</exception>
[Pure]
#if DEPRECATE_BINARY_SERIALIZATION
[Obsolete(
"Binary deserialization on old .NET targets is deprecated.\n" +
"Consider using another kind of serialization or updating to at least .NET Framework 4.6.1+, .NET Standard 2.0+ or .NET 5.0+.")]
#endif
public static TGraph DeserializeFromBinary<TVertex, TEdge, TGraph>(
[NotNull] this Stream stream,
[CanBeNull] SerializationBinder binder = null)
Expand Down
18 changes: 6 additions & 12 deletions src/QuikGraph/QuikGraph.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -34,23 +34,17 @@ Supports Source Link</Description>

<IsPackable>true</IsPackable>
<PackageId>QuikGraph</PackageId>
<PackageReleaseNotes>➟ Release 2.3.0
Fixes:
- Fix the serialization implementation of UndirectedGraph, ArrayUndirectedGraph and UndirectedBidirectionalGraph.
- Fix A* implementation to also compute cost on tree edge.

<PackageReleaseNotes>➟ Release 2.5.0
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.
- 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 the IDistancesCollection to interface the distance information retrieval from shortest path algorithms. Legacy accesses to distances are marked as obsolete.
- Add cycle checking for edge set and undirected graphs (DAG - Directed Acyclic Graph check).

Misc:
- Remove the dependency to System.Collections.NonGeneric for .NET Standard 1.3 target.</PackageReleaseNotes>
- Assembly is CLS compliant (Common Language Specification).</PackageReleaseNotes>
<PackageTags>QuickGraph QuikGraph Graph Structure Algorithm C# .NET</PackageTags>
</PropertyGroup>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@
using NUnit.Framework;
using static QuikGraph.Serialization.Tests.SerializationTestCaseSources;

#pragma warning disable 618 // Obsolete API usage

namespace QuikGraph.Serialization.Tests
{
/// <summary>
Expand Down

0 comments on commit 9cd6b49

Please sign in to comment.