GSoC 2018 Application
Olly Betts
olly at survex.com
Wed Feb 14 21:07:30 GMT 2018
On Mon, Feb 12, 2018 at 08:32:59PM -0500, Mingqiang Liang wrote:
> I am already very familiar with Go, I’d like to take “Implement
> Binding for Go” as my GSoC project, which will make me get more
> familiar with SWIG and Xapian. I don’t think I need help at Go side,
> but I may need some instruction about SWIG and Xapian (such as set up
> a Xapian development environment and write an APP to verify the
> binding actually works, etc).
>
> What I am supposed to do next step?
The best place to start is to work through the guide we've put together:
https://trac.xapian.org/wiki/GSoC%20Guide
This will take you through cloning and building the source code, and
help you to start getting familiar with modifying it.
A higher priority than writing an app is a set of automated tests of the
wrapped API. That way we can be confident that the wrapped API works,
and that we'll know if a change to the API or to SWIG breaks the wrapped
API.
You also sent me a private mail (please don't mail mentors privately
- open source discussion should be public by default, and it actually
puts you at a disadvantage in GSoC as other mentors or org admins
won't take such interactions into account when reviewing proposals)
where you also asked:
> There is already a POC implementation at
> https://github.com/mtibeica/xapiango/blob/master/xapian.go , is it
> already works with Xapian and only need some SWIG customizing to make
> the generated files meet Go's name convention?
The existing work is just a very simple proof of concept - pretty much
the minimum required to get a Go API. There's a significant amount to
do to make it a nice wrapper which supports all of the API. Much more
than just a bit of renaming.
Exactly what needs customising varies a bit between the bindings, but
some things which typically need special treatment are iterators,
subclassable functors, and exceptions.
But you should review the Go API produced with a critical eye and try
to identify features that aren't getting wrapped in a way which is
natural to a Go programmer.
Cheers,
Olly
More information about the Xapian-devel
mailing list