A reliable idiomatic wrapper for the C library `very_nauty` [$400]
A reliable idiomatic very_nauty wrapper [$400]
The JuliaGraphs/VNGraphs.jl package already exists and provides a simple low-level wrapper for the C library. A lot of this work probably will not be directly in the Graphs.jl repository.
- [ ] Fast conversion and/or views between Graphs.jl types and the C structures of very_nauty (slow converters already exist for simple graphs)
- [ ] Complete Graph API support for the VNGraph types (so that VNGraph types can be used in all already existing Graph.jl algorithms that do not peek behind the API)
- [ ] use GraphsInterfaceChecker.jl in the test suite
- [ ] Dispatch from operations defined in Graphs/GraphsMatching/GraphsOptim to very_nauty implementation. For instance if there is a pre-existing
Graphs.some_interesting_property(::AbstractGraph)there should now be a new method defined in VNGraphssome_interesting_property(g::AbstractGraph, ::VNAlgorithm)that dispatches to the C implementation. It should convert thegargument to VNGraph if necessary. - [ ] If there is an algorithm defined in very_nauty that does not exist yet in Graphs.jl, it should be declared in Graphs.jl (just a function with docs but no methods), together with an error hint that VNGraphs is necessary.
- [ ] Proper tests and documentation.
- [ ] PRs on this topic have to be submitted with clean git histories and well compartmentalized for ease of review.
Required skills: familiarity with the Graphs.jl API and understanding of the Julia-C interface
Reviewer: any Graphs.jl member with merge rights
Duration: 3 months
Payout procedure:
The Funding for these bounties comes from the National Science Foundation and from the NSF Center for Quantum Networks. The payouts are managed by the NumFOCUS foundation and processed in bulk once every two months. If you live in a country in which NumFOCUS can make payments, you can participate in this bounty program.
Click here for more details about the bug bounty program.
Bug bounty logistic details (click to expand)
To claim exclusive time to work on this bounty either post a comment here or message [email protected] with:
- your name
- github username
- (optional) a brief list of previous pertinent projects you have engaged in
If you want to, you can work on this project without making a claim, however claims are encouraged to give you and other contributors peace of mind. Whoever has made a claim takes precedence when solutions are considered.
You can always propose your own funded project, if you would like to contribute something of value that is not yet covered by an official bounty.
Can I be assigned in both open issues?
No, let's start only with one, to make sure this is a good fit. For whichever issue you want to start with, could you first list a quick description of your previous experience with required tools (C, julia, connecting the two, Graphs.jl, etc)?
Is this issue still open. I wanted to try this
Thanks for your interest! It is still open. Could you share a bit about your background, have you worked with Julia and with C before? Have you worked on Graph theory more broadly?
I’ve done coursework in C language as well as in graph theory, though I haven’t yet contributed to open source projects or created independent projects in those areas. I don’t have prior experience with Julia either.
I recently completed my GSoC project with DeepForest (under NumFOCUS), and while exploring other NumFOCUS-related projects, I came across this one and found it interesting. I was also looking for gigs and saw that this project had a bounty on it, which made me want to try for the bounty. That’s how I came here.
@naxatra2 , apologies, I thought I had responded. Given your lack of experience with Julia, I would like to go through some onboarding before exclusively assigning the bounty to you. For instance, could you choose whichever of the TODO items in the bounty description seems easiest and submit a PR for it? I would be happy to help with first steps and polish, etc. Once such an initial PR is merged, demonstrating your familiarity with the tools and the language, I would be happy to assign the bounty exclusively to you.
I intend to tackle this. I see I was just invited to join the org, just about now, though. I suppose it is better if I postpone joining the org until later.
Hi, @nsajko ! The invite was because of your message on the Graphs channel on slack about the libraries you are setting up -- you can go ahead and accept that invite if you would like, no need to wait.
As for tackling this bounty, it is free for the taking at the moment.