This file lists incompatible changes between Sherlock versions which
need to be taken care of in existing front-ends and customizations.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
3.3 to 3.4:
o  Customizations must define CUSTOM_INDEX_TYPE and CUSTOM_INDEX_VERSION
   and they should change it with each incompatible change in index format.
   See lib/index.h for comments.
o  Customizations can define their own functions available to the filter
   language. Define CONFIG_CUSTOM_FILTER and see filter/builtin.c for an example.
o  [Centrum] Morphological dictionaries have been moved to the CVS and they
   are automatically installed by `make install', depending on settings
   of CONFIG_UFAL_DICT_{CS,SK} switches.
o  Sherlock library and UCW library are now separate. For includes specific
   to sherlock you need to use #include "sherlock/index.h" et al. Also, all
   modules (except the libraries) now should begin with #include "sherlock/sherlock.h"
   instead of "lib/lib.h".
o  Customizations can also define specific matching rules, see CUSTOM_MATCH_xxx
   in free/lib/custom.h.
o  New interval test operator =# and its case insensitive/unsigned variant =##.
   Switch commands with many such cases are optimized using red-black trees.

3.2.2 to 3.3:
o  Incompatible changes to Shepherd and ReapD protocols.
o  Added `text:<file>' indexer source, allowing indexing of databases without
   the need for creating bucket files.
o  Gatherer database (currently only if Shepherd is used) and parts of the index
   are now compressed.
o  Introduced CONFIG_AREAS mode in which gatherer (Shepherd only) and indexer
   splits the database to multiple areas according to area ID's assigned by the
   filters. Individual areas act independently, e.g., links from one area to
   another are not followed, documents are not merged across areas and search
   can be restricted to a given area by the AREA keyword.
o  The url-equiv file is now treated as a normal config file and it is a part
   of the source tree (custom/cf/url-equiv or cf/url-equiv if the former doesn't exist).
o  The HTML parser now recognizes <!-- robots:... --> comments.

3.2 to 3.2.2:
o  Added custom statistics and late-matching attributes (see free/lib/custom.h
   for an explanation) in a backward-compatible way.

3.1 to 3.2:
o  Added SORTBY xxx ONLY to make sherlockd force Q to be zero and sort only
   on the specified attribute.

3.0 to 3.1:
o  Merging of databases in the search server added. This means that you can
   feed the search server with several indices with a non-empty intersection
   and as long as they contains the card-prints file (generated optionally
   by the indexer), the duplicates are automatically resolved.
o  Site compression on multiple databases now works and it assumes that all
   databases share a common site ID space.

2.6 to 3.0:

o  CONFIG_BARE introduced and an example in "bare/*" added.
o  Each customization now brings its own local configuration in custom/cf/local,
   automatically included at the end of the global config file, and also its
   own filter rules.
o  Configuration switches are set to very conservative values in the default
   config and they should be overriden in the local config file if needed.
o  Indexer now omits almost whole stage 1 if the CONFIG_BARE mode is switched on.

2.5 to 2.6:

o  The "t" attribute in search server results (per-filetype stats) now shows
   only those filetypes which really matched. Turn on CONFIG_COUNT_ALL_FILETYPES
   for the previous behaviour.
o  The "W" attribute in search server results (word stats) now shows the number
   of matched documents as -1 if the search server didn't count the matches yet
   (for example if the query ended up with a shortcut answer).
o  Introduced error code 119 (simple search expression contains only non-indexed words).
o  Introduced redirect brackets (y ...) inside URL brackets (U ...).
o  Replaced (WORD|META)_TYPES_NO_AUTO_ACCENT by (WORD|META)_TYPES_AUTO_ACCENT_ALWAYS_(STRICT|STRIP)
   in definitions of custom word/meta types in custom.h.
