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