/
Changes
315 lines (254 loc) · 13.8 KB
/
Changes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
Revision history for Perl extension Prog.
0.01 Tue Nov 22 21:54:37 2005
- original version; created by h2xs 1.22 with options
-XA -n Prog
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.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.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.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.06 * S::P::Object now defers to explicit 'config' passed in new().
0.07 * S::P::Object iterator now uses more idiomatic while/next algorithm.
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.20 23 April 2008
* complete rewrite of the API for Swish3 development
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.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.23 11 Dec 2008
* properly clean up temp Config 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.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.26 26 Feb 2009
* fix off-by-one error in skip test count in t/03-object.t
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.28 30 Sept 2009
* add some missing calls to SUPER::init()
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.30 29 Nov 2009
* change KinoSearch to KSx in implementation registry
* fix bug in base Searcher where InvIndex class was not loaded.
0.31 1 Dec 2009
* POD fixes
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.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.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.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.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.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.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.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.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.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.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.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.44 19 Mar 2010
* register MailFS aggregator as 'mailfs' for use with swish3 -S
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.46 22 June 2010
* add dep on Search::Query
* add default_boolop feature to Native::Searcher
* fix IncludeConfigFile recursionin Config->ver2_to_ver()
0.47 25 July 2010
* add Search time to swish3 (3.0.7)
* fix bug in Native::Searcher affecting fieldtypes
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.49 07 Jan 2011
* refactor FileRules feature into File::Rules module
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.51 28 June 2011
* add 'Lucy' backend
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.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.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.55 6 Nov 2011
* fix skip test count in t/15
0.56 2 Apr 2012
* make swish3 stdin/stdout utf8 safe
0.57 7 May 2012
* change default max_depth in Spider to 1 (makes it actually work by default)
0.58 26 June 2012
* fix Config class for FuzzyIndexingMode conversion to XML (ver3)
0.59 26 July 2012
* add FollowXInclude support for Swish3
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.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.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.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.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.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.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.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.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.69 05 Feb 2013
* fix documentation for SWISH::Prog::InvIndex::Meta, add data() accessor method.