12010-03-13  Jarkko Hietaniemi  <jhi@iki.fi>
2
3	* Address rt.cpan.org #43580:
4	  "Reversed logic on overload::StrVal() in AdjacencyMap::Vertex::__set_path"
5	  Had to add a new option, refvertexed_stringified.
6
7	* Address rt.cpan.org #50210:
8	  "Graph-0.91: bug in unionfind parameter"
9
10	  One cannot delete from a unionfind graph: now enforcing that.
11
12	* Address rt.cpan.org #48090:
13	  "all_reachable on directed $g->add_edges(['a','b'],['b','a'])"
14
15	  Now if there are loops, all_reachable() will include
16	  the initial vertices themselves.  Also all_neighbors()
17	  had some problems in certain cases, fixed those too.
18
19	* Address rt.cpan.org #50210:
20	  "Graph-0.91: bug in unionfind parameter"
21	  
22	  One cannot delete edges or vertices from a unionfind
23	  graph: now enforce that in code.
24
25	* Address rt.pcan.org #42549: "stron"
26
27	  Document that strongly connected components will include
28	  isolated and sink and source vertices.
29
30	* Release as 0.94.
31
322010-03-07  Jarkko Hietaniemi  <jhi@iki.fi>
33
34	* Revert the SPTHeapElem.pm change made in Graph 0.92,
35	  installing Heap 0.80 broke Graph.  Better be conservative.
36
37	* Release as 0.93.
38
392010-03-03  Jarkko Hietaniemi  <jhi@iki.fi>
40
41	* Address rt.cpan.org #55912 "Broken links in the documentation"
42
43	* Address rt.cpan.org #55196 "Heap 0.80 compatibility fix"
44
45	* Add copyright and clearer license statement.
46
47	* Release as 0.92.
48	
492009-01-16  Jarkko Hietaniemi  <jhi@iki.fi>
50
51	* Minor documentation cleanups.
52
53	* Add 'use strict;' to lib/Graph/TransitiveClosure.pm.
54
55	* Modernize the META.yml.
56
57	* Release as 0.91.
58
592008-12-29  Jarkko Hietaniemi  <jhi@iki.fi>
60
61	* Storable deparse of coderefs for deep_copy() does not
62	  work at all with 5.6.2: if modern enough Storable
63	  and B::Deparse are not available, fall back to
64	  the previous version which used Data::Dumper.
65
66	* Release as 0.90.
67
682008-12-27  Jarkko Hietaniemi  <jhi@iki.fi>
69
70	* Some PAUSE upload problem with 0.88, retrying.
71
72	* Release as 0.89.
73
742008-12-26  Jarkko Hietaniemi  <jhi@iki.fi>
75
76	* The 0.87 forgot to specify the Storable (and Safe,
77	  used in the deserialization step of deep_copy)
78	  prerequirement(s) in Makefile.PL.
79
80	* Release as 0.88.
81
822008-12-26  Jarkko Hietaniemi  <jhi@iki.fi>
83
84	* Addressed a performance problem in successors()
85	  and predecessors(), reported by Jonathan Moore.
86
87	* Reimplement deep_copy() by using Storable
88	  freeze() and thaw() instead of Data::Dumper,
89	  inspired by Jonathan Moore.  Probably now safer
90	  and faster, but Storable is now a prerequirement.
91
92	* Release as 0.87.
93
942008-11-27  Jarkko Hietaniemi  <jhi@iki.fi>
95
96	* Addressed a performance problem in connected_components()
97	  for 1000+ vertex graphs, reported by David Grobe.
98	  Should in general speed up graph traversal.
99
100	* Release as 0.86.
101
1022008-11-27  Jarkko Hietaniemi  <jhi@iki.fi>
103
104	* Address rt.cpan.org #31608 "Graph::Undirected, unionfind and
105	  connected_component"
106
107	* Address rt.cpan.org #34377 "recursive successors and predecessors"
108	  (added all_successors/all_predecessors/all_neighbours/all_reachable)
109
110	* Address rt.cpan.org #39444 "inconsistent return value"
111	  (make add_edges and add_vertices to always return the graph)
112
113	* Address rt.cpan.org #39614 "copy should retain more attributes"
114	  (now copies also refvertexed/hypervertexed/countvertexed/
115	   multivertexed/hyperedged/countedged/multiedged/omniedged)
116
117	* Address rt.cpan.org #39805 "UnionFind: Repeated adds clobbers
118	  graph component information"
119
120	* Address rt.cpan.org #41190 "add_edge_by_id on multigraph
121	  malfunctioning"
122
123	* Added betweenness(), clustering_coefficient(), and
124	  subgraph_by_radius(), contributed by Matt Spear.
125
126	* Release as 0.85.
127
1282007-08-13  Jarkko Hietaniemi  <jhi@iki.fi>
129
130	* Tels found one more attributed edge problem.
131
132	* Release as 0.84.
133
1342007-08-12  Jarkko Hietaniemi  <jhi@iki.fi>
135
136	* One test in 73_diameter.t had too many possible answers,
137	  dependent on the hash ordering, removed the test.
138
139	* Release as 0.83.
140
1412007-08-11  Jarkko Hietaniemi  <jhi@iki.fi>
142
143	* Since Heap 0.80 broke Graph, as a stop-gap measure
144	  I will include the Heap::Elem and Heap::Fibonacci
145	  of Heap 0.71, renamed as 'Heap071', addresses rt.cpan.org
146	  #26943: "Heap 0.80 breaks Graph", and numerous bug reports
147	  by email
148
149	* Address rt.cpan.org #27840: "add-edge_attributes() on
150	  undirected graph wrongly depends on node order", from Tels
151
152	* Address rt.cpan.org #27959: "radius method incorrect",
153	  code and test case from ROSULEK.
154
155	* Release as 0.82.
156
1572007-01-21  Jarkko Hietaniemi  <jhi@iki.fi>
158
159	* Address rt.cpan.org #24417: "next_successor unavailable in
160	  Traversal (PATCH)", from Ted Carnahan.
161
162	* Small pod tweaks.
163
164	* Minor internal cleanup for the caching code.
165
166	* Release as 0.81.
167
1682006-09-10  Jarkko Hietaniemi  <jhi@iki.fi>
169
170	* SP_Bellman_Ford() used actually SPT_Dijkstra(), not
171	  SPT_Bellman_Ford(), noticed by "aramos".  This changed
172	  some regression test results a bit.
173
174	* The NAME line of Graph::Undirected said "directed graphs",
175	  noticed by "Ruslan", the first one to notice this in two
176	  years, including the author yours truly...
177
178	* Add Scalar::Util to the prereqs listed in Makefile.PL since
179	  one of the tests uses refaddr, shouldn't be a problem because
180	  List::Util already is a prereq.
181
182	* Fix few broken intra-pod links.
183
184	* Release as 0.80.
185
1862006-08-06  Jarkko Hietaniemi  <jhi@iki.fi>
187
188	* The u_bo_ap1.t wasn't really testing the same for 20 times,
189	  which meant that one bug was waiting for Koen van der Drift.
190	  (If one start vertex of biconnectivity search was a self-loop,
191	  an empty list of articulation points was returned.)
192
193	* Add a new API family: $g->..._clear_cache(), which allows
194	  one to forget a cached value such as biconnectivity().
195	  Without clearing the cache once the result has been computed
196	  it stays the same (until the graph is modified, of course).
197	  If the cache is cleared, (pseudo)randomness is applied again,
198	  and the algorithm results may become different.
199
200	* Release as 0.79.
201
2022006-07-16  Jarkko Hietaniemi  <jhi@iki.fi>
203
204	* Address rt.cpan.org #20476: "SPT_Bellman_Ford does not respect
205	  refvertexed" - now fixed, and SPT_Dijkstra() had the same problem.
206
207	* Release as 0.78.
208
2092006-07-08  Jarkko Hietaniemi  <jhi@iki.fi>
210
211	* Address rt.cpan.org #20185: "problem with SPT_Bellman_Ford",
212	  SPT_Bellman_Ford() was broken for undirected graphs
213	  (they were handled as directed ones, therefore missing vertices).
214
215	* weakly_connected_component_by_vertex() usage example
216	  was wrong, was using weakly_connected_component(),
217	  noted by 'yanick' in annocpan.org.
218
219	* Implement and document the saving of the SPT_Dijkstra()
220	  and SPT_Bellman_Ford() start vertices.
221
222	* Document add_edges() alternative API.
223
224	* Aerate the Changes by adding empty lines between the * items.
225
226	* Release as 0.77.
227
2282006-06-28  Jarkko Hietaniemi  <jhi@iki.fi>
229
230	* Problem found by Xiaoli Zheng in diameter(): adding vertices
231	  did not change diameter, this was due to a deeper bug where
232	  the transitive closure matrix was being cached wrong:
233	  sometimes saved too long, sometimes recomputed too often.
234	  Enhanced 73_diameter.t to detect this.
235
236	* Problem found by Andree Toonk and Ronald van der Pol:
237	  SP_Dijkstra() tried too hard to find a path between
238	  vertices even if there was none - and returned rubbish.
239	  Added t/u_at3.t to detect this.
240
241	* Address rt.cpan.org #20021: "bridges() sometimes returns
242	  empty list when isolated vertices present".  biconnectivity()
243	  did not work right if isolated vertices were picked as roots,
244	  it either hung or returned empty.  Added t/u_bill.t to detect this.
245
246	* Document that add_vertex() is often unnecessary.
247
248	* Directed.pm and Undirected.pm were missing "use strict".
249
250	* Release as 0.76.
251
2522006-06-09  Jarkko Hietaniemi  <jhi@iki.fi>
253
254	* Had accidentally removed Digest::MD5 from the Makefile.PL
255	  prereq list, found by Anton Berezin (using Perl 5.6.2, which
256	  doesn't include that), solved by removing the dependency
257	  to Digest::MD5.
258
259	* Speeded up repeated longest/shortest paths computations
260	  by using a cached (Floyd-Warshall) transitive closure.
261
262	* Implemented:
263	  - graph radius
264	  - graph center (vertices)
265	  - vertex eccentricity
266
267	* Release as 0.75.
268
2692006-05-31  Jarkko Hietaniemi  <jhi@iki.fi>
270
271	* Bug in SP_Dijkstra() found by Andree Toonk and Ronald van der Pol.
272	  The edge weights of the Dijkstra shortest paths graph were
273	  not cumulative (if the whole graph is a-b = 1 and b-c = 2,
274	  a-c should be 3), which caused the SP_Dijsktra() results
275	  sometimes to be nonsense.  Two test cases, one of them rather
276	  large (about 5000 edges).
277
278	* Bugs when using references as vertices in bridges()
279	  and (Traversal) seen() found by Brian Osborne.
280
281	* Added another articulation_points() test by Brian Obsorne.
282
283	* Explicitly disallow adding undef as a vertex.
284
285	* Release as 0.74.
286
2872006-05-27  Jarkko Hietaniemi  <jhi@iki.fi>
288
289	* Still one bug hiding in articulation points: if the
290	  (randomly chosen) first vertex was a self-loop, an
291	  empty list was returned for articulation points.
292	  t/u_bo_ap.t now tests the test case from Brian
293	  Osborne 20 times to stress test more cases,
294	  and extra five tests testing self-loops and
295	  articulation points.
296
297	* Release as 0.73.
298
2992006-05-27  Jarkko Hietaniemi  <jhi@iki.fi>
300
301	* Brian Osborne found a graph where articulation_points()
302	  ended up in an infinite loop.	 Resolved and the graph
303	  test case added as t/u_bo_ap.t.
304
305	* Release as 0.72.
306
3072006-05-22  Jarkko Hietaniemi  <jhi@iki.fi>
308
309	* Tweak the pod-coverage.t so that it looks more like
310	  Test::Pod::Coverage documentation suggests in this case.
311
312	* Fix the u_bo.t not to have a test class with a broken
313	  stringification method to avoid spurious warnings and
314	  failure (also do away with the use of Math::Complex to
315	  avoid problems because of different Math::Complex releases),
316	  and more even importantly fix the "next_root" logic in
317	  connected components not to advance to the next component
318	  if there is nothing to advance to.  This seems to be prone
319	  to failure in 5.6.2, for some reason 5.8.8 works fine.
320
321	* Test under Perl 5.6.2.
322
323	* Force has_cycle() to return true/false, not the list of edges,
324	  reported by Casey Bergman.
325
326	* Release as 0.71.
327
3282006-05-21  Jarkko Hietaniemi  <jhi@iki.fi>
329
330	* delete_vertex() from a refvertexed graph left an unnecessary
331	  reference to the referenced vertex hanging around in the graph,
332	  reported by Christoph Lamprecht.
333
334	* Implement new 'super_component' option for connected_graph(),
335	  biconnected_graph(), and strongly_connected_graph(), to allow
336	  more complex ways of forming 'supercomponents' (and more
337	  customized ways of naming them).
338
339	* Address rt.cpan.org #17159: "Nodes appear to unblessed after
340	  using articulation_points() - 2" (elaboration of rt.cpan.org
341	  #17108: "Nodes appear to unblessed after using
342	  articulation_points())"
343
344	* Address rt.cpan.org #17160: "Nodes appear to unblessed after
345	  using connected_components()"
346
347	* Address rt.cpan.org #17161: "Nodes appear to unblessed after
348	  using bridges()"
349
350	* Address rt.cpan.org #17162: "Nodes appear to unblessed after
351	  using connected_graph()"
352
353	* Address rt.cpan.org #17163, "SP_Dijkstra() is complaining"
354
355	* Address rt.cpan.org #17164, "SP_Bellman_Ford() is complaining"
356
357	* Address rt.cpan.org #17165, documentation error in
358	  SP_Bellman_Ford().	
359
360	* Address rt.cpan.org #17405: "has_cycle with empty args
361	  should return FALSE"
362
363	* Address rt.cpan.org: #17592: "articulation_points doesn't
364	  find all vertices" (didn't find all the vertices of non-connected
365	  graphs, only the vertices of the first (randomly chosen) connected
366	  subgraph)
367
368	The rt.cpan.org cases 17159-17592 reported by Brian Obsorne.
369
370	* Add Test::Pod and Test::Pod::Coverage tests.
371
372	* Release as 0.70.
373
3742005-12-06  Jarkko Hietaniemi  <jhi@iki.fi>
375
376	* Add SP_Dijkstra() and SP_Bellman_Ford() to find the shortest
377	  path between any two vertices, the result is returned as
378	  the list of the vertices in the path.
379
380	* In addition to the SPT per vertex result weight, also add
381	  a predecessor ('p') vertex attribute (the SP_Dijkstra() and
382	  SP_Bellman_Ford() unsurprisingly use this.)
383
384	* Cache the SPT results for better speed.
385
386	* Document that the SPT also allow a single argument
387	  as the starting (root) vertex.
388
389	* Fix a bug in SPT_Dijkstra() which would ignore an "untrue" vertex
390	  (such as '0') if it was any other vertex than the root vertex
391	  (boolean context is dangerous, when you really mean "exists").
392
393	* For "components" (strongly, biconnected, and connected) graphs
394	  store the list of the original vertices as a vertex attribute
395	  'subvertices' (so there is no need to do split(/\+/, ...) tricks),
396	  the list is stored as a array reference.
397
398	* Release as 0.69.
399
4002005-11-23  Jarkko Hietaniemi  <jhi@iki.fi>
401
402	* SPT_Dijkstra() wasn't setting the vertex attributes of
403	  the result graph, noticed by Susan Tang, only the edge
404	  attributes were being set.  SPT_Bellman_Ford() was doing neither!
405
406	* There was an actual typo in the SPT test case from Sedgewick,
407	  a weight of 0.32 was mistyped as 0.22, this luckily didn't
408	  affect the result graph but it of course affected the
409	  resulting vertex 'weight' attributes.
410
411	* Add tests to t/70_spt.t for the vertex and egde attributes
412	  of the SPT_Dijkstra() and SPT_Bellman_Ford() results.
413
414	* Minor documentation tweaks, most importantly clarify the
415	  return value of the SPT_Dijkstra() and SPT_Bellman_Ford().
416
417	* Document that Perl 5.6.0 is the minimum (because of weak references)
418	  and also make Graph.pm require that (Makefile.PL was already doing
419	  the probing using Scalar::Util qw(weaken)).
420
421	* Add an early test (02_trap.t) for catching the development-time-only
422	  setting of __DIE__ and __WARN__ handlers (as a result of this almost
423	  all the numbered tests were renumbered, so the diff is falsely
424	  gigantic).  (If the handlers were mistakenly left turned on,
425	  a lot of later tests that checked the $@ got confusing failures.)
426
427	* Release as 0.68.
428
4292005-08-03  Jarkko Hietaniemi  <jhi@iki.fi>
430
431	* The 0.66 add_edge_get_id() fix was not yet quite right, Tels
432	  found another problem with it.  Now with another fix, and
433	  another test case (t/u_te_ae.t)
434
435	* Documentation fixes from John P. Linderman.
436
437	* Release as 0.67.
438
4392005-07-20  Jarkko Hietaniemi  <jhi@iki.fi>
440
441	* Fix [rt.cpan.org #13193] "Documentation error in set_edge_attributes"
442	  and [rt.cpan.org #13194] "Documentation error in set_edge_attributes"
443	  (duplicate report)
444
445	* Fixes for problems listed in [rt.cpan.org #13195]
446	  "add_vertex_get_id/add_edge_get_id() return wrong result on first call"
447	  - add_edge_get_id() was returning an array reference instead
448	    of the id with the first call (the array reference was the
449	    ids of the vertices of the edge)
450	  - add_vertex_get_id() was even more broken (a multivertexed
451	    graph was using Graph::AdjacencyMap::Vertex for the vertex
452	    map, not Graph::AdjacencyMap::Heavy)
453	  - Added test t/u_te_me.t for the two above issues.
454	  - document in which order multiedge ids are returned (random)
455	  - require Data::Dumper only for deep_copy() and _dump()
456	  (not changes for two listed items, "check directly multiedged
457	   via a flag" and "remove returns for speed" because I have
458	   issues with speed hacks without actual measurements, and even
459	   if so would fear reduced maintainability)
460
461	* Fix [rt.cpan.org #13352] "Dijkstra heap logic"
462	  Dijkstra was fine, the SPTHealElem cmp() routine was wrong
463	  in having no tie breakers in case the weights compared equal.
464	  Added test t/u_re_sd.t.
465
466	* Release as 0.66.
467
4682005-05-15  Jarkko Hietaniemi  <jhi@iki.fi>
469
470	* Tests added to 64_ref.t to verify that using different kinds
471	  of blessed references as vertices works okay.	 Few bugs found
472	  by these tests squashed.
473
474	* Release as 0.65.
475
4762005-05-14  Jarkko Hietaniemi  <jhi@iki.fi>
477
478	* Fix for [rt.cpan.org #12509] "Errors using objects as nodes",
479	  patch from the reporter of the bug, add t/u/bb_rv.t.
480
481	* Fix for refvertexed isolated vertices not having overloaded cmp
482	  and graph string presentation failing because of that.
483
484	* The <NOTE>s needed to be B<NOTE>s.
485
486	* Release as 0.64.
487
4882005-04-16  Jarkko Hietaniemi  <jhi@iki.fi>
489
490	* After setting a vertex attribute one could not delete
491	  non-attributed vertices, reported by Joseph Hamilton.
492
493	* Inlining to speed up path_vertices() slightly.
494
495	* Release as 0.63.
496
4972005-04-10  Jarkko Hietaniemi  <jhi@iki.fi>
498
499	* The documentation of add_weighted_vertices was wrong:
500	  the arguments are (v1, w1, v2, w2, ...) instead of (v1, v2, ..., w).
501
502	* Made calling interfaces with an "options hash" like new()
503	  and random_graph() more robust, now bails out earlier instead
504	  of dieing mysteriously later with an "odd number of arguments"
505
506	* Allow running under -d:DProf even when using random shuffling:
507	  workaround for List::Util::shuffle and -d:DProf not working
508	  together ([perl #32383]) by falling back to Fisher-Yates shuffle
509	  if (any use of) the -d: is detected.
510
511	* Allow calling random_graph() also as a class method:
512	  Graph::random_graph(...) (the resulting graph will be a 'Graph').
513
514	* in_degree() and out_degree() (and therefore vertex_degree())
515	  were one too low for self-loop vertices in undirected graphs
516	  (the self-loop edge was not counted).
517
518	* Release as 0.62.
519
5202005-03-27  Jarkko Hietaniemi  <jhi@iki.fi>
521
522	* [rt.cpan.org #12023] from Macha Nikolski:
523	  deleting an attributed vertex left the graph in a state
524	  where has_vertex() returned correctly false but vertices()
525	  still wrongly returned the freshly deleted vertex.
526
527	* A few missing "See":s added to the pod.
528
529	* Release as 0.61.
530
5312005-03-25  Jarkko Hietaniemi  <jhi@iki.fi>
532
533	* Bug reported by Richard Ball: connected_component_by_index()
534	  and connected_component_by_vertex() were starting their indexing
535	  from one, not zero.
536
537	* t/27_hyperedged.t was really testing for turning on
538	  hypervertexedness (the actual functionality was being
539	  tested correctly in t/32_hyperedge.t).
540
541	* Release as 0.60.
542
5432005-03-03  Jarkko Hietaniemi  <jhi@iki.fi>
544
545	* deep_copy_graph() could not handle code references since
546	  Data::Dumper by default doesn't handle those.	 Now uses
547	  the Deparse option for 5.8.x and later.
548
549	* The removed interfaces add_graph() and delete_graph() still
550	  had their documentation hanging around.
551
552	* Release as 0.59.
553
5542005-02-19  Jarkko Hietaniemi  <jhi@iki.fi>
555
556	* Document that using attributes does have a slowing down
557	  effect on other graph operations
558	  [rt.cpan.org #11498]
559	  "Performance problem: edge attributes slow source_vertices"
560	  This is unlikely to get fixed any time soon, I am afraid,
561	  this is one of those working-as-designed-and-correctly-but-
562	  unfortunately-slow things.
563
564	* Document that Graph 0.2xxx edges($v) is now edges_at($v)
565	  [rt.cpan.org #11494]
566
567	* [rt.cpan.org #11543]: self-edges reported twice by edges_at().
568
569	* Declare/document that any attributes beginning with an underscore
570	  are reserved for the internal use of Graph.
571
572	* Various inlining optimizations: should run 5-10% faster
573	  than the 0.57.
574
575	* Release as 0.58.
576
5772005-02-12  Jarkko Hietaniemi  <jhi@iki.fi>
578
579	* Further 10% speedup on 'make test' on top of 0.56 by inlining
580	  various code paths related to finding edges, now 'make test'
581	  is cumulatively about 15% faster than the 0.55 release.
582	  The test case of [rt.cpan.org #11465] is about 10 times faster.
583
584	* Release as 0.57.
585
5862005-02-12  Jarkko Hietaniemi  <jhi@iki.fi>
587
588	* Rewrite edges finding code (like edges_at()) to avoid a
589	  quadratic algorithm.	Shame on me.  Luckily this extremely
590	  slow path was not touched that often, but [rt.cpan.org #11465]
591	  shows one known bad case, source_vertices() for compat02
592	  graphs.  The removal of the slow path sped up 'make test'
593	  by about 5-10%.
594
595	* Remove a voodoo keys() from vertices_at().
596
597	* Document stubs for Graph::Directed and Graph::Undirected.
598	
599	* Tiny documentation tweaks.
600
601	* Release as 0.56.
602
6032005-01-22  Jarkko Hietaniemi  <jhi@iki.fi>
604
605	* Add unset_row(), get_row(), set_row(), and unset_row(), methods
606	  to Graph::BitMatrix and make it public (remove the "internal use
607	  only" warning from it).  Add t/82_bitmatrix.t.
608
609	* Add vertex_degree() as an alias for degree().
610
611	* One more alternative solution for spt.t from Koen.
612
613	* I seem to have this drive to misspell people's names.
614	  Sorry, Koen.
615
616	* Release as 0.55.
617
6182005-01-16  Jarkko Hietaniemi  <jhi@iki.fi>
619
620	* More bugs found in set_vertex_attribute(), fixed and tests
621	  added.  (Basically the same failure pattern as with the
622	  [rt.cpan.org #9461]: after setting vertex attributes many of
623	  the 'structural' methods such as predecessors() often returned
624	  wrong results.)
625
626	* More alternative solutions to spt.t, diameter.t, and dump.t,
627	  found by the PRNG of Koen van der Drift in Mac OS X 10.3.7,
628	  Perl 5.8.1.
629
630	* Release as 0.54.
631
6322005-01-14  Jarkko Hietaniemi  <jhi@iki.fi>
633
634	* The #9461 was still there.
635	  But now we have a simple test case from Sebastian Nagel.
636	  The real culprit seemed to be a misapplied optimisation.
637
638	* Release as 0.53.
639
6402005-01-12  Jarkko Hietaniemi  <jhi@iki.fi>
641
642	* Fix set_graph_attribute() documentation not to talk about $u, $v
643	  (noticed by Kurt Jaeger).
644
645	* A mysterious failure fixed by a mysterious fix: under some
646	  circumstances it seems that an each() doesn't walk through
647	  all the key-value pairs, the workaround is to reset the
648	  each() iterator by a keys() call.  Not simple test code,
649	  sadly, since the existing test code (see the case) is 13 kB
650	  and non-trivial.
651	  [rt.cpan.org #9461]
652
653	* Add a safety guard against a missing Scalar::Util::weaken
654	  [rt.cpan.org #9481]
655
656	* Release as 0.52.
657
6582005-01-09  Jarkko Hietaniemi  <jhi@iki.fi>
659
660	* Allow calling Makefile.PL with arguments other than --renum
661	  (which is for internal use only, and therefore undocumented).
662	  [rt.cpan.org #9481]
663
664	* Remove the add_graph() and delete_graph() interfaces, sorry
665	  if you were already using them, but the current interface was
666	  very poor and the concept ill-planned.  If you want to merge or
667	  remove edges and vertices between your graph, you can probably
668	  yourself implement the exactly right things to do.
669	  [rt.cpan.org #9493]
670
671	* Document that one cannot assume Graphs are blessed hash references
672	  (and the likely error message one will get if one so assumes).
673	  [rt.cpan.org #9505]
674
675	* Fix Andras' last name (sorry).
676
677	* Merge duplicate documentation of find_a_cycle(). 
678
679	* Graph::AdjacencyMap::Base does not exist, fix Graph/AdjacencyMap.pm
680	  pod to comply.
681
682	* Release as 0.51.
683
6842005-01-01  Jarkko Hietaniemi  <jhi@iki.fi>
685
686	* The 0.50.
687
6882004-10-30  Jarkko Hietaniemi  <jhi@iki.fi>
689
690	* Start wrapping up for the 0.50 release.
691
692	* Start bothering beta testers.
693