# Development

**URL:** https://igraph.discourse.group/c/development/9.md?page=2

[Latest](https://igraph.discourse.group/latest.md) · [Categories](https://igraph.discourse.group/categories.md) · [Tags](https://igraph.discourse.group/tags.md)

**Page:** 3

---

## [Test wiki suggestions](https://igraph.discourse.group/t/test-wiki-suggestions/588)

<div class="topic-metadata">

**Author:** [@GroteGnoom](https://igraph.discourse.group/u/GroteGnoom)\
**Replies:** 4\
**Last updated:** [12 January 2021 13:48 UTC](https://igraph.discourse.group/t/test-wiki-suggestions/588 "2021-01-12T13:48:23Z")

</div>

To use the .out file of a newly added test, I had to call cmake .. before calling cmake --build . --target check to actually use it. Else it was just being ignored.

---

## [New graph data structure proposal](https://igraph.discourse.group/t/new-graph-data-structure-proposal/420)

<div class="topic-metadata">

**Author:** [@vtraag](https://igraph.discourse.group/u/vtraag)\
**Replies:** 9\
**Last updated:** [16 December 2020 22:33 UTC](https://igraph.discourse.group/t/new-graph-data-structure-proposal/420 "2020-12-16T22:33:16Z")

</div>

Based on some earlier discussions (e.g. igraph\_edge and from/to swapping), I wanted to propose a new graph data structure. To be clear, this is a proposal for the long-term, only for a version 1.0. Background and motiva…

---

## [Standardize error and warning styles](https://igraph.discourse.group/t/standardize-error-and-warning-styles/249)

<div class="topic-metadata">

**Author:** [@szhorvat](https://igraph.discourse.group/u/szhorvat)\
**Replies:** 10\
**Last updated:** [11 December 2020 10:32 UTC](https://igraph.discourse.group/t/standardize-error-and-warning-styles/249 "2020-12-11T10:32:59Z")

</div>

The style of error and warning messages is a bit all over the place right now. We should standardize them and document what is required. An arbitrary suggestion (I’m fine with anything, really): Start with capital let…

---

## [Functions that CRAN disallows](https://igraph.discourse.group/t/functions-that-cran-disallows/535)

<div class="topic-metadata">

**Author:** [@szhorvat](https://igraph.discourse.group/u/szhorvat)\
**Replies:** 4\
**Last updated:** [27 November 2020 19:26 UTC](https://igraph.discourse.group/t/functions-that-cran-disallows/535 "2020-11-27T19:26:58Z")

</div>

@Gabor The igraph C sources have many parts disabled with #ifndef USING\_R. I assume this is motivated by CRAN not allowing functions that exit (abort()) or printing to the terminal (stdout, stderr). These rules are of…

---

## [Building the R interface with address sanitizer](https://igraph.discourse.group/t/building-the-r-interface-with-address-sanitizer/527)

<div class="topic-metadata">

**Author:** [@szhorvat](https://igraph.discourse.group/u/szhorvat)\
**Replies:** 3\
**Last updated:** [27 November 2020 19:05 UTC](https://igraph.discourse.group/t/building-the-r-interface-with-address-sanitizer/527 "2020-11-27T19:05:03Z")

</div>

I can build the R interface with the instructions here: https://github.com/igraph/rigraph/blob/dev/CONTRIBUTING.md#making-more-involved-changes @Gabor, have you ever managed to compile R/igraph with Address Sanitizer on…

---

## [Looking for support for adding new features of clustering algorithms in python-igraph](https://igraph.discourse.group/t/looking-for-support-for-adding-new-features-of-clustering-algorithms-in-python-igraph/498)

<div class="topic-metadata">

**Author:** [@Sofia](https://igraph.discourse.group/u/Sofia)\
**Replies:** 9\
**Last updated:** [18 November 2020 10:01 UTC](https://igraph.discourse.group/t/looking-for-support-for-adding-new-features-of-clustering-algorithms-in-python-igraph/498 "2020-11-18T10:01:50Z")

</div>

Dear all, I am currently implementing new features based on an existing clustering algorithm in python-igraph. As I want to test and compare with original algorithm, I have to modify the python-igraph package. I have a…

---

## [Neo4j converter?](https://igraph.discourse.group/t/neo4j-converter/506)

<div class="topic-metadata">

**Author:** [@iosonofabio](https://igraph.discourse.group/u/iosonofabio)\
**Replies:** 1\
**Last updated:** [13 November 2020 12:28 UTC](https://igraph.discourse.group/t/neo4j-converter/506 "2020-11-13T12:28:02Z")

</div>

Hi guys, There was a user today who wants to extract a graph with attributes from neo4j (https://neo4j.com/) which is a graph database and manipulate it in igraph. That case was about R and there is a thing called neo4r…

---

## [Why is \`igraph.Graph.complementer\` so fast on nearly complete graphs?](https://igraph.discourse.group/t/why-is-igraph-graph-complementer-so-fast-on-nearly-complete-graphs/480)

<div class="topic-metadata">

**Author:** [@Simonas\_Mamaitis](https://igraph.discourse.group/u/Simonas_Mamaitis)\
**Replies:** 1\
**Last updated:** [18 October 2020 14:33 UTC](https://igraph.discourse.group/t/why-is-igraph-graph-complementer-so-fast-on-nearly-complete-graphs/480 "2020-10-18T14:33:33Z")

</div>

I’ve tested a high variety of algorithms that calculates remaining edges in order to complete a graph for any given list of edges and number of vertices of complete graph n. They were written in numpy and other bunch of …

---

## [Edge cases in eigenvector centralities](https://igraph.discourse.group/t/edge-cases-in-eigenvector-centralities/444)

<div class="topic-metadata">

**Author:** [@szhorvat](https://igraph.discourse.group/u/szhorvat)\
**Replies:** 1\
**Last updated:** [18 September 2020 18:33 UTC](https://igraph.discourse.group/t/edge-cases-in-eigenvector-centralities/444 "2020-09-18T18:33:18Z")

</div>

igraph\_eigenvector\_centrality has two special cases: it returns all-ones for graphs with no edges or graphs with all-zero weights. I propose changing this to return all-zeros instead. Reasoning: In undirected graphs, …

---

## [On the design of igraph\_eulerian\_path](https://igraph.discourse.group/t/on-the-design-of-igraph-eulerian-path/438)

<div class="topic-metadata">

**Author:** [@szhorvat](https://igraph.discourse.group/u/szhorvat)\
**Replies:** 1\
**Last updated:** [13 September 2020 11:42 UTC](https://igraph.discourse.group/t/on-the-design-of-igraph-eulerian-path/438 "2020-09-13T11:42:59Z")

</div>

While working on integrating the Eulerian functions into the Mathematica interface, I came across a small issue. The same issue will apply to other similar functions too, so I wanted to discuss it. Currently, igraph\_eul…

---

## [Files in tools/virtual](https://igraph.discourse.group/t/files-in-tools-virtual/400)

<div class="topic-metadata">

**Author:** [@szhorvat](https://igraph.discourse.group/u/szhorvat)\
**Replies:** 2\
**Last updated:** [20 August 2020 08:30 UTC](https://igraph.discourse.group/t/files-in-tools-virtual/400 "2020-08-20T08:30:28Z")

</div>

What was the original purpose of the files in https://github.com/igraph/igraph/tree/master/tools/virtual ? Do we still need them? Is anyone still using them or planning to use them in the future? If not, can we remove th…

---

## [New python docs](https://igraph.discourse.group/t/new-python-docs/404)

<div class="topic-metadata">

**Author:** [@iosonofabio](https://igraph.discourse.group/u/iosonofabio)\
**Replies:** 3\
**Last updated:** [13 August 2020 22:33 UTC](https://igraph.discourse.group/t/new-python-docs/404 "2020-08-13T22:33:23Z")

</div>

Hi guys, I recently made two PRs for python-igraph that contained a fair amount of docs. They were merged - thanks for that! - but don’t appear on the doc website because the html pages (for graph generation and analysi…

---

## [Implement pseudo-diameter computation #1223](https://igraph.discourse.group/t/implement-pseudo-diameter-computation-1223/394)

<div class="topic-metadata">

**Author:** [@kay-23](https://igraph.discourse.group/u/kay-23)\
**Replies:** 6\
**Last updated:** [1 August 2020 13:05 UTC](https://igraph.discourse.group/t/implement-pseudo-diameter-computation-1223/394 "2020-08-01T13:05:22Z")

</div>

Hey, So I would like to start working on the algorithm for implementing pseudo-diameter computation.

---

## [Why is igraph\_bool\_t an int and not a char?](https://igraph.discourse.group/t/why-is-igraph-bool-t-an-int-and-not-a-char/126)

<div class="topic-metadata">

**Author:** [@szhorvat](https://igraph.discourse.group/u/szhorvat)\
**Replies:** 9\
**Last updated:** [30 July 2020 07:10 UTC](https://igraph.discourse.group/t/why-is-igraph-bool-t-an-int-and-not-a-char/126 "2020-07-30T07:10:37Z")

</div>

I think I may have brought this up some years ago, but I do not remember the discussion. Why is igraph\_bool\_t defined as an int and not as a (space efficient) char?

---

## [Rigraph -\> python-igraph](https://igraph.discourse.group/t/rigraph-python-igraph/350)

<div class="topic-metadata">

**Author:** [@iosonofabio](https://igraph.discourse.group/u/iosonofabio)\
**Replies:** 8\
**Last updated:** [14 July 2020 08:37 UTC](https://igraph.discourse.group/t/rigraph-python-igraph/350 "2020-07-14T08:37:16Z")

</div>

hi guys, There are a few issues on the python-igraph repo that are basically asking for ports of functions already present in the R interface. That highlights the amazing work done by our folks on rigraph. Some examples…

---

## [Searchable docs](https://igraph.discourse.group/t/searchable-docs/328)

<div class="topic-metadata">

**Author:** [@iosonofabio](https://igraph.discourse.group/u/iosonofabio)\
**Replies:** 17\
**Last updated:** [12 July 2020 22:47 UTC](https://igraph.discourse.group/t/searchable-docs/328 "2020-07-12T22:47:42Z")

</div>

hi guys, So here’s the hardest thing for me when I started using igraph: I couldn’t find online, searchable docs. So I ended up (still do, ahem!) downloading the PDF every time because at least I can Ctrl+F the functio…

---

## [Special enums that are meant for Boolean contexts?](https://igraph.discourse.group/t/special-enums-that-are-meant-for-boolean-contexts/333)

<div class="topic-metadata">

**Author:** [@szhorvat](https://igraph.discourse.group/u/szhorvat)\
**Replies:** 1\
**Last updated:** [8 July 2020 15:50 UTC](https://igraph.discourse.group/t/special-enums-that-are-meant-for-boolean-contexts/333 "2020-07-08T15:50:08Z")

</div>

I am looking at the three enum types starting here: typedef enum { IGRAPH\_UNDIRECTED = 0, IGRAPH\_DIRECTED = 1 } igraph\_i\_directed\_t; typedef enum { IGRAPH\_NO\_LOOPS = 0, IGRAPH\_LOOPS = 1 } igraph\_i\_loops\_t; typedef e…

---

## [Data structure type usage and visibility](https://igraph.discourse.group/t/data-structure-type-usage-and-visibility/316)

<div class="topic-metadata">

**Author:** [@vtraag](https://igraph.discourse.group/u/vtraag)\
**Replies:** 8\
**Last updated:** [8 July 2020 07:34 UTC](https://igraph.discourse.group/t/data-structure-type-usage-and-visibility/316 "2020-07-08T07:34:11Z")

</div>

There is a type called igraph\_array3\_t, but it does not seem to be used anywhere. Is there still any use for it? It is only referenced in a test file, and nowhere else in the codebase. It is mentioned in the documentatio…

---

## [PYTHON versions on appveyor?](https://igraph.discourse.group/t/python-versions-on-appveyor/304)

<div class="topic-metadata">

**Author:** [@iosonofabio](https://igraph.discourse.group/u/iosonofabio)\
**Replies:** 12\
**Last updated:** [2 July 2020 10:10 UTC](https://igraph.discourse.group/t/python-versions-on-appveyor/304 "2020-07-02T10:10:55Z")

</div>

Hi guys, esp @ntamas we mentioned earlier that we should stop having a gazillion CI runs on AppVeyor since different Python versions are unrelated to the C interface anyway. Is that still our intention? Thx Fabio

---

## [Igraph\_edge and from/to swapping](https://igraph.discourse.group/t/igraph-edge-and-from-to-swapping/310)

<div class="topic-metadata">

**Author:** [@iosonofabio](https://igraph.discourse.group/u/iosonofabio)\
**Replies:** 7\
**Last updated:** [26 June 2020 10:50 UTC](https://igraph.discourse.group/t/igraph-edge-and-from-to-swapping/310 "2020-06-26T10:50:42Z")

</div>

Here the current code for igraph\_edge (as in PR #1418 - https://github.com/igraph/igraph/pull/1418, the develop version is equivalent but a little different on the eye): int igraph\_edge(const igraph\_t \*graph, igraph\_int…

---

## [Who should clean up vector\_ptr out-argument in case of interruption or error?](https://igraph.discourse.group/t/who-should-clean-up-vector-ptr-out-argument-in-case-of-interruption-or-error/153)

<div class="topic-metadata">

**Author:** [@szhorvat](https://igraph.discourse.group/u/szhorvat)\
**Replies:** 3\
**Last updated:** [11 June 2020 09:12 UTC](https://igraph.discourse.group/t/who-should-clean-up-vector-ptr-out-argument-in-case-of-interruption-or-error/153 "2020-06-11T09:12:46Z")

</div>

I found a piece of code which surprised me. I thought it’s a good idea to start a post on it to make sure we are all on the same page. If a function takes an output argument that is a vector, it will require an initiali…

---

## [Shortest path tree rooted at given vertex (weighted, undirected)](https://igraph.discourse.group/t/shortest-path-tree-rooted-at-given-vertex-weighted-undirected/286)

<div class="topic-metadata">

**Author:** [@iosonofabio](https://igraph.discourse.group/u/iosonofabio)\
**Replies:** 6\
**Last updated:** [10 June 2020 08:52 UTC](https://igraph.discourse.group/t/shortest-path-tree-rooted-at-given-vertex-weighted-undirected/286 "2020-06-10T08:52:09Z")

</div>

Do we have anything like that? All I can find is the minimum spanning tree function, which roots it wherever it wants. I need this for the minimum cycle basis PR. Thank you!

---

## [Magic IGRAPH\_CHECK](https://igraph.discourse.group/t/magic-igraph-check/274)

<div class="topic-metadata">

**Author:** [@iosonofabio](https://igraph.discourse.group/u/iosonofabio)\
**Replies:** 2\
**Last updated:** [8 June 2020 22:25 UTC](https://igraph.discourse.group/t/magic-igraph-check/274 "2020-06-08T22:25:31Z")

</div>

What about all function calls within igraph get automatically wrapped in IGRAPH\_CHECK by the compiler/preprocessor if they define a variable: int err\_code ? I’m a little unsure how to get it done in practice but we co…

---

## [Linking dependencies statically](https://igraph.discourse.group/t/linking-dependencies-statically/260)

<div class="topic-metadata">

**Author:** [@szhorvat](https://igraph.discourse.group/u/szhorvat)\
**Replies:** 1\
**Last updated:** [3 June 2020 11:54 UTC](https://igraph.discourse.group/t/linking-dependencies-statically/260 "2020-06-03T11:54:55Z")

</div>

Has anyone managed to compile igraph into a shared library, and link dependencies statically? This has been a problem for me on Windows when using MSYS2. Normally, anything compiled with MSYS2’s MinGW will depend on lib…

---

## [Dropping vendored libraries from the igraph source tree?](https://igraph.discourse.group/t/dropping-vendored-libraries-from-the-igraph-source-tree/240)

<div class="topic-metadata">

**Author:** [@tamas](https://igraph.discourse.group/u/tamas)\
**Replies:** 5\
**Last updated:** [29 May 2020 10:40 UTC](https://igraph.discourse.group/t/dropping-vendored-libraries-from-the-igraph-source-tree/240 "2020-05-29T10:40:29Z")

</div>

I would like to know how would the igraph community feel about dropping vendored library dependencies from the igraph source tree. Right now igraph depends on lots of third-party libraries, some of which are essential (…

---

## [A proposal for API stability: marking functions as experimental](https://igraph.discourse.group/t/a-proposal-for-api-stability-marking-functions-as-experimental/248)

<div class="topic-metadata">

**Author:** [@szhorvat](https://igraph.discourse.group/u/szhorvat)\
**Replies:** 2\
**Last updated:** [27 May 2020 14:37 UTC](https://igraph.discourse.group/t/a-proposal-for-api-stability-marking-functions-as-experimental/248 "2020-05-27T14:37:46Z")

</div>

Here’s an idea inspired by how Mathematica has extended its API recently. Getting the API right the first time for some new functionality area (or even a single function) is hard. If you do it too quickly, it’ll probabl…

---

## [Appveyor currently broken](https://igraph.discourse.group/t/appveyor-currently-broken/245)

<div class="topic-metadata">

**Author:** [@szhorvat](https://igraph.discourse.group/u/szhorvat)\
**Replies:** 4\
**Last updated:** [26 May 2020 10:16 UTC](https://igraph.discourse.group/t/appveyor-currently-broken/245 "2020-05-26T10:16:10Z")

</div>

Just in case any of you were wondering (like I was) why the Appveyour builds are currently failing, it’s this: It’s a problem with MSYS2. We need to wait until Appveyor updates the pre-installed MSYS2 they provide.

---

## [Stop subgraph isomorphism after X matches](https://igraph.discourse.group/t/stop-subgraph-isomorphism-after-x-matches/185)

<div class="topic-metadata">

**Author:** [@steve](https://igraph.discourse.group/u/steve)\
**Replies:** 4\
**Last updated:** [23 May 2020 04:24 UTC](https://igraph.discourse.group/t/stop-subgraph-isomorphism-after-x-matches/185 "2020-05-23T04:24:30Z")

</div>

As far as I know, the python interface does not have a way to stop the algorithm (get\_subisomorphisms\_vf2) after finding a certain number of matches. Could this be added as a new option? It would be a useful as isomorphi…

---

## [What is the plan with lsap.c?](https://igraph.discourse.group/t/what-is-the-plan-with-lsap-c/133)

<div class="topic-metadata">

**Author:** [@szhorvat](https://igraph.discourse.group/u/szhorvat)\
**Replies:** 3\
**Last updated:** [22 May 2020 13:29 UTC](https://igraph.discourse.group/t/what-is-the-plan-with-lsap-c/133 "2020-05-22T13:29:59Z")

</div>

@Gabor What was the plan with lsap.c and igraph\_solve\_lsap? Is it used for match\_vertices in the R interface? Is this equivalent to igraph\_maximum\_bipartite\_matching? I am not very familiar with the topic.

---

## [ABI compatibility](https://igraph.discourse.group/t/abi-compatibility/215)

<div class="topic-metadata">

**Author:** [@szhorvat](https://igraph.discourse.group/u/szhorvat)\
**Replies:** 6\
**Last updated:** [14 May 2020 14:28 UTC](https://igraph.discourse.group/t/abi-compatibility/215 "2020-05-14T14:28:44Z")

</div>

We agreed that we maintain at least backward API compatibility in the 0.8.x series. What about ABI compatibility? Consider this: Simply adding a new error code technically breaks ABI compatibility, even if other codes…

[Previous page](https://igraph.discourse.group/c/development/9.md?page=1)

[Next page](https://igraph.discourse.group/c/development/9.md?page=3)
