News

About igraph releases and other things

C/igraph 0.10.11, the tenth bugfix release of the 0.10 series, has arrived. As usual, the source can be obtained from the GitHub releases page.

This release brings a large number of quality enhancements, including many bug fixes and performance improvements. Upgrading is highly recommended for all igraph users.

This will be one of the last—if not the last—releases of the 0.10 series, with igraph 1.0 planned for release early summer this year. Pre-releases will be made available for feedback from the community.

A summary of changes in 0.10.11 is below.

More →


C/igraph 0.10.10, the ninth bugfix release of the 0.10 series, has arrived.

The source can be obtained from the GitHub releases page.

This is primarily a maintenance release with bug fixes, in particular a caching issue in igraph_is_forest().

Read on for more details about the changes in version 0.10.10.

More →


C/igraph 0.10.9, the eighth bugfix release of the 0.10 series, has arrived.

The source can be obtained from the GitHub releases page.

This is primarily a maintenance release with bug fixes, but it also adds functions to check whether a graph is biconnected and to construct a bipartite graph from a bidegree sequence.

Read on for more details about the changes in version 0.10.9.

More →


python-igraph 0.11.3, the third bugfix release of the 0.11 series, has arrived. The primary reason for this release is to update the C core of igraph to 0.10.8, which brings quite a few bugfixes to the Python interface. This release also fixes a bug in the Matplotlib backend with curved undirected edges. Please refer to the changelog for more details.

The preferred way of installing the Python interface is via pip; typing pip install igraph should install a pre-compiled Python wheel on most supported platforms (Windows, Linux and macOS). The pre-compiled wheels and the source code are also available from the Python Package Index page.

Read on for more details about the changes in version 0.11.3, including those that became possible by updating the C core to 0.10.8.

More →


C/igraph 0.10.8, the seventh bugfix release of the 0.10 series, has arrived.

The source can be obtained from the GitHub releases page.

This is primarily a maintenance release with bug fixes, but it also adds functions to compute the joint degree matrix, the joint degree distribution and the degree correlation function of graphs as well as a generalized joint distribution of arbitrary vertex categories at the endpoints of edges.

Read on for more details about the changes in version 0.10.8.

More →


python-igraph 0.10.8, the seventh bugfix release of the 0.10 series, has arrived. This release updates the C core of igraph to 0.10.7, and adds support for weighted eccentricity and radius calculations. There are also some minor additions and improvements; please refer to the changelog for more details.

The preferred way of installing the Python interface is via pip; typing pip install igraph should install a pre-compiled Python wheel on most supported platforms (Windows, Linux and macOS). The pre-compiled wheels and the source code are also available from the Python Package Index page.


C/igraph 0.10.7, the sixth bugfix release of the 0.10 series, has arrived.

The source can be obtained from the GitHub releases page.

This is primarily a maintenance release with bug fixes, but it also adds weighted variants of igraph_radius() and igraph_graph_center() as experimental functions. Their API will be finalized in version 0.11.0 (although we do not anticipate any changes compared to the current version).

Read on for more details about the changes in version 0.10.7.

More →


C/igraph 0.10.6, the fifth bugfix release of the 0.10 series, has arrived.

The source can be obtained from the GitHub releases page.

This is a maintenance release bringing bug fixes only. In particular, we fixed convergence failures in igraph_community_voronoi() in certain cases on certain platforms, and ensured compatibility with libxml2 2.11.

Read on for more details about the changes in version 0.10.6.

More →


C/igraph 0.10.5, the fourth bugfix release of the 0.10 series, has arrived.

The source can be obtained from the GitHub releases page.

This is a maintenance release bringing bug fixes, performance improvements, as well as new experimental features.

Read on for more details about the changes in version 0.10.5.

More →


C/igraph 0.10.4, the third bugfix release of the 0.10 series, has arrived.

The source can be obtained from the GitHub releases page.

This release adds support for finding a shortest path with the A* algorithm and for finding a greedy vertex coloring with the DSatur heuristics. It also adds interruption support for the Bellman-Ford and Floyd-Warshall shortest path finder algorithms.

Read on for more details about the changes in version 0.10.4.

More →


C/igraph 0.10.3, the third bugfix release of the 0.10 series, has arrived.

The source can be obtained from the GitHub releases page.

This release adds support for generating triangular and hexagonal lattices, constructing trees from a “parent” vector, and retrieving the IDs of the edges in the induced subgraph of a vertex set. It also refines the experimental API of the UMAP layout function, fixes a few bugs and improves the documentation.

Read on for more details about the changes in version 0.10.3.

More →


Just in time before the Christmas holidays, IGraph/M 0.6.5 is now released. This version (along with the unreleased 0.6.4) brings greatly improved performance when computing proximity graphs, new convenience functions, as well as robustness improvements. As usual, you can conveniently upgrade by running the installer script, using the following command:

Get["https://raw.githubusercontent.com/szhorvat/IGraphM/master/IGInstaller.m"]

0.6.5

Other:

  • Improved error checking and added more internal consistency checks to help debug issues with recent Mathematica versions.

0.6.4

Added:

  • IGBetaWeightedGabrielGraph for computing the β value where each edge of a lune-based β-skeleton would disappear (experimental function).
  • IGModularityMatrix gives the modularity matrix of a network.
  • IGCanonicalLabeledGraph creates a canonical representation of a labeled graph without changing vertex names. Graphs which are considered equivalent by IGSameGraphQ have the same canonical representation. It is intended for removing duplicate graphs using DeleteDuplicatesBy.
  • IGCanonicalEdgeList creates a canonical representation of an edge list, in a manner similar to IGCanonicalLabeledGraph.

Other:

  • Documentation improvements
  • Significant performance improvements for the calculation of lune and circle based β skeletons when using large β values.

python-igraph 0.10.2, the second bugfix release of the 0.10 series, has arrived. Thise release updates the C core of igraph to 0.10.2, adds support for Python 3.11 and fixes a crash and a reference leak in earlier versions of the library. There are also some minor additions and improvements; please refer to the changelog for more details.

The preferred way of installing the Python interface is via pip; typing pip install igraph should install a pre-compiled Python wheel on most supported platforms (Windows, Linux and macOS). The pre-compiled wheels and the source code are also available from the Python Package Index page.

The documentation of the project has also been moved to Read The Docs.


C/igraph 0.10.2, the second bugfix release of the 0.10 series, has arrived.

The source can be obtained from the GitHub releases page.

This release mostly includes bug fixes and documentation improvements, but it also adds a few new functions (shortest paths with cutoff, Floyd-Warshall algorithm and Voronoi partitioning) with an experimental API that might still change in upcoming releases. Experimental functions are clearly marked both here and in the documentation. The API of these functions will be finalized in 0.11.0, after which no further changes are expected.

Read on for more details about the changes in version 0.10.2.

More →


A new maintenance release of IGraph/M is now available. This is a bugfix release recommended for all users. As usual, the simplest way to upgrade is to evaluate the following, and then restart Mathematica:

Get["https://raw.githubusercontent.com/szhorvat/IGraphM/master/IGInstaller.m"]

IGraph/M 0.6.3

Changed:

  • When an invalid vertex is passed to IGraph/M functions, now the message shown is IGraphM::invv instead of VertexIndex::inv.

Fixed:

  • In rare cases, vertex names that were lists of other vertex names in the same graph were misinterpreted. This affected only Mathematica 12.0 and later.
  • IGCommunitiesLeadingEigenvector is less likely to fail to converge now.
  • IGCommunitiesLeadingEigenvector now respects random seeds set in Mathematica. These affect only the random starting vector it uses internally, which can very rarely cause non-deterministic output.
  • IGBarabasiAlbertGame no longer accepts negative or zero exponents, as these were not handled correctly.
  • IGBridges is no longer prone to stack overflow when given very large graphs.

Other:

  • Performance improvements for IGGraphEditor.
  • Documentation improvements.

python-igraph 0.10.1, the first bugfix release of the 0.10 series, has arrived. (And we forgot to announce 0.10.0 separately, sorry). These releases update the C core of igraph to 0.10.0 and bring several improvements to the plotting functionality of the library, including an improved Matplotlib plotting backend and an experimental Plotly backend.

The preferred way of installing the Python interface is via pip; typing pip install igraph should install a pre-compiled Python wheel on most supported platforms (Windows, Linux and macOS). The pre-compiled wheels and the source code are also available from the Python Package Index page.

See the changelog on Github for relevant changes in 0.10.0 and 0.10.1:


C/igraph 0.10.0, the first release of the 0.10 series, has arrived.

The source can be obtained from the GitHub releases page.

This release focuses on infrastructural improvements, stability, and making the igraph interface more consistent, more predictable and easier to use. It contains many API-breaking changes and function renamings, in preparation for a future 1.0 release, at which point the API will become stable. Changes in this direction are likely to continue through a 0.11 release. It is recommended that you migrate your code from 0.9 to 0.10 soon, to make the eventual transition to 1.0 easier.

Read on for more details about the changes in version 0.10.0.

More →


C/igraph 0.9.10, the tenth bugfix release of the 0.9 series, has arrived.

The source can be obtained from the GitHub releases page.

This release includes bug fixes and documentation improvements, and it is likely to be the last patch release of the 0.9.x series. Version 0.10.0 will follow soon with lots of breaking changes as we clean up the API in preparation for a future 1.0 release.

If you have a project that currently relies on igraph 0.9, it is advised that you update the project to use 0.9.10 and then start adapting it as soon as possible to support 0.10.0 once it is released.

Read on for more details about the changes in version 0.9.9.

More →


igraph 0.10.0-rc.2, the second release candidate of igraph 0.10.0 is now available for download. We decided to go for a release candidate because there are lots of breaking changes in igraph 0.10.0 compared to previous versions, and we would like to gather some feedback from the community before going forward.

Since this version is a release candidate only, it is meant primarily for developers who are working on a project that depends on the igraph library and who want to be prepared in advance for the upcoming changes in igraph 0.10.0. There is no official tarball on the igraph.org homepage as the latest stable version is still 0.9.9 - you need to get the tarball from the Github releases page instead. Here is a direct link to the tarball – note that you will need to download the asset named igraph-0.10.0-rc.2.tar.gz as the link titled “Source code” is simply a snapshot of the Github repository.

For more details and a short description of breaking changes, please refer to the announcement in our Discourse group.


igraph 0.10.0-rc.1, the first release candidate of igraph 0.10.0 is now available for download. We decided to go for a release candidate because there are lots of breaking changes in igraph 0.10.0 compared to previous versions, and we would like to gather some feedback from the community before going forward.

Since this version is a release candidate only, it is meant primarily for developers who are working on a project that depends on the igraph library and who want to be prepared in advance for the upcoming changes in igraph 0.10.0. There is no official tarball on the igraph.org homepage as the latest stable version is still 0.9.9 - you need to get the tarball from the Github releases page instead. Here is a direct link to the tarball – note that you will need to download the asset named igraph-0.10.0-rc.1.tar.gz as the link titled “Source code” is simply a snapshot of the Github repository.

For more details and a short description of breaking changes, please refer to the announcement in our Discourse group.


IGraph/M 0.6.0, the Mathematica interface of igraph, is now out! This released is based on the 0.9 series of C/igraph, bringing significant robustness improvements, as well as new features. Some of the highlights are an experimental interactive graph editor, contributed by Kuba Podkalicki, and experimental support for progress reporting. Apple computers based on the ARM architecture (“Apple Silicon”) are now supported.

As always, you can update to the latest version by evaluating the following:

Get["https://raw.githubusercontent.com/szhorvat/IGraphM/master/IGInstaller.m"]

The earliest supported Mathematica version is now 11.0, or 12.2 on the Raspberry Pi.

Please report any issues you may find on GitHub or on our forum.

More →


R-igraph 1.3.2, the second bugfix release of the 1.3 series is now released – and it looks like we forgot to post an announcement about 1.3.1, so in the rest of this post we summarnize the changes in versions 1.3.1 and 1.3.2 as well.

As always, we tried to do our best not to cause breaking changes for users of igraph from R, but in case we have made unintentional mistakes, please report issues in the Github issue tracker.

More →


python-igraph 0.9.11, the ninth bugfix release of the 0.9 series, has arrived.

The preferred way of installing the Python interface is via pip; typing pip install igraph should install a pre-compiled Python wheel on most supported platforms (Windows, Linux and macOS). The pre-compiled wheels and the source code are also available from the Python Package Index page.

This is the first release that provides pre-compiled musllinux wheels for environments running Alpine Linux.

See the changelog on Github for relevant changes in 0.9.11:


C/igraph 0.9.9, the ninth bugfix release of the 0.9 series, has arrived.

The source can be obtained from the GitHub releases page.

This release includes bug fixes and documentation improvements, focusing mainly on community detection and visualization functions. Read on for more details.

More →


Our efforts to bring the R interface of igraph closer to the recent developments of the C core continues: we have released R-igraph 1.3.0, which updates the C core of igraph within the R interface to version 0.9.7, which is now only one patch version behind the mainline C core. The update fixes lots of bugs compared to the previous release and adds quite a few new functions.

Due to the underlying changes in the C core of igraph between the 0.8 series and 0.9.7, there are some cases when we needed to make extra efforts in the R interface to keep things compatible with previous releases. For instance, igraph 0.9.7 now interprets zero cutoff in the closeness, betweenness and edge betweenness centrality functions literally, while igraph 0.8 interpreted zero as “no cutoff”. The R interface keeps the old behaviour in such cases but prints a deprecation warning; the old behaviour will be gone in igraph 1.4.0 or 2.0.0, whichever comes first.

A patch release of R/igraph is coming soon in the next few days, which will hopefully (finally) catch up with the 0.9 branch of the C core. We aim to let R/igraph stabilize for a few weeks now while we work on further improvements in the C core.

Even though we tried to do our best not to cause breaking changes for users of igraph from R, we may have made unintentional mistakes, so please keep on reporting issues in the Github issue tracker.

More →


C/igraph 0.9.8, the eighth bugfix release of the 0.9 series, has arrived.

The source can be obtained from the GitHub releases page.

This release includes bug fixes and documentation improvements only. Read on for more details.

More →


C/igraph 0.9.7, the seventh bugfix release of the 0.9 series, has arrived.

The source can be obtained from the GitHub releases page.

This release includes bug fixes, build system tweaks and minor (performance and non-performance-related) improvements. Read on for more details.

More →


python-igraph 0.9.9, the seventh bugfix release of the 0.9 series, has arrived.

The preferred way of installing the Python interface is via pip; typing pip install igraph should install a pre-compiled Python wheel on most supported platforms (Windows, Linux and macOS). The pre-compiled wheels and the source code are also available from the Python Package Index page.

ARM64 (Apple Silicon) wheels are now officially supported from this release.

See the changelog on Github for relevant changes in 0.9.9:


C/igraph 0.9.6, the sixth bugfix release of the 0.9 series, has arrived.

The source can be obtained from the GitHub releases page.

This release includes bug fixes, build system tweaks and minor (performance and non-performance-related) improvements. Read on for more details.

More →


C/igraph 0.9.5, the fifth bugfix release of the 0.9 series, has arrived.

The source can be obtained from the GitHub releases page.

This release includes bug fixes and performance improvements only.

Fixed

  • igraph_reindex_membership() does not allow negative membership indices any more.

  • igraph_rewire_directed_edges() now generates multigraphs when edge directions are ignored, to make it consistent with the directed case.

  • Fixed a bug in igraph_gomory_hu_tree() that returned only the equivalent flow tree instead of the cut tree.

  • Fixed a bug in the IGRAPH_TO_UNDIRECTED_COLLAPSE mode of igraph_to_undirected() that provided an incorrect merge vector to the attribute handler, leading to problems when edge attributes were merged using an attribute combination.

  • Fixed the behaviour of the IGRAPH_ENABLE_LTO option when it was set to AUTO; earlier versions had a bug where AUTO simply checked whether LTO is supported but then did not use LTO even if it was supported.

  • When using igraph from a CMake project, it is now checked that the project has the C++ language enabled. This is necessary for linking to igraph with CMake.

Other

  • Improved the root selection method for disconnected graphs in the Reingold-Tilford layout (#1836). The new root selection method provides niceer results if the graph is not a tree, although it is still recommended to use the Sugiyama layout instead, unless the input graph is almost a tree, in which case Reingold-Tilfold may still be preferred.

  • igraph_decompose() is now much faster for large graphs containing many isolates or small components.

  • igraph_largest_cliques() and igraph_clique_number() were re-written to use igraph_maximal_cliques_callback() so they are much faster now.

  • The vendored GLPK has been upgraded to GLPK 5.0.

  • Documentation improvements.


python-igraph 0.9.8, the sixth bugfix release of the 0.9 series, has arrived.

The only significant change in this release is that the Python interface of igraph has been renamed from python-igraph to igraph on PyPI. We are very grateful to Patrick Fuller, the previous owner of the igraph package on PyPI for giving up the ownership of igraph and letting us use the name instead.

The preferred way of installing the Python interface is still via pip; typing pip install igraph should install a pre-compiled Python wheel on most supported platforms (Windows, Linux and macOS). The pre-compiled wheels and the source code are also available from the Python Package Index page.

python-igraph will keep on working on PyPI until September 1, 2022, but it is now only a stub package that depends on igraph. Running pip install python-igraph will in turn install the matching version of the igraph package from PyPI.

  • Projects listing python-igraph in their dependencies should migrate to using igraph as soon as possible to keep on receiving updates after September 1, 2022.

  • Maintainers who provide pre-packaged versions of python-igraph in Linux distributions should switch to following the igraph package on PyPI instead of python-igraph.


python-igraph 0.9.7, the fifth bugfix release of the 0.9 series, has arrived.

The preferred way of installing the Python interface is via pip; typing pip install python-igraph should install a pre-compiled Python wheel on most supported platforms (Windows, Linux and macOS). The pre-compiled wheels and the source code are also available from the Python Package Index page.

See the changelog on Github for relevant changes in 0.9.7:

This release also adds support for Python 3.10 and provides experimental native Python wheels for ARM64 and Apple Silicon CPUs. Note that the Apple Silicon wheels are not tested in a CI environment yet; this will hopefully change in the near future when Github Actions starts supporting Apple Silicon. Until then, feel free to report any issues that you find with Apple Silicon wheels (or any other wheel) in the issue tracker on Github.


In an attempt to bring the R interface of igraph closer to the recent developments of the C core, we have released R-igraph 1.2.7, the seventh bugfix release of the 1.2 series. This version updates the C core of igraph within the R interface to version 0.8.5, which, while still several versions behind the mainline C core, fixes a range of bugs compared to the previous release and introduces a few new functions.

This release is only the beginning; in the next few months we aim to process most of the issues on the Github issue tracker, close the ones that are not relevant any more, fix the ones that should be fixed, and then proceed with updating the R interface to version 0.9.4 of the C core, which is the most recent C core version at the time of writing.

More →


The online docs for igraph on this website now include multiple versions of API documentation and tutorials for the C core and the R and Python interfaces.

To change version, click on the new button on the top left of the page on the relevant pages:


The igraph project is proud to announce that the Chan Zuckerberg Initiative continues to fund the project in their program on Essential Open Source Software for Science. The project will receive two grants of $400,000 over the course of the next two years. One grant will help to further develop and maintain the igraph project. The other grant will help to diversify the pool of contributors and maintainers of the project, which is jointly coordinated with Women in Network Science, and will be led by Brooke Foucault Welles.

Last year, the core library of igraph was enormously improved, making the library easier to build, easier to maintain and easier to use. However, most users are not using the C core directly, but are using it through one of the interfaces: Python, R or Mathematica. The CZI grant will support the igraph development team on improving these interfaces, by making them more intuitive to use and by integrating them more closely in the host language. Additionally, development efforts will be aimed at making the library and the interfaces easier to maintain, focusing on long-term sustainability. This ensures that igraph continues to be a useful tool for network scientists from various disciplines across the globe.

Having people committed to maintain and further develop igraph is critical to ensure its long-term viability. We made steps towards building a more inclusive and engaged community by opening a forum dedicated to igraph. We aim to enlarge and diversify the team of contributors and maintainers of the project. Making it easier to start using igraph and contributing to igraph is an important step. Improving documentation and tutorials helps achieve that goal, but we will also actively organize workshops for users and contributors, with a specific focus on women and non-binary people, and engage more actively on the community forum. Additionally, a mentorship programme will be setup specifically to facilitate women and non-binary people to use and contribute to igraph, paving the way for them to become maintainers of igraph. The CZI grant will enable us to engage more people in achieving these objectives.


python-igraph 0.9.6, the fourth bugfix release of the 0.9 series, has arrived.

The preferred way of installing the Python interface is via pip; typing pip install python-igraph should install a pre-compiled Python wheel on most supported platforms (Windows, Linux and macOS). The pre-compiled wheels and the source code are also available from the Python Package Index page.

This release provides a fix for a single plotting issue with the Matplotlib backend that was accidentally introduced in 0.9.5. See the changelog on Github for more details:

This release also provides experimental native Python wheels for Apple Silicon CPUs. Note that the Apple Silicon wheels are not tested in a CI environment yet; this will hopefully change in the near future when Github Actions starts supporting Apple Silicon. Until then, feel free to report any issues that you find with Apple Silicon wheels (or any other wheel) in the issue tracker on Github.


python-igraph 0.9.5, the third bugfix release of the 0.9 series, has arrived.

The preferred way of installing the Python interface is via pip; typing pip install python-igraph should install a pre-compiled Python wheel on most supported platforms (Windows, Linux and macOS). The pre-compiled wheels and the source code are also available from the Python Package Index page.

See the changelogs on Github for relevant changes in 0.9.5:

This release also provides experimental native Python wheels for Apple Silicon CPUs. Note that the Apple Silicon wheels are not tested in a CI environment yet; this will hopefully change in the near future when Github Actions starts supporting Apple Silicon. Until then, feel free to report any issues that you find with Apple Silicon wheels (or any other wheel) in the issue tracker on Github.


python-igraph 0.9.4, the second bugfix release of the 0.9 series, has arrived. (Yes, we skipped 0.9.2 and 0.9.3).

The preferred way of installing the Python interface is via pip; typing pip install python-igraph should install a pre-compiled Python wheel on most supported platforms (Windows, Linux and macOS). The pre-compiled wheels and the source code are also available from the Python Package Index page.

This release brings python-igraph up-to-date with igraph 0.9.4. See the changelogs on Github for relevant changes in 0.9.4:

This release is also the first one that provides experimental native Python wheels for Apple Silicon CPUs. Note that the Apple Silicon wheels are not tested in a CI environment yet; this will hopefully change in the near future when Github Actions starts supporting Apple Silicon. Until then, feel free to report any issues that you find with Apple Silicon wheels (or any other wheel) in the issue tracker on Github.


C/igraph 0.9.4, the fourth bugfix release of the 0.9 series, has arrived.

The source can be obtained from the GitHub releases page.

This release includes bug fixes only.

Changed

  • Unweighted transitivity (i.e. clustering coefficient) calculations now ignore multi-edges and edge directions instead of rejecting multigraphs and directed graphs.
  • igraph_transitivity_barrat() now returns an error code if the input graph has multiple edges (which is not handled correctly by the implementation yet).

Fixed

  • igraph_local_scan_k_ecount() now handles loops correctly.
  • igraph_transitivity_avglocal_undirected() is no longer slower than igraph_transitivity_local_undirected().
  • Worked around an invalid warning issued by Clang 9.0 when compiling with OpenMP.

Other

  • Documentation improvements.

C/igraph 0.9.3, the third bugfix release of the 0.9 series, has arrived.

The source can be obtained from the GitHub releases page.

This release includes bug fixes only.

Added

  • OpenMP is now enabled and used by certain functions (notably PageRank calculation) when the compiler supports it. Set IGRAPH_OPENMP_SUPPORT=OFF at configuration time to disable this.

Fixed

  • igraph_get_incidence() no longer reads and writes out of bounds when given a non-bipartite graph, but gives a warning and ignores edges within a part.
  • igraph_dyad_census() no longer reports an overflow on singleton graphs, and handles loops and multigraphs correctly. Undirected graphs are handled consistently and will no longer give a warning.
  • igraph_vector_lex_cmp() and igraph_vector_colex_cmp() dereferenced their arguments only once instead of twice, and therefore did not work with igraph_vector_ptr_sort().
  • igraph_maximal_cliques_subset() and igraph_transitivity_barrat() corrupted the error handling stack (“finally stack”) under some circumstances.
  • CMake package files did not respect CMAKE_INSTALL_LIBDIR. This only affected Linux distributions which install into lib64 or other locations instead of lib.
  • The parser sources could not be generated when igraph was in a location that contained spaces in its path.
  • igraph no longer links to the math library (libm) when this is not necessary.
  • _CRT_SECURE_NO_WARNINGS is now defined during compilation to enable compatibility with UWP.
  • Fixed a compilation issue on MSYS / MinGW when link-time optimization was enabled and the MSYS Makefiles CMake generator was used. Some source files in igraph were renamed as a consequence, but these should not affect users of the library.

Deprecated

  • igraph_rng_min() is now deprecated; assume a constant zero as its return value if you used this function in your own code.

Other

  • Updated the vendored CXSparse library to version 3.2.0

C/igraph 0.9.2, the second bugfix release of the 0.9 series, has arrived.

The source can be obtained from the GitHub releases page.

This release includes bug fixes only. We have also added support for CMake package files, making it easier to use igraph in CMake-based projects.

Added

  • CMake package files are now installed with igraph. This allows find_package(igraph) to find igraph and detect the appropriate compilation options for projects that link to it.

Fixed

  • igraph can now be used as a CMake subproject in other CMake-based projects.
  • The documentaton can now be built from the release tarball.
  • Configuration will no longer fail when the release tarball is extracted into a subdirectory of an unrelated git repository.
  • The generated pkg-config file was incorrect when CMAKE_INSTALL_<dir> variables were absolute paths.
  • On Unix-like systems, the library name is now libigraph.so.0.0.0, as it used to be for igraph 0.8 and earlier.
  • Fixed a return type mismatch in parser sources, and fixed some warnings with recent versions of gcc.
  • Fixed a bug in igraph_get_shortest_paths_dijkstra() and igraph_get_shortest_paths_bellman_ford() that returned incorrect results for unreachable vertices.

Other

  • Improved installation instructions and tutorial.

python-igraph 0.9.1, the first bugfix release of the 0.9 series, has arrived.

The preferred way of installing the Python interface is via pip; typing pip install python-igraph should install a pre-compiled Python wheel on most supported platforms (Windows, Linux and macOS). The pre-compiled wheels and the source code are also available from the Python Package Index page.

This release brings python-igraph up-to-date with igraph 0.9.1. See the changelogs on Github for relevant changes in 0.9.0 and 0.9.1:


C/igraph 0.9.1, the first bugfix release of the 0.9 series, has arrived.

The source can be obtained from the GitHub releases page.

This release includes bug fixes only, apart from a minor addition concerning lexicographic ordering of vectors, which was not substantial enough for a minor version bump. The changelog is below.

Added

  • igraph_vector_lex_cmp() and igrapg_vector_colex_cmp() for lexicographic and colexicographic comparison of vectors. These functions may also be used for sorting.

Changed

  • igraph_community_multilevel() is now randomized (thanks to Daniel Noom).

Fixed

  • CMake settings that controlled the library installation directory name, such as CMAKE_INSTALL_LIBDIR, were not respected.
  • Under some conditions, the generated pkg-config file contained an incorrect include directory path.
  • The following functions were not exported from the shared library: igraph_subcomponent(), igraph_stack_ptr_free_all(), igraph_stack_ptr_destroy_all(), igraph_status_handler_stderr(), igraph_progress_handler_stderr().
  • Built-in random number generators (igraph_rngtype_mt19937, igraph_rngtype_rand, igraph_rngtype_glibc2) were not exported from the shared library.
  • igraph_layout_graphopt() no longer rounds the spring_length parameter to an integer.
  • igraph_get_all_shortest_paths_dijkstra() no longer modifies the res vector’s item destructor.
  • igraph_get_shortest_path_bellman_ford() did not work correctly when calculating paths to all vertices.
  • igraph_arpack_rnsolve() checks its parameters more carefully.
  • igraph_community_to_membership() does not crash anymore when csize is requested but membership is not.
  • igraph_citing_cited_type_game(): fixed memory leaks (thanks to Daniel Noom.
  • igraph_transitivity_undirected(), igraph_transitivity_avglocal_undirected() and igraph_transitivity_barrat() no longer trigger an assertion failure when used with the null graph.
  • igraph_(personalized_)pagerank() would return incorrect results for weighted multigraphs with fewer than 128 vertices when using IGRAPH_PAGERANK_ALGO_PRPACK.
  • igraph_diversity() now checks its input more carefully, and throws an error when the input graph has multi-edges or is directed.
  • igraph_shortest_paths_johnson() would return incorrect results when the to argument differed from from (thanks to Daniel Noom).
  • igraph_is_graphical() would fail to set the result variable for certain special degree sequences in the undirected simple graph case.
  • Non-maximal clique finding functions would sometimes return incomplete results when finding more than 2147483647 (i.e. 2^31 - 1) cliques.
  • GLPK internal errors no longer crash igraph.
  • Fixed some potential memory leaks that could happen on error conditions or when certain functions were interrupted.
  • When testing a DLL build on Windows, the PATH was sometimes not set correctly, causing the tests to fail.
  • When compiling from the git repository (as opposed to the release tarball), the build would fail with recent versions of bison and flex.

Other

  • Documentation improvements.
  • Much faster documentation builds.
  • Allow using a pre-generated arith.h header for f2c when cross-compiling; see the Installation section of the documentation.
  • The IGRAPH_ENABLE_LTO build option now supports the AUTO value, which uses LTO only if the compiler supports it. Warning: CMake may not always be able to detect that LTO is not fully supported. Therefore, the default setting is OFF.
  • The following functions are now interruptible: igraph_grg_game(), igraph_sbm_game(), igraph_barabasi_game(), igraph_barabasi_aging_game().
  • Functions that use GLPK, such as igraph_feedback_arc_set() and igraph_community_optimal_modularity() are now interruptible.
  • Add support for older versions of Clang that do not recognize the -Wno-varargs flag.

Acknowledgments

  • Big thanks to Daniel Noom for continuing to expand the test suite and discovering and fixing several bugs in the process!

Release 0.9.0 of igraph’s C core has arrived, almost exactly one year after the latest minor release, 0.8.0. This release brings several new features and improvements, and also a complete switch from the old autotools-based build system to a new one based on CMake. This results in faster build times and the opportunity to use alternative build tools instead of make; in particular, igraph now support ninja and can also make use of a locally installed ccache compiler cache for even faster builds.

We gratefully acknowledge support from CZI for the development of igraph. In addition, we would like to thank everyone who reported issues, contributed features or fixes, or edited the documentation. igraph is an open-source project run by volunteers. As always, your contributions are very welcome!

Most people use igraph through its high-level interfaces for R, Python or Mathematica. A new release of the Python interface, based on 0.9.0, is expected to be released in a few days. The R and Mathematica interfaces already include some of the improvements, and will continue to integrate more.

The sources and the changelog can be obtained from the GitHub releases page.


C/igraph 0.8.5, the fifth bugfix release of the 0.8 series, has arrived.

The sources can be obtained from the GitHub releases page.

This release includes bug fixes only. The changelog is below.

Changed

  • igraph_write_graph_pajek(): the function now always uses the platform-native line endings (CRLF on Windows, LF on Unix and macOS). Earlier versions tried to enforce Windows line endings, but this was error-prone, and since all recent versions of Pajek support both line endings, enforcing Windows line endings is not necessary any more.

Fixed

  • Fixed several compilation issues with MINGW32/64, thanks to @jannick0
  • igraph_layout_davidson_harel() was not interruptible; now it is.
  • Added a missing memory cleanup call in igraph_i_cattribute_combine_vertices().
  • Fixed a few memory leaks in test cases.

C/igraph 0.8.4, the fourth bugfix release of the 0.8 series, has arrived.

The sources can be obtained from the GitHub releases page.

This release includes bug fixes and documentation improvements. The changelog is below.

Fixed

  • igraph_i_cattribute_combine_vertices(): fixed invalid cleanup code that eventually filled up the “finally” stack when combining vertices with attributes extensively.
  • igraph_hrg_sample(): fixed incorrect function prototype
  • igraph_is_posinf() and igraph_is_neginf(): fixed incorrect result on platforms where the sign of the result of isinf() is not indicative of the sign of the input.
  • Fixed building with vendored LAPACK and external BLAS
  • Fixed building with XCode 12.2 on macOS

Other

  • Documentation improvements
  • General code cleanup to reduce the number of compiler warnings

python-igraph 0.8.3, the third bugfix release of the 0.8 series, has arrived.

The preferred way of installing the Python interface is via pip; typing pip install python-igraph should install a pre-compiled Python wheel on most supported platforms (Windows, Linux and macOS). The pre-compiled wheels and the source code are also available from the Python Package Index page.

This release brings python-igraph up-to-date with igraph 0.8.3, and it also contains bug fixes and performance improvements. This release will also be the last one whose version number is deliberately in sync with the version number of the C core. The changelog is below.

Added

  • Graph.community_leiden() now supports a negative number of iterations; it will keep on iterating until the algorithm reaches a stable partition.

  • Graph.Incidence() now supports weighted graphs, thanks to @PuneethaPai

  • You can now create a Graph object from a pandas dataframe with Graph.DataFrame, thanks to @iosonofabio

  • Added conversion to/from networkx and graph-tool with Graph.{to,from}_{networkx,graph_tool}, thanks to @iosonofabio

  • Graph.add_edges() and Graph.add_vertices() now supports specifying attributes for the newly added vertices and edges, thanks to @iosonofabio

  • Added Graph.dfs() and Graph.dfsiter(), thanks to @iosonofabio

  • Added Graph.bridges() to get the bridges of a graph.

  • Added Graph.clear() to remove all edges, vertices and graph attributes in a single call, thanks to @iosonofabio

Changed

  • Upgraded igraph C library to 0.8.3.

  • Graph union and intersection now supports graphs with vertex names, thanks to @iosonofabio

  • Graph.delete_vertices(None) and Graph.delete_edges(None) are now deprecated; use Graph.delete_vertices() and Graph.delete_edges() (without a positional argument) instead to delete all vertices or edges. The old syntax will be removed in 0.9.

Fixed

  • setup.py now works on Windows with MinGW, thanks to @Parakoopa

  • Graph.difference() now treats loop edges correctly

  • summary() does not fail with non-string vertex names any more, thanks to @deeenes

  • The Reingold-Tilford layout should not produce edge crossings on tree graphs any more.

  • The postprocessing step of Graph.biconnected_components() is much faster now (#281); the earlier version was responsible for a significant speed difference between the C core and the Python interface.

Other

  • Various documentation improvements, thanks to @chrisfalter, @iosonofabio, @kmankinen, @remysucre, @szhorvat

  • Graph.complementer() now allows keyword arguments (it used to support positional arguments only).

  • Dropped support for Python 3.5, added support for Python 3.9.


C/igraph 0.8.3, the third bugfix release of the 0.8 series, has arrived.

The sources can be obtained from the GitHub releases page.

This release includes bug fixes and performance improvements. The changelog is below.

Added

  • igraph_vector_binsearch_slice() performs binary search on a sorted slice of a vector.

Changed

  • igraph_eigenvector_centrality() assumes the adjacency matrix of undirected graphs to have twice the number of self-loops for each vertex on the diagonal. This makes the results consistent between an undirected graph and its directed equivalent when each edge is replaced by a mutual edge pair.

Fixed

  • igraph_isomorphic() now verifies that the input graphs have no multi-edges.
  • igraph_difference() was creating superfluous self loops.
  • igraph_count_multiple() was giving incorrect results for self-loops in directed graph.
  • igraph_betweenness_estimate(): fixed incorrect results with finite cutoff.
  • igraph_eigen_matrix_symmetric(): fixed incorrect matrix multiplication.
  • Corrected several issues that could arise during an error condition.
  • igraph_realize_degree_sequence() did not correctly detect some non-graphical inputs.
  • igraph_is_graphical_degree_sequence(): fixed incorrect results in undirected case.
  • igraph_community_leiden(): fixed incorrect result when self-loops are present.
  • igraph_eigenvector_centrality(): fixed incorrect value for isolated vertices in weighted graphs.
  • igraph_eigenvector_centrality(): corrected the handling of self-loops.
  • igraph_layout_reingold_tilford(): fixed an issue where branches of the tree would sometimes overlap.

Other

  • igraph_degree_sequence_game(): improved performance with IGRAPH_DEGSEQ_SIMPLE_NO_MULTIPLE_UNIFORM method.
  • Improved the robustness of the test suite.
  • Documentation improvements.
  • Improved error and warning messages.
  • Improved compatibility with recent versions of Microsoft Visual C.

We are excited to announce that the igraph project will be supported with a grant of $180,000 from the Chan Zuckerberg Initiative in the Essential Open Source Software for Science program. It was recognized that igraph fulfills a critical role for providing network analysis in a variety of scientific domains, including biomedical research. The funding will expedite ongoing development efforts, and should result in a 1.0 release of igraph’s C core with a stable, well-documented and supported API.

For years, the development of igraph was done on a voluntary basis. With funding available, we can make sure developers have more time available to dedicate to igraph. In particular, the funding will support Gábor Csárdi, Tamás Nepusz, Szabolcs Horvát, Vincent Traag and Fabio Zanini.

The core of igraph is written in C, but most people use igraph through its high-level interfaces for R, Python or Mathematica. Much of the development effort will be concentrated on the core of igraph, but the high-level interfaces will not be overlooked.

Even though we will dedicate more time to igraph, the project cannot survive without a vibrant community of users and contributors. Whether you reported issues, contributed code or improved the documentation, your contributions remain vital to the project. We hope that our new community forum will enable us to form a tighter and more supportive community, where you can ask questions, support others, or discuss recent advances in network analysis or graph theory.

The project will start from the 1st of September onwards, and will last for a year. The 1.0 version is planned to be released towards the end of the project.


C/igraph 0.8.2, the second bugfix release of the 0.8 series, has arrived.

The sources can be obtained from the GitHub releases page.

This release includes no new features, only bug fixes and reliability improvements. The changelog is below.

Changed

  • Improved argument checking: igraph_all_st_mincuts() and igraph_sir()
  • Improved interruptibility: igraph_sir()

Fixed

  • igraph_community_leiden(): fixed crash when interrupting
  • The tests are now more robust. Some incorrect test failures were fixed when running on i386 architecture, or when using different versions of external dependencies.

Others

  • Improved error messages from igraph_sir().
  • Improved compatibility with more recent versions of Microsoft Visual C.

We are happy to announce the first bugfix release of the 0.8 series of igraph’s C core!

The sources can be obtained from the GitHub releases page.

This release includes no new features, only bug fixes and reliability improvements. The changelog is below.

Changed

  • Improved interruptability: igraph_degree_sequence_game()
  • Improved argument checking: igraph_forest_fire_game()
  • Updated the plfit library to version 0.8.1

Fixed

  • igraph_community_edge_betweenness(): fix for graphs with no edges (PR #1312)
  • igraph_bridges() now handles multigraphs correctly (PR #1335)
  • igraph_avg_nearest_neighbor_degree(): fix for memory leak in weighted case (PR #1339)
  • igraph_community_leiden(): fix crash bug (PR #1357)

Other

  • Included ACKOWLEDGEMENTS.md
  • Documentation improvements

Release 0.8.0 of igraph’s Python interface follows the recent release of version 0.8.0 of the C core with many bug fixes that have accumulated over the last five years, and an improved build process that does not require the C core of igraph to be downloaded at the time when python-igraph is installed; the tarball of python-igraph already bundles the appropriate version of the C core in it.

Including the C core directly in the source tarball also allows us to decouple python-igraph’s version number from the version number of the C core in the future. This means that we no longer have to wait for a release of the C core in order to fix some bugs in the Python interface.

Precompiled Python wheels

Starting from this release, we will also aim to provide pre-compiled Python wheels for most platforms. The current release includes Python wheels for Python 2.7, 3.5, 3.6, 3.7 and 3.8 on Windows, macOS and Linux, so most users will not have to compile anything when installing python-igraph from pip. Currently the only limitation is that the Windows wheels do not support GraphML import; this will be fixed in the next patch release (0.8.1).

End of support for Python 2.7

python-igraph 0.8.x will also be the last version that supports Python 2.7. Since Python 2 has reached its end of life, we will drop support for Python 2 before python-igraph 0.9 so we can simplify some parts of the codebase where we needed to introduce additional code to support both Python versions.

As for Python 3, we are committing ourselves to supporting at least the last three minor releases of Python 3.

Although we are not suporting PyPy officially, python-igraph will also be tested with PyPy regularly in a CI environment, and we will strive to fix any issues that arise with PyPy. If you use python-igraph with PyPy and you are willing to become an official maintainer responsible for PyPy compatibility, please let us know in the community forum.

New community forum

Concurrently with the release of igraph 0.8, we have launched a new community forum, which replaces the mailing list as the main support channel. The community forum is also meant for users of python-igraph, so If you are a current python-igraph user or just interested in the project, please join!

We would like to thank everyone who reported issues, contributed features or fixes, or edited the documentation. igraph is an open-source project run by volunteers. As always, your contributions are very welcome!


Release 0.8.0 of igraph’s C core, coming almost five years after 0.7.1, is a major improvement with several new features, performance and robustness improvements, and many bug fixes. New functionality includes additional graph generators, functions for handling trees, new community detection methods, improved clique finding, spectral graph embedding, as well as several other features. Please see the changelog for more details.

We would like to thank everyone who reported issues, contributed features or fixes, or edited the documentation. igraph is an open-source project run by volunteers. As always, your contributions are very welcome!

Most people use igraph through its high-level interfaces for R, Python or Mathematica. A new release of the Python interface, incorporating all these improvements, is expected to be released in a few weeks. The R and Mathematica interfaces already include some of the improvements, and will continue to integrate more.

Concurrently with the release of igraph 0.8, we are launching a new community forum, which will replace the mailing list as the main support channel. If you are a current igraph user or just interested in the project, please join!


IGraph/M, a Mathematica interface for igraph is now officially one of the supported higher-level interfaces for igraph. We would like to thank Szabolcs Horvát for all his efforts dedicated to supporting igraph from Mathematica!

New releases of IGraph/M will be published on the GitHub page of the project.


Release Notes

This is a new major release, with a lot of UI changes. We tried to make it easier to use, with short and easy to remember, consistent function names. Unfortunately this also means that many functions have new names now, but don’t worry, all the old names still work.

Apart from the new names, the biggest change in this release is that most functions that used to return numeric vertex or edge ids, return vertex/edge sequences now. This requires some time to get used to and if you want the numeric ids instead, just use the as.vector() function on the vertex/edge sequences.

We will update the documentation on this site, once the package is on CRAN and available for all architectures.

More →


A couple of days ago we changed how we use GitHub for igraph development. Our goal is to make igraph development more accessible, and our build process simpler. Instead of using a common repository for everything, we now use separate repos for the igraph C library, the R package and the Python extension. The igraph.org website was already in a separate repository, and we will also break up the R package, by putting loosely coupled parts in their own packages and repositories.

Main igraph repositories now:

  • igraph C library: https://github.com/igraph/igraph
  • igraph R package: https://github.com/igraph/rigraph
  • python-igraph: https://github.com/igraph/python-igraph
  • igraphdata R package: https://github.com/igraph/igraphdata
  • igraph.org homepage: https://github.com/igraph/igraph.org

Release Notes

Some bug fixes, to make sure that the code included in ‘Statistical Analysis of Network Data with R’ works. See https://github.com/kolaczyk/sand

Detailed changes:

  • Graph drawing: fix labels of curved edges, issue #181.
  • Graph drawing: allow fixing edge labels at given positions, issue #181.
  • Drop the ‘type’ vertex attribute after bipartite projection, the projections are not bipartite any more, issue #255.
  • Print logical attributes in header properly (i.e. encoded by l, not x, which is for complex attributes. Issue #578.
  • Add a constructor for communities objects, see create.communities(). Issue #547.
  • Better error handling in the GraphML parser.
  • GraphML reader is a bit more lenient now; makes it possible to read GraphML files saved from yWorks apps.
  • Fixed a bug in constaint(), issue #580.
  • Bipartite projection now detects invalid edges instead of giving a cryptic error, issue #543.
  • Fixed the simplify argument of graph.formula(), which was broken, issue #586.
  • The function crossing() adds better names to the result, fixes issue #587.
  • The sir() function gives an error if the input graph is not simple, fixes issue #582.
  • Calling igraph functions from igraph callbacks is not allowed now, fixes issue #571.

Release Notes

Some bug fixes, to make sure that the code included in ‘Statistical Analysis of Network Data with R’ works. See http://github.com/kolaczyk/sand

Detailed changes:

  • Better error handling in the GraphML parser.
  • GraphML reader is a bit more lenient now; makes it possible to read GraphML files saved from yWorks apps.
  • Fixed a bug in igraph_constaint(), issue #580.
  • Bipartite projection now detects invalid edges instead of giving a cryptic error, issue #543.
  • Bipartite projection now detects invalid edges instead of giving a cryptic error, issue #543.

Release Notes

There are a bunch of new features in the library itself, and other important changes in the life of the project. Thanks everyone for sending code and reporting bugs!

igraph @ github

igraph’s development has moved from Launchpad to github. This has actually happened several month ago, but never announced officially. The place for reporting bugs is at https://github.com/igraph/igraph/issues.

New homepage

igraph’s homepage is now hosted at http://igraph.org, and it is brand new. We wanted to make it easier to use and modern.

More →


Release Notes

There are a bunch of new features in the library itself, and other important changes in the life of the project. Thanks everyone for sending code and reporting bugs!

igraph @ github

igraph’s development has moved from Launchpad to github. This has actually happened several month ago, but never announced officially. The place for reporting bugs is at https://github.com/igraph/igraph/issues.

New homepage

igraph’s homepage is now hosted at http://igraph.org, and it is brand new. We wanted to make it easier to use and modern.

More →


Release Notes

There are a bunch of new features in the library itself, and other important changes in the life of the project. Thanks everyone for sending code and reporting bugs!

igraph @ github

igraph’s development has moved from Launchpad to github. This has actually happened several month ago, but never announced officially. The place for reporting bugs is at https://github.com/igraph/igraph/issues.

New homepage

The igraph library’s homepage is now hosted at http://igraph.org/c, and it is brand new. We wanted to make it easier to use and better to look at.

More →


The version number is not a mistake, we jump to 0.6.5 from 0.6, for technical reasons.

Release Notes

igraph 0.6.5 is a minor release that contains only few big changes, and fixes a number of very annoying bugs.

See at the end for the complete list of changes. First let’s see the most important new features and changes.

More →


The version number is not a mistake, we jump to 0.6.5 from 0.6, for technical reasons.

Release Notes

igraph 0.6.5 is a minor release that contains only few big changes, and fixes a number of very annoying bugs.

See at the end for the complete list of changes. First let’s see the most important new features and changes.

More →


The version number is not a mistake, we jump to 0.6.5 from 0.6, for technical reasons.

Release Notes

igraph 0.6.5 is a minor release that contains only few big changes, and fixes a number of very annoying bugs.

See at the end for the complete list of changes. First let’s see the most important new features and changes.

More →


Release Notes

igraph 0.6 is a major new release of igraph. It contains many new features and major changes, a lot of bug fixes and improvements. As always, we are grateful to the people who sent comments, bug reports, questions, and specially to people who contributed code.

See below a list of major changes, with links to the relevant sections of the documentation. New features in R all listed here.

See at the end for a (more) complete list of changes.

More →


Release Notes

igraph 0.6 is a major new release of igraph. It contains many new features and major changes, a lot of bug fixes and improvements. As always, we are grateful to the people who sent comments, bug reports, questions, and specially to people who contributed code.

See below a list of major changes, with links to the relevant sections of the documentation. New features are all listed here.

More →


Release Notes

igraph 0.6 is a major new release of igraph. It contains many new features and major changes, a lot of bug fixes and improvements. As always, we are grateful to the people who sent comments, bug reports, questions, and specially to people who contributed code.

See below a list of major changes, with links to the relevant sections of the documentation. New features in R, Python, and C are all listed here.

See at the end for a (more) complete list of changes.

More →


Bugs corrected in the R interface

  • Some small changes to make R CMD check clean
  • Fixed a bug in graph.incidence, the directed and mode arguments were not handled correctly
  • Betweenness and edge betweenness functions work for graphs with many shortest paths now (up to the limit of long long int)
  • When compiling the package, the configure script fails if there is no C compiler available
  • igraph.from.graphNEL creates the right number of loop edges now
  • Fixed a bug in bipartite.projection() that caused occasional crashes on some systems

New in the Python interface

  • Added support for weighted diameter
  • get_eid() considers edge directions by default from now on
  • Fixed a memory leak in the attribute handler
  • NaN and inf are treated correctly now

More →


Bugs corrected

  • Betweenness and edge betweenness functions work for graphs with many shortest paths now (up to the limit of long long int)
  • The configure script fails if there is no C compiler available
  • Fixed a bug in igraph_community_spinglass, when csize was a NULL pointer, but membership was not
  • Fixed a bug in igraph_bipartite_projection that caused occasional crashes on some systems

Release Notes

This is another bug fix release, with a couple of new features. Here are the important ones. See at the end for the complete list of changes.

Bipartite graphs

Bipartite graphs have two kinds of vertices and edges are only allowed to connect opposite kinds. Think of the Hollywood movie graph with actors and movies. igraph 0.5.2 now contains some functions to deal with these kind of networks.

More →


Release Notes

This is another bug fix release, with a couple of new features. Here are the important ones. See at the end for the complete list of changes.

Bipartite graphs

Bipartite graphs have two kinds of vertices and edges are only allowed to connect opposite kinds. Think of the Hollywood movie graph with actors and movies. igraph 0.5.2 now contains some functions to deal with these kind of networks.

More →


Release Notes

This is another bug fix release, with a couple of new features. Here are the important ones. See at the end for the complete list of changes.

Bipartite graphs

Bipartite graphs have two kinds of vertices and edges are only allowed to connect opposite kinds. Think of the Hollywood movie graph with actors and movies. igraph 0.5.2 now contains some functions to deal with these kind of networks.

More →


igraph 0.5.1 Release Notes

igraph 0.5.1 is a bugfix release, but it actually contains many important new things as well. Here is a brief summary about each of them. See below for the complete list of changes.

More →


igraph 0.5.1 Release Notes

igraph 0.5.1 is a bugfix release, but it actually contains many important new things as well. Here is a brief summary about each of them. See below for the complete list of changes.

More →


igraph 0.5.1 Release Notes

igraph 0.5.1 is a bugfix release, but it actually contains many important new things as well. Here is a brief summary about each of them. See below for the complete list of changes.

More →


Release notes

There are a lot of improvements and corrections in this version. We would like to thank all the people who sent comments, bug reports, patches, or just questions. Without their contribution igraph would be definitely much less and worse than it is now. Please keep sending your comments and ideas!

Here is a list of major changes, with links to the relevant sections of the documentation. See below for the complete list of changes.

More →


Release notes

There are a lot of improvements and corrections in this version. We would like to thank all the people who sent comments, bug reports, patches, or just questions. Without their contribution igraph would be definitely much less and worse than it is now. Please keep sending your comments and ideas!

Here is a list of major changes, with links to the relevant sections of the documentation. See below for the complete list of changes.

More →


Release notes

There are a lot of improvements and corrections in this version. We would like to thank all the people who sent comments, bug reports, patches, or just questions. Without their contribution igraph would be definitely much less and worse than it is now. Please keep sending your comments and ideas!

Here is a list of major changes, with links to the relevant sections of the documentation. See below for the complete list of changes.

More →


January 1, 2008

New:

  • Cohesive block finding in the R interface, thanks to Peter McMahan for contributing his code. See James Moody and Douglas R. White, 2003, in Structural Cohesion and Embeddedness: A Hierarchical Conception of Social Groups American Sociological Review 68(1):1-25
  • Biconnected components and articulation points.
  • R interface: better printing of attributes.
  • R interface: graph attributes can be used via $.

Bug fixed:

  • Erdos-Renyi random graph generators rewritten.

January 1, 2008

New:

  • Biconnected components and articulation points.

Bug fixed:

  • Erdos-Renyi random graph generators rewritten.

January 1, 2008

New:

  • Biconnected components and articulation points.

New in the C library:

  • igraph_vector_bool_t data type.

Bug fixed:

  • Erdos-Renyi random graph generators rewritten.

October 3, 2007

This release should work seemlessly with the new R 2.6.0 version. Some other bugs were also fixed:

  • A bug was fixed in the Erdos-Renyi graph generator, which sometimes added an extra vertex.
  • MSVC compilation issues were fixed.
  • MinGW compilation fixes.

October 3, 2007

Some bugs were fixed:

  • A bug was fixed in the Erdos-Renyi graph generator, which sometimes added an extra vertex.
  • MSVC compilation issues were fixed.
  • MinGW compilation fixes.

October 3, 2007

Some bugs were fixed:

  • A bug was fixed in the Erdos-Renyi graph generator, which sometimes added an extra vertex.
  • MSVC compilation issues were fixed.
  • MinGW compilation fixes.

August 13, 2007

The next one in the sequence of bugfix releases. Thanks to many people sending bug reports. Here are the changes:

  • Some memory leaks removed when using attributes from R or Python.
  • GraphML parser: entities and character data in multiple chunks are now handled correctly.
  • A bug corrected in edge betweenness community structure detection, it failed if called many times from the same program/session.
  • Bug corrected in ‘adjacent edges’ edge iterator.
  • Edge betweeness community structure: handle unconnected graphs properly.
  • Fixed bug related to fast greedy community detection in unconnected graphs.
  • Use a different kind of parser (Push) for reading GraphML files. This is almost invisible for users but fixed a nondeterministic bug when reading in GraphML files.
  • R interface: plot now handles properly if called with a vector as the edge.width argument for directed graphs.
  • R interface: bug (typo) corrected for walktrap.community and weighted graphs.
  • Test suite should run correctly on Cygwin now.

August 13, 2007

The next one in the sequence of bugfix releases. Thanks to many people sending bug reports. Here are the changes:

  • Some memory leaks removed when using attributes.
  • GraphML parser: entities and character data in multiple chunks are now handled correctly.
  • A bug corrected in edge betweenness community structure detection, it failed if called many times from the same program/session.
  • Bug corrected in ‘adjacent edges’ edge iterator.
  • Python interface: edge and vertex attribute deletion bug corrected.
  • Edge betweeness community structure: handle unconnected graphs properly.
  • Fixed bug related to fast greedy community detection in unconnected graphs.
  • Use a different kind of parser (Push) for reading GraphML files. This is almost invisible for users but fixed a nondeterministic bug when reading in GraphML files.
  • Test suite should run correctly on Cygwin now.

August 13, 2007

The next one in the sequence of bugfix releases. Thanks to many people sending bug reports. Here are the changes:

  • GraphML parser: entities and character data in multiple chunks are now handled correctly.
  • A bug corrected in edge betweenness community structure detection, it failed if called many times from the same program/session.
  • Bug corrected in ‘adjacent edges’ edge iterator.
  • Edge betweeness community structure: handle unconnected graphs properly.
  • Fixed bug related to fast greedy community detection in unconnected graphs.
  • Use a different kind of parser (Push) for reading GraphML files. This is almost invisible for users but fixed a nondeterministic bug when reading in GraphML files.
  • Test suite should run correctly on Cygwin now.

June 7, 2007

This is another bugfix release, as there was a serious bug in the R package of the previous version: it could not read and write graphs to files in any format under MS Windows.

Some other bits added:

  • circular Reingold-Tilford layout generator for trees
  • corrected a bug, Pajek files are written properly under MS Windows now.
  • arrow.size graphical edge parameter added in the R interface.

June 7, 2007

This is another bugfix release. Some other bits added:

  • circular Reingold-Tilford layout generator for trees
  • corrected a bug, Pajek files are written properly under MS Windows now.

June 7, 2007

This is another bugfix release.

Some other bits added:

  • circular Reingold-Tilford layout generator for trees
  • corrected a bug, Pajek files are written properly under MS Windows now.

May 23, 2007

This is a minor release, it corrects a number of bugs, mostly in the R package.


May 23, 2007

This is a minor release, it corrects a number of bugs.


May 23, 2007

This is a minor release, it corrects a number of bugs.


May 21, 2007

The major new additions in this release is a bunch of community detection algorithms and support for the GML file format. Here is the complete list of changes:

More →


May 21, 2007

The major new additions in this release is a bunch of community detection algorithms and support for the GML file format. Here is the complete list of changes:

More →


May 21, 2007

The major new additions in this release is a bunch of community detection algorithms and support for the GML file format. Here is the complete list of changes:

More →


New in the R interface

  • connect.neighborhood()
  • watts.strogatz.game() and rewire.edges()
  • K-core decomposition: graph.coreness()
  • added the innei and outnei shorthands for vertex sequence indexing see help(iterators)
  • Clique and independent vertex set related functions: cliques, largest.cliques, maximal.cliques, clique.number, independent.vertex.sets, largest.independent.vertex.sets, maximal.independent.vertex.sets, independence.number
  • The GraphML file format now supports graph attributes
  • edge.lty argument added to plot.igraph and tkplot
  • Transitivity calculation speeded up
  • Correct transitivity calculation for multigraphs (ie. non-simple graphs)
  • alpha.centrality added(), calculates Bonacich alpha centrality, see docs.

More →


New in the C library

  • igraph_connect_neighborhood(), nomen est omen
  • igraph_watts_strogatz_game() and igraph_rewire_edges()
  • K-core decomposition: igraph_coreness()
  • Clique and independent vertex set related functions: igraph_cliques(), igraph_independent_vertex_sets(), igraph_maximal_cliques(), igraph_maximal_independent_vertex_sets(), igraph_independence_number(), `igraph_clique_number(), Some of these function were ported from the very_nauty library of Keith Briggs, thanks Keith!
  • The GraphML file format now supports graph attributes
  • Transitivity calculation speeded up
  • Correct transitivity calculation for multigraphs (ie. non-simple graphs)

More →


New in the C library

  • igraph_connect_neighborhood(), nomen est omen
  • igraph_watts_strogatz_game() and igraph_rewire_edges()
  • K-core decomposition: igraph_coreness()
  • Clique and independent vertex set related functions: igraph_cliques(), igraph_independent_vertex_sets(), igraph_maximal_cliques(), igraph_maximal_independent_vertex_sets(), igraph_independence_number(), `igraph_clique_number(), Some of these function were ported from the very_nauty library of Keith Briggs, thanks Keith!
  • The GraphML file format now supports graph attributes
  • Transitivity calculation speeded up
  • Correct transitivity calculation for multigraphs (ie. non-simple graphs)

More →


January 8, 2007

The documentation of the Python interface is available. See section ‘documentation’ in the menu.


December 19, 2006

This is a new major release, it contains many new things: geometric random graphs, creating a graph with attributes from a data frame in R, local transitivity, etc.

More →


December 19, 2006

This is a new major release, it contains many new things: geometric random graphs, local transitivity, etc.

More →


December 19, 2006

This is a new major release, it contains many new things: geometric random graphs, local transitivity, etc.

More →


August 23, 2006

This is a bug-fix release. Bugs fixed:

  • igraph_reciprocity (reciprocity in R) corrected to avoid segfaults
  • some docs updates
  • various R package updated to make it conform to the CRAN rules

August 23, 2006

This is a bug-fix release. Bugs fixed:

  • igraph_reciprocity corrected to avoid segfaults
  • some docs updates

August 23, 2006

This is a bug-fix release. Bugs fixed:

  • igraph_reciprocity corrected to avoid segfaults
  • some docs updates

August 18, 2006

I’ve set up two igraph mailing lists: igraph-help for general igraph questions and discussion and igraph-anonunce for announcements. See http://lists.nongnu.org/mailman/listinfo/igraph-help and http://lists.nongnu.org/mailman/listinfo/igraph-announce for subscription information, archives, etc.


August 18, 2006

Release time at last! There are many new things in igraph 0.2, the most important ones:

  • reading writing Pajek and GraphML formats with attributes (not all Pajek and GraphML files are supported, see documentation for details)
  • iterators totally rewritten, it is much faster and cleaner now
  • the RANDEDU fast motif search algorithm is implemented
  • many new graph generators, both games and regular graphs
  • many new structural properties: transitivity, reciprocity, etc.
  • graph operators: union, intersection, difference, structural holes, etc.
  • conversion between directed and undirected graphs
  • new layout algorithms for trees and large graphs, 3D layouts

and many more.

New things in the R package:

  • support for CTRL+C
  • new functions: Graph Laplacian, Burt’s constraint, etc.
  • vertex/edge sequences totally rewritten, smart indexing (see manual)
  • new R manual and tutorial: ‘Network Analysis with igraph’, still under development but useful
  • very basic 3D plotting using OpenGL

Although this release was somewhat tested on Linux, MS Windows, Mac OSX, Solaris 8 and FreeBSD, no heavy testing was done, so it might contain bugs, and we kindly ask you to send bug reports to make igraph better.


August 18, 2006

Release time at last! There are many new things in igraph 0.2, the most important ones:

  • reading writing Pajek and GraphML formats with attributes (not all Pajek and GraphML files are supported, see documentation for details)
  • iterators totally rewritten, it is much faster and cleaner now
  • the RANDEDU fast motif search algorithm is implemented
  • many new graph generators, both games and regular graphs
  • many new structural properties: transitivity, reciprocity, etc.
  • graph operators: union, intersection, difference, structural holes, etc.
  • conversion between directed and undirected graphs
  • new layout algorithms for trees and large graphs, 3D layouts

and many more.

Although this release was somewhat tested on Linux, MS Windows, Mac OSX, Solaris 8 and FreeBSD, no heavy testing was done, so it might contain bugs, and we kindly ask you to send bug reports to make igraph better.


August 18, 2006

Release time at last! There are many new things in igraph 0.2, the most important ones:

  • reading writing Pajek and GraphML formats with attributes (not all Pajek and GraphML files are supported, see documentation for details)
  • iterators totally rewritten, it is much faster and cleaner now
  • the RANDEDU fast motif search algorithm is implemented
  • many new graph generators, both games and regular graphs
  • many new structural properties: transitivity, reciprocity, etc.
  • graph operators: union, intersection, difference, structural holes, etc.
  • conversion between directed and undirected graphs
  • new layout algorithms for trees and large graphs, 3D layouts

and many more.

Although this release was somewhat tested on Linux, MS Windows, Mac OSX, Solaris 8 and FreeBSD, no heavy testing was done, so it might contain bugs, and we kindly ask you to send bug reports to make igraph better.


January 30, 2006

After about a year of development this is the first “official” release of the igraph library. This release should be considered as beta software, but it should be useful in general. Please send your questions and comments.


January 30, 2006

After about a year of development this is the first “official” release of the igraph library. This release should be considered as beta software, but it should be useful in general. Please send your questions and comments.


January 30, 2006

After about a year of development this is the first “official” release of the igraph library. This release should be considered as beta software, but it should be useful in general. Please send your questions and comments.