<?xml version="1.0" encoding="UTF-8"?>
<!--
     Licensed to the Apache Software Foundation (ASF) under one or more
     contributor license agreements.  See the NOTICE file distributed with
     this work for additional information regarding copyright ownership.
     The ASF licenses this file to You under the Apache License, Version 2.0
     (the "License"); you may not use this file except in compliance with
     the License.  You may obtain a copy of the License at

          http://www.apache.org/licenses/LICENSE-2.0

     Unless required by applicable law or agreed to in writing, software
     distributed under the License is distributed on an "AS IS" BASIS,
     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     See the License for the specific language governing permissions and
     limitations under the License.
  -->
<document xmlns="http://maven.apache.org/changes/1.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/changes/1.0.0 http://maven.apache.org/plugins/maven-changes-plugin/xsd/changes-1.0.0.xsd">
  <properties>
    <title>Apache Commons Graph - Changes</title>
  </properties>
  <body>
  <release version="0.1" date="201?-??-??" description="First release.">
    <action issue="SANDBOX-425" dev="marcosperanza" type="fix">
      FibonacciHeap enters in an infinite loop when applying SpannigTree algorithms
    </action>
    <action issue="SANDBOX-400" dev="simonetripodi" type="fix">
      Switch the Base graph implementation underlying data structures to the thread safe version
    </action>
    <action issue="SANDBOX-395" dev="cs" type="fix">
      Correct names for classes and variables related to operations on weights
    </action>
    <action issue="SANDBOX-394" dev="marcosperanza" type="fix">
      Add containsEdge and containsVertex into Graph interface
    </action>
    <action issue="SANDBOX-393" dev="marcosperanza" type="fix">
      Add test for Spanning tree
    </action>
    <action issue="SANDBOX-392" dev="marcosperanza" type="fix">
      Add test for Kosaraju Sharir Algorithm
    </action>
    <action issue="SANDBOX-391" dev="marcosperanza" type="fix">
      removeEdge method: missing implementation
    </action>
    <action issue="SANDBOX-388" dev="simonetripodi" type="update" due-to="Steven Dolg, Claudio Squarcella">
      Generic Type inference doesn't work in Eclipse
    </action>
    <action issue="SANDBOX-386" dev="marcosperanza" type="fix">
      Make Graph components Serializable
    </action>
    <action issue="SANDBOX-385" dev="simonetripodi" type="update" due-to="Claudio Squarcella">
      Provide Edmonds-Karp algorithm
    </action>
    <action issue="SANDBOX-384" dev="simonetripodi" type="fix">
      Make Graph components Serializable
    </action>
    <action issue="SANDBOX-384" dev="simonetripodi" type="fix" due-to="Marco Speranza">
      Add test for Flow Algorithms
    </action>
    <action issue="SANDBOX-383" dev="simonetripodi" type="fix" due-to="Marco Speranza">
      Add test for Connectivity
    </action>
    <action issue="SANDBOX-382" dev="simonetripodi" type="fix" due-to="Marco Speranza">
      Add new test for coloring
    </action>
    <action issue="SANDBOX-381" dev="simonetripodi" type="fix" due-to="Marco Speranza">
      Unused class GraphColoringBacktraking
    </action>
    <action issue="SANDBOX-380" dev="simonetripodi" type="fix" due-to="Marco Speranza">
      Add cobertura report and increase test coverage
    </action>
    <action issue="SANDBOX-375" dev="simonetripodi" type="fix" due-to="Marco Speranza">
      Add Connected Components algorithms
    </action>
    <action issue="SANDBOX-374" dev="simonetripodi" type="fix" due-to="Marco Speranza">
      Kruskal's algorithm doesn't accept sparse graph
    </action>
    <action issue="SANDBOX-372" dev="simonetripodi" type="update">
      Make the org.apache.commons.graph.visit.GraphVisitHandler able to return objects
    </action>
    <action issue="SANDBOX-370" dev="simonetripodi" type="add" due-to="Matteo Moci">
      GraphML format exporter
    </action>
    <action issue="SANDBOX-368" dev="simonetripodi" type="fix" due-to="Marco Speranza">
      change Dijkstra MST api for accept also Undirect Graph
    </action>
    <action issue="SANDBOX-367" dev="simonetripodi" type="update" due-to="Claudio Squarcella">
      Move base implementations from test to main
    </action>
    <action issue="SANDBOX-366" dev="simonetripodi" type="update">
      Move Graph algorithms APIs to fluent APIs
    </action>
    <action issue="SANDBOX-364" dev="simonetripodi" type="update" due-to="Claudio Squarcella">
      Adding generic weight type to model
    </action>
    <action issue="SANDBOX-361" dev="simonetripodi" type="update">
      Add fluent APIs to build mutable Graphes
    </action>
    <action issue="SANDBOX-358" dev="simonetripodi" type="update" due-to="Claudio Squarcella">
      Early return/termination for graph visit.
    </action>
    <action issue="SANDBOX-356" dev="simonetripodi" type="update" due-to="Claudio Squarcella">
      Generic weight types and algorithms implementations based on wighted graphes.
    </action>
    <action issue="SANDBOX-355" dev="simonetripodi" type="update" due-to="Claudio Squarcella">
      Provide Flow algorithms
    </action>
    <action issue="SANDBOX-354" dev="marcosperanza" type="fix">
      Provide a Tarjan's algorithm implementation
    </action>
    <action issue="SANDBOX-352" dev="marcosperanza" type="fix">
      Provide Cheriyan-Mehlhorn/Gabow's strongly connected component algorithm implementation
    </action>
    <action issue="SANDBOX-353" dev="tn" type="fix">
      Provide a Kosaraju-Sharir's algorithm implementation
    </action>
    <action issue="SANDBOX-350" dev="simonetripodi" type="fix" due-to="Marco Speranza">
      Provide a Reverse-delete algorithm implementation
    </action>
    <action issue="SANDBOX-348" dev="simonetripodi" type="fix" due-to="Marco Speranza">
      Implement the Boruvka's algorithm
    </action>
    <action issue="SANDBOX-346" dev="simonetripodi" type="update" due-to="Claudio Squarcella">
      DotExporter only exports weights that extend Number.
    </action>
    <action issue="SANDBOX-345" dev="simonetripodi" type="update" due-to="Claudio Squarcella">
      Weighted as an interface with generic weight type.
    </action>
    <action issue="SANDBOX-344" dev="simonetripodi" type="update" due-to="Claudio Squarcella">
      No WeightedGraph in current method signatures.
    </action>
    <action issue="SANDBOX-338" dev="simonetripodi" type="update" due-to="Marco Speranza">
      Generic iterable set of color.
    </action>
    <action issue="SANDBOX-337" dev="simonetripodi" type="fix" due-to="Marco Speranza">
      Wrong value for Vertex degree.
    </action>
    <action issue="SANDBOX-336" dev="simonetripodi" type="fix" due-to="Marco Speranza">
      Duplicate Edge.
    </action>
    <action issue="SANDBOX-335" dev="simonetripodi" type="update" due-to="Marco Speranza">
      Graph Coloring: Backtracking algorithm.
    </action>
    <action issue="SANDBOX-334" dev="simonetripodi" type="update" due-to="Marco Speranza">
      Bad coloring for crawn graph.
    </action>
    <action issue="SANDBOX-333" dev="simonetripodi" type="update" due-to="Marco Speranza">
      Graph coloring implementation.
    </action>
    <action issue="SANDBOX-332" dev="simonetripodi" type="update" due-to="Marco Speranza">
      add FloydWarshall algorithm implementation.
    </action>
  </release>
  </body>
</document>
