[Xapian-tickets] [Xapian] #807: ​PyPI package of python bindings

Xapian nobody at xapian.org
Sat Jan 23 13:37:53 GMT 2021


#807: ​PyPI package of python bindings
--------------------------------------+------------------------------------
 Reporter:  Abhilash Raj              |             Owner:  Richard Boulton
     Type:  enhancement               |            Status:  new
 Priority:  normal                    |         Milestone:
Component:  Xapian-bindings (Python)  |           Version:
 Severity:  normal                    |        Resolution:
 Keywords:                            |        Blocked By:
 Blocking:                            |  Operating System:  All
--------------------------------------+------------------------------------
Comment (by James Aylett):

 From a quick look, `xapian-bindings` claims to detect -core then download
 the relevant -bindings release and installs from that. I still think a
 pypi package which doesn't have to download things is a good idea, which
 presents us with three options:

 1. Bundle -core and -bindings against each versioned release.
 2. Bundle only -bindings, and force people to match version with whatever
 -core they've installed.
 3. Bundle -core and -bindings against each versioned release, but build &
 install -core only if there isn't one already installed which -bindings
 can work against.

 1 seems to be the most useful. 3 sounds like a pain, and fragile (and hard
 to run comprehensive CI against). 2 has marginal advantages over the
 existing `xapian-bindings` in that you can download the package and
 install later without it having to download anything more; the downside is
 that you have to match it to your existing -core, so if that gets upgraded
 in the meantime you're stuck anyway.

 So I think we should only consider 1, an official Xapian pypi package
 which contains -core and -bindings and so you can just do `pip install
 xapian` on any system we support. That could particularly be useful for
 minimal docker bases, where xapian-core is unlikely to be available by
 default.

 There are probably three stages to this project, with value at each level:

 1. Add make rules and the setuptools gubbins to build a working "any"
 wheel that contains the -core and -bindings source (including CI)
 2. Register a pypi package and get this into our release process
 3. Get binary wheels working, and perhaps use our existing CI
 infrastructure to build them for common platforms (so the package would
 contain a pre-built binary of -core and the python bindings library, plus
 the other bits of the package)

 I've updated the GSoC project to point here.
-- 
Ticket URL: <https://trac.xapian.org/ticket/807#comment:3>
Xapian <https://xapian.org/>
Xapian


More information about the Xapian-tickets mailing list