Revision history for Perl extension Prog. 0.74 01 Oct 2013 - packaaging clean up only 0.73 12 Sept 2013 - turn off Pod tests unless RELEASE_TESTING env var set. Pod::Coverage failures were because optional dependencies were not present but module load was attempted in order to walk symbol tree for pod tests. 0.72 10 Sept 2013 - add TRACE_ALL to pod-coverage test to discover why it suddenly started epic fail - add explicit port to t/17-spider-server, running on 5002 0.71 1 Aug 2013 - add --null_term feature to swish3 example - add sitemap support to Spider - swish3 -W sets SWISH_PARSER_WARNINGS env var 0.70 10 Feb 2013 - add tests for Utils class. - Utils extension regex now matches \w+ rather than hardcoded document extensions. 0.69 05 Feb 2013 - fix documentation for SWISH::Prog::InvIndex::Meta, add data() accessor method. 0.68 23 Jan 2013 - fix failing test t/17-spider-server with 'use base' vs '@ISA' - force URI objects to stringify when passing in/out of cache 0.67 19 Jan 2013 - Spider now uses LWP::RobotUA to respect robots.txt. Dependency on WWW::Mechanize is removed. - Spider authorization features now work. Added bona fide test suite for spidering. - expand Queue API to add remove() and clean() and internal locking on get() - Spider->modified_since feature to allow for incremental crawls - Added new class SWISH::Prog::Aggregator::Spider::Response, refactoring appropriate UA methods into Response class since WWW::Mechanize was intentionally blurring the logical distinction. - Spider->file_rules (new feature) follows same code path as Aggregator::FS. - added Utils::write_log and ::write_log_line methods for standardizing debug output 0.66 8 Dec 2012 - yanked redundant test t/09 as it is now part of Search::Tools - fix t/05 spider to warn on correct missing module; fix spider count 0.65 5 Nov 2012 - add more tests for MailFS aggregator - all Aggregators now set content-type to valid MIME instead of custom Swish types - Aggregator->set_parser_from_type() will now not override a defined Doc->parser() value 0.64 12 Oct 2012 - add --aggregator_opts to swish3 and SWISH::Prog - add looks_like_feed() to Spider, and add dependency on XML::Feed - switch Spider::UA parent class to WWW::Mechanize::GZip 0.63 11 Sept 2012 - add TagAlias support to Config. TagAlias is a Swish3 feature. - improve SWISH::Prog documentation - add --doc_filter to swish3, to allow for set_filter to work from an external Perl file. 0.62 3 Sept 2012 - support subclassing of Indexer in start() sanity check introduced in 0.61 - add InvIndex->meta_file method and avoid referring to swish.xml directly 0.61 23 Aug 2012 - swish3 now catches exceptions and re-throws errors - swish3 now passes --debug flag into Searcher->new - base Indexer now performs check on existing indexes to verify that you aren't trying to run one format's Indexer against a different format's index. - swish_last_start file now created by base Indexer class, not swish3 cli. 0.60 28 July 2012 - add *_property methods to InvIndex::Meta - SWISH::3 now required dependency - added use_quotes and quote_char features to Aggregator::DBI, inspired by patch from Miko O'Sullivan. 0.59 26 July 2012 - add FollowXInclude support for Swish3 0.58 26 June 2012 - fix Config class for FuzzyIndexingMode conversion to XML (ver3) 0.57 7 May 2012 - change default max_depth in Spider to 1 (makes it actually work by default) 0.56 2 Apr 2012 - make swish3 stdin/stdout utf8 safe 0.55 6 Nov 2011 - fix skip test count in t/15 0.54 14 Oct 2011 - $SWISH::Prog::Utils::DefaultExtension now let's you configure default file extension - fix SWISH::Prog::Config->new() to support perldoc's claims of passing in a hashref or named attribute pairs. 0.53 09 Oct 2011 - fix DBI Aggregator to make code support docs for swishtitle and swishdescription. Bug reported by Logan Bell. - fix FS Aggregator behavior to work like 2.x and not skip files with no extension. - fix bug in swish3 where index dir is not created before swish_last_start is touched. - confess() when swish.xml does not exist - base Aggregator class no longer requires an indexer in new(). 0.52 26 Sept 2011 - add support for IndexFile config option - add --lucy_highlightable option to swish3 - new class SWISH::Prog::ReplaceRules for backcompat - add get_stemmer_lang() method to Config class for Snowball stemmer forward-compat. 0.51 28 June 2011 - add 'Lucy' backend 0.50 22 Feb 2011 - make swish3 -N flag argument optional, defaulting to indexdir/swish_last_start - error check in base Indexer for valid invindex param - misc doc fixes 0.49 07 Jan 2011 - refactor FileRules feature into File::Rules module 0.48 03 Nov 2010 - added progress() feature to Aggregator classes, and 'expected' param to swish3. - add CascadeMetaContext config option for Swish3 compatibility - bump SWISH::3 (optional) dependency to 0.09 - fix MailFS aggregator to preserve filesystem paths as Doc url 0.47 25 July 2010 - add Search time to swish3 (3.0.7) - fix bug in Native::Searcher affecting fieldtypes 0.46 22 June 2010 - add dep on Search::Query - add default_boolop feature to Native::Searcher - fix IncludeConfigFile recursionin Config->ver2_to_ver() 0.45 08 May 2010 - fix swish3 to allow "swishrank" as -x option - enable -H option in swish3 - SWISH::3->slurp optimization now uses transparent gunzip feature. Requires SWISH::3 >= 0.06. - fix backcompat for DefaultContents config in Config->ver2_to_ver3() 0.44 19 Mar 2010 - register MailFS aggregator as 'mailfs' for use with swish3 -S 0.43 19 Mar 2010 - remove docs and method for 'sort_order' in abstract Searcher class. No subclass uses it, deferring to 'order' in the search() method opts. - FS->crawl now returns count - add MailFS aggregator class 0.42 27 Feb 2010 - add invindex format to search output headers in swish3 - add parsed query to search output headers in swish3; add query() method to base Results class. - add progress_size to Aggregator and implement in FS. 0.41 10 Feb 2010 - fix the check_swish() feature in Native::Indexer to only return the version number, not the whole output of swish-e -V (fixes the -D fix in 0.40). 0.40 09 Feb 2010 - make -D '\x03' optional in Native::Indexer based on which version of swish-e is available. The -D feature is only in 2.4.8 or newer. 0.39 07 Feb 2010 - add fix for systems using Swish-e 2.6, which doesn't create a index.swish-e file. - remove the requires_external_bin from Makefile.PL since KSx and Xapian do not require swish-e but do require SWISH::Prog. Fix tests (which also check for swish-e) to SKIP the correct number of tests. 0.38 05 Feb 2010 - add support for 'order', 'limit', 'start', 'max' and 'rank_scheme' in Native::Searcher. - Utils->perl_to_xml() moved to Search::Tools::XML (where it really belonged). - enable more options to swish3 0.37 01 Feb 2010 - add -D '\x03' to the Native::Indexer exec command. This mimics libswish3. - examples/swish3 now installed by default with usual make install. - added -N option to swish3, along with ok_if_newer_than feature in Aggregator. - added dependency on Rose::DateTime. - Native Indexer can now merge() and add(). - -l and -M options now supported in swish3 - yank Query.pm and QueryParser.pm. They weren't used and the idea is now fleshed out in Search::Query if we ever need it. - Searcher may now take an array of invindex values, and always returns an array ref of values. 0.36 12 Jan 2009 - fix Config bug where StoreDescription was ignored in ver2_to_ver3() - switch to Module::Install - updates to example/swish3 - fix t/03_object.t to test for JSON not YAML::Syck (see RT#53275) 0.35 09 Jan 2009 - fix bug in Config where $append flag was being interpreted as a MetaName/Property - fix bug in Config where ver2_to_ver3 was calling $self->new instead of $class->new when passed a filename. - fix bug in Spider where filter was not being passed correctly. 0.34 07 Jan 2009 - fix mem leak test to include only those outside our control. - add version() to SWISH::Prog::Doc to pick header style per instance. 0.33 02 Jan 2010 - fix bug where SWISH::3->slurp was being called with out binmode flag and .gz files were getting their NUL bytes stripped. - add test_mode feature (set with SWISH_TEST env var) - fix some memory leaks - fix JSON::XS dependency (JSON required, not JSON::XS). 0.32 12 Dec 2009 - Config->ver2_to_ver3() method now supported. - fix bug in Prog.pm to allow Config passed in aggregator and Indexer passed in aggregator - removed dependency on Class::Accessor for Config.pm - refactor internal handling of Config object so there is only ever one per Prog instance - refactor internal handling of Config to support SWISH::3::Config - FileRules support now in Aggregator::FS 0.31 1 Dec 2009 - POD fixes 0.30 29 Nov 2009 - change KinoSearch to KSx in implementation registry - fix bug in base Searcher where InvIndex class was not loaded. 0.29 8 Nov 2009 - add strip_plural option to Utils->perl_to_xml() - add count attribute to arrayref values of hashrefs in perl_to_xml() - fix method/param name strictness bug revealed by Rose::ObjectX::CAF 0.03. This mostly required internal param name changes to official method names. 0.28 30 Sept 2009 - add some missing calls to SUPER::init() 0.27 28 Sep 2009 - make QueryParser and Query part of the official install, even though there are still TODO items - add all_metanames() method to Config - refactor to use Search::Tools and Rose::ObjectX::CAF instead of Class::Accessor::Fast 0.26 26 Feb 2009 - fix off-by-one error in skip test count in t/03-object.t 0.25 26 Jan 2009 - added more features to example/swish3 - add missing test file to MANIFEST - tests clean up after themselves wrt swish.xml header files 0.24 20 Jan 2009 (Happy Obama Day!) - add base Searcher, Results and Result classes - refactor QueryParser to use Search::QueryParser::SQL - flesh out the InvIndex::Meta class, adding XML::Simple dependency - IMPORTANT: rename Native classes to match naming convention 0.23 11 Dec 2008 - properly clean up temp Config files 0.22 10 Dec 2008 - added support for SWISH::Prog::DBI - use SWISH::3 for slurping files, if available. - fix bug in SWISH::Prog::Utils->perl_to_xml where hash refs were not getting tagged. 0.21 31 Oct 2008 - fix tests to skip correct numbers if swish-e not installed - change to JSON::XS and make json default format in Aggregator::Object - add perl_to_xml() in Utils - change t/04 to manually create dirs at test time 0.20 23 April 2008 - complete rewrite of the API for Swish3 development 0.08 22 Nov 2007 - added S::P::Mail class and example swishmail.pl script - sync all $VERSION vars to same value - allow for non-standard docclass names 0.07 * S::P::Object iterator now uses more idiomatic while/next algorithm. 0.06 * S::P::Object now defers to explicit 'config' passed in new(). 0.05 * S::P::Object now uses JSON or YAML to serialize values instead of Data::Dump - This change is sync'd with SWISH::API::Object 0.0.6 0.04 * S::P::DBI no longer calls disconnect() on db handle in DESTROY - fixed bug with auto-defining metanames - S::P::Config always returns arrayref on directive method calls - use MIME::Types instead of File::Type - S::P::Find now uses File::Find instead of Path::Class::Iterator - S::P::Object obj_filter() must return an object of some kind - S::P::Object will not dump() scalar strings, thus avoiding extra quotes - S::P::Config added stringify() method and reverted from IO::All to File::Slurp - S::Prog added elapsed() method - S::Prog new() verbose now defaults to 1 0.03 * removed all mentions of SWISH3 - test indexes are removed as part of 'make clean' - switched from Data::Dumper to Data::Dump - added new SWISH::Prog::Object example - fixed bug in SWISH::Prog::Headers to test defined() rather than simply eval true/false - fixed bug in SWISH::Prog::DBI with accepting DBI handle in init() - changed to using IO::All instead of File::stat and File::Slurp for better UTF8 support - changed default order of init() and init_indexer() to work more intuitively. Fixed S::P::DBI accordingly. To prevent an indexer from being init'd (as in 0.02) simply override init_indexer() and don't call SUPER::init_indexer(). - new feature: SWISH::Prog::Find - renamed meta() to table_meta() in SWISH::Prog::DBI for clarity. - S::P::Config now always handles config params as arrays - Config metanames() propertynames() and propertynamesnostripchars() are no longer available - S::P::Config now requires IO::All and Config::General; added read2() method. - new feature placeholder: SWISH::Prog::Spider 0.02 POD fixes - added merge() add() and mv() methods to S::P::Index and t/3merge.t and t/4add.t - added 2 more test docs - added format() accessor to S::P::Index - changed S::P::I to use Class::Accessor::Fast since we don't need to override get/set - S::P now always inits an indexer even if fh=>0 - added private _index_methods to S::P 0.01 2005-11-22T21:54:37Z - original version; created by h2xs 1.22 with options -XA -n Prog