Releases: igraph/rigraph
igraph 2.1.2
Bug fixes
-
adjacent_vertices()
andincident_edges()
are now correct if the"return.vs.es"
option isFALSE
(@stibu81, #1605, #1606). -
Fix protection errors reported by rchk (#1592).
-
Fix the incorrect handling of the
sample
parameter insample_motifs()
and ensure that the defaultsample.size
is integer (#1568).
Documentation
-
Clarify what type of graph each community detection function supports.
-
Improve
?read_graph
and?write_graph
documentation. -
Improve
all_simple_paths()
documentation. -
cluster_optimal()
does support directed graphs.
Testing
igraph 2.1.1
See https://github.com/igraph/rigraph/blob/9828d7b11be330f994f07ae93a071b356eced903/src/vendor/cigraph/CHANGELOG.md for a complete changelog, in particular the section "Breaking changes".
Lifecycle
Breaking changes
- Breaking change: remove tkigraph from {igraph} proper (#1474).
- Breaking change: Hard-deprecate
get.edge()
andlayout.grid.3d()
which have been deprecated for 10 years (#1398). - Breaking change: use
rlang::arg_match()
inigraph.match.arg()
(#1165).
In-progress deprecations
We are working towards a more consistent interface, especially as regards function naming: ultimately we want the igraph functions to use snake case.
Please update your scripts and codebases as soon as you can.
- Deprecate
eigen_centrality(scale = )
(#1543). - Put deprecation message at the beginning not the end of the similarity functions (#1549).
- Add
independence_number()
as an alias ofivs_size()
(#1522). - Add
get_edge_ids()
as an alias ofget.edge.ids()
(#1510). - Increase the deprecation signal to a warning for
hub.score()
andauthority.score()
both replaced byhits_scores()
(#1352). - Soft-deprecate
erdos.renyi.game()
andrandom.graph.game()
(#1509).
Features
C library
- Update vendored C/igraph sources to igraph/igraph@d2e0f4e.
New functionality
- Add
p.value
andp.precision
arguments tofit_power_law()
to control the computation of the p-value (#1546, #1386). - Add
max_degree()
(#1403). - Add experimental
sample_chung_lu()
(#1416). - Rename methods available for
sample_degseq()
and add the"edge.switching.simple"
method (#1376). - Weight support for
eccentricity()
andradius()
(#1211). - Add some argument checking to
add_shape()
(#1478).
More informative errors
- Export
.from()
etc. with behavior similar todplyr::across()
(#1436): functions like.from()
are meant to be used inside[
but now if an user misuses them, the error is more informative.
Bug fixes
- Fix including diagonal elements in dense adjacency matrices (#1437).
- Align the body of
graph.lattice()
with its replacementmake_lattice()
(#1439). - Use
deprecated()
as default value forcircular
argument tomake_lattice()
(#1431). subgraph_centrality()
now ignores edge directions (#1414).- Remove unintended type conversions when using
disjoint_union()
(#1375). - Add missing
PROTECT()
(#1382). - Fix reading of LGL and NCOL files (broken in 2.0.0) (#1347).
- Fixed potential memory leak in
R_igraph_community_to_membership2()
(#1367).
Documentation
- Update allcontributors table (#1552).
- Use mathjax for now (#1538).
- Improve the manual page of
sample_()
(#1477). - Improve cross-links from
make_()
manual page (#1476). - Update
is_separator()
documentation based on C docs (#1467). - Add DOI to citation (#1450).
- Improve documentation of normalization methods for laplacian_matrix() (#1420).
- Fix typos in
?plot.common
(@gvegayon) (#1413). - Fix
sample_degseq()
example (#1297). - Fix
graph_from_adjacency_matrix()
examples to avoid warnings (#1302). - Replace
\dontrun{}
with@examplesIf
(#1307). - Improve
sample_gnp()
examples. - Improve centralization docs.
- Further clarifications for
betweenness()
(#1489). - Clarify how betweenness with cutoff is normalized.
- Fix
centr_eigen_tmax()
docs. - Make
edge_density()
examples relevant. - Improve
eigen_centrality()
documentation. - Improved
cluster_edge_betweenness()
documentation. sample_forestfire()
tests and example (#1318).
Developer-facing docs
- Add slightly tweaked boilerplate
CONTRIBUTING.md
(#1423). - Update troubleshooting document.
- Use {devtag} for internal function docs (#1507).
- Make
.igraph.progress()
and.igraph.status()
more internal (#1516).
Internal
igraph 2.0.3
See https://github.com/igraph/rigraph/blob/3299d31/src/vendor/cigraph/CHANGELOG.md for a complete changelog of the bundled C core, and https://github.com/igraph/rigraph/compare/f3fa58b..3299d31#diff-aeb78e0159780a9b26daabaf6f95f450b0cfec7161fc735f27ad69145a57dc84 for the changes since the igraph 2.0.1.
(A permanent link to the most recent changelog of the C core used in the R package is
https://github.com/igraph/rigraph/blob/main/src/vendor/cigraph/CHANGELOG.md.)
Features
- GMP is no longer a dependency (#1256), libxml2 (#1282) and glpk are optional.
- Update vendored sources to igraph/igraph@857a125.
- New
voronoi_cells()
to compute the Voronoi partitioning of a graph (#1173).
Bug fixes
- Fix
rglplot(edge_label = )
(#1267).
Continuous integration
- Run examples with sanitizer (#1288).
- Add scheduled builds.
Documentation
- Make
x11()
usage in example happen only in interactive sessions (#1301). - Remove misleading comment about warning given as no warning is given (#1294).
- Improve
min_st_separators()
documentation (#1264). - Add link to discussion forum (#1279) and logo (#1280).
- Add code finding duplicate
@seealso
, and use it (#1270). - Remove duplicate
@seealso
from?sample_pa
(#1268). - Remove incorrect claim about handling of complete graphs by
is_separator()
andis_min_separator()
(#1263). - Fix error messages mentioning to mention
upgrade_graph()
instead of the nonexistingupgrade_version()
(#1252). - Split
is_bipartite()
manual page from other manual page (#1230). - Improve bug report template.
CITATION.cff
contains only the first three version components.- Install lock workflow to lock stale discussions after one year (#1304).
Internal
igraph 2.0.2
See https://github.com/igraph/rigraph/blob/f3fa58b/src/vendor/cigraph/CHANGELOG.md for a complete changelog of the bundled C core, and https://github.com/igraph/rigraph/compare/1bd2bf79..f3fa58b#diff-aeb78e0159780a9b26daabaf6f95f450b0cfec7161fc735f27ad69145a57dc84 for the changes since the igraph 2.0.1.
(A permanent link to the most recent changelog of the C core used in the R package is
https://github.com/igraph/rigraph/blob/main/src/vendor/cigraph/CHANGELOG.md.)
Bug fixes
g + vertices(1, 2, foo = 3)
works again, regression introduced in igraph 2.0.0 (#1247).sample_pa()
respects theout.seq
andout.dist
arguments again, regression introduced in igraph 2.0.0 (#1226).isomorphisms()
andsubgraph_isomorphisims(method = "vf2")
work again, regression introduced in 2.0.0 (#1219).biconnected_components()
now returns edge and vertex sequences again, regression introduced in 2.0.0 (#1213).- Remove zeros from the
order
andorder.out
components returned bydfs()
, regression introduced in 2.0.0 (#1179). - Memory leaks when converting data to C (#1196).
Features
realize_bipartite_degseq()
creates a bipartite graph from two degree sequences (#1212).is_biconnected()
checks if a graph is biconnected (#1204).distances()
now supports the Floyd-Warshall algorithm (#1186).
Documentation
- Use more culturally diverse names in intro vignettes (#1246).
- Formatting tweaks in introductory vignettes (#1243).
- Recommend {pak} instead of {remotes} (#1228).
- Fix typo in
mean_distance()
docs. - Update troubleshooting document, emphasize issues with Anaconda environments (#1209).
- Improved docs for shortest path functions (#1201).
- Document
"dsatur"
heuristic forgreedy_vertex_coloring()
(#1206). - Remove scg related docs (#1167).
- Fix typo in
?articulation_points
(#1191). - Improve installation and troubleshooting instructions (#1184).
- Improve docs of assortativity (#1151).
Testing
- Add tests for
isomorphisms()
andsubgraph_isomorphisms()
(#1225).
Packaging
- Always use bundled mini-gmp (#1233).
config.h
definesHAVE___UINT128_T
(#1216).- Do not rely on
which
program during configuration (#1232). configure
manage libxml multiple include paths (#1197).- Remove empty string in
configure
(#1235). - Link Fortran runtime on Windows as needed by arpack. (#1215).
- Workaround for deprecated enum values not being supported with old GCC (#1205).
HAVE_GFORTRAN
flag forwin
anducrt
(#1171).make_empty_graph()
is now fully auto-generated (#1068).- Eliminate manual edits from autogenerated files (#1207).
- Add read-only comments for RStudio IDE (#1152).
Internal
igraph 2.0.1.1
Bug fixes
- Avoid
is.R()
which is deprecated in R 4.4.0.
igraph 2.0.1
Bug fixes
- Use cpp11 for simpleraytracer glue to avoid
-Wlto
warnings (#1163).
igraph 1.6.0
## Breaking changes - New `arpack_defaults()` replaces `igraph.arpack.default` and `arpack_defaults` lists (#800), with consistent usage checks (#966). - Define methods for `ape::as.phylo()` instead of own `as_phylo()` generic, remove deprecated `asPhylo()` (#763). - `bfs()` with unreachable nodes returns zero instead of `NaN` as `rank` (#956), and negative instead of `NaN` for `dist` (#926). - `random_walk()` adds one more step, the resulting list of vertices is of length `steps + 1` (#934). - `girth()` returns `Inf` for acyclic graphs (#931). - Remove some behaviour / parameters that were deprecated in 1.3 (#842). - Remove `scg_eps()`, `scg_group()` and `scg_semi_proj()`, broken and no longer maintained (#946). ## Bug fixes - Fix `printf()` warning (#975). - Fix calls to `isSymmetric()` for matrix objects with a class (#965). - Reduce frequency of interruption checks (#957). ## Features - Change "incidence matrix" naming to "biadjacency matrix" (#962). - Add aliases using the neighborhood terminology for all ego functions: (#950). - Rename arguments to `assortativity(values, values.in)` from `types1` and `types2` (#952). - Add ellipsis to `cluster_label_prop()` (#954). - Placeholders for `is_acyclic()` and `is_forest()`, to be implemented in igraph 2.0.0 (#945). - `is_tree(details = TRUE)` designates the first vertex as root for non-trees (#935). - `all_shortest_paths()` returns the vertex list in both `res` and `vpaths` components (#930). - Improve symmetry check for adjacency matrices on input (#911). - Warn if non-symmetric undirected adjacency matrix (#904). ## Documentation - Remove duplicate `\seealso{}` (#948). - Update `knnk()` and `sir()` docs. - Fix formula in `reciprocity()` docs. - `strength()` does not give a warning when no weights are given. - Update `sample_smallworld()` manual page (#895). - Correct documentation for weighted cliques. - Update Erdos-Renyi model docs. ## Testing - Clean up tests (#967). - Stabilize tests for `cluster_label_prop()` (#932), `sample_pa()` (#927), `cluster_louvain()` (#933), SIR (#936), `sample_forestfire()` (#929). - Hard-code graph used in test (#928). - Update GML test file (#925). - Improve test for sampling from Dirichlet distribution (#923). - Omit test that no longer holds with igraph 0.10 (#922). - Stabilize test in preparation for upgrade (#920). - Stabilize plot test (#919). - Fix checks.
igraph 1.5.1
Breaking changes
- Breaking change: start deprecation of
estimate_betweenness()
,estimate_edge_betweenness()
,estimate_closeness()
(#852).
Bug fixes
identical_graphs()
now correctly detects identical graphs without node or edge attributes (#757).
Internal
-
Change ownership rules of attribute objects (#870).
-
R_SEXP_to_igraph()
andR_SEXP_to_igraph_copy()
getigraph_t
object from external pointer (#865). -
Remove
ETIME()
call from Fortran code, already in CRAN version 1.5.0.1 (#858). -
Ensure that
_GNU_SOURCE
is always defined (#877). -
Fix
make clean
(#860). -
Fix generation of code for functions with
VERTEX_COLOR
out-arguments (#850). -
Use
-lquadmath
inMakevars.win
, for compatibility with alternative R distributions such as Microsoft R Open (#855). -
getRversion()
uses strings.
Documentation
-
Add cffr file and a GHA workflow that updates it automatically (#873).
-
Undeprecate
neighborhood()
(#851). -
Remove redundant reference to AUTHORS from DESCRIPTION.
Refactoring
- Breaking change: start deprecation of
estimate_betweenness()
,estimate_edge_betweenness()
,estimate_closeness()
(#852).
igraph 1.5.0.1
- Remove
ETIME()
call from Fortran code.
igraph 1.5.0
Breaking changes
The internal format of graph objects has changed in a mostly backward-compatible way, to prepare for upgrading the C core to 0.10. Details are described at https://github.com/igraph/rigraph/wiki/The-igraph-object-format. Accessing graph objects that have been created with an older igraph version give a clean error message with instructions (#832). The new format cannot be read by igraph 1.4.3 or older, the following error is raised when trying to do so:
This graph was created by an old(er) igraph version.
Call upgrade_graph() on it to use with the current igraph version
For now we convert it on the fly...
Error in is_directed(object) :
REAL() can only be applied to a 'numeric', not a 'NULL'
The only supported remedy is to upgrade the igraph package to version 1.5.0 or later.
graph_version()
now returns an integer scalar (#832, #847), 4
as of igraph 1.5.0 (#835).
Features
-
Vertex and edge sequences are converted to numeric vectors when used in attributes (#808).
-
New
largest_component()
returns the largest connected component (#786, @ngmaclaren).
Bug fixes
- Fix error message in
make_graph()
whensimplify = ...
is used with a non-formula (#834).
Testing
-
Add more tests for
graph_from_literal()
(#826). -
Reenable serialization test and tests for
dyad_census()
, stabilize tests (#809, #822, #823).
Documentation
-
The documentation for the R package is now hosted at https://r.igraph.org/ (#780).
-
Update
vignette("installation-troubleshooting")
. -
Fix use of deprecated functions in examples, e.g., replace
gsize()
byecount()
(#827). -
Fix typos in
?eigen_centrality
docs (@JJ). -
Add DOI to CITATION (#773).