Revision history for Search-OpenSearch

0.01    01 Feb 2010
        First version, released on an unsuspecting world.

0.02    02 Feb 2010
        * initial XML support, via XML::Atom.

0.03    03 Feb 2010
        * drop XML::Atom in favor of hand-rolled XML with Search::Tools::XML.
          This is primarily to avoid double-escaping the highlighting.
        * add snippet and highlighting support via Search::Tools.

0.04    05 Feb 2010
        * fix off-by-one error in fetch_results()

0.05    22 Feb 2010
        * add facet support

0.06    23 May 2010
        * add 'engine' to Response
        * add client tests with WWW::OpenSearch

0.07    22 June 2010
        * refactor base classes to move most functionality into the Engine,
          and added 'r' option to not return results (for facets only, e.g.).
        * stringify() Response classes should always return UTF-8 octets (bytes) 
          not characters. This should ensure no "wide character" warnings when
          printing and will work with S::OS::Server::Plack, which requires bytes.
        * add default_boolop support with 'b' param
        * add parsed_query to Response

0.08    26 June 2010
        * add missing 'order' param to default Searcher params
        * add 'parser_config' to Engine

0.09    25 July 2010
        * fix bug and clarify docs w.r.t 'c', 'f' and 'r' params to Engine->search()
        * add "query_json" object to Response

0.10    30 Nov 2010
        * pass original args to Engine->search() through to build_results() and build_facets().
          This (in theory) should make it easier for subclasses to extend the functionality
          of search() without needing to override it.

0.11    07 Jan 2011
        * add has_rest_api feature to base Engine class.
        * add debug attribute to Engine class.

0.12    14 Jan 2011
        * add Response->add_attribute feature

0.13    19 June 2011
        * logger dependent on debug==true

0.14    26 Sept 2011
        * create UUID string instead of binary in XML response format 
        * default hiliter config now uses tag <b class="h"> instead of <span style="...">
        * add init_default_response_format to base Engine class.

0.15    22 Oct 2011
        * add 't' param, deprecating 'format'
        * add 'u' param, deprecating 'link'
        * add searcher_config and indexer_config and flesh out new() pod.

0.16    26 July 2012
        * add missing dependency on Data::UUID
        * add content_type() get method on Response subclasses
        * add Response::ExtJS class
        * add get_facets_cache_key() method to Engine
        * refactor Response->add_attribute() method

0.17    6 Aug 2012
        * add version() to Response and Engine classes.
        * add error() method to Response and Engine classes.
        * switch to Module::Install

0.18    21 Aug 2012
        * add array_field_values option to Engine

0.19    22 Aug 2012
        * change XML response format to more closely align with OpenSearch (Atom) spec,
          particularly for SOS-specific metadata

0.20    3 Sept 2012
        * move XML-escaping of field values *after* snipping is performed, in case the
          Snipper breaks the markup. Most noticeable with quote and apos entities.
        * add Engine->get_allowed_http_methods method

0.21    19 Sept 2012
        * add Tiny Response class
        * add 'x' param support for returning a subset of an Engine's field values,
          per request.

0.22    10 Oct 2012
        * debug param now passed from Engine to Response
        * charset encoding UTF-8 now passed explicitly in Response->content_type for JSON
          and XML.

0.23    17 Oct 2012
        * add suggester() method to Engine and suggestions() to Response

0.24    18 Dec 2012
        * add Engine->response_version

0.25    12 Feb 2013
        * add strip_markup => 1 to default snipper_config