Releases: igraph/rigraph
igraph 2.3.2
Bug fixes
- Fix obsolete Fortran syntax (#2644).
igraph 2.3.1
Bug fixes
- Fix mismatches between C function signatures and function calls. This only affects private functions that are defined but not yet used (#2620).
igraph 2.3.0
New features
-
Add
transitive_closure()function to compute the transitive closure of a graph (#1350, #2413). -
Add
make_full_multipartite()andmake_turan()graph constructors (#1562, #2406). -
Add
make_circulant()to exposeigraph_circulant()(#1563, #2407). -
graphlet_basis()returns a list of vertices in the"cliques"component instead of a raw integer matrix (#2470, #2472). -
vertices()now errors on duplicate attribute names (#1248, #2430). -
Implement generic mechanism for
layout_()modifiers, allowing layout algorithms to be composed and adjusted uniformly (#1473, #2435). -
Change graph constructors to use explicit named arguments instead of positional ones (#2466, #2467).
-
Improve formatting of error messages originating from the C library (#2202, #2515).
-
Functions that accept a single vertex now check that exactly one vertex is passed (#2556).
Bug fixes
-
Error call in
with_vertex_()/with_edge_()should report the publicmake_()function, not the internal helper (#2609). -
Not all loops are plotted when a graph has multiple loops at the same vertex (#2594, #2595).
-
Fix
hrg_game_impl()which produced incorrect results (#2577, #2578). -
graphlet_proj()no longer erroneously assigns class"igraphHRG"to the returned graph. -
Support character labels in
assortativity_nominal()in addition to integer type codes (#1283, #2432). -
Fix uninitialized variable warnings when building with R 4.5 on Windows (#2526, #2527).
-
modularity()now uses the"weights"edge attribute automatically when noweightsargument is supplied. -
Fix
alpha_centrality()crash whenweightsis set to a custom edge attribute name rather than a numeric vector (#915, #2403). -
Fix matrix lists for output when returning multiple matrices from C.
Documentation
-
Error messages throughout the package now use the
clipackage for consistent, styled output instead of base Rstop()(#731, #2588). -
The R Consortium is listed as a funder with its ROR ID in the package metadata (#2587).
-
Documentation pages for R functions now automatically link to the corresponding C library documentation (#2518).
Testing
- Structured unit tests alongside snapshot tests have been added for all autogenerated
_implfunctions intest-aaa-auto.R, verifying argument passing and return values (#2448, #2449).
Internal
-
The R interface for most C library functions is now autogenerated using the py-stimulus framework, covering 108+ functions including BFS and DFS callbacks, leading-eigenvector community detection, motif callbacks, sparse matrix operations, and graph-list constructors. Arguments use snake_case naming throughout for consistency (#2152, #2424, #2442, #2461, #2462, #2464, #2465, #2484, #2485, #2531, #2532, #2533, #2534, #2540, #2550, #2551, #2552, #2553, #2554, #2555).
-
Most direct
.Call()invocations to C library functions have been replaced with autogenerated_impl()wrapper functions that use explicit named arguments, covering all R source files (R/assortativity.R,R/bipartite.R,R/centrality.R,R/centralization.R,R/cliques.R,R/coloring.R,R/embedding.R,R/flow.R,R/games.R,R/layout.R,R/make.R,R/other.R,R/simple.R,R/structural-properties.R,R/topology.R,R/trees.R,R/triangles.R, and others) (#2332, #2334, #2345, #2347, #2348, #2351, #2352, #2355, #2357, #2358, #2359, #2361, #2362, #2363, #2364, #2365, #2366, #2367, #2368, #2369, #2370, #2372, #2373, #2374, #2379, #2380, #2382, #2383, #2384, #2386, #2388, #2398, #2422, #2423, #2428, #2429, #2434, #2443, #2471, #2476, #2477, #2478, #2539, #2541, #2545, #2546).
igraph 2.2.3
Chore
- Remove calls to non-API functions.
igraph 2.2.2
Chore
- Remove calls to unused APIs only used in the conversion of very old graph objects.
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.