Commit graph

542 commits

Author SHA1 Message Date
David Bremner
3a42abb456 bindings/python-cffi: copy version file into bindings dir
Attempt to avoid breaking "pip install ."

As far as I can tell, we need to have a copy (not just a relative
symlink) of the version file.
2020-07-03 06:38:55 -03:00
Floris Bruynooghe
81057164cd python-cffi: read version from notmuch version file
This keeps it in sync with the main notmuch version which is less
confusing to users.
2020-06-19 07:01:13 -03:00
David Bremner
cda6e4d104 version: update to 0.30~rc2 2020-06-16 08:29:39 -03:00
Floris Bruynooghe
776a54a0e4 Support aborting the atomic context
Since it is possible to use an atomic context to abort a number of
changes support this usage.  Because the only way to actually abort
the transaction is to close the database this must also do so.

Amended by db: Note the limitation requiring close is a limitation of
the underlying notmuch API, which should be fixed in a future notmuch
release.
2020-06-16 08:17:39 -03:00
Floris Bruynooghe
2d895a0119 Make messages returned by Thread objects owned
This reverses the logic of StandaloneMessage to instead create a
OwnedMessage.  Only the Thread class allows retrieving messages more
then once so it can explicitly create such messages.

The added test fails with SIGABRT without the fix for the message
re-use in threads being present.
2020-06-16 08:02:02 -03:00
Anton Khirnov
1317579079 python/notmuch2: do not destroy messages owned by a query
Any messages retrieved from a query - either directly via
search_messages() or indirectly via thread objects - are owned by that
query. Retrieving the same message (i.e. corresponding to the same
message ID / database object) several times will always yield the same
C object.

The caller is allowed to destroy message objects owned by a query before
the query itself - which can save memory for long-lived queries.
However, that message must then never be retrieved again from that
query.

The python-notmuch2 bindings will currently destroy every message object
in Message._destroy(), which will lead to an invalid free if the same
message is then retrieved again. E.g. the following python program leads
to libtalloc abort()ing:

import notmuch2
db   = notmuch2.Database(mode = notmuch2.Database.MODE.READ_ONLY)
t    = next(db.threads('*'))
msgs = list(zip(t.toplevel(), t.toplevel()))
msgs = list(zip(t.toplevel(), t.toplevel()))

Fix this issue by creating a subclass of Message, which is used for
"standalone" message which have to be freed by the caller. Message class
is then used only for messages descended from a query, which do not need
to be freed by the caller.
2020-06-16 08:02:02 -03:00
Floris Bruynooghe
1bca41698a python config access: fix style and KeyError bug
This fixes some minor style/pep8 things and adds tests for the new
config support.  Also fixes a bug where KeyError was never raised
on a missing key.
2020-06-15 21:50:03 -03:00
Anton Khirnov
5a58754841 python/notmuch2: add bindings for the database config strings 2020-06-15 21:50:03 -03:00
Floris Bruynooghe
b7e3a347ac Update tox.ini for python3.8 and fix pypy3.6
Python 3.8 has been released for a while now, make sure we keep
supporting it correctly.

PyPy 3.6 wasn not configured correctly.
2020-06-15 11:25:39 -03:00
Floris Bruynooghe
a00f3a1f7a Add missing set methods to tagsets
Even though we use collections.abc.Set which implements all these
methods under their operator names, the actual named variations of
these methods are shockingly missing.  So let's add them manually.
2020-06-15 07:14:11 -03:00
David Bremner
3bb546b30f version: bump to 0.30~rc1 2020-06-06 08:02:16 -03:00
David Bremner
dfd092e95d version: bump to 0.30~rc0 2020-06-01 21:00:04 -03:00
Daniel Kahn Gillmor
018ad3703b Drop deprecated/unused crypto.gpg_path
crypto.gpg_path was only used when we built against gmime versions
before 3.0.  Since we now depend on gmime 3.0.3 or later, it is
meaningless.

The removal of the field from the _notmuch_config struct would be an
ABI change if that struct were externally exposed, but it is not, so
it's safe to unilaterally remove it.

Signed-off-by: Daniel Kahn Gillmor <dkg@fifthhorseman.net>
2020-02-19 08:17:49 -04:00
Daniel Kahn Gillmor
93cc4b99df python/notmuch2: fix typo for "destroyed"
Another fix to the docstrings, this time for the English part of the
docstrings, not the Python class name.  No functional changes here.

Signed-off-by: Daniel Kahn Gillmor <dkg@fifthhorseman.net>
2019-12-24 07:13:09 +09:00
Daniel Kahn Gillmor
34c5233894 python/notmuch2: fix typo for ObjectDestroyedError
There is no functional change here, just a fix to a typo in the
docstrings.

Signed-off-by: Daniel Kahn Gillmor <dkg@fifthhorseman.net>
2019-12-24 07:12:51 +09:00
David Bremner
3185830e3a python-cffi: use shutil.which
I was supposed to amend the original patch that added this function,
but somehow I botched that. The original version runs, so make an
extra commit for the tidying.
2019-12-03 08:12:30 -04:00
Floris Bruynooghe
1e072204cd Move from _add_message to _index_file API
This moves away from the deprecated notmuch_database_add_message API
and instead uses the notmuch_database_index_file API.  This means
instroducing a class to manage the index options and bumping the
library version requirement to 5.1.
2019-12-03 08:12:30 -04:00
Floris Bruynooghe
e2df30f7a9 Rename package to notmuch2
This is based on a previous discussion on the list where this was more
or less seen as the least-bad option.
2019-12-03 08:12:30 -04:00
Floris Bruynooghe
a950aa2844 Show which notmuch command and version is being used
This add the notmuch version and absolute path of the binary used
in the pytest header.  This is nice when running the tests
interactively as you get confirmation you're testing the version you
thought you were testing.
2019-12-03 08:12:30 -04:00
David Bremner
46e9615621 build: optionally build python-cffi bindings
Put the build product (and tests) in a well known location so that we
can find them e.g. from the tests.
2019-12-03 08:12:30 -04:00
David Bremner
e8cb7c7f60 bindings/python-cffi: preserve environment for tests
We'll need this e.g. to pass PATH to the pytest tests

Based on the suggested approach in id:87d0eljggj.fsf@powell.devork.be
2019-12-03 08:12:30 -04:00
Floris Bruynooghe
83c2d15898 Introduce CFFI-based python bindings
This introduces CFFI-based Python3-only bindings.
The bindings aim at:
- Better performance on pypy
- Easier to use Python-C interface
- More "pythonic"
  - The API should not allow invalid operations
  - Use native object protocol where possible
- Memory safety; whatever you do from python, it should not coredump.
2019-12-03 08:12:30 -04:00
David Bremner
dc2b5a031b notmuch release 0.29.3-1 for unstable (sid) [dgit]
[dgit distro=debian no-split --quilt=linear]
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCAAdFiEEkiyHYXwaY0SiY6fqA0U5G1WqFSEFAl3eb60ACgkQA0U5G1Wq
 FSE1Ug//Wxc7AYeHc9ErjBOkK/oQjagGOI6cKsovHfyHDRqVULsDfGt/at7wBuS2
 7V1sfU5zttoNmltmamkao4T+f/dH70D5UJxWXu1vM0QDnKz+1U4g5jTGV9sDbqwA
 34XtewzZ4508GjmmhhCHLkwQN1zplI1phGfhkwDCWrWc5er8Yat9EroHvgJ2GYcA
 fvMe13hODPC4/R5jPyKHKERyFrcj5oeZPOAV6pnaNKq1qeNgOpKm1usldl73rqe5
 ehrqF5ZgMr7wVjrnK/9wV4x4FTUKTgjweLzwQ3pWkYj3tzDx5KBBM47IrIKwoLh1
 /IS4PY9znohi/Nyl8IScmIeDAVj6PYITj0lqaDCL8x0vTkuZ5f8sFiJORZcmderk
 CylvJUahr/shdV1YolBsh1TfavP4eKIz77MkfO77uTyZACPIyZF0iHlV+me8ixIJ
 IDi2BJ0Sp+pky6/211iJtbf43CUnXATfr3COraLtT/xEKfENA63lvJRL4y+6ahmr
 BrGNfUZTvnY1+K9ym8dm3wfLe49TThMM+zbkY+2b25puO6u7cIFXgjBhhIwC4rdY
 bCd3RewBngge8NzvHw//k5+fd4s7b2BfA/6rLGWlEm4g6eik2IALtDU9Qm3L1twS
 RVr1yLoXICoJNLX7hZlgaF3iv+LzMrWkyKgjaLKiZ8HYnDwKXJg=
 =qUN/
 -----END PGP SIGNATURE-----

Merge tag 'debian/0.29.3-1'

notmuch release 0.29.3-1 for unstable (sid) [dgit]

[dgit distro=debian no-split --quilt=linear]
2019-11-27 08:45:43 -04:00
David Bremner
3efa2ad72c version: bump to 0.29.3 2019-11-27 08:20:54 -04:00
Jakub Wilk
bb843f63fc python: make some docstrings raw
Fixes:

    notmuch/message.py:57: DeprecationWarning: invalid escape sequence \s
    notmuch/query.py:155: DeprecationWarning: invalid escape sequence \.
    notmuch/messages.py:89: DeprecationWarning: invalid escape sequence \s

with Python >= 3.6.
2019-11-20 21:08:15 -04:00
David Bremner
449e77761e bump version 2019-10-19 07:21:53 -03:00
David Bremner
f325bd599c version: bump to 0.29.1 2019-06-11 20:11:45 -03:00
David Bremner
b4fe304344 version: bump to 0.29 2019-06-07 06:46:30 -03:00
David Bremner
fd97ef8a64 version: bump to 0.29~rc1 2019-06-03 08:08:00 -03:00
David Bremner
a425a010c9 version: bump to 0.29~rc0 2019-05-31 08:11:12 -03:00
David Bremner
6682b4e686 Merge tag 0.28.4
No functionality changes merged, since the bug in question was already
fixed on master.
2019-05-05 16:38:51 -03:00
David Bremner
1235902ed2 version: bump to 0.28.4 2019-05-05 08:06:07 -03:00
Doan Tran Cong Danh
816633e636 python: support relative path in default database
From notmuch 0.28, notmuch support relative database path in
notmuch-config(1), but python binding haven't taught this yet.

afew denied to work with a perfectly fine notmuch-config due to this.
2019-04-24 07:10:53 -03:00
hydrargyrum
7fe3062cf2 python: fix set_sort/add_tag_exclude restype/argtypes typos 2019-03-31 11:59:46 -03:00
David Bremner
71eaa19350 Merge branch 'release'
Changes from 0.28.3
2019-03-06 08:53:26 -04:00
David Bremner
1a4a1fe9c5 bump version to 0.28.3 2019-03-05 21:46:41 -04:00
Vincent A
872bd134e3 python: fix get_property error when property doesn't exist
In Python bindings, Message.get_property fails with an AttributeError when trying to fetch a property that doesn't exist.

From d712832ba982085975c27b23bb502af82e638b39 Mon Sep 17 00:00:00 2001
From: hydrargyrum <dev@indigo.re>
Date: Sun, 6 Jan 2019 16:08:55 +0100
Subject: [PATCH] python: fix get_property error when property doesn't exist
2019-02-21 07:17:18 -04:00
David Bremner
af0ff260cc bump version 2019-02-17 07:32:59 -04:00
Jani Nikula
0888639489 python: fix threads.__str__ automethod documentation
Indent the directive properly to attach it to Threads autoclass
documentation.

Fixes:

WARNING: don't know which module to import for autodocumenting
'__str__' (try placing a "module" or "currentmodule" directive in the
document, or giving an explicit module name)
2019-02-16 09:03:56 -04:00
Jani Nikula
528e5ba2c8 python: fix documentation title underline
Fix documentation build sphinx warning:

filesystem.rst:18: WARNING: Title underline too short.
2019-02-16 09:02:55 -04:00
Jani Nikula
510dc8c837 python: fix documentation build with python 3.7
The simplistic mocking in conf.py falls short on python 3.7. Just use
unittest.mock instead.

Fixes:

Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/sphinx/config.py", line 368, in eval_config_file
    execfile_(filename, namespace)
  File "/usr/lib/python3/dist-packages/sphinx/util/pycompat.py", line 150, in execfile_
    exec_(code, _globals)
  File "/path/to/notmuch/bindings/python/docs/source/conf.py", line 39, in <module>
    from notmuch import __VERSION__,__AUTHOR__
  File "/path/to/notmuch/bindings/python/notmuch/__init__.py", line 54, in <module>
    from .database import Database
  File "/path/to/notmuch/bindings/python/notmuch/database.py", line 25, in <module>
    from .globals import (
  File "/path/to/notmuch/bindings/python/notmuch/globals.py", line 48, in <module>
    class NotmuchDatabaseS(Structure):
TypeError: __mro_entries__ must return a tuple
2019-02-16 08:42:13 -04:00
David Bremner
4e746cf8f6 update version to 0.28.1 2019-02-01 08:06:38 -04:00
David Bremner
34e0782bf2 version: bump to 0.28 2018-10-12 20:18:14 -03:00
David Bremner
a5da8cd088 version: bump to 0.28~rc0 2018-10-03 20:17:54 -03:00
Vincent Breitmoser
5ae8ae13ba python: fix unchecked None access in get_property 2018-09-19 21:56:08 -03:00
David Bremner
b4303a1a72 version: bump to 0.27 2018-06-12 22:36:39 -03:00
David Bremner
98bdbae9f9 version: bump to 0.27~rc1 2018-05-31 08:17:12 -03:00
David Bremner
c6225a00f5 bump version to 0.27~rc0
Start the busywork for a new release
2018-05-26 09:11:49 -07:00
David Bremner
51f3a0786f bindings: clean extra file created by ruby extension build system
Noticed by dkg; this file seems to be created by building the debian
package, and perhaps by other distro package builds.
2018-05-14 22:18:18 -03:00
Thomas Schneider
b2e4778ea4 build: Allow user to specify ruby executable
This way, one can build for a different Ruby than $PATH/ruby
(e. g. different versions, or Ruby in other paths).

Signed-off-by: Thomas Schneider <qsx@chaotikum.eu>
2018-05-10 21:01:06 -03:00
Daniel Kahn Gillmor
c20a5eb805 move more http -> https
Correct URLs that have crept into the notmuch codebase with http://
when https:// is possible.

As part of this conversion, this changeset also indicates the current
preferred upstream URLs for both gmime and sup.  the new URLs are
https-enabled, the old ones are not.

This also fixes T310-emacs.sh, thanks to Bremner for catching it.
2018-05-03 20:59:20 -03:00
Ruben Pollan
5e05f00fe5 python: add bindings for notmuch_message_get_propert(y/ies)
Message.get_property (prop) returns a string with the value of the property and
Message.get_properties (prop, exact=False) yields key, value pairs
2018-05-02 20:16:11 -03:00
David Bremner
388edce0b7 Merge branch 'release'
minimal mset fix, for 0.26.2
2018-04-26 22:47:40 -03:00
David Bremner
ed04c07889 version: bump to 0.26.2 2018-04-26 22:28:45 -03:00
David Bremner
5d510221d1 Merge branch 'release' 2018-04-07 17:43:01 -03:00
David Bremner
ea690a44d1 version: bump to 0.26.1 2018-04-02 08:09:45 -03:00
Georg Faerber
c117306f2d Fix typos as found by codespell
Signed-off-by: Georg Faerber <georg@riseup.net>
2018-03-24 20:09:54 -03:00
David Bremner
a727e7d4d3 notmuch 0.26 release
-----BEGIN PGP SIGNATURE-----
 
 iQGzBAABCAAdFiEE3VS2dnyDRXKVCQCp8gKXHaSnniwFAlpUqBwACgkQ8gKXHaSn
 nixrpAv+NnjUvhw0yWLqkMMP88KW7xY/ecA/4KPa18m/ucfsJRVfEW6hDkhmFogc
 KYeGOYGcABIX72DIOtzI8EnW6vhnf1E5APeBeWNWBeTWAi9+uEP6L/TSdk1PQiNU
 BXUvtMsfCPesLT14+469xt5MEIiZeIFu4//RPgAtQputphe5KYFOOpGlLW0qY05O
 GW0rCMfwIH9sn8Z5oBgaMCsRzoQNPCRDqKeqIa1D9fkjdnUfxgdn9ENYHOdWi3yO
 fFiwwBk6bIvN5zUU78OKl2CgJeAiNrlMUUZMgMYVr82q7CzB4sZ9PNBhj67tb+Rv
 qt2hePqnuYBLzG6/pAn08nEHas+vNofs590KZBvu1gtqAmZTDKhH7lO/p/UHlmwk
 reOX5oOCkxXUxdqlRhmvXF5fer4ZOm069bOhVZULA+yWyDX1BVSmykcvDCxceL3r
 R9JsOTSp0B75Q5OEsQJ1pn5JG1IU9NrFJ3s1vFxRIgkeva1Y5hE3hy1p6uupl3zi
 0hFt2un4
 =OH4T
 -----END PGP SIGNATURE-----

Merge tag '0.26'

notmuch 0.26 release
2018-01-09 07:46:57 -04:00
David Bremner
461260c3c6 version: bump to 0.26 2018-01-09 07:15:16 -04:00
David Bremner
4cb1eeba83 version: bump to 0.26~rc2
Update debian version to follow.
2018-01-06 09:41:39 -04:00
Daniel Kahn Gillmor
54982e520c fix typos 2018-01-04 20:35:58 -04:00
David Bremner
ae07f6559e version: bump 0.26~rc1 2017-12-29 16:48:42 -04:00
David Bremner
cf02456411 version: bump to 0.26~rc0 2017-12-28 10:19:48 -04:00
David Bremner
9ced40228b python: remove obsolete debian directory
It is unlikely this still works since it has not been updated since
2010. The python packages for debian are now built by the top level
debian/ packaging.
2017-12-27 12:42:50 -04:00
Daniel Kahn Gillmor
6aec7a76b9 python: add decrypt_policy argument to Database.index_file()
We adopt a pythonic idiom here with an optional argument, rather than
exposing the user to the C indexopts object directly.

This now includes a simple test to ensure that the decrypt_policy
argument works as expected.
2017-12-24 09:47:35 -04:00
l-m-h@web.de
e0ac149955 python: Fix method name in docs
Fix a method rename in the docs that was overlooked in
3444c731d2.
2017-12-24 09:17:06 -04:00
l-m-h@web.de
3444c731d2 python: Rename get_config_list to get_configs
The old name has a bit of a feeling of hungarian notation.  Also many
generators in the core are named with the suffix "s" to indicate
iterables: dict.items, dict.keys for example.
2017-12-19 06:42:11 -04:00
l-m-h@web.de
e745857c4a python: turn get_config_list into a generator
This mimics the behaviour of the underlying C function more closely as
it also does not store all values in memory.
2017-12-19 06:40:47 -04:00
l-m-h@web.de
c536de3afb python: add default arg to get_config_list
It makes the function a little more intuitive to use and does not
diverge much from the original function signature.

Also an example is added to the docstring.
2017-12-19 06:39:32 -04:00
l-m-h@web.de
6c6b0f13ff python: add bindings to access config
The C functions notmuch_database_get_config,
notmuch_database_get_config_list and notmuch_database_set_config are
part of the official C bindings.  So there should also be some python
bindings for them.

Also they are the only way to access the named queries introduced in
b9bf3f44.

The interface of the python functions is designed to be close to the C
functions.
2017-12-19 06:36:30 -04:00
David Bremner
040c3236af Merge branch 'release'
Conflicts:
        NEWS

Add in NEWS from point release
2017-12-08 22:19:06 -04:00
David Bremner
ecb5668178 version: bump to 0.25.3 2017-12-08 20:47:25 -04:00
David Bremner
7ac96b149f Merge branch 'release'
Changes from 0.25.2 release
2017-11-05 20:25:54 -04:00
David Bremner
42871517c6 version: bump to 0.25.2 2017-11-05 19:59:30 -04:00
Florian Klink
91fe20cd90 python: open messages in binary mode
currently, notmuch's get_message_parts() opens the file in text mode and passes
the file object to email.message_from_file(fp). In case the email contains
UTF-8 characters, reading might fail inside email.parser with the following exception:

  File "/usr/lib/python3.6/site-packages/notmuch/message.py", line 591, in get_message_parts
    email_msg = email.message_from_binary_file(fp)
  File "/usr/lib/python3.6/email/__init__.py", line 62, in message_from_binary_file
    return BytesParser(*args, **kws).parse(fp)
  File "/usr/lib/python3.6/email/parser.py", line 110, in parse
    return self.parser.parse(fp, headersonly)
  File "/usr/lib/python3.6/email/parser.py", line 54, in parse
    data = fp.read(8192)
  File "/usr/lib/python3.6/codecs.py", line 321, in decode
    (result, consumed) = self._buffer_decode(data, self.errors, final)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xe4 in position 1865: invalid continuation byte

To fix this, read file in binary mode and pass to
email.message_from_binary_file(fp).

Unfortunately, Python 2 doesn't support
email.message_from_binary_file(fp), so keep using
email.message_from_file(fp) there.

Signed-off-by: Florian Klink <flokli@flokli.de>
2017-10-02 07:21:33 -03:00
Gaute Hope
227ecf4949 python: deprecated add_message calls index_file correctly and returns result
The deprecated Database.add_message now calls the new index_file with
correct number of arguments (without an extra `self`), and returns the
tuple from index_file - as it used to do before.

This change also adds a DeprecationWarning to the function.
2017-09-12 15:21:40 -03:00
David Bremner
4366895062 notmuch 0.25.1 release
-----BEGIN PGP SIGNATURE-----
 
 iQGzBAABCAAdFiEE3VS2dnyDRXKVCQCp8gKXHaSnniwFAlm3OCwACgkQ8gKXHaSn
 niz5Swv/bhm/cSBRoav7deonMPfAAqloeNSdCpcOksEvGFtn6PZMHPDLfQ0DORcb
 pHIfGnrIpGFKlOZ8zO4Q3ANhito7hCCaasn6k70Zhpu5KV+YMCKMABtnho1p3jKT
 elK/3tkvlcWFEgRBVbuLsTn/iYFz8kaukfRyh+BhlchJSifSZQDFaPnmxOCvOfNK
 Aipp7o/yAQGgiXUczISgceirOEruq3QePC9Bjbzj3UKa5D/UUqki37xlojl9dUC7
 eNmt/grittR4e0eU5ytKck5KlVwxirs9U3Hm9A8o9giWkk98lJYobLXpDFPQ8Ock
 7GGIMyP3DGBGTfn5mswKUdiEsuCgobH47y4RBd0jpSyTpFDSTD/BTYTiU/kSa8k4
 XNO9uS4+jrgUJ4rfrZYK1VNXfQ85L17zZCpgeGgV+XguVcLKwQEjQ945/wk32pVh
 03vdQX57myPLWeWVo5pIB0qzKeuEuaZ5b2m1QngHYUgROEm5PZnBGGHkgS50dNxp
 5156wSur
 =dTj5
 -----END PGP SIGNATURE-----

Merge tag '0.25.1'

notmuch 0.25.1 release (bugfix for emacs bug 28350)
2017-09-11 22:32:00 -03:00
David Bremner
0fa257cb74 version: bump to 0.25.1 2017-09-11 22:19:46 -03:00
Daniel Kahn Gillmor
b10ce6bc23 database: add n_d_index_file (deprecates n_d_add_message)
We need a way to pass parameters to the indexing functionality on the
first index, not just on reindexing.  The obvious place is in
notmuch_database_add_message.  But since modifying the argument list
would break both API and ABI, we needed a new name.

I considered notmuch_database_add_message_with_params(), but the
functionality we're talking about doesn't always add a message.  It
tries to index a specific file, possibly adding a message, but
possibly doing other things, like adding terms to an existing message,
or failing to deal with message objects entirely (e.g. because the
file didn't contain a message).

So i chose the function name notmuch_database_index_file.

I confess i'm a little concerned about confusing future notmuch
developers with the new name, since we already have a private
_notmuch_message_index_file function, and the two do rather different
things.  But i think the added clarity for people linking against the
future libnotmuch and the capacity for using index parameters makes
this a worthwhile tradeoff.  (that said, if anyone has another name
that they strongly prefer, i'd be happy to go with it)

This changeset also adjusts the tests so that we test whether the new,
preferred function returns bad values (since the deprecated function
just calls the new one).

We can keep the deprecated n_d_add_message function around as long as
we like, but at the next place where we're forced to break API or ABI
we can probably choose to drop the name relatively safely.

NOTE: there is probably more cleanup to do in the ruby and go bindings
to complete the deprecation directly.  I don't know those languages
well enough to attempt a fix; i don't know how to test them; and i
don't know the culture around those languages about API additions or
deprecations.
2017-08-23 07:38:37 -03:00
Daniel Kahn Gillmor
0155411e05 fix typo 2017-08-18 19:47:40 -03:00
Vladimir Panteleev
ca4688e103 Use rooted paths in .gitignore files
A leading / in paths in a .gitignore file matches the beginning of the
path, meaning that for patterns without slashes, git will match files
only in the current directory as opposed to in any subdirectory.

Prefix relevant paths with / in .gitignore files, to prevent
accidentally ignoring files in subdirectories and possibly slightly
improve the performance of "git status".
2017-08-18 19:42:35 -03:00
David Bremner
7a4c60e446 version: bump to 0.25 2017-07-25 07:21:29 -04:00
David Bremner
b8ccfe342d version: bump to 0.25~rc1 2017-07-18 07:04:29 -03:00
Daniel Kahn Gillmor
87bdfbc91f Fix orthography 2017-07-18 06:50:44 -03:00
David Bremner
694e443db5 version: bump version to 0.25~rc0 2017-07-16 08:01:42 -03:00
David Bremner
1ec634461e Merge branch 'release' 2017-06-01 07:54:38 -03:00
David Bremner
4fb08341a4 version: bump to 0.24.2 2017-06-01 07:13:00 -03:00
David Bremner
d877240f4e Merge branch 'release'
wildcard search fixes, plus release busywork
2017-03-25 11:51:03 -03:00
David Bremner
d9ec7e3483 version: bump to 0.24.1
The release is not yet finalized, but start the busywork needed.
2017-03-25 11:20:56 -03:00
David Bremner
a35040eec7 python: bump SOVERSION to 5
Otherwise hilarity ensues when the python bindings try to use the new
API against the old shared library.
2017-03-22 09:25:59 -03:00
David Bremner
3721bd45d7 lib: replace deprecated n_q_count_threads with status returning version
This function was deprecated in notmuch 0.21.  We re-use the name for
a status returning version, and deprecate the _st name.
2017-03-22 08:35:07 -03:00
David Bremner
5ce8e0b11b lib: replace deprecated n_q_count_messages with status returning version
This function was deprecated in notmuch 0.21.  We re-use the name for
a status returning version, and deprecate the _st name. One or two
remaining uses of the (removed) non-status returning version fixed at
the same time
2017-03-22 08:35:07 -03:00
David Bremner
86cbd215eb lib: replace deprecated n_q_search_messages with status returning version
This function was deprecated in notmuch 0.21.  We re-use the name for
a status returning version, and deprecate the _st name.
2017-03-22 08:35:07 -03:00
David Bremner
1e982de508 lib: replace n_query_search_threads with status returning version
This function was deprecated in notmuch 0.21. We finally remove the
deprecated API, and rename the status returning version to the simpler
name. The status returning is kept as a deprecated alias.
2017-03-22 08:28:09 -03:00
David Bremner
c0c5645538 Merge branch 'release'
final 0.24 release
2017-03-12 22:43:11 -03:00
David Bremner
339dfd4241 version: bump to 0.24 2017-03-12 22:08:54 -03:00
Tomi Ollila
35cdebdad0 fix out of tree build
In addition to use ${srcdir} and deliver ${NOTMUCH_SRCDIR} where needed,
source from ruby bindings had to be copied to the out-of-tree target
directory -- if the source files in source directory were referenced
in build and there were also built object files there, those could have
been considered as target files (and then not found when attempting
to create bindings/ruby/notmuch.so).
2017-03-12 09:17:29 -03:00
Gaute Hope
a39a1ee152 bindings/python: add bindings for notmuch_database_get_revision
Database.get_revision () returns a tuple with the current database
revision and the UUID string representing the database.
2017-03-09 10:20:50 -04:00
David Bremner
15f8fc78c8 version: bump version to 0.24~rc1 2017-03-08 08:04:42 -04:00
David Bremner
08c6731761 version: bump to 0.24~rc0 2017-03-05 19:30:21 -04:00
David Bremner
770d00a895 update version to 0.23.7 2017-02-28 20:49:24 -04:00
David Bremner
48253190ad version: bump to 0.23.6
python and debian bumped at the same time
2017-02-23 09:03:41 -04:00
David Bremner
186436a04c bump version to 0.23.5 2017-01-08 08:32:56 -04:00
David Bremner
4dde1e6774 version: update to 0.23.4 2016-12-24 17:52:11 +09:00
David Bremner
805ad03317 version: bump to 0.23.3 2016-11-24 20:29:18 -04:00
David Bremner
b88fe84bbc version: bump to 0.23.2 2016-11-16 21:53:07 -04:00
David Bremner
f053bb8bd9 version: bump to 0.23.1 2016-10-22 12:35:25 -03:00
David Bremner
3b760413c5 version: bump to 0.23 2016-10-03 22:40:22 -03:00
David Bremner
efd79aedf2 version: update to 0.23~rc1 2016-09-30 07:18:04 -03:00
David Bremner
76a1f46a44 version: bump to 0.23~rc0 2016-09-26 07:22:21 -03:00
David Bremner
07dff49630 Merge branch 'release'
hand fixed conflicts with NEWS
2016-09-08 22:18:37 -03:00
David Bremner
afef676793 version: bump to 0.22.2 2016-09-08 19:05:12 -03:00
David Bremner
b0d03fc5ba bindings: move go bindings to contrib
This signals two things, an intent to be more liberal about accepting
patches, and an intent to stop distributing the bindings if maintenance
doesn't pick up.
2016-09-03 20:13:08 -03:00
Jaime Velasco Juan
4bf82dea2d Fix typo in Message.maildir_flags_to_tags
It has been calling _tags_to_maildir_flags instead since the beginning,
2016-07-29 05:57:13 +09:00
David Bremner
92d8eae8f1 Merge branch 'release' 2016-07-19 09:03:19 -03:00
David Bremner
51816247d2 version: bump to 0.22 2016-07-19 06:33:37 -03:00
David Bremner
308b44290d version: bump to 0.21.1~rc0
Getting ready for the point release
2016-06-30 17:52:42 +02:00
Daniel Kahn Gillmor
6a833a6e83 Use https instead of http where possible
Many of the external links found in the notmuch source can be resolved
using https instead of http.  This changeset addresses as many as i
could find, without touching the e-mail corpus or expected outputs
found in tests.
2016-06-05 08:32:17 -03:00
Daniel Kahn Gillmor
9b9c265a25 NEWS, python: update pointer to online documentation
Currently, http://packages.python.org/notmuch/ goes through a series
of redirections and ends up pointing to readthedocs.  Since we're
using readthedocs directly anyway, just point to it directly.

readthedocs are also now sensibly using a separate domain
(readthedocs.io) for their hosted documentation as distinct from their
own domain (readthedocs.org), so use the correct tld.
2016-06-05 08:25:22 -03:00
Ludovic LANGE
7e6e23c36e ruby: add bindings for notmuch_database_get_all_tags
The Ruby bindings were missing a way to get all the tags of the
database. Now you should be able to access this with the public
instance method `all_tags` of your database object.

Example of use:
    notmuchdb = Notmuch::Database.new path, { :create => false,
    	:mode => Notmuch::MODE_READ_ONLY }

    my_tags = notmuchdb.all_tags

    my_tags.each { |tag|
      print tag
    }

    my_tags.destroy!

Amended by db: improve error reporting, add test
2016-05-19 08:02:43 -03:00
David Bremner
e6e395435d bump version and NEWS date for 0.22 release 2016-04-26 21:36:53 -03:00
David Bremner
0a58d534a5 version: bump to 0.22~rc1 2016-04-24 18:02:05 -03:00
David Bremner
73334f403c version: bump to 0.22~rc0 2016-04-16 08:44:39 -03:00
Jani Nikula
8a433aad99 bindings: drop build time message on missing ruby dependency
The usual make message on everything being up to date is:

	make: Nothing to be done for 'all'.

However, since

commit d038b93209
Author: David Bremner <david@tethera.net>
Date:   Mon Jun 1 09:08:59 2015 +0200

    build: integrate building ruby bindings into notmuch build process

if one doesn't have the ruby dependencies installed, the message has
been:

	Missing dependency, skipping ruby bindings

Restore the usual behaviour by dropping the message. It's redundant
during build anyway, since the configure script already outputs:

	Checking for ruby development files... No (skipping ruby bindings)
2016-04-16 08:26:40 -03:00
Justus Winter
bd68a862ae python: update the README
Signed-off-by: Justus Winter <justus@gnupg.org>
2016-03-14 20:29:08 +01:00
Daniel Kahn Gillmor
fa0bc2ef91 notmuch.Database.remove_message should raise exception on failure
The notmuch python bindings document that database.remove_message
should raise an exception when the message removal fails, but they
don't actually do it.
2016-02-11 20:41:54 +01:00
Justus Winter
a5c1536d9a python: cleanup imports
Drop unused imports, and avoid warning about unused imports when we
import something on behalf of another module.

Signed-off-by: Justus Winter <4winter@informatik.uni-hamburg.de>
2016-01-08 13:58:33 +01:00
Justus Winter
096c600b96 python: Remove {Filenames,Threads}.__len__
Remove the __len__ functions, as they exhaust the iterator, breaking
'list(x)'.

This is a follow-up to 8866a89e.

Signed-off-by: Justus Winter <4winter@informatik.uni-hamburg.de>
2016-01-08 13:58:33 +01:00
Justus Winter
e2ecf2b0eb python: update bindings for the new query search API
Use 'notmuch_query_search_{threads,messages}_st' instead of their
deprecated counterpart.

Signed-off-by: Justus Winter <4winter@informatik.uni-hamburg.de>
2016-01-08 13:58:33 +01:00
Justus Winter
9ed1eea8b6 python: add new errors
Add support for the new notmuch status codes UNSUPPORTED_OPERATION,
UPGRADE_REQUIRED, and PATH_ERROR.

Signed-off-by: Justus Winter <4winter@informatik.uni-hamburg.de>
2016-01-08 13:58:33 +01:00
Justus Winter
e3d34ef0af python: add missing import
Signed-off-by: Justus Winter <4winter@informatik.uni-hamburg.de>
2016-01-08 13:58:33 +01:00
Daniel Kahn Gillmor
87aa5aea56 python: fix argument for filenames_destroy 2016-01-08 12:37:38 +01:00
Daniel Kahn Gillmor
8881a61fe7 python: add notmuch.Database.status_string()
This gives some additional access to debugging information when using
the python bindings.

Signed-off-by: Justus Winter <4winter@informatik.uni-hamburg.de>
2015-12-11 17:05:32 +01:00
David Bremner
cd04880d38 version: bump to 0.21 2015-10-29 19:57:30 -03:00
David Bremner
246d540dbe version: bump to 0.21~rc3 2015-10-22 09:19:21 -03:00
David Bremner
34e620b91d version: bump to 0.21~rc2 2015-10-19 07:12:18 -03:00
David Bremner
627efac85e version: bump to 0.21~rc1 2015-10-15 08:24:26 -03:00
David Bremner
e8a828b30d ruby: use new query_search API
These changes should not be too surprising for users because the
routines were already potentially throwing exceptions.
2015-10-05 19:54:12 -03:00
David Bremner
c44db65669 python: update bindings for new count API
Note that any mismatches are not detected until runtime (if at all)
with the python bindings, so tests are crucial
2015-10-05 19:52:32 -03:00
David Bremner
516e196fa1 ruby: use new count API
This change of replacing ignoring errors with exceptions is intended,
and indeed one of the main motivations for the libnotmuch API changes.
2015-10-05 19:51:52 -03:00
David Bremner
8cca886b10 notmuch 0.20.2 release
-----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1
 
 iQGcBAABCAAGBQJVjqAqAAoJEPIClx2kp54sTLYL/iemBYQ2TELiIt8WQiFITKm8
 CZdAXUKR75C+Qmh462lRnilbGVzLrYC9opYXUfFH4IUu/1jf4iKYQmd37Qn+cSAG
 p3/SjFbh6FX0FIqxYegjKFByZju47OtAp+BbPMWyOOEXDASOjwmxMAnm5yzm9At/
 xnKV+5nxmN8KqVDvtF/TBtHM9wZ+ASt9yc4ncKgnAaxyWfWeaSTm0EKwTgHwKcKb
 JZy8XvE9J022Y2r7AWUHjdIyaX5/9cQXtVQg8w238Gp/5FazBN+4yu0Py73nN+pB
 nb0M9IzHHHolbQd89RYOVyqsZ/uka6gl60wduW5ILGYgG2So9qRcHMLJIHKDigF8
 e7j5yGDV6JS6Ub/jMiqKVOPpQv1G7euGqeA9PmQI1UvHEiEoy2kEbPdoyuuKJVbM
 QxG56SsTy85Irj/o1PeW0+ScxP1y6sQA5E1/YB1BRcgW1uwA2XkiZ+JC1IcqRFvZ
 ktJxZOIxYqhhYuXTbzd8KL75cvg1cwKVmmgFMunHcg==
 =m+4D
 -----END PGP SIGNATURE-----

Merge tag '0.20.2'

notmuch 0.20.2 release

Conflicts:
	NEWS
2015-06-27 15:29:52 +02:00
David Bremner
c66e0d4bc2 version: update to 0.20.2
As usual, bump python version at same time.
2015-06-27 15:05:31 +02:00
David Bremner
233b5528cd build/ruby: use notmuch configure script values for shared lib
This is supposed to help build on systems like MacOS with different
conventions for naming shared libraries. We have already computed the
relevant names, so doing it again in ruby seems like a bad idea.
2015-06-14 08:23:55 +02:00
David Bremner
53035dafe0 lib, ruby: make use of -Wl,--no-undefined configurable
In particular this is supposed to help build on systems (presumably
using a non-gnu ld) where this flag is not available.
2015-06-13 17:52:48 +02:00
David Bremner
d038b93209 build: integrate building ruby bindings into notmuch build process
Because ruby generates a Makefile, we have to use recursive make.
Because mkmf.rb hardcodes the name Makefile, put our Makefile{.local}
in the parent directory.
2015-06-12 09:12:28 +02:00
David Bremner
dc840338b2 version: bump to 20.1 2015-06-01 21:47:35 +02:00
David Bremner
4bc7fba31b version: bump to 0.20 2015-05-31 11:13:56 +02:00
David Bremner
4f96b5be63 version: bump to 0.20~rc2 2015-05-23 21:03:30 +02:00
David Bremner
36bf31658c python: use absolute import for SOVERSION
Apparently python3 needs this.
2015-05-23 20:59:42 +02:00
David Bremner
fa11a62de0 version: bump to 0.20~rc1 2015-05-04 08:09:43 +02:00