summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
* make release: Add Debian package building and upload0.2Carl Worth2010-04-16
| | | | Finally, a single button to push to do all the uploading.
* Increment version to 0.2.Carl Worth2010-04-16
| | | | Only minor features added this time--nothing that merits a 1.0.
* make release: Add a check that version and debian/changelog are consistentCarl Worth2010-04-16
| | | | | | | Eventually I'd like to automate this so that one or the other of these files is canonical and the other is generated from it. Until then, add this check to the release process to avoid a skewed release being shipped.
* Makefile: Avoid complaining about .first-build-message not existingCarl Worth2010-04-16
| | | | This cleans up a few spurious warnings from the build.
* Fix final link of notmuch binary to use C compiler if possible.Carl Worth2010-04-16
| | | | | | | | | On Linux, a C program that depends on a C library which in turn depends on a C++ can be linked with the C compiler, (avoiding a direct link from the program to the C++ runtime libraries). Other platforms with less fancy linkers need to use the C++ compiler for this linking.
* debian: Remove watch file.Carl Worth2010-04-16
| | | | | We're switching to a native package, where we build the upstream and debian releases simultaneously, so there's no need for a watch file.
* debian: Switch to "3.0 (native)" source format.Carl Worth2010-04-16
| | | | To keep lintian happy.
* Makefile: Fix conditionals to avoid calling git when no .git is presentCarl Worth2010-04-16
| | | | | Otherwise, building from a tar-file snapshot or release caused a bunch of error messages from unnecessary git invocations.
* Makefile: Add a top-level "make snapshot" target.Carl Worth2010-04-16
| | | | | | Useful for verifying that our tar-file creation works. The tar-file name can't easily be used as a target directly since it depends on the current git revision.
* Makefile: Rework the version checks slightly.Carl Worth2010-04-16
| | | | | | Theese were previously pointing to "make VERSION=X.Y release", but we've recently changed to an alternate scheme involving the updated version in a file named "version".
* RELEASING: Add a step to upgrade the version in the "version" file.Carl Worth2010-04-16
| | | | | | It is annoying to have an extra step here, but it does at least mean that we are back to just "make release" rather than "make VERSION=X.Y release".
* Makefile: Add an explicit version file to the repository.Carl Worth2010-04-16
| | | | | | | | | | | | | | | | | We do this so that "git archive" produces a usable tar file without us having to post-modify it, (since tools like git-buildpackage might not give us an easy way to hook into the tar-file-creation step). To support this we also have to change our preference to prefer the git-described-based version (if available) and only if not available do we fallback to using what's in the "version" file. Finally, we also ovverride this preference when releasing, (where what's in the "version" file wins). Note that using our Makefile's rule to create a tar file still will insert the git-based version into the tar file. This is useful for creating snapshots which will correctly report the git version from which they were created.
* debian/changelog: Create an entry for the 0.2 release.Carl Worth2010-04-16
| | | | A (very slightly filtered) version of what already appears in NEWS.
* RELEASING: Add a (manual!) step to create a debian/changelog entryCarl Worth2010-04-16
| | | | | I'd like to have this be fully automated in the future, but for now, it's an extra step.
* debian: Don't auto-generate debian/changelog.Carl Worth2010-04-16
| | | | | | | 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).
* debian: Add a gbp.conf to start using git-buildpackageCarl Worth2010-04-16
| | | | | | | | | | | | | 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.
* make release: Don't print the release message on stdout.Carl Worth2010-04-16
| | | | | It's just too long for copy/paste, so just let the user know the name of the file containing the message instead.
* Makefile: Fix "make release" to print the current release announcement.Carl Worth2010-04-16
| | | | This was accidentally hard-coded to always print the 0.1 NEWS blurb.
* NEWS: Add release notes for the 0.2 release.Carl Worth2010-04-16
|
* Revert "notmuch.el: 'F' in search mode takes us to a list of folders."Carl Worth2010-04-16
| | | | | | | | | 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).
* notmuch.c: Shorten version stringSebastian Spaeth2010-04-16
| | | | | | | | 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>
* emacs: Fix search filtering of a global search ("*")Carl Worth2010-04-15
| | | | | | | | | | | | | | | 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.
* TODO: Add two tasks that both have to do with auditing the library APICarl Worth2010-04-15
| | | | | | | 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.
* RELEASING: Change wording of libnotmuch version instructionCarl Worth2010-04-15
| | | | | | | 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.
* make release: Enforce a clean source tree before release.Carl Worth2010-04-15
| | | | | Where by clean, we check that no files are known to git to be modified.
* RELEASING: Remove a meaningless step from the release process.Carl Worth2010-04-15
| | | | | | | | | | | 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).
* configure: Fix syntax error (spaces in assignment).Gregor Hoffleit2010-04-15
| | | | | | 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.
* Fix typo in messageBen Gamari2010-04-15
|
* make release: Provide a kinder message when VERSION is forgotten.Carl Worth2010-04-15
| | | | | I'm unlikely to always remember to pass VERSION=X.Y so it's nice for make release to remind me.
* Makefile: Re-order the commands in "make release" slightly.Carl Worth2010-04-15
| | | | | | | | | | | 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).
* Makefile: Simplify the release targets.Carl Worth2010-04-15
| | | | | | | | | | | | | 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.
* Makefile.local: Fix typo in comment.Carl Worth2010-04-15
| | | | Just an extra word that clearly didn't belong.
* RELEASING: Remove obsolete step about updating micro version number.Carl Worth2010-04-15
| | | | | | | 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.
* Makefile: Make "make release" run the test suite.Carl Worth2010-04-15
| | | | | This drops one manual step from our release process, (helping to ensure we don't forget anything during the release).
* make test: Actually count and report on failures.Carl Worth2010-04-15
| | | | | | | | 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).
* test: Unify all tests to use the pass_if_equal function.Carl Worth2010-04-15
| | | | | | | | | | | 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.
* test: Align the PASS/FAIL column.Carl Worth2010-04-15
| | | | Just to make things a little more pleasant to look at.
* Makefile: Add a "make test" target.Carl Worth2010-04-15
| | | | | | | 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".
* lib: search_threads: Fix nested search to handle original search of "*"Carl Worth2010-04-15
| | | | | | | | | | | | | | 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.
* test: Add a test for "notmuch search '*'"Carl Worth2010-04-15
| | | | | | | | | 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).
* test: Use an older date for the generated messages.Carl Worth2010-04-15
| | | | | | 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.
* test: Remove test-message filenames from generated messagesCarl Worth2010-04-15
| | | | | | | | | | 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.
* test: Disentangle execution of notmuch from the examination of the results.Carl Worth2010-04-15
| | | | | | | | | | | | | | 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.
* TODO: Add some ideas for improving the emacs interface.Carl Worth2010-04-15
| | | | | | | | 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.
* TODO: Add some ideas about better search syntaxCarl Worth2010-04-15
| | | | | | 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).
* Merge bugfix for test-suite correctness.Carl Worth2010-04-14
|\ | | | | | | | | | | | | The test suite was recently broken, and subsequently fixed (at the commit that introduced the breakage). This merges that fixup commit: f1776f8b51013bb66eb21e64c8084ddfe73c3a5c
| * test: Fix reply tests to track insignificant change in output.Carl Worth2010-04-14
| | | | | | | | | | | | | | | | | | | | 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.
* | Makefile: Fix final linking of notmuch binary for OS X.Carl Worth2010-04-14
| | | | | | | | | | | | | | | | | | | | | | | | 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.
* | Makefile: Add library version information on OS X.Carl Worth2010-04-14
| | | | | | | | | | | | | | 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).
* | Makefile: Fix library linking command for OS XCarl Worth2010-04-14
| | | | | | | | | | | | | | | | | | 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