-
Notifications
You must be signed in to change notification settings - Fork 15
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
New behavior of igraph::disjoint_union
#271
Comments
I've moved this to a new issue. I am actually not sure whether this is a problem on our side or on the side of igraph. One and a half years ago, I spotted an issue in how What we have to do on our side now: Check whether we need to adjust our code to be compatible with igraph's fix - or whether there is a problem in igraph's fix that we need to report to igraph again. |
I looked a little bit deeper into this issue:
$artifact.type
$artifact.type[[1]]
[1] "Mail" "Mail"
$artifact.type[[2]]
[1] "Mail" "Mail"
$artifact.type[[3]]
[1] "Mail" "Mail"
$artifact.type[[4]]
[1] "Mail" "Mail" vs. $artifact.type
[1] "Feature" "Feature" "Feature" "Feature" "Feature" The question now is: Why do we have different data structures for the artifact type for the different networks? The first one (i.e., the list) originates from the author network, while the second one (i.e., the character vector) originates from the artifact network. @maxloeffler Could you please investigate why we have different data structures for |
@maxloeffler I forgot about mentioning one additional check in our meeting: Could you please also check what happens in our test suite when you comment out the changes of this commit: a953555 With the new igraph version 2.1.1, the workaround introduced in that commit should not be necessary any more (at least, I'd hope so). However, even if it is not necessary any more, let's keep the workaround for a while not to abruptly cease coronet support of previous igraph versions. |
Reverting the mentioned commit leads to an additional 159 tests failing, so I assume it is still necessary. Also, I realized that in order to patch around in igraphs code of |
Damn. Did you run it with the edge-attribute-handling fix that solves the list vs. character vector problem? If so, that many tests failing is in stark contrast to my expectations, because the fix of igraph should make the mentioned commit needless. Could you please dive deeper into what's the problem in the 159 failing tests? It would be good to know whether there are similar list vs. vector situations that we did not come across yet, or whether something else is completely broken. Thanks! |
It depends. If it is just R code in a function that is directly executed by us, you could try to just redefine the entire function and call your function instead of the one from the package. If it is nested within some other functions or interacts with some non-public functions, than you might be right that recompiling could be necessary. But lets first deal with the edge attributes before moving on to new problems... |
Okay, seems like the 159 was fake news. I must have had some other change effect the outcome without my knowledge. Reverting the patch of a953555 does only raise one additional error. |
Regarding the edge attributes sometimes being of list type and other times being of character type, I found that calling |
I'm afraid you are right. This would involve numerous tests to be changed and checks to be adjusted. But there is one part I am not sure about:
Really? This only would happen if the attributes are vectors of multiple length already beforehand. If there is only one value, then it should be combined into a vector instead of a list. So, in general, we should check for each edge attribute (there is a limited number of them) whether this problem can occur at all. And if so, it might be necessary to wrap exactly these attributes into lists. |
$artifact.type
$artifact.type[[1]]
[1] "Mail" "Mail"
$artifact.type[[2]]
[1] "Mail" "Mail"
$artifact.type[[3]]
[1] "Mail" "Mail"
$artifact.type[[4]]
[1] "Mail" "Mail"
|
The following comment has been posted by @maxloeffler in #260:
Unfortunately, somewhat about their new version breaks in our usage of
igraph::disjoint_union
(which worked prior to updating igraph). I researched a bit and found that the breaking change was introduced 4 months ago in this commit. I have not yet figured out a way to fix that issue.Concrete error description
Error Message:
When breaking the variables are instanciated as follows:
Originally posted by @maxloeffler in #260 (comment)
The text was updated successfully, but these errors were encountered: