[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