notmuch 0.34.3 release

-----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCAAdFiEEkiyHYXwaY0SiY6fqA0U5G1WqFSEFAmHbOcMACgkQA0U5G1Wq
 FSEGVA//Vjgripk0eRDIUZrdL/knjDXybbHVz06r+gx+9Rh1b+3MJ8t+VAjeX7OO
 iJns7ZysKgMsQSYFCFk9fTl5m3ECzZFmzY7lmRU2tU6Hz9lUwotN70e+zGBgFE6J
 sGji4YOCrUnpmgb0j0joRD565m74Bi2Z8Pj+qRvo4RcQY5JxczyDtkSnLb9UDo/e
 FNZ4bTlwJL13Jeu8F6BtnCFPxvpac3qlzLIlG327Fz4cFwQ+QoxQIq5i8pnOu3B2
 HBEyOZAgIuONbV/RH/nwt7QmT45Dne1wP/UqocHkiu3yKvsCRLZC0vsejw8/dZ+D
 GQUfJT9EL1AIJa6OvUyF5UtnPMRKgACG2nt5U8M02ubheAAEgUS/FIIm1kgxkqYU
 5dDKHwU12YHDW2/nwOSRBFDV6TSCkskXr9Thr884KCobyPPnhWkN+pKAfyDhwPMc
 MrnMyId3fPrJRPMxoQ7Z8TJV8l/Wd6FIlFowfzk+s6hfV2qgOUZJ2Btrfk8596Sy
 np8usullbhFagYQ1+JX3AvVxLYvtFKmxO/qG6TcBmjBui5ABz7wtizfgwDx5eVJr
 GpzJUKFUKAmZW+15nm3oNdEwFOjdvRouKc03Qv5eCU6wSaOtd9efgntDPcso8ycW
 Us13KJIhwmwDJdaqnlmG5TdlJY9qjFu/VGHt4+I1GNQuswXRIo8=
 =hQCB
 -----END PGP SIGNATURE-----

Merge tag '0.34.3'

notmuch 0.34.3 release
This commit is contained in:
David Bremner 2022-01-09 19:34:58 -04:00
commit 63d3b2b5cf
10 changed files with 46 additions and 15 deletions

21
NEWS
View file

@ -1,3 +1,24 @@
Notmuch 0.34.3 (2022-01-09)
===========================
Library
-------
Do not crash when presented with a .notmuch directory without a
xapian/ subdirectory.
Python Bindings (notmuch2)
--------------------------
Database constructor now searches for configuration by default. Pass
`config=Database.CONFIG.EMPTY` to disable.
The `Message.replies()` method now returns OwnedMessage objects, to
prevent certain memory de-allocation errors.
Fix for importing `notmuch2` module when building bindings
documentation.
Notmuch 0.34.2 (2021-12-09) Notmuch 0.34.2 (2021-12-09)
=========================== ===========================

View file

@ -139,7 +139,7 @@ class Database(base.NotmuchObject):
path = os.fsencode(path) path = os.fsencode(path)
return path return path
def __init__(self, path=None, mode=MODE.READ_ONLY, config=CONFIG.EMPTY): def __init__(self, path=None, mode=MODE.READ_ONLY, config=CONFIG.SEARCH):
if isinstance(mode, str): if isinstance(mode, str):
mode = self.STR_MODE_MAP[mode] mode = self.STR_MODE_MAP[mode]
self.mode = mode self.mode = mode

View file

@ -23,9 +23,9 @@ class TestIter:
def test_set_get(self, maildir): def test_set_get(self, maildir):
# Ensure get-set works from different db objects # Ensure get-set works from different db objects
with dbmod.Database.create(maildir.path) as db0: with dbmod.Database.create(maildir.path, config=dbmod.Database.CONFIG.EMPTY) as db0:
db0.config['spam'] = 'ham' db0.config['spam'] = 'ham'
with dbmod.Database(maildir.path) as db1: with dbmod.Database(maildir.path, config=dbmod.Database.CONFIG.EMPTY) as db1:
assert db1.config['spam'] == 'ham' assert db1.config['spam'] == 'ham'
def test_get_keyerror(self, db): def test_get_keyerror(self, db):

View file

@ -13,7 +13,7 @@ import notmuch2._message as message
@pytest.fixture @pytest.fixture
def db(maildir): def db(maildir):
with dbmod.Database.create(maildir.path) as db: with dbmod.Database.create(maildir.path, config=notmuch2.Database.CONFIG.EMPTY) as db:
yield db yield db
@ -293,7 +293,7 @@ class TestQuery:
maildir.deliver(body='baz', maildir.deliver(body='baz',
headers=[('In-Reply-To', '<{}>'.format(msgid))]) headers=[('In-Reply-To', '<{}>'.format(msgid))])
notmuch('new') notmuch('new')
with dbmod.Database(maildir.path, 'rw') as db: with dbmod.Database(maildir.path, 'rw', config=notmuch2.Database.CONFIG.EMPTY) as db:
yield db yield db
def test_count_messages(self, db): def test_count_messages(self, db):

View file

@ -23,7 +23,7 @@ class TestImmutable:
""" """
maildir.deliver() maildir.deliver()
notmuch('new') notmuch('new')
with database.Database(maildir.path) as db: with database.Database(maildir.path, config=database.Database.CONFIG.EMPTY) as db:
yield db.tags yield db.tags
def test_type(self, tagset): def test_type(self, tagset):
@ -33,7 +33,7 @@ class TestImmutable:
def test_hash(self, tagset, maildir, notmuch): def test_hash(self, tagset, maildir, notmuch):
h0 = hash(tagset) h0 = hash(tagset)
notmuch('tag', '+foo', '*') notmuch('tag', '+foo', '*')
with database.Database(maildir.path) as db: with database.Database(maildir.path, config=database.Database.CONFIG.EMPTY) as db:
h1 = hash(db.tags) h1 = hash(db.tags)
assert h0 != h1 assert h0 != h1
@ -42,7 +42,7 @@ class TestImmutable:
def test_neq(self, tagset, maildir, notmuch): def test_neq(self, tagset, maildir, notmuch):
notmuch('tag', '+foo', '*') notmuch('tag', '+foo', '*')
with database.Database(maildir.path) as db: with database.Database(maildir.path, config=database.Database.CONFIG.EMPTY) as db:
assert tagset != db.tags assert tagset != db.tags
def test_contains(self, tagset): def test_contains(self, tagset):
@ -159,7 +159,8 @@ class TestMutableTagset:
_, pathname = maildir.deliver() _, pathname = maildir.deliver()
notmuch('new') notmuch('new')
with database.Database(maildir.path, with database.Database(maildir.path,
mode=database.Mode.READ_WRITE) as db: mode=database.Mode.READ_WRITE,
config=database.Database.CONFIG.EMPTY) as db:
msg = db.get(pathname) msg = db.get(pathname)
yield msg.tags yield msg.tags
@ -195,7 +196,8 @@ class TestMutableTagset:
_, pathname = maildir.deliver(flagged=True) _, pathname = maildir.deliver(flagged=True)
notmuch('new') notmuch('new')
with database.Database(maildir.path, with database.Database(maildir.path,
mode=database.Mode.READ_WRITE) as db: mode=database.Mode.READ_WRITE,
config=database.Database.CONFIG.EMPTY) as db:
msg = db.get(pathname) msg = db.get(pathname)
msg.tags.discard('flagged') msg.tags.discard('flagged')
msg.tags.from_maildir_flags() msg.tags.from_maildir_flags()
@ -205,7 +207,8 @@ class TestMutableTagset:
_, pathname = maildir.deliver(flagged=True) _, pathname = maildir.deliver(flagged=True)
notmuch('new') notmuch('new')
with database.Database(maildir.path, with database.Database(maildir.path,
mode=database.Mode.READ_WRITE) as db: mode=database.Mode.READ_WRITE,
config=database.Database.CONFIG.EMPTY) as db:
msg = db.get(pathname) msg = db.get(pathname)
flags = msg.path.name.split(',')[-1] flags = msg.path.name.split(',')[-1]
assert 'F' in flags assert 'F' in flags

View file

@ -13,7 +13,7 @@ def thread(maildir, notmuch):
maildir.deliver(body='bar', maildir.deliver(body='bar',
headers=[('In-Reply-To', '<{}>'.format(msgid))]) headers=[('In-Reply-To', '<{}>'.format(msgid))])
notmuch('new') notmuch('new')
with notmuch2.Database(maildir.path) as db: with notmuch2.Database(maildir.path, config=notmuch2.Database.CONFIG.EMPTY) as db:
yield next(db.threads('foo')) yield next(db.threads('foo'))

View file

@ -1,3 +1,3 @@
# this file should be kept in sync with ../../../version # this file should be kept in sync with ../../../version
__VERSION__ = '0.34.2' __VERSION__ = '0.34.3'
SOVERSION = '5' SOVERSION = '5'

7
debian/changelog vendored
View file

@ -1,3 +1,10 @@
notmuch (0.34.3-1) unstable; urgency=medium
* New upstream bugfix release, with several fixes for the notmuch2
python module.
-- David Bremner <bremner@debian.org> Sun, 09 Jan 2022 15:30:38 -0400
notmuch (0.34.2-1) unstable; urgency=medium notmuch (0.34.2-1) unstable; urgency=medium
* New upstream bugfix with release, with fixes database location in * New upstream bugfix with release, with fixes database location in

View file

@ -14,7 +14,7 @@ master_doc = 'index'
# General information about the project. # General information about the project.
project = u'notmuch' project = u'notmuch'
copyright = u'2009-2021, Carl Worth and many others' copyright = u'2009-2022, Carl Worth and many others'
location = os.path.dirname(__file__) location = os.path.dirname(__file__)

View file

@ -1 +1 @@
0.34.2 0.34.3