summaryrefslogtreecommitdiff
path: root/devel
AgeCommit message (Collapse)Author
2013-12-30devel/release-checks.sh: adjust to LIBNOTMUCH version checksdebian/0.17-10.17Tomi Ollila
NOTMUCH_VERSION_* macros in lib/notmuch.h are replaced with LIBNOTMUCH_VERSION_* macros. Check that the values of those match the LIBNOTMUCH_*_VERSION values in lib/Makefile.local.
2013-11-11devel/release-checks.sh: check NOTMUCH_(MAJOR|MINOR|MICRO)_VERSIONTomi Ollila
New defines NOTMUCH_MAJOR_VERSION, NOTMUCH_MINOR_VERSION and NOTMUCH_MICRO_VERSION were added to lib/notmuch.h. Check that these match the current value defined in ./version.
2013-11-08emacs: Fix search tagging racesAustin Clements
This fixes races in thread-local and global tagging in notmuch-search (e.g., "+", "-", "a", "*", etc.). Previously, these would modify tags of new messages that arrived after the search. Now they only operate on the messages that were in the threads when the search was performed. This prevents surprises like archiving messages that arrived in a thread after the search results were shown. This eliminates `notmuch-search-find-thread-id-region(-search)' because these functions strongly encouraged racy usage. This fixes the two broken tests added by the previous patch.
2013-11-08Add TODO about more efficient stable thread queriesAustin Clements
2013-11-08search: Add stable queries to thread search resultsAustin Clements
These queries will match exactly the set of messages currently in the thread, even if more messages later arrive. Two queries are provided: one for matched messages and one for unmatched messages. This can be used to fix race conditions with tagging threads from search results. While tagging based on a thread: query can affect messages that arrived after the search, tagging based on stable queries affects only the messages the user was shown in the search UI. Since we want clients to be able to depend on the presence of these queries, this ushers in schema version 2.
2013-11-08schemata: Disambiguate non-terminal namesAustin Clements
Previously, the show schema and the search schema used different "thread" non-terminals. While these schemata don't interact, this is still confusing, so rename search's "thread" to "thread_summary". To further limit confusion, prefix all top-level search non-terminals now begin with "search_".
2013-05-31TODO: keybindings for next/previous thread doneJani Nikula
2013-05-23devel: add dkg's printmimestructure script to notmuch devel scriptsDavid Bremner
I find this script pretty useful when figuring out who to blame for MIME rendering problems. The notmuch repo will be the new primary home for this script, unless and until a better home turns up.
2013-04-14TODO: remove some completed todo items from the listJani Nikula
Bash completion has been rewritten. Configuration file saves follow symlinks. There is --config=FILE top level option to specify configuration file.
2013-04-06nmbug-status: only import notmuch when neededJani Nikula
Make it possible to use the script to query search views without notmuch python bindings installed.
2013-04-06nmbug-status: add support for querying the search viewsJani Nikula
Make it easy for scripts to read the views and corresponding searches.
2013-03-29devel: add post-release tools news2wiki.pl and man-to-mdwn.plTomi Ollila
After new notmuch release has been published the NEWS and manual pages have been updated using these 2 programs. Adding the tools to notmuch repository eases their use, adds more transparency to the "process" and gives more people chance to do the updates is one is unavailable to do it at the time being.
2013-03-29devel/STYLE: information how to enable standard pre-commit hookTomi Ollila
It is easier to enable git standard pre-commit hook, when the operation to do so is presented.
2013-03-02nmbug: allow empty prefixDavid Bremner
Current code does not distinguish between an empty string in the NMBPREFIX environment variable and the variable being undefined. This makes it impossible to define an empty prefix, if, e.g. somebody wants to dump all of their tags with nmbug.
2013-03-02nmbug: replace hard-coded magic hash with git-hash-objectDavid Bremner
This is at least easier to understand than the magic hash. It may also be a bit more robust, although it is hard to imagine these numbers changing without many other changes in git.
2013-03-02nmbug: use 'notmuch tag --batch'David Bremner
This should be more robust with respect to tags with whitespace and and other special characters. It also (hopefully) fixes a remaining bug handling message-ids with whitespace. It should also be noticeably faster for large sets of changes since it does one exec per change set as opposed to one exec per tag changed.
2013-03-02nmbug: use dump --format=batch-tagDavid Bremner
This should make nmbug tolerate tags with whitespace and other special characters it. At the moment this relies on _not_ passing calls to notmuch tag through the shell, which is a documented feature of perl's system function.
2013-02-18devel/release-checks.sh: added check that 1st NEWS header is tidyTomi Ollila
Check that the underlining '===...' for first (header) line in NEWS file is of the same length as the header text and it is all '=':s. -- extra execs removed by db.
2013-02-16nmbug: move from contrib to develDavid Bremner
There seems to be consensus to use presence in contrib as documentation of limited support by the notmuch developers; in fact nmbug is pretty integrated into our current development process, so devel seems more appropriate.
2013-01-24TODO: update entry on date range queriesJani Nikula
2013-01-24TODO: cleanup stuff that has been doneJani Nikula
M-RET notmuch-show-open-or-close-all opens all closed messages. The archiving change is mentioned twice, remove dupe. "notmuch search" supports --format=text0 to work with xargs -0
2013-01-22CLI: remove alias machinery, and "part", "search-tags" commandsDavid Bremner
The commands are long deprecated, so removal is probably overdue. The real motivation is to simplify argument handling for notmuch so that we can migrate to the common argument parsing framework.
2013-01-19devel/release-checks.sh: version string problem does not halt executionTomi Ollila
Version string has strict format requirements in release-check.sh: only numbers and periods (in sane order) are accepted. Mismatch there used to halt further execution. In this case, checking versions like '*~rc1' for (more) problems was not possible. This 'fatal error' is now changed buffered error message like in following tests, and is displayed at the end of execution.
2012-12-17show: indicate length, encoding of omitted body contentPeter Wang
If a leaf part's body content is omitted, return the encoded length and transfer encoding in --format=json output. This information may be used by the consumer, e.g. to decide whether to download a large attachment over a slow link. Returning the _encoded_ content length is more efficient than returning the _decoded_ content length. Returning the transfer encoding allows the consumer to estimate the decoded content length.
2012-12-16cli: Framework for structured output versioningAustin Clements
Currently there is a period of pain whenever we make backward-incompatible changes to the structured output format, which discourages not only backward-incompatible improvements to the format, but also backwards-compatible additions that may not be "perfect". In the end, these problems limit experimentation and innovation. This series of patches introduces a way for CLI callers to request a specific format version on the command line and to determine if the CLI does not supported the requested version (and perhaps present a useful diagnostic to the user). Since the caller requests a format version, it's also possible for the CLI to support multiple incompatible versions simultaneously, unlike the alternate approach of including version information in the output. This patch lays the groundwork by introducing a versioning convention, standard exit codes, and a utility function to check the requested version and produce standardized diagnostic messages and exit statuses.
2012-12-08Use the S-Expression structured printer in notmuch-show, notmuch-reply and notmuch-search.Peter Feigl
This patch uses the new S-Expression printer in the notmuch CLI (show, search and reply). You can now use --format=sexp for any of them.
2012-12-08Rename the -json printer functions in notmuch-reply and notmuch-show to generic -sprinter functions.Peter Feigl
All the structured output functions in notmuch-reply and notmuch-show are renamed to a generic name (as they do not contain any json-specific code anyway). This patch is a preparation to actually using the new S-Expression sprinter in notmuch-reply and notmuch-show.
2012-11-08devel: Document schemata in STYLEAustin Clements
2012-11-08devel: Add Reply-to to the schemataAustin Clements
The code got out of sync with the documentation in 7d3c06dc.
2012-11-07uncrustify.cfg: added 3 new types for uncrustify to knowTomi Ollila
Added FILE, notmuch_show_params_t and sprinter_t to be types when uncrustifying sources. This affect spacing when uncrustify is deciding for type declaration instead of binary multiplication operation.
2012-09-05devel: add release-checks.shTomi Ollila
Currently Makefile.local contains some machine executable release checking functionality. This is unnecessarily complex way to do it: Multiline script functionality is hard to embed -- from Makefile point of view there is just one line split using backslashes and every line ends with ';'. It is hard to maintain such "script" when it gets longer. The embedded script does not fail as robust as separate script; set -eu could be added to get same level of robustness -- but the provided Bourne Again Shell (bash) script exceeds this with 'set -o pipefail', making the script to fail when any of the commands in pipeline fails (and not just the last one). Checking for release is done very seldom compared to all other use; The whole Makefile.local gets simpler and easier to grasp when most release checking targets are removed. When release checking is done, the steps are executed sequentially; nothing is allowed to be skipped due to some satisfied dependency.
2012-07-24schemata: update for --body=true|false optionMark Walters
Previously body: was a compulsory field in a message. The new --body=false option causes notmuch show to omit this field so update schemata to reflect this.
2012-07-09Add missing "tags" field to search schemaAustin Clements
This field is output by search, but it didn't make it into the documentation.
2012-06-30Minor correction to devel/schemataMark Walters
In id:"87sjdm12d1.fsf@awakening.csail.mit.edu" Austin pointed out that devel/schemata needs a slight correction with the new --entire-thread=false option. This is that correction.
2012-06-29Update devel/schemata for --entire-thread=falseMark Walters
Also remove the Json --entire-thread item from devel/TODO.
2012-06-03uncrustify.cfg: comments and more typesTomi Ollila
Changes to devel/uncrustify.cfg: * Updated header comment to state this is config file for *notmuch*. * Added comment about the reason of 'type' keyword used. * Added some more custom types woth 'type' keyword. * Have (every) multiline comment lines start with '*'.
2012-04-15Sync schemata with current code structureAustin Clements
The schema itself hasn't changed, but many of the references to functions in notmuch-show.c were out of date.
2012-03-19schemata: Add documentation for JSON reply format.Adam Wolfe Gordon
2012-03-19TODO: Add replying to multiple messagesAdam Wolfe Gordon
2012-02-27Document the JSON schemata used by show and searchAustin Clements
2012-02-12STYLE: Initial draft of coding style documentDavid Bremner
This was edited by (at least) Austin, Tomi, and myself. Amended with Austin's proposed wording for indentation.
2012-01-25uncrustify.cfg: label indent, some known types, not, # and ##Tomi Ollila
Adjusted some uncrustify variables to get closer to prevailing style: * Label indent (for goto) relative to current indentation. * Registered GMimeObject and mime_node_t being as types. * Space after ! (not) operator. * No space after 'stringify' (#) preprosessor token. * No spacing change around ## (option not versatile enough). There are at least 3 cases where attention needs to be paid: * If there is newline between function name and open paren in function call, the paren (and args) are indented too far right. * #define HOUR (60 *MINUTE) -- i.e. no space after star (*). * void (*foo)(args) -- i.e no space between (name) and (args).
2012-01-21uncrustify.cfg: initial support for notmuch coding styleDavid Bremner
Uncrustify is a free (as in GPL2+) tool that indents and beautifies C/C++ code. It is similar to GNU indent in functionality although probably more configurable (in fairness, indent has better documentation). Uncrustify does not have the indent mis-feature of needing to have every typedef'ed type defined in the configuration (even standard types like size_t). This configuration starts with the linux-kernel style from the uncrustify config, disables aggressive re-indenting of structs, and fine tunes the handling 'else' and braces. In an ideal situation, running uncrustify on notmuch code would be NOP; currently this is not true for all files because 1) the configuration is not perfect 2) the coding style of notmuch is not completely consistent; in particular the treatment of braces after e.g. for (_) is not consistent. Some fine tuning by Tomi Olilla.
2012-01-17Start devel directory for developer tools and documentation.David Bremner
We had a lot of back and forth about the name of this directory, but nothing very conclusive. In the end, I just chose "devel" just to move on.