Commit graph

2560 commits

Author SHA1 Message Date
Patrick Totzke
c4d824bc1e fix format string in Message.__unicode__
Since 2b01161191, Message.__str__ doesn't
construct a hash containing the thread data before
constructing the formatstring. This changes the formatstring
to accept positional parameters instead of a hash.
2011-12-06 21:56:40 +01:00
David Bremner
e5564188e0 contrib/.gitattributes: remove
Now that licensing of notmuch-deliver has been harmonized with
notmuch, there is no reason not to export it.
2011-12-06 11:20:57 -04:00
Ali Polatel
be2263e930 notmuch-deliver: GPL-3+ 2011-12-06 17:06:30 +02:00
Ali Polatel
6201491233 notmuch-deliver: Import from maildrop-2.5.5
maildrop-2.5.5 is GPL-3.
No change in functionality, just a precaution before relicensing.
2011-12-06 16:41:33 +02:00
Tomi Ollila
2551c70131 make release: remove LATEST-$(PACKAGE)-*
The tar file of particular package (notmuch in this case) is named
as $(PACKAGE)-$(VERSION).tar.gz. Therefore the best way to remove
previous link to LATEST is to remove all files beginning with
LATEST-$(PACKAGE)- and not relying how $(VERSION) string is constructed.
2011-12-06 09:37:45 -04:00
Tomi Ollila
fc622d7e06 have LATEST-notmuch-<version>.tar.gz on releases web page
The notmuchmail/releases page used to have LATEST-notmuch-<version>
to link to the latest notmuch source tarball. This is confusing on
web page and on disk when the file has been downloaded. This change
looks a bit inconsistent with the 'rm' command just executed before.
$(TAR_FILE) is defined (currently) as $(PACKAGE)-$(VERSION).tar.gz;
as long as the prefix stays $(PACKAGE)-$(VERSION) and version begins
with a digit then this line is good in execution point of view.
2011-12-06 09:37:45 -04:00
David Bremner
7bf1f6e85a test: add test-binaries target
The goal here is to have a simple way of making sure all of the
binaries needed to run tests are available.
2011-12-06 09:37:44 -04:00
Sebastian Spaeth
50b0d0b8ad python: Remove stray debug comment
This slipped in wrongly in commit 71e0082eff (due to my fault).

Signed-off-by: Sebastian Spaeth <Sebastian@SSpaeth.de>
2011-12-06 13:36:48 +01:00
Thomas Jost
71e0082eff python: use wrapped notmuch_*_t types instead of raw pointers
Now that types are checked correctly, we also need to make sure that all the
arguments actually are instances of these types. Otherwise the function calls
will fail and raise an exception similar to this one:
   ctypes.ArgumentError: argument 3: <type 'exceptions.TypeError'>: expected
   LP_LP_NotmuchMessageS instance instead of pointer to c_void_p
2011-12-06 13:34:30 +01:00
Patrick Totzke
672b6337b4 errors='ignore' when decode to unicode 2011-12-06 13:28:39 +01:00
Patrick Totzke
ffe3097e58 use __unicode__ for string representation 2011-12-06 13:27:08 +01:00
Patrick Totzke
2b01161191 clean up Thread.__str__ 2011-12-06 13:21:42 +01:00
Sebastian Spaeth
ecf8da35e2 python: Return a STATUS value in tags_to_flags and flags_to_tags
We were not returning anything at all, which does not match the API
documentation. Fixed. Thanks to Patrick Totzke for the heads up.

Signed-off-by: Sebastian Spaeth <Sebastian@SSpaeth.de>
2011-12-06 12:38:52 +01:00
Patrick Totzke
86b0aeb1ca remove unused imports 2011-12-06 12:28:35 +01:00
Patrick Totzke
12ebf87947 fix sphinx compile-time warnings
no changes to the code, only makes compiling the docs smoother
as some rsT syntax errors were fixed
2011-12-06 12:23:50 +01:00
Patrick Totzke
4292b1197d pep8 fixes
no changes to the code, only fixed stuff denounced by `pep8 *py`
2011-12-06 12:20:45 +01:00
David Bremner
07bb8b9e89 test/python: set LD_LIBRARY_PATH and PYTHONPATH to use local notmuch
Possibly this should be factored out into some kind of "run_python"
function.
2011-12-05 23:06:50 -04:00
David Bremner
8e3879b689 build system: allow decreasing debian versions for debian-snapshot
This allows the debian-snapshot to continue working between when
debian/changelog is updated and when the release is tagged.
2011-12-05 22:27:08 -04:00
David Bremner
bcd8d139f4 NEWS: add news for 0.10.2 2011-12-05 22:03:58 -04:00
David Bremner
dbd273d434 fixup for changelog 2011-12-05 22:03:58 -04:00
David Bremner
bb99251f0f debian/changelog: add new changelog stanza for 0.10.2 2011-12-05 18:07:00 -04:00
David Bremner
d7276c6241 version: bump for bugfix release 0.10.2 2011-12-05 18:07:00 -04:00
David Bremner
6cca3a5c16 test: add tests for python bindings
We start modestly, with a (slightly modified) test case from Kazuo
Teramoto. Originally it just made sure the bindings didn't crash; here
we check that by comparing the output with that of notmuch search.
2011-12-05 18:06:48 -04:00
David Bremner
69dc421ab3 lib: call g_type_init from notmuch_database_open
We want to make sure g_type_init is called before any GObject
functionality is used.
2011-12-04 22:00:25 -04:00
David Bremner
1c81e8f6d3 notmuch-dump.c: whitespace cleanup 2011-12-04 11:28:42 -04:00
Justus Winter
3434d19402 python: annotate all calls into libnotmuch with types
Add type information to the ctypes._FuncPtr wrappers and
use the wrapper classes instead of c_void_p for pointers
to notmuch_*_t.

This enables the ctypes library to type check parameters
being handed to functions from the notmuch library.

Signed-off-by: Justus Winter <4winter@informatik.uni-hamburg.de>
2011-12-01 22:24:19 +01:00
Justus Winter
e92b438f46 python: add classes to wrap all notmuch_*_t types
Signed-off-by: Justus Winter <4winter@informatik.uni-hamburg.de>
2011-12-01 22:24:12 +01:00
Dmitry Kurochkin
de3d46e93c test: fix error messages for missing binary dependencies
The fake missing binary functions check if the binary has already be
added to the diagnostic message to avoid duplicates.  Unfortunately,
this check was buggy because the message string does not have the
trailing space.
2011-11-30 17:26:10 -08:00
Dmitry Kurochkin
5635977543 test: fix spurious output from missing external binaries functions
The grep(1) command used in the fake binary functions was missing the
quiet option.
2011-11-30 17:25:24 -08:00
Dmitry Kurochkin
571810f717 test: add missing escape backslash in test_declare_external_prereq() 2011-11-30 17:23:00 -08:00
Dmitry Kurochkin
716e9a45b9 test: fix test_require_external_prereq()
test_missing_external_prereq_${binary}_ variable indicates that the
binary is missing.  It must be set in test_declare_external_prereq()
outside of the fake $binary() function.
2011-11-30 17:22:28 -08:00
Chris Gray
9e805b6a58 emacs: Use notmuch-command variable in process-lines.
The process-lines function calls the notmuch binary.  The location of
the binary may have been customized by the user, so it is better to
use the customized location rather than allowing the process-lines
function to search the user's PATH for the binary.
2011-11-30 17:19:44 -08:00
Thomas Schwinge
3a0a730336 dump: Don't sort the output by message id.
Asking xapian to sort the messages for us causes suboptimal IO patterns. This
would be useful, if we only wanted the first few results, but since we want
everything anyway, this is pessimization.

On 2011-10-29, a measurement on a 372981 messages instance showed that wall
time can be reduced from 28 minutes (sorted by Message-ID) to 15 minutes
(unsorted).

Timings on 189605 messages:

$ time notmuch.old dump
19.48user 5.83system 12:10.42elapsed 3%CPU (0avgtext+0avgdata 110656maxresident)k
3629584inputs+22720outputs (33major+7073minor)pagefaults 0swaps
$ echo 3 > /proc/sys/vm/drop_caches
$ time notmuch.new
14.89user 1.20system 3:23.58elapsed 7%CPU (0avgtext+0avgdata 46032maxresident)k
1256264inputs+22464outputs (43major+1990minor)pagefaults 0swaps
2011-11-28 07:57:45 -08:00
Austin Clements
da67bf12ce tag: Automatically limit to messages whose tags will actually change.
This optimizes the user's tagging query to exclude messages that won't
be affected by the tagging operation, saving computation and IO for
redundant tagging operations.

For example,
  notmuch tag +notmuch to:notmuch@notmuchmail.org
will now use the query
  ( to:notmuch@notmuchmail.org ) and (not tag:"notmuch")

In the past, we've often suggested that people do this exact
transformation by hand for slow tagging operations.  This makes that
unnecessary.
2011-11-28 06:54:42 -08:00
Dmitry Kurochkin
6cb61729d4 test: fix "Stashing in notmuch-search" test when emacs is not available
If emacs is not available, test_expect_equal would be called with only
one argument.  The patch fixes this by quoting the (possibly empty)
$(cat OUTPUT) argument.
2011-11-27 11:33:35 -08:00
Dmitry Kurochkin
5af65f65e8 test: check if emacs is available in the beginning of test_emacs
Unfortunately, this is needed to avoid the emacs waiting loop.
2011-11-27 11:33:13 -08:00
Dmitry Kurochkin
f0fbdad04b test: add function to explicitly check for external dependencies
Useful when binary is called indirectly (e.g. from emacs).
2011-11-27 11:32:52 -08:00
Dmitry Kurochkin
d095902266 test: declare external dependencies for the tests
That are: dtach(1), emacs(1), emacsclient(1), gdb(1) and gpg(1).
2011-11-27 11:32:26 -08:00
Dmitry Kurochkin
f325466728 test: skip all subtests if external dependencies are missing during init
Some tests (e.g. crypto) do a common initialization required for all
subtests.  The patch adds a check for missing external dependencies
during this initialization.  If any prerequisites are missing, all
subtests are skipped.

The check is run on the first call of test_reset_state_ function, so
no changes for the tests are needed.
2011-11-27 11:32:11 -08:00
Dmitry Kurochkin
5b37fb1e25 test: fix "skipping test" verbose output 2011-11-27 11:31:46 -08:00
Dmitry Kurochkin
66158d5e40 test: add support for external executable dependencies
There is existing support for general prerequisites in the test suite.
But it is not very convenient to use: every test case has to keep
track for it's dependencies and they have to be explicitly listed.

The patch aims to add better support for a particular type of external
dependencies: external executables.  The main idea is to replace
missing external binaries with shell functions that have the same
name.  These functions always fail and keep track of missing
dependencies for a subtest.  The result reporting functions later can
check that an external binaries are missing and correctly report SKIP
result instead of FAIL.  The primary benefit is that the test cases do
not need to declare their dependencies or be changed in any way.
2011-11-27 11:31:17 -08:00
Dmitry Kurochkin
5aeca8182f test: add test state reset to test_expect_* functions that did not have it 2011-11-27 08:13:52 -08:00
Dmitry Kurochkin
9d5b521472 test: set EMACS_SERVER variable only after dtach(1) was successfully started
Otherwise, we can set the EMACS_SERVER and return with an error.  And
subsequent calls to test_emacs would assume that emacs server is running.
2011-11-27 08:13:07 -08:00
Dmitry Kurochkin
1660ca5e61 test: move subtest variables reset into a dedicated function
Currently, there is only one such variable test_subtest_known_broken_.
But more will be added in the future.
2011-11-27 08:12:41 -08:00
Amadeusz Żołnowski
945196d79b Build symbol-test with make instead of hardcoding in symbol-hiding.
If symbol-test is built in symbol-hiding with hardcoded g++ invokation,
it's not so easy to pass $(srcdir) which is required to find notmuch.h
when srcdir and builddir are separate directories.
2011-11-27 08:03:04 -08:00
David Bremner
ac8576de63 Merge branch 'release' 2011-11-26 21:15:20 -08:00
David Bremner
9756b9dcb9 build system: clean up object files in ./test and ./util 2011-11-26 09:55:07 -08:00
Amadeusz Żołnowski
0da10aa1bc Whitespaces cleanup. 2011-11-26 09:21:04 -08:00
Amadeusz Żołnowski
071456e5e6 Fix warnings for test/symbol-test.cc. 2011-11-26 09:20:47 -08:00
Dmitry Kurochkin
cb9af12a4f test: cleanup basic tests
Basic test 'Ensure that all available tests will be run by
notmuch-test' compares all tests that are run with listing of test/
directory.  There is a growing list of exceptions for files and
directories which located in the test/ directory but are not tests.
Moreover some (probably buggy) tests do create files in the the test/
directory which may be left behind in case of failure.  This makes the
basic test fail.

The patch changes the test to look only for regular executable files.
This makes the exception list much smaller.  And since no tests should
create executables in the test/ directory (if there are, they should
be fixed), the basic test should not be affected by failed or
interrupted tests.
2011-11-26 09:18:05 -08:00