<feed xmlns='http://www.w3.org/2005/Atom'>
<title>notmuch/bindings/python-cffi/tests/test_database.py, branch 0.39_rc2</title>
<subtitle>thread-based email index, search, and tagging</subtitle>
<id>https://git.notmuchmail.org/git/notmuch/atom?h=0.39_rc2</id>
<link rel='self' href='https://git.notmuchmail.org/git/notmuch/atom?h=0.39_rc2'/>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/'/>
<updated>2025-02-07T16:13:16Z</updated>
<entry>
<title>fix segfaults in Python cFFI API and add tests</title>
<updated>2025-02-07T16:13:16Z</updated>
<author>
<name>Lars Kotthoff</name>
<email>lars@larsko.org</email>
</author>
<published>2025-02-06T02:52:51Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=9c1f6cf746725af7bbbb66e746c5d694723ac0eb'/>
<id>urn:sha1:9c1f6cf746725af7bbbb66e746c5d694723ac0eb</id>
<content type='text'>
Several iterators in the Python cFFI API destroyed the objects they iterated
over too early (when the iterator was exhausted), causing subsequent segfaults
in common cases like creating a list from the iterator. This patch fixes the
segfaults and add tests to ensure that they don't happen again.
</content>
</entry>
<entry>
<title>bindings/python-cffi: search for config by default</title>
<updated>2022-01-09T19:16:51Z</updated>
<author>
<name>David Bremner</name>
<email>david@tethera.net</email>
</author>
<published>2022-01-08T21:21:43Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=8b737af28bc377db3e661a5744f3b7479b7ce485'/>
<id>urn:sha1:8b737af28bc377db3e661a5744f3b7479b7ce485</id>
<content type='text'>
The previous (pre-0.34.2) constructor searched for a config file but
only if the database path was not specified, and only to retrieve
database.path. Neither of the available options (CONFIG.SEARCH or
CONFIG.NONE) matches this semantics exactly, but CONFIG.SEARCH causes
less breakage for people who relied on the old behaviour to set their
database.path [1]. Since it also seems like the friendlier option in
the long run, this commit switches to CONFIG.SEARCH as default.

This requires a certain amount of updating the pytest tests, but most
users will actually have a config file, unlike the test environment.

[1]: id:87fsqijx7u.fsf@metapensiero.it
</content>
</entry>
<entry>
<title>lib: introduce notmuch_database_create_with_config</title>
<updated>2021-02-06T23:48:34Z</updated>
<author>
<name>David Bremner</name>
<email>david@tethera.net</email>
</author>
<published>2021-01-02T00:43:14Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=ac67cd84eea1148680ab3a377d35ae346073f138'/>
<id>urn:sha1:ac67cd84eea1148680ab3a377d35ae346073f138</id>
<content type='text'>
This takes a config path parameter, and can use that to decide the
new database location.
</content>
</entry>
<entry>
<title>Support aborting the atomic context</title>
<updated>2020-06-16T11:17:39Z</updated>
<author>
<name>Floris Bruynooghe</name>
<email>flub@devork.be</email>
</author>
<published>2020-06-14T15:23:19Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=776a54a0e437651abd69a03b9f7d591ea1f992cb'/>
<id>urn:sha1:776a54a0e437651abd69a03b9f7d591ea1f992cb</id>
<content type='text'>
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.
</content>
</entry>
<entry>
<title>Make messages returned by Thread objects owned</title>
<updated>2020-06-16T11:02:02Z</updated>
<author>
<name>Floris Bruynooghe</name>
<email>flub@devork.be</email>
</author>
<published>2020-06-15T20:58:50Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=2d895a0119b423b117d10e890c9e0eb5d2a9cdf8'/>
<id>urn:sha1:2d895a0119b423b117d10e890c9e0eb5d2a9cdf8</id>
<content type='text'>
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.
</content>
</entry>
<entry>
<title>Rename package to notmuch2</title>
<updated>2019-12-03T12:12:30Z</updated>
<author>
<name>Floris Bruynooghe</name>
<email>flub@devork.be</email>
</author>
<published>2019-11-17T16:41:35Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=e2df30f7a98f91543d0b3561dbb366eb4b3d812c'/>
<id>urn:sha1:e2df30f7a98f91543d0b3561dbb366eb4b3d812c</id>
<content type='text'>
This is based on a previous discussion on the list where this was more
or less seen as the least-bad option.
</content>
</entry>
<entry>
<title>Introduce CFFI-based python bindings</title>
<updated>2019-12-03T12:12:30Z</updated>
<author>
<name>Floris Bruynooghe</name>
<email>flub@google.com</email>
</author>
<published>2019-10-08T21:03:12Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=83c2d158983875bf77a9b7662894df585b61741c'/>
<id>urn:sha1:83c2d158983875bf77a9b7662894df585b61741c</id>
<content type='text'>
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.
</content>
</entry>
</feed>
