Priority Difficulty Area Task Release Owner
Update the PLATFORMS file * James
make sure the non-autogenerated docs are kept up-to-date * James
Medium 3 API Implement methods to iterate through all the documents in the database. Possibly via a special term which indexes all documents. 0.6
Medium 3 Databases Change all internal references to net/network backend to remote backend (in step with external naming) 0.6
Medium 2 General Check for zero byte cleanness wherever strings are used. There are a number of c_str()s in the code, but I believe all in the core library (excluding the bindings) are harmless at 2002-04-29. There may be other zero byte issues though. xapian-applications/dbtools also uses c_str() where it should probably use data() and length(). 0.6
Medium 2 OmQuery Move all serialisation of OmQuery into OmQuery (out of socketcommon.cc and localmatch): modification of omquery requires changes in 3 separate parts of the code, at present. 0.6
Medium 3 Stemming Replace our own stemming code with Martin Porter's snowball stemmers (with a thin OmStem wrapper). 0.6
Low 4 API Allow custom weighting functions. 0.6
Low 3 Quartz Make quartz database autoflush when enough changes have been performed based on the memory used up as a proportion of that available, rather than simply when a count of changes is reached. Remove hardcoded count of 1000 changes. 0.6
Verylow 4 General Make backends / weighting schemes / indexer modules register themselves automatically. At runtime / linktime? (ie, replace current conditional compilation scheme) - actually, we can use sub-classing and factory classes to do this more cleanly. 0.6
Fix up examples and make sure they are actually instructive. I've made a start. delve is a reasonable example. msearch probably needs simplifying to just do a probabilistic search, or to use OmQueryParser. 0.6 Olly
Replace all uses of OmSettings. The arguments for OmSettings are not as compelling as we originally thought, and it has definite drawbacks - one major one being that there's no easy way to check for typos which can lead to users of the library spending hours trying to sort out a bug which is just a typo in an OmSettings value. Another argument for it was to allow passing values to user weighting objects, etc, but I think it's best just to implement these with a clone() method, and pass an example one in. And we might as well make built-in weighting objects work the same way rather than being a special case. Backends can be done similarly, though an explicit factory is needed as there's more than one class to build. 0.6 Olly
indexgraph -> extra (needs to build as a support library?) 0.6
Documentation Finish reading through generated docs to ensure they read well in collated form. 0.6 Olly
Medium 5 Documentation Ensure that API documentation covers entirety of API (i.e. that all methods and classes in the API have documentation comments) -- see doxygen generated file docs/doxygen_api_warnings for a list of undocumented methods. Then read through generated API docs, and rewrite doc comments to improve clarity and make them more coherent. 1.0
Medium 4 General Allow setting of the document length in OmDocument. (Currently defined to be the sum of the wdfs). 1.0
Medium 5 Porting Produce Microsoft Windows version, probably cross-compiling to mingw. 1.0 James
Medium 2 Quartz Ensure that quartz databases don't have a problem if there is no positional information entry available for a term / document combination. 1.0
Low 3 Documentation Add notes about catching exceptions throughout userman, particularly in examples (eg, search engine example) 1.0
.deb built, control files via autoconf 1.0 Olly