aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2010-04-16debian/changelog: Create an entry for the 0.2 release.Carl Worth
A (very slightly filtered) version of what already appears in NEWS.
2010-04-16RELEASING: Add a (manual!) step to create a debian/changelog entryCarl Worth
I'd like to have this be fully automated in the future, but for now, it's an extra step.
2010-04-16debian: Don't auto-generate debian/changelog.Carl Worth
David Bremner informs me that shoving everything from the notmuch "git log" into the debian/changelog is a bit excessive. Instead, we'll start manually updating this file, (which feels a bit redundant with NEWS, but perhaps makes us a better Debian-comunity member).
2010-04-16debian: Add a gbp.conf to start using git-buildpackageCarl Worth
On Bdale Garbee's recommendation I'm switching from gitpkg, (which constructed a source tree but still required me to go run debuild), to git-buildpackage. I hadn't originally used git-buildpackage because it didn't seem to work without a configuration file, (where gitpkg was fine). Bdale was kind enough to point me to his fw/altos source at git.gag.com where I found an example gpb.conf file as well as a target in debian/rules to automatically update debian/changelog with the new version number.
2010-04-16make release: Don't print the release message on stdout.Carl Worth
It's just too long for copy/paste, so just let the user know the name of the file containing the message instead.
2010-04-16Makefile: Fix "make release" to print the current release announcement.Carl Worth
This was accidentally hard-coded to always print the 0.1 NEWS blurb.
2010-04-16NEWS: Add release notes for the 0.2 release.Carl Worth
2010-04-16Revert "notmuch.el: 'F' in search mode takes us to a list of folders."Carl Worth
This reverts commit fbec989fe3272d6eff038369587be076347b96f0. I only pushed this accidentally. See message id:871ver6u9r.fsf@yoom.home.cworth.org for the various reasons I didn't like this patch, (mostly I think the association of 'F' is wrong).
2010-04-16notmuch.c: Shorten version stringSebastian Spaeth
We previously output "notmuch version 0.1" as response to notmuch --version. Shorten this to "notmuch 0.1" as we know that we will receive a version number when we explicitely ask for it. Signed-off-by: Sebastian Spaeth <Sebastian@SSpaeth.de>
2010-04-15emacs: Fix search filtering of a global search ("*")Carl Worth
With the recent addition of "*" being a special case for a search matching all messages, we have to take care when doing a filter operation. In this case it's not legal to simply append and get: * and <some-new-search-terms> Instead we carefully construct a new search string of only: <some-new-search-terms> This could all be avoided if we had a parser that could understand "*" with the meaning we want.
2010-04-15TODO: Add two tasks that both have to do with auditing the library APICarl Worth
It was noted today in IRC that libnotmuch is not yet careful about wrapping all Xapian calls with try/catch blocks to print nicer error messages. It seems it would be natural to audit that at the same time as doing the symbol-hiding work.
2010-04-15RELEASING: Change wording of libnotmuch version instructionCarl Worth
We actually want this version to be incremented by the commits that extend the interface. So the release process really is not to just verify two things (NEWS and libnotmuch version), then run "make VERSION=x.y release", and send the mail. Quite nice.
2010-04-15make release: Enforce a clean source tree before release.Carl Worth
Where by clean, we check that no files are known to git to be modified.
2010-04-15RELEASING: Remove a meaningless step from the release process.Carl Worth
The entire "make sure the code you want is in place" thing is part of a larger release process that we don't document here at all. Instead, we just focus here on the mechanics of pushing things out once the larger process has determined the code is ready. And the fewer steps there are, the better, (for making the release-process as painless as possible and for avoiding any mistakes).
2010-04-15configure: Fix syntax error (spaces in assignment).Gregor Hoffleit
Before and after the assignment operator, no spaces are allowed. I don't know if there are any /bin/sh which allow spaces, but at least in bash, csh and zsh, the former code was no valid assigment.
2010-04-15Fix typo in messageBen Gamari
2010-04-15make release: Provide a kinder message when VERSION is forgotten.Carl Worth
I'm unlikely to always remember to pass VERSION=X.Y so it's nice for make release to remind me.
2010-04-15Makefile: Re-order the commands in "make release" slightly.Carl Worth
We put verify-version as a dependency, not a recursive action to keep its output clean, (I know that I will always type "make release" instead of "make VERSION=X.Y release" so I want a nice, neat reminder). Also, put the various ssh-based commands together, and after the build, (so that it doesn't ask for a password/passphrase both before and after building).
2010-04-15Makefile: Simplify the release targets.Carl Worth
Previously, we had a separate release-upload target that a user might mistake as something useful to call directly, (which would have the undesired effect or uploading a new package, but without first making all the checks that we want). So we eliminate that target, (folding its actions into "make release"), and we also rename the several release-verify-foo targets to simply verify-foo. This leaves as the only targets with "release" in the name as "release" and "release-message". Both of these are intended for the user to call directly.
2010-04-15Makefile.local: Fix typo in comment.Carl Worth
Just an extra word that clearly didn't belong.
2010-04-15RELEASING: Remove obsolete step about updating micro version number.Carl Worth
We've now changed to using "git describe" to automatically report a version number that changes with every git commit. So we no longer need to manually update anything in the Makefile during the release process.
2010-04-15Makefile: Make "make release" run the test suite.Carl Worth
This drops one manual step from our release process, (helping to ensure we don't forget anything during the release).
2010-04-15make test: Actually count and report on failures.Carl Worth
Hurrah---no more manual verification of that PASS column. This means that "make test" can actually be a useful part of the release process now, (since it will exit with non-zero status if there are any failures).
2010-04-15test: Unify all tests to use the pass_if_equal function.Carl Worth
Previously some tests (dump/restore) were doing ad-hoc verification of values and their own printing of PASS/FAIL, etc. This made it impossible to count test pass/fail rates in a single place. The only reason these tests were written that way was because the old execute_expecting function only worked if one could directly test the stdout output of a notmuch command. The recent switch to pass_if_equal means that all tests can use it.
2010-04-15test: Align the PASS/FAIL column.Carl Worth
Just to make things a little more pleasant to look at.
2010-04-15Makefile: Add a "make test" target.Carl Worth
I just wasted far too much time looking for a bug that wasn't actually there only because I hadn't recompiled before running the test suite. Now we can take advantage of actual dependency information to force a rebuild for "make test".
2010-04-15lib: search_threads: Fix nested search to handle original search of "*"Carl Worth
When constructing a thread, we usually run a nested query to find all messages in the thread that match the original search string. However, we need to have special-case handling of an original search string of "*" now that that is a supported means of specifying all messages. The special-case ends up bein quite simple---we do less work, (just skipping the nested search since we know that all messages must match). I had been wanting to write this identical code to more efficiently handle "notmuch search thread:<foo>" which was previously running two identical searches. So that case is now more efficient as well.
2010-04-15test: Add a test for "notmuch search '*'"Carl Worth
This feature was added recently and should have gotten a new test at the time. As this test demonstrates, the code is broken, ("notmuch search '*' returns bogus dates of the Unix epoch for any threads where the term "and" does not appear in any messages).
2010-04-15test: Use an older date for the generated messages.Carl Worth
Using a date in the current year makes the test suite fragile since the search output will include a date of "January 05" for now, but will start doing "2010-01-05" in the future.
2010-04-15test: Remove test-message filenames from generated messagesCarl Worth
The filenames aren't predictable (including the current directory) nor stable from one run to the next (including the PID). This makes it hard to predict the output from a search command that returns such a message (such as "*"). The original goal was simply to ensure that each generated message was distinguishable somehow. So just use the message counter instead.
2010-04-15test: Disentangle execution of notmuch from the examination of the results.Carl Worth
The old execute_expecting function was doing far too much for its own good. One of the worst aspects of this was that it introduced shell-quoting challengers where the caller could not easily control the precise invocation of the command to be executed. I personally couldn't find a way to test "notmuch search '*'" without the shell expanding * against files in the current directory, or having bogus quotation marks appearing in the search string, (defeating the recognition of "*" as a special search term). Hopefully this aspect of the test suite will be much easier to maintain now.
2010-04-15TODO: Add some ideas for improving the emacs interface.Carl Worth
One of these is a bad bug I noticed this morning, (archiving messages I had never read when going through a search of "tag:inbox and tag:to-me" and hitting space bar). The other ideas came from recent conversations with Dirk and Eric.
2010-04-15TODO: Add some ideas about better search syntaxCarl Worth
Recent coding around the "*" feature suggests some improvements that we could make, (some of which might push us into writing a custom query parser rather than using the one that exists in Xapian).
2010-04-14Merge bugfix for test-suite correctness.Carl Worth
The test suite was recently broken, and subsequently fixed (at the commit that introduced the breakage). This merges that fixup commit: f1776f8b51013bb66eb21e64c8084ddfe73c3a5c
2010-04-14test: Fix reply tests to track insignificant change in output.Carl Worth
The recent fix to properly decode encoded headers made the expected output of "notmuch reply" differ by a single space, (previously, there were two spaces before the References: value and now there is just one). Fix the test suite so that these are all noted as correct results again.
2010-04-14Makefile: Fix final linking of notmuch binary for OS X.Carl Worth
Apparently the OS X linker can't resolve symbols when linking a program (notmuch) against a library (libnotmuch) when the library depends on another library (libgmime) that the program doesn't depend on directly. For this case, we need to link the program directly against both libraries, but we don't want to do this on Linux, where the linker can do this on its own and the explicit, unneeded link would cause problems.
2010-04-14Makefile: Add library version information on OS X.Carl Worth
This encodes the library version into the library, where the linking binary can pick it up, and the linker can even enforce mismatches in the minor release, (such as linking a binary against version 1.2 and then attempting to run it against version 1.1).
2010-04-14Makefile: Fix library linking command for OS XCarl Worth
I'm not sure which system Aaron used, but on the machine I have access to, (Darwin 8.11.0), the -shared and -dylib_install_name options are not recognized. Instead I use -dynamic_lib and -install_name as documented here: http://www.finkproject.org/doc/porting/shared.php
2010-04-14Add infrastructure for building shared library on OS X.Aaron Ecay
This patch adds a configure check for OS X (actually Darwin), and sets up the Makefiles to build a proper shared library on that platform. Signed-off-by: Aaron Ecay <aaronecay@gmail.com>
2010-04-14Makefile: Move compat sources from the client code to the library.Carl Worth
Since the library code needs these as well.
2010-04-14Add simplistic reimplementation of strcasestr to compat libraryDirk Hohndel
While all systems that I have access to support strcasestr, it is in fact not part of POSIX. So here's a fallback reimplementation based on POSIX functions. Signed-off-by: Dirk Hohndel <hohndel@infradead.org> Tested-by: Tomas Carnecky <tom@dbservice.com> (on OpenSolaris snv_134)
2010-04-14Makefile: Move include of Makefile.config up from Makefile.localCarl Worth
The recent change to include sub-directory Makefile.local files before the top-level Makefile.local means that we need to include the Makefile.config before those. So move it up from Makefile.local to Makefile.
2010-04-14Fix up Makefile for build.Aaron Ecay
Must set extra_c(xx)flags before including subdir Makefile.local's, so that there is a blank slate that the subdirs can add on to. Must include subdir Makefile.local's before global one, otherwise the compat sources are not added to the list of those to be compiled. Signed-off-by: Aaron Ecay <aaronecay@gmail.com>
2010-04-14Use C++ compiler to link notmuch binariesAaron Ecay
Since the binaries contain C++ code, it is necessary to use the C++ linker, or errors result on some platforms (OS X). Signed-off-by: Aaron Ecay <aaronecay@gmail.com>
2010-04-14Clean up code duplication in adding or removing tag by region.Jesse Rosenthal
Clean up code duplication, as per Carl's suggestion, by making notmuch-search-{add/remove}-tag-thread a special case of the -region commands, where the region in question is between (point) and (point).
2010-04-14Fix bug in adding or removing tag by region.Jesse Rosenthal
There was a bug in notmuch-search-{add,remove}-tag-region, which would not behave correctly if the region went beyond the last message. Now, instead of simply iterating to the last line of the region, these functions will iterate to the minimum of the last line of the region and the last possible line, i.e. (- (line-number-at-pos (point-max)) 2) Tested-by: Carl Worth <cworth@cworth.org> Note that the old, buggy behavior included infinite loops of emacs lisp code, so the new behavior is significantly better than that.
2010-04-13TODO: Capture some recent ideas expressed on the mailing list.Carl Worth
There's a potential simplification of notmuch-reply.c and some emacs improvements that might require extending message-mode to a notmuch-message-mode.
2010-04-13Decode headers in replyMichal Sojka
When headers contain non-ASCII characters, they are encoded according to rfc2047. Nomtuch reply command emits the headers in the encoded form, which makes them hard to read by humans who compose the reply. For example instead of "Subject: Re: Rozlučka" one currently sees "Subject: Re: =?iso-8859-2?q?Rozlu=E8ka?=". This patch adds a new GMime filter which is used to decode headers to UTF-8 and uses this filter when notmuch reply outputs headers. Signed-off-by: Michal Sojka <sojkam1@fel.cvut.cz>
2010-04-13notmuch.el: quote args in notmuch-show to facilitate remote useJesse Rosenthal
Put single-quotes around the argument of the `show --entire-thread' command in notmuch-show. This change should have no effect on normal usage. However, it allows us to use the notmuch.el client with a remote notmuch binary and database over ssh (by, e.g., setting `notmuch-command' to a simple shell script). Without the quotes, ssh will not send the command properly. One very simple example script is as follows. (Note that it requires keypair login to the ssh server.) #!/bin/sh SSH_BIN="/path/to/local/ssh" NOTMUCH_HOST="my.remote.server" NOTMUCH_REMOTE_PATH="/path/to/remote/notmuch" $SSH_BIN $NOTMUCH_HOST $NOTMUCH_REMOTE_PATH $@
2010-04-13TODO: Note GMime bug that needs to be tested and upstreamed.Carl Worth
This bug was recently noted in a commit message, so we should hold onto it until we've passed it along to the GMime project.