chore: Adapt handling of optional parameters to interface definition changes in the C core#1567
chore: Adapt handling of optional parameters to interface definition changes in the C core#1567
Conversation
Current Aviator status
This PR was merged manually (without Aviator). Merging manually can negatively impact the performance of the queue. Consider using Aviator next time.
See the real-time status of this PR on the
Aviator webapp.
Use the Aviator Chrome Extension
to see the status of your PR within GitHub.
|
I was wrong, this needed to be fixed in the yaml interface file, and is now fixed. I think this is good to go. Since this is a big change, there is some risk and revdepchecks are in order. There are no functional changes, but there may be bugs. |
|
The C side PR was merged, which means that this also needs to be merged. It is now updated to what is likely to become C/igraph 0.10.14. I'd like to have this merged soon as it is a blocker for further improvements I want to make. Thus, merge #1568, then merge this, then ping me. |
|
CI/CD is failing here, https://github.com/igraph/rigraph/actions/runs/11681694081/job/32527681296?pr=1567#step:9:184 : Haven't looked closer, but is this anticipated? |
5d7abb4 to
34bcf0c
Compare
|
I stacked and will review later today. |
34bcf0c to
2bce24f
Compare
|
C core now updated to the very latest. This is basically at the 0.10.15 C release. |
a73a1ca to
26f0dfa
Compare
c1d0791 to
305bc33
Compare
Somehow I missed this comment. Yes, this is correct. I still suggest including this in the release, since it's not possible to pick up the latest C core fixes without it. IMO splitting it up is not the best use of time when we are resource-constrained. |
|
There now is a route towards merging this and the other open PRs. For branches that start with I have started a branch with the next 20 commits: https://github.com/igraph/rigraph/compare/each-vendor . The proposed process is now:
Once we're on par with the C core, I'll implement a process that vendors commits as they come, one by one. CC @maelle @schochastics . |
32fcd95 to
0fad193
Compare
|
Making progress, already using two commits from this PR by necessity: main...refs/heads/each-vendor . |
|
We're almost on par with the current C core, a little glitch with the plfit update: igraph/igraph@2cdc20a#r150944398 . Do we plan a v0.10.16 release for the C core? |
0fad193 to
67e37ff
Compare
|
@krlmlr The rebase is done, and the target branch in GitHub is changed. I hope I didn't mess up anything. |
|
Why are tests not running if the target branch is not |
|
Good question. I only rarely use stacked PRs like this. We can retarget after applying the vendoring branch. Do the tests work for you locally? |
|
Yes, I still have some trouble running the full check, including examples, in the same way as on CI, so I can't quite try that yet. What I mean is that I'm not sure how to run the full check even on |
|
Thanks, this seems good enough for now. |
cecf2ff to
094796d
Compare
ff0b313 to
fb5a498
Compare
|
The mainline is now in sync with igraph/C. With the new history, are there now commits that you would group together? Ideally, the tests should be representative of the health of the code -- no need to run examples etc. typically. |
|
I can't find the UI to retarget the PR, this is now good to go to the main branch. |
|
I did the retargeting just now. |
I'm sorry about this being such a mess. I'm thinking the whole thing might as well be squashed, as there's little value in keeping these commits separate. The changes I was making are not independent. E.g. removing some of these null checks is only possible if we use |
|
Thanks, great! This PR is really nice now. My goal is to have the mainline bisect-able -- each intermediate commit should pass checks. In case we later see that this commit has created a regression, we can still split it. The PR would now be splittable, but much less so when it was intermingled with all the changes in the C core. There's no need to invest up front. The only reason to do so is to learn more about the changes now, I trust you there. New changes in the C core should now also be imported automatically, commit by commit. I'll see to that. And we have a way to deal with a backlog of changes, just like that we had before today. We're in good shape! |
…rated code and remove support for deprecated array3 type
…d missing IGRAPH_R_CHECK error checks
These checks are added automatically by Stimulus for OPTIONAL parameters
… widest path functions This parameter is not optional in C, but it still needs a default in R to signify that weights should be taken from attributes.
fb5a498 to
52cc223
Compare

This PR contains two changes:
Both PRs should be merged at the same time.
There is some duplicate NULL-check ugliness that is not harmful, but should be cleaned up. I think this needs to be fixed directly in Stimulus. Can you help with this @Antonov548 ? Example:
(Rf_isNull(weights) ? 0 : (Rf_isNull(weights) ? NULL : &c_weights))I'm marking this as draft so it doesn't get accidentally merged before we all agree, but from my side it's good to go.