Releases: igraph/rigraph
igraph 2.2.1
Chore
-
Fix ASAN checks.
-
Add protection to fix rchk error.
Testing
-
Improve centralitystress test (#2214).
-
Fix flaky test.
igraph 2.2.0
Update C core to version 0.10.17. See https://github.com/igraph/rigraph/blob/20552ef94aed6ae4b23465ae8c7e4d3b0e558c71/src/vendor/cigraph/CHANGELOG.md for a complete changelog, in particular the section "Breaking changes".
Features
-
Generate almost all R implementations (#2047).
-
Expose
align_layout()and add tolayout_nicely()to align layout with axis automatically (#1907, #1957, #1958). -
Expose
simple_cycles()which lists all simple cycles (#1573, #1580). -
Expose
is_complete(),is_clique()andis_ivs()(#1316, #1388, #1581). -
Expose
feedback_vertex_set()to find a minimum feedback vertex set in a graph (#1446, #1447, #1560). -
Add
weightsparameter tolocal_scan()(#1082, #1448, #1982). -
Add
plot(mark.lwd = )to change line width of mark.groups (#306, #1898). -
Add
plot(vertex.label.angle = , vertex.label.adj = )arguments to rotate vertex labels (#106, #1899). -
Add relative size scaling to vertices in
plot()(@gvegayon, #172). -
Split
sample_bipartite()into two functions for the G(n, m) and G(n, p) case (#630, #1692). -
Implement multi attribute assignment (#55, #1916) and adding attributes via data frames (#1373, #1669, #1716). Support factors in
graph_from_data_frame()(#34, #1829). -
HRG printing with
type = "auto"uses"plain"for large trees (#1879). -
get_edge_ids()accepts data frames and matrices (#1663). -
igraph_version()returns version of C core in an attribute (#1208, #1781).
Breaking changes
-
Breaking change: change arguments default and order for
graph_from_lcf()(#1858, #1872). -
Breaking change: Subset assignment of a graph avoids addition of double edges and ignores loops unless the new
loopsargument is set toTRUE(#1662, #1661). -
Breaking change: remove deprecated
neimodeparameter frombfs()anddfs()(#1105, #1526). -
Breaking change: stricter deprecation of non-functional parameters of
layout_with_kk()andlayout_with_fr()(#1108, #1628).
Bug fixes
-
NAattribute values are replaced with default values inplot()(#293, #1707). -
NAchecking only in from/to columns of edge data frame (#1906). -
Keep vertex attribute type for
disjoint_union()(#1640, #1909). -
Error in bipartite projection if
typeis not a vertex attribute (#898, #1889). -
Do not try to destroy non-initialized SIR objects upon error (#1888).
-
Added proper
NAhandling for matrix inputs (#917, #918, #1828). -
Remove string matrix support from functions operating on biadjacency matrices (#1540, #1542, #1803).
-
Integer vectors are validated before transferring them to the C library (#1434, #1582).
-
Changed base location for
graph_from_graphdb()and added tests (#1712, #1732). -
Recycling of logical vectors when indexing into edge/vertex selectors now throws an error (#848, #1731).
-
Use
function()instead of(x)inarrow.mode(#1722). -
Temporarily disable generating an interface for
igraph_simple_cycles_callback()as the framework for handling callback functions is not yet present.
Plotting bug fixes
-
Adjust loop position to vertex size in
plot()(#1980). -
Don't rescale plot coordinates to
[-1,1] x [-1,1]by default (#1492, #1956, #1962). -
Fail if
"layout"attribute doesn't match the number of vertices (#1880). -
Allow more than one edge label font family in
plot()(#37, #1896). -
Replace
NAvalues inlabelattributes inplot()with default values (#1796, #1797). -
Correct mapping of edge label properties in plots when loops are present (#157, #1706).
Documentation
-
Welcome Maëlle Salmon and David Schoch as authors (#1733), add author links (#1821).
-
Remove demos (#2008).
-
Update allcontributors info (#1975).
-
Link to replacements of deprecated functions (#1823).
-
Add documentation of all file formats to
read_graph()andwrite_graph()(#777, #1969). RecommendsaveRDS()andreadRDS()for saving and loading graphs (#1242, #1700). -
Document return value of
make_clusters()(#1794). -
Clarify that
girth()returnsInffor acyclic graphs (@eqmooring, #1831). -
Clarify the use of weights in
layout_with_kk(). -
Refer to current latest version of R in troubleshooting page.
-
Fix typos in
laplacian_matrix()documentation. -
Correct the description of the
weightsparameter ofhits_scores(). -
Better describe output of
all_shortest_paths()(#1029, #1778). -
make_graph()now supports"Groetzsch"as an alias of"Grotzsch". This change was implemented in the C core. -
Update description of
orderparameter ofego()and related functions (#1746). -
Added lifecycle table (#1525).
-
Add more about igraph.r2cdocs in the contributing guide (#1686, #1697).
Performance
igraph 2.1.4
Testing
- Tweak tests that use the graph package.
igraph 2.1.3
Features
-
Use
_pvdestroy functions to satisfy ASAN checks (#1630). -
Use safe accessor to vector elements (#1633).
Chore
Documentation
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
sampleparameter insample_motifs()and ensure that the defaultsample.sizeis integer (#1568).
Documentation
-
Clarify what type of graph each community detection function supports.
-
Improve
?read_graphand?write_graphdocumentation. -
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.valueandp.precisionarguments 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 forcircularargument 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
@seealsofrom?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.cffcontains 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.seqandout.distarguments 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
orderandorder.outcomponents 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.hdefinesHAVE___UINT128_T(#1216).- Do not rely on
whichprogram during configuration (#1232). configuremanage 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_GFORTRANflag forwinanducrt(#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
-Wltowarnings (#1163).