Statistics
| Branch: | Revision:

iof-tools / networkxMiCe / networkx-master / doc / news.rst @ 5cef0f13

History | View | Annotate | Download (33.9 KB)

1
..  -*- coding: utf-8 -*-
2
.. currentmodule:: networkx
3

    
4
Release Log
5
===========
6

    
7
NetworkX 2.3
8
------------
9
Release date: 11 April 2019
10

    
11
Supports Python 3.5, 3.6 and 3.7.
12
This is our first Python 3 only release.
13

    
14
Release notes
15
~~~~~~~~~~~~~
16

    
17
See :doc:`release/release_2.3`.
18

    
19

    
20
NetworkX 2.2
21
------------
22
Release date: 19 September 2018
23

    
24
Supports Python 2.7, 3.5, 3.6 and 3.7.
25
This is the last release to support Python 2.
26

    
27
Release notes
28
~~~~~~~~~~~~~
29

    
30
See :doc:`release/release_2.2`.
31

    
32

    
33
NetworkX 2.1
34
------------
35
Release date: 22 January 2018
36

    
37
Supports Python 2.7, 3.4, 3.5, and 3.6.
38

    
39
Release notes
40
~~~~~~~~~~~~~
41

    
42
See :doc:`release/release_2.1`.
43

    
44

    
45
NetworkX 2.0
46
------------
47
Release date: 20 September 2017
48

    
49
Support for Python 3.6 added, drop support for Python 3.3.
50

    
51
See :doc:`release/migration_guide_from_1.x_to_2.0`.
52
   
53
Release notes
54
~~~~~~~~~~~~~
55

    
56
See :doc:`release/release_2.0`.
57

    
58
NetworkX 1.11
59
-------------
60
Release date: 30 January 2016
61

    
62
Support for Python 3.5 added, drop support for Python 3.2.
63

    
64
Highlights
65
~~~~~~~~~~
66

    
67
Pydot features now use pydotplus.
68
Fixes installation on some machines and test with appveyor.
69
Restores default center and scale of layout routines.
70
Fixes various docs including no symbolic links in examples.
71
Docs can now build using autosummary on readthedocs.org.
72

    
73
NetworkX 1.10
74
--------------
75

    
76
Release date: 2 August 2015
77

    
78
Support for Python 2.6 is dropped in this release.
79

    
80
Highlights
81
~~~~~~~~~~
82

    
83
- Connected components now return generators
84
- new functions including
85

    
86
  + enumerate_all_cliques, greedy_coloring, edge_dfs, find_cycle
87
    immediate_dominators, harmonic_centrality
88
  + Hopcraft--Karp algorithm for maximum matchings
89
  + optimum branchings and arborescences.
90
  + all_simple_paths
91

    
92
- pyparsing dependence removed from GML reader/parser
93
- improve flow algorithms
94
- new generators related to expander graphs.
95
- new generators for multipartite graphs, nonisomorphic trees, 
96
  circulant graphs
97
- allow graph subclasses to use dict-like objects in place of dicts
98
- added ordered graph subclasses
99
- pandas dataframe read/write added.
100
- data keyword in G.edges() allows requesting edge attribute directly
101
- expanded layout flexibility for node subsets
102
- Kanesky's algorithm for cut sets and k_components
103
- power function for graphs
104
- approximation of node connectivity
105
- transitive closure, triadic census and antichains
106
- quotient graphs and minors
107
- longest_path for DAGS
108
- modularity matrix routines
109

    
110
API changes
111
~~~~~~~~~~~
112
See :doc:`release/api_1.10`.
113

    
114
NetworkX 1.9.1
115
--------------
116
Release date: 13 September 2014
117

    
118
Bugfix release for minor installation and documentation issues.
119

    
120
NetworkX 1.9
121
------------
122
Release date: 21 June 2014
123

    
124
Support for Python 3.1 is dropped in this release.
125

    
126
Highlights
127
~~~~~~~~~~
128
- Completely rewritten maximum flow and flow-based connectivity algorithms with
129
  backwards incompatible interfaces
130
- Community graph generators
131
- Stoer–Wagner minimum cut algorithm
132
- Linear-time Eulerian circuit algorithm
133
- Linear algebra package changed to use SciPy sparse matrices
134
- Algebraic connectivity, Fiedler vector, spectral ordering algorithms
135
- Link prediction algorithms
136
- Goldberg–Radzik shortest path algorithm
137
- Semiconnected graph and tree recognition algorithms
138

    
139
API changes
140
~~~~~~~~~~~
141
See :doc:`release/api_1.9`.
142

    
143
NetworkX 1.8.1
144
--------------
145
Release date:  4 August 2013
146

    
147
Bugfix release for missing files in source packaging.
148

    
149

    
150
NetworkX 1.8
151
------------
152
Release date:  28 July 2013
153

    
154
Highlights
155
~~~~~~~~~~
156
- Faster (linear-time) graphicality tests and Havel-Hakimi graph generators
157
- Directed Laplacian matrix generator
158
- Katz centrality algorithm
159
- Functions to generate all simple paths
160
- Improved shapefile reader
161
- More flexible weighted projection of bipartite graphs
162
- Faster topological sort, descendants and ancestors of DAGs
163
- Scaling parameter for force-directed layout
164

    
165
Bug fixes
166
~~~~~~~~~
167
- Error with average weighted connectivity for digraphs, correct normalized laplacian with self-loops, load betweenness for single node graphs, isolated nodes missing from dfs/bfs trees, normalize HITS using l1, handle density of graphs with self loops
168

    
169
- Cleaner handling of current figure status with Matplotlib, Pajek files now don't write troublesome header line, default alpha value for GEXF files, read curved edges from yEd GraphML
170

    
171

    
172
For full details of the issues closed for this release (added features and bug fixes) see: https://github.com/networkx/networkx/issues?milestone=1&page=1&state=closed
173

    
174

    
175
API changes
176
~~~~~~~~~~~
177
See :doc:`release/api_1.8`
178

    
179

    
180
NetworkX 1.7
181
------------
182
Release date:  4 July 2012
183

    
184
Highlights
185
~~~~~~~~~~
186

    
187
- New functions for k-clique community finding, flow hierarchy,
188
  union, disjoint union, compose, and intersection operators that work on 
189
  lists of graphs, and creating the biadjacency matrix of a bipartite graph.
190

    
191
- New approximation algorithms for dominating set, edge dominating set,
192
  independent set, max clique, and min-weighted vertex cover.
193

    
194
- Many bug fixes and other improvements.
195

    
196
For full details of the tickets closed for this release (added features and bug fixes) see:
197
https://networkx.lanl.gov/trac/query?status=closed&group=milestone&milestone=networkx-1.7
198

    
199
API changes
200
~~~~~~~~~~~
201
See :doc:`release/api_1.7`
202

    
203

    
204
NetworkX 1.6
205
------------
206

    
207
Release date:  20 November 2011
208

    
209
Highlights
210
~~~~~~~~~~
211

    
212
New functions for finding articulation points, generating random bipartite graphs, constructing adjacency matrix representations, forming graph products, computing assortativity coefficients, measuring subgraph centrality and communicability, finding k-clique communities, and writing JSON format output.
213

    
214
New examples for drawing with D3 Javascript library, and ordering matrices with the Cuthill-McKee algorithm.
215

    
216
More memory efficient implementation of current-flow betweenness and new approximation algorithms for current-flow betweenness and shortest-path betweenness.
217

    
218
Simplified handling of "weight" attributes for algorithms that use weights/costs/values.  See :doc:`release/api_1.6`.
219

    
220
Updated all code to work with the PyPy Python implementation http://pypy.org which produces faster performance on many algorithms.
221

    
222
For full details of the tickets closed for this release (added features and bug fixes) see:
223
https://networkx.lanl.gov/trac/query?status=closed&group=milestone&milestone=networkx-1.6
224

    
225
API changes
226
~~~~~~~~~~~
227
See :doc:`release/api_1.6`
228

    
229

    
230
NetworkX 1.5
231
------------
232

    
233
Release date:  4 June 2011
234

    
235
For full details of the tickets closed for this release see:
236
https://networkx.lanl.gov/trac/query?status=closed&group=milestone&milestone=networkx-1.5
237

    
238
Highlights
239
~~~~~~~~~~
240

    
241
New features
242
~~~~~~~~~~~~
243
 - Algorithms for :mod:`generating <networkx.generators.bipartite>` 
244
   and :mod:`analyzing <networkx.algorithms.bipartite>` bipartite graphs
245
 - :mod:`Maximal independent set <networkx.algorithms.mis>` algorithm
246
 - :mod:`Erdős-Gallai graphical degree sequence test <networkx.generators.degree_seq>`
247
 - :mod:`Negative edge cycle test <networkx.algorithms.shortest_paths.weighted>`
248
 - More memory efficient :mod:`Dijkstra path length <networkx.algorithms.shortest_paths.weighted>` with cutoff parameter
249
 - :mod:`Weighted clustering coefficient <networkx.algorithms.cluster>`
250
 - Read and write version 1.2 of :mod:`GEXF reader <networkx.readwrite.gexf>` format
251
 - :mod:`Neighbor degree correlation <networkx.algorithms.neighbor_degree>` 
252
   that handle subsets of nodes
253
 - :mod:`In-place node relabeling <networkx.relabel>` 
254
 - Many 'weighted' graph algorithms now take optional parameter to use 
255
   specified edge attribute (default='weight')
256
   (ticket https://networkx.lanl.gov/trac/ticket/509)
257

    
258
 - Test for :mod:`distance regular <networkx.algorithms.distance_regular>` graphs
259
 - Fast :mod:`directed Erdős-Renyi graph  <networkx.generators.random_graphs>` generator
260
 - Fast :mod:`expected degree graph  <networkx.generators.degree_seq>` generator
261
 - :mod:`Navigable small world  <networkx.generators.geometric>` generator
262
 - :mod:`Waxman model <networkx.generators.geometric>` generator
263
 - :mod:`Geographical threshold graph <networkx.generators.geometric>` generator
264
 - :mod:`Karate Club, Florentine Families, and Davis' Women's Club <networkx.generators.social>` graphs
265

    
266

    
267
API changes
268
~~~~~~~~~~~
269
See :doc:`release/api_1.5`
270

    
271

    
272
Bug fixes
273
~~~~~~~~~
274
 - Fix edge handling for multigraphs in networkx/graphviz interface
275
   (ticket https://networkx.lanl.gov/trac/ticket/507)
276
 - Update networkx/pydot interface for new versions of pydot
277
   (ticket https://networkx.lanl.gov/trac/ticket/506)
278
   (ticket https://networkx.lanl.gov/trac/ticket/535)
279
 - Fix negative cycle handling in Bellman-Ford
280
   (ticket https://networkx.lanl.gov/trac/ticket/502)
281
 - Write more attributes with GraphML and GML formats
282
   (ticket https://networkx.lanl.gov/trac/ticket/480)
283
 - Handle white space better in read_edgelist
284
   (ticket https://networkx.lanl.gov/trac/ticket/513)
285
 - Better parsing of Pajek format files
286
   (ticket https://networkx.lanl.gov/trac/ticket/524)
287
   (ticket https://networkx.lanl.gov/trac/ticket/542)
288
 - Isolates functions work with directed graphs
289
   (ticket https://networkx.lanl.gov/trac/ticket/526)
290
 - Faster conversion to numpy matrices
291
   (ticket https://networkx.lanl.gov/trac/ticket/529)
292
 - Add graph['name'] and use properties to access Graph.name
293
   (ticket https://networkx.lanl.gov/trac/ticket/544)
294
 - Topological sort confused None and 0
295
   (ticket https://networkx.lanl.gov/trac/ticket/546)
296
 - GEXF writer mishandled weight=0
297
   (ticket https://networkx.lanl.gov/trac/ticket/550)
298
 - Speedup in SciPy version of PageRank
299
   (ticket https://networkx.lanl.gov/trac/ticket/554)
300
 - Numpy PageRank node order incorrect + speedups
301
   (ticket https://networkx.lanl.gov/trac/ticket/555)
302

    
303
NetworkX 1.4
304
------------
305

    
306
Release date:  23 January 2011
307

    
308
New features
309
~~~~~~~~~~~~
310
 - :mod:`k-shell,k-crust,k-corona <networkx.algorithms.core>`
311
 - :mod:`read GraphML files from yEd <networkx.readwrite.graphml>`
312
 - :mod:`read/write GEXF format files <networkx.readwrite.gexf>`
313
 - :mod:`find cycles in a directed graph <networkx.algorithms.cycles>`
314
 - :mod:`DFS <networkx.algorithms.traversal.depth_first_search>` and :mod:`BFS <networkx.algorithms.traversal.breadth_first_search>` algorithms
315
 - :mod:`chordal graph functions <networkx.algorithms.chordal.chordal_alg>`
316
 - :mod:`Prim's algorithm for minimum spanning tree <networkx.algorithms.mst>`
317
 - :mod:`r-ary tree generator <networkx.generators.classic>`
318
 - :mod:`rich club coefficient <networkx.algorithms.richclub>`
319
 - NumPy matrix version of :mod:`Floyd's algorithm for all-pairs shortest path  <networkx.algorithms.shortest_paths.dense>`
320
 - :mod:`read GIS shapefiles <networkx.readwrite.nx_shp>`
321
 - :mod:`functions to get and set node and edge attributes <networkx.classes.function>`
322
 - and more, see  https://networkx.lanl.gov/trac/query?status=closed&group=milestone&milestone=networkx-1.4
323

    
324
API changes
325
~~~~~~~~~~~
326
 - :mod:`gnp_random_graph() <networkx.generators.random_graphs>` now takes a 
327
   directed=True|False keyword instead of create_using 
328
 - :mod:`gnm_random_graph() <networkx.generators.random_graphs>` now takes a 
329
   directed=True|False keyword instead of create_using 
330

    
331
Bug fixes
332
~~~~~~~~~
333
  - see  https://networkx.lanl.gov/trac/query?status=closed&group=milestone&milestone=networkx-1.4
334

    
335

    
336

    
337
NetworkX 1.3
338
------------
339

    
340
Release date:  28 August 2010
341

    
342
See: https://networkx.lanl.gov/trac/timeline
343

    
344
New features
345
~~~~~~~~~~~~
346
 - Works with Python versions 2.6, 2.7, 3.1, and 3.2 (but not 2.4 and 2.5).
347
 - :mod:`Minimum cost flow algorithms <networkx.algorithms.flow>`
348
 - :mod:`Bellman-Ford shortest paths <networkx.algorithms.shortest_paths.weighted>`
349
 - :mod:`GraphML reader and writer <networkx.readwrite.graphml>` 
350
 - :mod:`More exception/error types <networkx.exception>` 
351
 - Updated many tests to unittest style.  Run with: "import networkx; networkx.test()" (requires nose testing package)
352
 - and more, see  https://networkx.lanl.gov/trac/query?status=closed&group=milestone&milestone=networkx-1.3
353

    
354
API changes
355
~~~~~~~~~~~
356
 - :mod:`minimum_spanning_tree() now returns a NetworkX Graph (a tree or forest) <networkx.algorithms.mst>` 
357

    
358
Bug fixes
359
~~~~~~~~~
360
  - see  https://networkx.lanl.gov/trac/query?status=closed&group=milestone&milestone=networkx-1.3
361

    
362

    
363
NetworkX 1.2
364
------------
365

    
366
Release date:  28 July 2010
367

    
368
See: https://networkx.lanl.gov/trac/timeline
369

    
370
New features
371
~~~~~~~~~~~~
372
 - :mod:`Ford-Fulkerson max flow and min cut <networkx.algorithms.flow>` 
373
 - :mod:`Closeness vitality <networkx.algorithms.vitality>` 
374
 - :mod:`Eulerian circuits <networkx.algorithms.euler>` 
375
 - :mod:`Functions for isolates <networkx.algorithms.isolates>` 
376
 - :mod:`Simpler s_max generator <networkx.generators.degree_seq>` 
377
 - Compatible with IronPython-2.6
378
 - Improved testing functionality: import networkx; networkx.test() tests
379
   entire package and skips tests with missing optional packages
380
 - All tests work with Python-2.4
381
 - and more, see  https://networkx.lanl.gov/trac/query?status=closed&group=milestone&milestone=networkx-1.2
382

    
383

    
384
NetworkX 1.1
385
------------
386

    
387
Release date:  21 April 2010
388

    
389
See: https://networkx.lanl.gov/trac/timeline
390

    
391
New features
392
~~~~~~~~~~~~
393
 - :mod:`Algorithm for finding a basis for graph cycles <networkx.algorithms.cycles>` 
394
 - :mod:`Blockmodeling <networkx.algorithms.block>` 
395
 - :mod:`Assortativity and mixing matrices <networkx.algorithms.mixing>` 
396
 - :mod:`in-degree and out-degree centrality <networkx.algorithms.centrality.degree>` 
397
 - :mod:`Attracting components <networkx.algorithms.components.attracting>` 
398
   and  :mod:`condensation <networkx.algorithms.components.strongly_connected>`.
399
 - :mod:`Weakly connected components <networkx.algorithms.components.weakly_connected>`
400
 - :mod:`Simpler interface to shortest path algorithms <networkx.algorithms.shortest_paths.generic>` 
401
 - :mod:`Edgelist format to read and write data with attributes <networkx.readwrite.edgelist>` 
402
 - :mod:`Attribute matrices <networkx.linalg.spectrum>` 
403
 - :mod:`GML reader for nested attributes <networkx.readwrite.gml>` 
404
 - Current-flow (random walk) 
405
   :mod:`betweenness <networkx.algorithms.centrality.current_flow_betweenness>` 
406
   and 
407
   :mod:`closeness <networkx.algorithms.centrality.current_flow_closeness>`. 
408
 - :mod:`Directed configuration model <networkx.generators.degree_seq>`,
409
   and  :mod:`directed random graph model <networkx.generators.random_graphs>`.
410
 - Improved documentation of drawing, shortest paths, and other algorithms
411
 - Many more tests, can be run with "import networkx; networkx.test()"
412
 - and much more, see  https://networkx.lanl.gov/trac/query?status=closed&group=milestone&milestone=networkx-1.1
413

    
414
API changes
415
~~~~~~~~~~~
416
Returning dictionaries
417
**********************
418
Several of the algorithms and the degree() method now return dictionaries
419
keyed by node instead of lists.  In some cases there was a with_labels
420
keyword which is no longer necessary.  For example,
421
 
422
>>> G=nx.Graph()
423
>>> G.add_edge('a','b')
424
>>> G.degree()  # doctest: +SKIP
425
{'a': 1, 'b': 1}
426
 
427
Asking for the degree of a single node still returns a single number
428
 
429
>>> G.degree('a')
430
1
431

    
432
The following now return dictionaries by default (instead of lists)
433
and the with_labels keyword has been removed:
434
 
435
 - :meth:`Graph.degree`, 
436
   :meth:`MultiGraph.degree`,
437
   :meth:`DiGraph.degree`, 
438
   :meth:`DiGraph.in_degree`, 
439
   :meth:`DiGraph.out_degree`,
440
   :meth:`MultiDiGraph.degree`, 
441
   :meth:`MultiDiGraph.in_degree`, 
442
   :meth:`MultiDiGraph.out_degree`.
443
 - :func:`clustering`, 
444
   :func:`triangles`
445
 - :func:`node_clique_number`, 
446
   :func:`number_of_cliques`, 
447
   :func:`cliques_containing_node`
448
 - :func:`eccentricity`
449
   
450

    
451
The following now return dictionaries by default (instead of lists)
452

    
453
 - :func:`pagerank`
454
 - :func:`hits`
455

    
456

    
457
Adding nodes
458
************
459
``add_nodes_from`` now accepts ``(node, attrdict)`` two-tuples
460

    
461
>>> G = nx.Graph()
462
>>> G.add_nodes_from([(1, {'color': 'red'})])
463

    
464
Examples
465
~~~~~~~~
466
 - `Mayvi2 drawing <https://networkx.github.io/documentation/latest/auto_examples/3d_drawing/mayavi2_spring.html>`_
467
 - `Blockmodel <https://networkx.github.io/documentation/latest/auto_examples/algorithms/plot_blockmodel.html>`_
468
 - `Sampson's monastery <https://networkx.github.io/documentation/latest/auto_examples/drawing/plot_sampson.html>`_
469
 - `Ego graph <https://networkx.github.io/documentation/latest/auto_examples/drawing/plot_ego_graph.html>`_
470

    
471
Bug fixes
472
~~~~~~~~~
473
 - Support graph attributes with union, intersection, and other graph operations
474
 - Improve subgraph speed (and related algorithms such as 
475
   connected_components_subgraphs())
476
 - Handle multigraphs in more operators (e.g. union)   
477
 - Handle double-quoted labels with pydot
478
 - Normalize betweenness_centrality for undirected graphs correctly 
479
 - Normalize eigenvector_centrality by l2 norm
480
 - :func:`read_gml` now returns multigraphs
481

    
482
NetworkX 1.0.1
483
--------------
484

    
485
Release date:  11 Jan 2010
486

    
487
See: https://networkx.lanl.gov/trac/timeline
488

    
489
Bug fix release for missing setup.py in manifest.
490

    
491

    
492
NetworkX 1.0
493
------------
494

    
495
Release date:  8 Jan 2010
496

    
497
See: https://networkx.lanl.gov/trac/timeline
498

    
499
New features
500
~~~~~~~~~~~~
501
This release has significant changes to parts of the graph API
502
to allow graph, node, and edge attributes.
503
See http://networkx.lanl.gov/reference/api_changes.html
504

    
505
 - Update Graph, DiGraph, and MultiGraph classes to allow attributes.
506
 - Default edge data is now an empty dictionary (was the integer 1)   
507
 - Difference and intersection operators
508
 - Average shortest path
509
 - A* (A-Star) algorithm
510
 - PageRank, HITS, and eigenvector centrality
511
 - Read Pajek files
512
 - Line graphs
513
 - Minimum spanning tree (Kruskal's algorithm)
514
 - Dense and sparse Fruchterman-Reingold layout
515
 - Random clustered graph generator
516
 - Directed scale-free graph generator
517
 - Faster random regular graph generator
518
 - Improved edge color and label drawing with Matplotlib
519
 - and much more, see  https://networkx.lanl.gov/trac/query?status=closed&group=milestone&milestone=networkx-1.0
520

    
521
Examples
522
~~~~~~~~
523
 - Update to work with networkx-1.0 API
524
 - Graph subclass example
525

    
526

    
527
NetworkX 0.99
528
-------------
529

    
530
Release date:  18 November 2008
531

    
532
See: https://networkx.lanl.gov/trac/timeline
533

    
534
New features
535
~~~~~~~~~~~~
536
This release has significant changes to parts of the graph API.
537
See http://networkx.lanl.gov/reference/api_changes.html
538

    
539
 - Update Graph and DiGraph classes to use weighted graphs as default
540
   Change in API for performance and code simplicity.
541
 - New MultiGraph and MultiDiGraph classes (replace XGraph and XDiGraph)
542
 - Update to use Sphinx documentation system http://networkx.lanl.gov/
543
 - Developer site at https://networkx.lanl.gov/trac/
544
 - Experimental LabeledGraph and LabeledDiGraph
545
 - Moved package and file layout to subdirectories.
546

    
547
Bug fixes
548
~~~~~~~~~
549
 - handle root= option to draw_graphviz correctly 
550

    
551
Examples
552
~~~~~~~~
553
 - Update to work with networkx-0.99 API
554
 - Drawing examples now use matplotlib.pyplot interface
555
 - Improved drawings in many examples
556
 - New examples - see http://networkx.lanl.gov/examples/
557

    
558

    
559
NetworkX 0.37
560
---------------
561

    
562
Release date: 17 August 2008
563

    
564
See: https://networkx.lanl.gov/trac/timeline
565

    
566
NetworkX now requires Python 2.4 or later for full functionality.
567

    
568
New features
569
~~~~~~~~~~~~
570
 - Edge coloring and node line widths with Matplotlib drawings
571
 - Update pydot functions to work with pydot-1.0.2
572
 - Maximum-weight matching algorithm
573
 - Ubigraph interface for 3D OpenGL layout and drawing
574
 - Pajek graph file format reader and writer
575
 - p2g graph file format reader and writer
576
 - Secondary sort in topological sort
577

    
578
Bug fixes
579
~~~~~~~~~
580
 - Better edge data handling with GML writer 
581
 - Edge betweenness fix for XGraph with default data of None
582
 - Handle Matplotlib version strings (allow "pre")
583
 - Interface to PyGraphviz (to_agraph()) now handles parallel edges
584
 - Fix bug in copy from XGraph to XGraph with multiedges
585
 - Use SciPy sparse lil matrix format instead of coo format 
586
 - Clear up ambiguous cases for Barabasi-Albert model
587
 - Better care of color maps with Matplotlib when drawing colored nodes
588
   and edges 
589
 - Fix error handling in layout.py
590

    
591
Examples
592
~~~~~~~~
593
 - Ubigraph examples showing 3D drawing 
594

    
595

    
596
NetworkX 0.36
597
---------------
598

    
599
Release date: 13 January 2008
600

    
601
See: https://networkx.lanl.gov/trac/timeline
602

    
603

    
604
New features
605
~~~~~~~~~~~~
606
  - GML format graph reader, tests, and example (football.py)	
607
  - edge_betweenness() and load_betweenness()
608

    
609
Bug fixes
610
~~~~~~~~~
611
  - remove obsolete parts of pygraphviz interface 
612
  - improve handling of Matplotlib version strings
613
  - write_dot() now writes parallel edges and self loops
614
  - is_bipartite() and bipartite_color() fixes 
615
  - configuration model speedup using random.shuffle()
616
  - convert with specified nodelist now works correctly
617
  - vf2 isomorphism checker updates
618

    
619
NetworkX 0.35.1
620
---------------
621

    
622
Release date: 27 July 2007
623

    
624
See: https://networkx.lanl.gov/trac/timeline
625

    
626
Small update to fix import readwrite problem and maintain Python2.3
627
compatibility.
628

    
629

    
630
NetworkX 0.35
631
-------------
632

    
633
Release date: 22 July 2007
634

    
635
See: https://networkx.lanl.gov/trac/timeline
636

    
637
New features
638
~~~~~~~~~~~~
639
  - algorithms for strongly connected components.
640
  - Brandes betweenness centrality algorithm (weighted and unweighted versions) 
641
  - closeness centrality for weighted graphs
642
  - dfs_preorder, dfs_postorder, dfs_tree, dfs_successor, dfs_predecessor
643
  - readers for GraphML, LEDA, sparse6, and graph6 formats.
644
  - allow arguments in graphviz_layout to be passed directly to graphviz
645

    
646
Bug fixes
647
~~~~~~~~~
648
  - more detailed installation instructions
649
  - replaced dfs_preorder,dfs_postorder (see search.py)
650
  - allow initial node positions in spectral_layout
651
  - report no error on attempting to draw empty graph
652
  - report errors correctly when using tuples as nodes #114
653
  - handle conversions from incomplete dict-of-dict data
654

    
655
NetworkX 0.34
656
-------------
657

    
658
Release date: 12 April 2007
659

    
660
See: https://networkx.lanl.gov/trac/timeline
661

    
662
New features
663
~~~~~~~~~~~~
664
  - benchmarks for graph classes	
665
  - Brandes betweenness centrality algorithm
666
  - Dijkstra predecessor and distance algorithm
667
  - xslt to convert DIA graphs to NetworkX
668
  - number_of_edges(u,v) counts edges between nodes u and v
669
  - run tests with python setup_egg.py test (needs setuptools)
670
    else use python -c "import networkx; networkx.test()"
671
  - is_isomorphic() that uses vf2 algorithm
672

    
673
Bug fixes
674
~~~~~~~~~
675
  - speedups of neighbors() 	
676
  - simplified Dijkstra's algorithm code
677
  - better exception handling for shortest paths   
678
  - get_edge(u,v) returns None (instead of exception) if no edge u-v
679
  - floyd_warshall_array fixes for negative weights
680
  - bad G467, docs, and unittest fixes for graph atlas
681
  - don't put nans in numpy or scipy sparse adjacency matrix
682
  - handle get_edge() exception (return None if no edge)
683
  - remove extra kwds arguments in many places
684
  - no multi counting edges in conversion to dict of lists for multigraphs
685
  - allow passing tuple to get_edge()
686
  - bad parameter order in node/edge betweenness 
687
  - edge betweenness doesn't fail with XGraph 
688
  - don't throw exceptions for nodes not in graph (silently ignore instead)
689
    in edges_* and degree_*
690

    
691
NetworkX 0.33
692
-------------
693

    
694
Release date: 27 November 2006
695

    
696
See: https://networkx.lanl.gov/trac/timeline
697

    
698
New features
699
~~~~~~~~~~~~
700
  - draw edges with specified colormap
701
  - more efficient version of Floyd's algorithm for all pairs shortest path
702
  - use numpy only, Numeric is deprecated
703
  - include tests in source package (networkx/tests)
704
  - include documentation in source package (doc)
705
  - tests can now be run with
706
     >>> import networkx
707
     >>> networkx.test()    
708

    
709
Bug fixes
710
~~~~~~~~~
711
  - read_gpickle now works correctly with Windows
712
  - refactored large modules into smaller code files
713
  - degree(nbunch) now returns degrees in same order as nbunch 
714
  - degree() now works for multiedges=True
715
  - update node_boundary and edge_boundary for efficiency
716
  - edited documentation for graph classes, now mostly in info.py
717

    
718
Examples
719
~~~~~~~~
720
  - Draw edges with colormap
721

    
722

    
723

    
724
NetworkX 0.32
725
-------------
726

    
727
Release date: 29 September 2006
728

    
729
See: https://networkx.lanl.gov/trac/timeline
730

    
731
New features
732
~~~~~~~~~~~~
733
  - Update to work with numpy-1.0x
734
  - Make egg usage optional: use python setup_egg.py bdist_egg to build egg
735
  - Generators and functions for bipartite graphs
736
  - Experimental classes for trees and forests
737
  - Support for new pygraphviz update (in nx_agraph.py) , see
738
    http://networkx.lanl.gov/pygraphviz/ for pygraphviz details 
739

    
740
Bug fixes
741
~~~~~~~~~
742
  - Handle special cases correctly in triangles function
743
  - Typos in documentation  
744
  - Handle special cases in shortest_path and shortest_path_length,
745
    allow cutoff parameter for maximum depth to search
746
  - Update examples: erdos_renyi.py, miles.py, roget,py, eigenvalues.py
747

    
748

    
749
Examples
750
~~~~~~~~
751
  - Expected degree sequence
752
  - New pygraphviz interface
753

    
754
NetworkX 0.31
755
-------------
756

    
757
Release date: 20 July 2006
758

    
759
See: https://networkx.lanl.gov/trac/timeline
760

    
761
New features
762
~~~~~~~~~~~~
763
   - arbitrary node relabeling (use relabel_nodes)
764
   - conversion of NetworkX graphs to/from Python dict/list types,
765
     numpy matrix or array types, and scipy_sparse_matrix types
766
   - generator for random graphs with given expected degree sequence
767

    
768
Bug fixes
769
~~~~~~~~~
770
   - Allow drawing graphs with no edges using pylab
771
   - Use faster heapq in dijkstra 
772
   - Don't complain if X windows is not available
773

    
774
Examples
775
~~~~~~~~
776
   - update drawing examples
777

    
778

    
779
NetworkX 0.30
780
-------------
781

    
782

    
783
Release date: 23 June 2006
784

    
785
See: https://networkx.lanl.gov/trac/timeline
786

    
787
New features
788
~~~~~~~~~~~~
789
   - update to work with Python 2.5 
790
   - bidirectional version of shortest_path and Dijkstra 
791
   - single_source_shortest_path and all_pairs_shortest_path
792
   - s-metric and experimental code to generate  maximal s-metric graph 
793
   - double_edge_swap and connected_double_edge_swap
794
   - Floyd's algorithm for all pairs shortest path
795
   - read and write unicode graph data to text files
796
   - read and write YAML format text files, http://yaml.org
797

    
798
Bug fixes
799
~~~~~~~~~
800
   - speed improvements (faster version of subgraph, is_connected)
801
   - added cumulative distribution and modified discrete distribution utilities
802
   - report error if DiGraphs are sent to connected_components routines
803
   - removed with_labels keywords for many functions where it was
804
     causing confusion
805
   - function name changes in shortest_path routines
806
   - saner internal handling of nbunch (node bunches), raise an
807
     exception if an nbunch isn't a node or iterable
808
   - better keyword handling in io.py allows reading multiple graphs 
809
   - don't mix Numeric and numpy arrays in graph layouts and drawing
810
   - avoid automatically rescaling matplotlib axes when redrawing graph layout
811

    
812
Examples
813
~~~~~~~~
814
   - unicode node labels 
815

    
816

    
817
NetworkX 0.29
818
-------------
819

    
820
Release date: 28 April 2006
821

    
822
See: https://networkx.lanl.gov/trac/timeline
823

    
824
New features
825
~~~~~~~~~~~~
826
   - Algorithms for betweenness, eigenvalues, eigenvectors, and
827
     spectral projection for threshold graphs  
828
   - Use numpy when available
829
   - dense_gnm_random_graph generator
830
   - Generators for some directed graphs: GN, GNR, and GNC by Krapivsky
831
     and Redner 
832
   - Grid graph generators now label by index tuples.  Helper
833
     functions for manipulating labels.
834
   - relabel_nodes_with_function 
835

    
836

    
837
Bug fixes
838
~~~~~~~~~
839
   - Betweenness centrality now correctly uses Brandes definition and
840
     has normalization option outside main loop
841
   - Empty graph now labeled as empty_graph(n)
842
   - shortest_path_length used python2.4 generator feature
843
   - degree_sequence_tree off by one error caused nonconsecutive labeling
844
   - periodic_grid_2d_graph removed in favor of grid_2d_graph with
845
     periodic=True
846

    
847

    
848
NetworkX 0.28
849
-------------
850

    
851
Release date: 13 March 2006
852

    
853
See: https://networkx.lanl.gov/trac/timeline
854

    
855
New features
856
~~~~~~~~~~~~
857
  - Option to construct Laplacian with rows and columns in specified order
858
  - Option in convert_node_labels_to_integers to use sorted order   
859
  - predecessor(G,n) function that returns dictionary of
860
    nodes with predecessors from breadth-first search of G 
861
    starting at node n.
862
    https://networkx.lanl.gov/trac/ticket/26
863

    
864
Examples
865
~~~~~~~~
866
  - Formation of giant component in binomial_graph:
867
  - Chess masters matches:
868
  - Gallery https://networkx.github.io/documentation/latest/auto_examples/index.html
869
  
870
Bug fixes
871
~~~~~~~~~
872
  - Adjusted names for random graphs.
873
     + erdos_renyi_graph=binomial_graph=gnp_graph: n nodes with 
874
       edge probability p
875
     + gnm_graph: n nodes and m edges
876
     + fast_gnp_random_graph: gnp for sparse graphs (small p)   
877
  - Documentation contains correct spelling of Barabási, Bollobás,
878
    Erdős, and Rényi in UTF-8 encoding
879
  - Increased speed of connected_components and related functions
880
    by using faster BFS algorithm in networkx.paths
881
    https://networkx.lanl.gov/trac/ticket/27     
882
  - XGraph and XDiGraph with multiedges=True produced error on delete_edge
883
  - Cleaned up docstring errors
884
  - Normalize names of some graphs to produce strings that represent
885
    calling sequence
886
  
887
NetworkX 0.27
888
-------------
889

    
890
Release date: 5 February 2006
891

    
892
See: https://networkx.lanl.gov/trac/timeline
893

    
894
New features
895
~~~~~~~~~~~~
896
  - sparse_binomial_graph: faster graph generator for sparse random graphs
897
  - read/write routines in io.py now handle XGraph() type and
898
    gzip and bzip2 files
899
  - optional mapping of type for read/write routine to allow
900
    on-the-fly conversion of node and edge datatype on read
901
  - Substantial changes related to digraphs and definitions of
902
    neighbors() and edges().  For digraphs edges=out_edges.
903
    Neighbors now returns a list of neighboring nodes with
904
    possible duplicates for graphs with parallel edges
905
    See https://networkx.lanl.gov/trac/ticket/24
906
  - Addition of out_edges, in_edges and corresponding out_neighbors
907
    and in_neighbors for digraphs.  For digraphs edges=out_edges.
908
   
909
Examples
910
~~~~~~~~
911
  - Minard's data for Napoleon's Russian campaign
912

    
913
Bug fixes
914
~~~~~~~~~
915
   - XGraph(multiedges=True) returns a copy of the list of edges
916
     for get_edge() 
917

    
918
NetworkX 0.26
919
-------------
920

    
921
Release date: 6 January 2006
922

    
923
New features
924
~~~~~~~~~~~~
925
  - Simpler interface to drawing with pylab
926
  - G.info(node=None) function returns short information about graph
927
    or node
928
  - adj_matrix now takes optional nodelist to force ordering of
929
    rows/columns in matrix
930
  - optional pygraphviz and pydot interface to graphviz is now callable as
931
    "graphviz" with pygraphviz preferred.  Use draw_graphviz(G).
932
   
933
Examples
934
~~~~~~~~
935
  - Several new examples showing how draw to graphs with various
936
    properties of nodes, edges, and labels
937

    
938
Bug fixes
939
~~~~~~~~~
940
   - Default data type for all graphs is now None (was the integer 1)
941
   - add_nodes_from now won't delete edges if nodes added already exist
942
   - Added missing names to generated graphs
943
   - Indexes for nodes in graphs start at zero by default (was 1)
944

    
945
NetworkX 0.25
946
-------------
947

    
948
Release date: 5 December 2005
949

    
950
New features
951
~~~~~~~~~~~~
952
  - Uses setuptools for installation http://peak.telecommunity.com/DevCenter/setuptools
953
  - Improved testing infrastructure, can now run python setup.py test
954
  - Added interface to draw graphs with pygraphviz
955
    https://networkx.lanl.gov/pygraphviz/
956
  - is_directed() function call
957

    
958
Examples
959
~~~~~~~~
960
  - Email example shows how to use XDiGraph with Python objects as
961
    edge data
962

    
963

    
964
Documentation
965
~~~~~~~~~~~~~
966
  - Reformat menu, minor changes to Readme, better stylesheet
967

    
968
Bug fixes
969
~~~~~~~~~
970
   - use create_using= instead of result= keywords for graph types
971
     in all cases
972
   - missing weights for degree 0 and 1 nodes in clustering     
973
   - configuration model now uses XGraph, returns graph with identical
974
     degree sequence as input sequence	   
975
   - fixed Dijkstra priority queue
976
   - fixed non-recursive toposort and is_directed_acyclic graph
977

    
978
NetworkX 0.24
979
-------------
980

    
981
Release date: 20 August 2005
982

    
983
Bug fixes
984
~~~~~~~~~
985
   - Update of Dijkstra algorithm code
986
   - dfs_successor now calls proper search method
987
   - Changed to list comprehension in DiGraph.reverse() for python2.3
988
     compatibility
989
   - Barabasi-Albert graph generator fixed
990
   - Attempt to add self loop should add node even if parallel edges not 
991
     allowed
992

    
993
NetworkX 0.23
994
-------------
995

    
996
Release date: 14 July 2005
997

    
998
The NetworkX web locations have changed:
999

    
1000
http://networkx.lanl.gov/     - main documentation site
1001
http://networkx.lanl.gov/svn/  - subversion source code repository
1002
https://networkx.lanl.gov/trac/ - bug tracking and info
1003

    
1004

    
1005
Important Change
1006
~~~~~~~~~~~~~~~~
1007
The naming conventions in NetworkX have changed.
1008
The package name "NX" is now "networkx".
1009

    
1010
The suggested ways to import the NetworkX package are
1011

    
1012
 - import networkx
1013
 - import networkx as NX
1014
 - from networkx import *
1015

    
1016
New features
1017
~~~~~~~~~~~~
1018
  - DiGraph reverse
1019
  - Graph generators
1020
     + watts_strogatz_graph now does rewiring method
1021
     + old watts_strogatz_graph->newman_watts_strogatz_graph
1022

    
1023
Examples
1024
~~~~~~~~
1025

    
1026
Documentation
1027
~~~~~~~~~~~~~
1028
  - Changed to reflect NX-networkx change
1029
  - main site is now https://networkx.lanl.gov/
1030

    
1031
Bug fixes
1032
~~~~~~~~~
1033
   - Fixed logic in io.py for reading DiGraphs.  
1034
   - Path based centrality measures (betweenness, closeness)
1035
     modified so they work on graphs that are not connected and
1036
     produce the same result as if each connected component were
1037
     considered separately.
1038

    
1039
NetworkX 0.22
1040
-------------
1041

    
1042
Release date: 17 June 2005
1043

    
1044
New features
1045
~~~~~~~~~~~~
1046
  - Topological sort, testing for directed acyclic graphs (DAGs)
1047
  - Dijkstra's algorithm for shortest paths in weighted graphs
1048
  - Multidimensional layout with dim=n for drawing
1049
  - 3d rendering demonstration with vtk
1050
  - Graph generators
1051
     + random_powerlaw_tree
1052
     + dorogovtsev_goltsev_mendes_graph
1053

    
1054
Examples
1055
~~~~~~~~
1056
  - Kevin Bacon movie actor graph: Examples/kevin_bacon.py
1057
  - Compute eigenvalues of graph Laplacian: Examples/eigenvalues.py
1058
  - Atlas of small graphs: Examples/atlas.py
1059
  
1060
Documentation
1061
~~~~~~~~~~~~~
1062
  - Rewrite of setup scripts to install documentation and
1063
    tests in documentation directory specified 
1064

    
1065
Bug fixes
1066
~~~~~~~~~
1067
   - Handle calls to edges() with non-node, non-iterable items.
1068
   - truncated_tetrahedral_graph was just plain wrong
1069
   - Speedup of betweenness_centrality code
1070
   - bfs_path_length now returns correct lengths 
1071
   - Catch error if target of search not in connected component of source
1072
   - Code cleanup to label internal functions with _name
1073
   - Changed import statement lines to always use "import NX" to
1074
     protect name-spaces   
1075
   - Other minor bug-fixes and testing added