flying-sphinx 2.0.0 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9e456647fed387b52501630a4ccfcbb68997dac89175eb6f4d774373f4022cfe
4
- data.tar.gz: 06ebf9bd4a0c560f1df0892c58d36cab1b19d4571e47d37cd9ff16d32bfd3096
3
+ metadata.gz: e9e14e5453c49da728c4c1a6fcd73d3bb69f9757346d389118a83f2e637f8d02
4
+ data.tar.gz: a03b95890d0fbe8d5ecf8c9a4254bbb419ee06fc28f722fc1c90d4e7d3d21db3
5
5
  SHA512:
6
- metadata.gz: 6de104433df80fe158a321f122ab4d745b455e3132da6d4fac4a14d65d5dab481ce01b5992882c7216746856e93a7f6b5afc9422ab8f31d59fc89f329410bd64
7
- data.tar.gz: b8a333189a913fbc7011c63fa12f8d9c1c39037f22c00dc61d6bf77836e86107dd8f31a38b3867040410f8b480851b16b07b55829514fa3b7b4f7a1cc5a3ae73
6
+ metadata.gz: d2e2893b492f73235a30acfe70c3aab0958beca8f495606e0da53f743b17bf7869c2b2178ae2cff97fa3c4cc7496d88bb2fc0472a24b3d4d81a11291f12c4763
7
+ data.tar.gz: 1d7280b6f9b55632436a5665098bc77abe9f2ec859b4fe7073449953d451a8b89c9a2af6c4786a9041a6af29660b5169c2c6f36599cb12a4b4a46a06f72fe925
@@ -1,149 +1,282 @@
1
- 2.0.0 - 10th April 2018
2
- * Add support for Manticore (via engine setting in config/thinking_sphinx.yml).
3
- * Drop support for Thinking Sphinx 3.x or older.
4
- * Drop support for ActiveRecord/Rails 3.1 or older.
5
- * Drop support for Ruby 2.1 or older.
6
- * Deprecate fs tasks and the flying-sphinx CLI tool.
7
- * Use Thinking Sphinx v4's new task/command architecture, and so all the ts rake tasks perform the appropriate behaviour on Flying Sphinx.
8
-
9
- 1.3.1 - 4th December 2017
1
+ # Changelog
2
+
3
+ All notable changes to this project (at least, from v0.4.0 onwards) are documented in this file.
4
+
5
+ ## 2.1.0 - 2018-04-20
6
+
7
+ ### Added
8
+
9
+ * Check Sphinx/Manticore version against what's available on the Flying Sphinx servers as part of the configuration process.
10
+
11
+ ### Changed
12
+
13
+ * Update gzipped_tar dependency.
14
+
15
+ ## 2.0.0 - 2018-04-10
16
+
17
+ ### Added
18
+
19
+ * Add support for Manticore (via `engine` setting in config/thinking_sphinx.yml).
20
+ * Using Thinking Sphinx v4's new task/command architecture, and so all the ts rake tasks perform the appropriate behaviour on Flying Sphinx.
21
+
22
+ ### Changed
23
+
24
+ * Dropped support for Thinking Sphinx 3.x or older.
25
+ * Dropped support for ActiveRecord/Rails 3.1 or older.
26
+ * Dropped support for Ruby 2.1 or older.
27
+
28
+ ### Deprecated
29
+
30
+ * The fs tasks and the flying-sphinx CLI tool are deprecated and will be removed in a future release. Please use the standard Thinking Sphinx ts rake tasks instead.
31
+
32
+ ## 1.3.1 - 2017-12-04
33
+
34
+ ### Fixed
35
+
10
36
  * Fix call to generate real-time data for thinking-sphinx v3.4+.
11
37
 
12
- 1.3.0 - 4th December 2017
13
- * Use v5 of the flying-sphinx.com API.
14
- * Drop support for Ruby 1.8.7 and REE.
38
+ ## 1.3.0 - 2017-12-04
39
+
40
+ ### Changed
41
+
42
+ * Using v5 of the flying-sphinx.com API.
43
+ * Dropping support for Ruby 1.8.7 and REE.
15
44
  * Be clear about the reliance on thinking-sphinx v1.5 or better.
16
45
 
17
- 1.2.1 - 29th September 2017
18
- * Fix population of real-time indices for thinking-sphinx v3.4+.
46
+ ## 1.2.1 - 2017-09-29
47
+
48
+ ### Changed
49
+
19
50
  * Remove post-install message.
20
51
  * Relax Faraday requirement to allow for v0.7.
21
52
  * Improved behaviour with Ruby 1.8.7.
22
53
 
23
- 1.2.0 - 30th March 2014
54
+ ### Fixed
55
+
56
+ * Fix population of real-time indices for thinking-sphinx v3.4+.
57
+
58
+ ## 1.2.0 - 2014-03-30
59
+
60
+ ### Changed
61
+
24
62
  * All configuration files (Sphinx, wordforms, exceptions, etc) are now gzipped when sent to the API.
25
63
 
26
- 1.1.0 - 15th March 2014
27
- * Updated Faraday dependency to require 0.9 or newer (and removed faraday_middleware dependency).
64
+ ## 1.1.0 - 2014-03-15
65
+
66
+ ### Added
67
+
28
68
  * Added remote rotate support via custom controller.
29
69
  * Added regenerate command (for when real-time indices are being used).
70
+
71
+ ### Changed
72
+
73
+ * Updated Faraday dependency to require 0.9 or newer (and removed faraday_middleware dependency).
30
74
  * Removed the requirement of Rashie.
31
75
 
32
- 1.0.0 - 7th May 2013
76
+ ## 1.0.0 - 2013-05-07
77
+
78
+ ### Changed
79
+
33
80
  * Updating Riddle dependency to >= 1.5.6.
34
81
  * Support for Thinking Sphinx v1/2/3.
35
82
  * Delayed Job support pushed back to ts-delayed-delta.
36
83
  * Updating MultiJson dependency to ensure MultiJson.load is always available.
37
84
  * All actions are now tracked through Pusher, instead of polling or using slow HTTP requests.
38
85
 
39
- 0.8.5 - 10th December 2012
86
+ ## 0.8.5 - 2012-12-10
87
+
88
+ ### Changed
89
+
40
90
  * Daemon actions (start/stop) are now asynchronous.
41
91
  * More forgiving when environment variables aren't around. Particularly helpful for Padrino and Sinatra.
42
92
  * Make delta indexing jobs asynchronous - no need to wait for the result. Also, with the different URL, flying-sphinx.com will not queue up duplicate delta jobs within the last 20 minutes if there's a indexing job still pending.
43
93
 
44
- 0.8.4 - 22nd September 2012
94
+ ## 0.8.4 - 2012-09-22
95
+
96
+ ### Fixed
97
+
45
98
  * Load the Delta class when loading Rails.
46
99
 
47
- 0.8.3 - 17th September 2012
100
+ ## 0.8.3 - 2012-09-17
101
+
102
+ ### Changed
103
+
48
104
  * Requires Rails 3 or better (if you're using Rails).
49
105
  * Load Rails when configuring.
50
106
  * Don't check whether a document exists before marking it as deleted - Sphinx handles this gracefully anyway.
51
107
 
52
- 0.8.2 - 28th August 2012
108
+ ## 0.8.2 - 2012-08-28
109
+
110
+ ### Changed
111
+
53
112
  * Don't presume there is a Time.zone method (for Rails 2.3).
54
113
  * Set client key as part of the configuration generation process (for Rails 2.3).
55
114
 
56
- 0.8.1 - 28th August 2012
115
+ ## 0.8.1 - 2012-08-28
116
+
117
+ ### Changed
118
+
57
119
  * Load Thinking Sphinx when sending a generated configuration (as opposed to a hand-written file).
58
120
  * Rebuild command now sends the new configuration up, as before.
59
121
 
60
- 0.8.0 - 25th August 2012
61
- * Making the executable the main command entry point.
122
+ ## 0.8.0 - 2012-08-25
123
+
124
+ ### Added
125
+
62
126
  * Adding a 'flying-sphinx' executable to match Python and Node.js clients.
127
+
128
+ ### Removed
129
+
63
130
  * Removing support for accessing Heroku's shared databases through an SSH tunnel.
64
131
 
65
- 0.7.0 - 16th July 2012
132
+ ## 0.7.0 - 2012-07-16
133
+
134
+ ### Changed
135
+
66
136
  * Print the indexing log.
67
137
  * Distinguish between search server and SSH/indexing server, which allows for load balancers as the former.
68
138
  * Send the gem version through as a header on API calls.
69
139
  * Let flying-sphinx.com wrangle the Sphinx configuration.
70
140
  * Use v3 of the flying-sphinx.com API
71
141
 
72
- 0.6.6 - 14th July 2012
142
+ ## 0.6.6 - 2012-07-14
143
+
144
+ ### Changed
145
+
73
146
  * Don't complain about 201s for starting/stopping Sphinx.
74
147
  * Relaxing the faraday_middleware dependency to allow 0.8 releases (Matthew Zikherman).
75
148
 
76
- 0.6.5 - 3rd May 2012
149
+ ## 0.6.5 - 2012-05-03
150
+
151
+ ### Changed
152
+
77
153
  * Relaxing the multi_json dependency to allow for higher versions.
78
154
  * Support for staging.flying-sphinx.com.
79
155
 
80
- 0.6.4 - 3rd March 2012
156
+ ## 0.6.4 - 2012-03-03
157
+
158
+ ### Fixed
159
+
81
160
  * Fix for Rails 2 with API verbose logging.
82
161
 
83
- 0.6.3 - 1st March 2012
162
+ ## 0.6.3 - 2012-03-01
163
+
164
+ ### Added
165
+
166
+ * Allow direct database access when FLYING_SPHINX_INGRESS is set.
167
+
168
+ ### Changed
169
+
84
170
  * Slow down polling for direct indexing from every 1 second to every 3 seconds.
85
171
  * Verbose logging now has timestamps.
86
- * Allow direct database access when FLYING_SPHINX_INGRESS is set.
87
172
  * Use dups of ENV variables so the values can be modified.
88
173
  * Report if Sphinx wasn't able to start.
89
174
  * Load Flying Sphinx when ENV['FLYING_SPHINX_IDENTIFIER'] exists, instead of for any Rails environment that isn't development or test.
90
175
 
91
- 0.6.2 - 2nd January 2012
176
+ ## 0.6.2 - 2012-01-02
177
+
178
+ ### Changed
179
+
92
180
  * Pass Sphinx version through to Flying Sphinx servers.
93
181
 
94
- 0.6.1 - 4th November 2011
182
+ ## 0.6.1 - 2011-11-04
183
+
184
+ ### Changed
185
+
95
186
  * Adding Riddle dependency requirement.
96
187
  * Updating indexes (index plural) references to indices.
97
188
  * Updating faraday_middleware version requirement, to play nicely with OmniAuth (Paolo Perrotta)
98
189
 
99
- 0.6.0 - 31st July 2011
100
- * Version in a separate file.
190
+ ## 0.6.0 - 2011-07-31
191
+
192
+ ### Added
193
+
101
194
  * Support for all file-based Sphinx settings: stopwords, wordforms, exceptions, and mysql ssl settings for SQL sources.
102
195
 
103
- 0.5.2 - 28th July 2011
104
- * Log SSH exceptions during indexing (when we're being verbose).
196
+ ### Changed
197
+
198
+ * Version in a separate file.
199
+
200
+ ## 0.5.2 - 2011-07-28
201
+
202
+ ### Added
203
+
105
204
  * This history file now exists (pre-populated).
106
205
  * An actual README, courtesy of some prodding by Mislav.
107
206
  * Added support for wordforms (automatically sent through to the server).
207
+
208
+ ### Changed
209
+
210
+ * Log SSH exceptions during indexing (when we're being verbose).
108
211
  * Don't presume that ENV['DATABASE_URL'] exists - it won't in non-Heroku environments.
109
212
 
110
- 0.5.1 - 23rd June 2011
213
+ ## 0.5.1 - 2011-06-23
214
+
215
+ ### Added
216
+
111
217
  * Adding rake as a development dependency, just for Travis CI.
218
+ * Sinatra loader (equivalent of a Railtie).
219
+
220
+ ### Changed
221
+
112
222
  * Have a default database port - Cedar stack doesn't set it by default.
113
223
  * Allow for newer net-ssh gem versions (including 2.1).
114
- * Sinatra loader (equivalent of a Railtie).
224
+
225
+ ### Fixed
226
+
115
227
  * Fixed bug for handling JSON always as a Hash (sometimes it's an Array).
116
228
  * Better error checking when index requests don't get created as expected.
117
229
 
118
- 0.5.0 - 12th May 2011
230
+ ## 0.5.0 - 2011-05-12
231
+
232
+ ### Added
233
+
119
234
  * Rake tasks for latest actions and last index log.
120
- * Switching to version 2 of the API.
121
235
  * Adding default rake task for Travis CI.
122
- * Allow for Rails 2 versions of Delayed Job.
123
- * Set client_key for connections, configuration if supported by Riddle and Thinking Sphinx.
124
236
  * Allow server to automatically close SSH connections.
125
237
  * Adding logging on API calls (Josh Kalderimis).
126
238
  * Allow for non-tunnelled index requests (for RDS).
239
+
240
+ ### Changed
241
+
242
+ * Switching to version 2 of the API.
243
+ * Allow for Rails 2 versions of Delayed Job.
244
+ * Set client_key for connections, configuration if supported by Riddle and Thinking Sphinx.
127
245
  * Don't use custom database adapter if the database is MySQL.
128
246
  * Fall back to environment variables for connection settings.
129
247
  * Switching from JSON and HTTParty to MultiJSON and Faraday (Josh Kalderimis).
130
248
  * Using Bundler as gem driver instead of Jeweler (Josh Kalderimis).
131
249
  * More flexible JSON dependency.
132
250
 
133
- 0.4.4 - 7th February 2011
251
+ ## 0.4.4 - 2011-02-07
252
+
253
+ ### Changed
254
+
134
255
  * Using ActiveRecord's connection information, as we can't rely on heroku_env.yml to be around.
135
256
 
136
- 0.4.3 - 4th February 2011
257
+ ## 0.4.3 - 2011-02-04
258
+
259
+ ### Changed
260
+
137
261
  * Wait until the SSH session and forward is prepared before making the index request.
138
262
  * If credentials are invalid, raise an appropriate error instead of letting the JSON parsing fail.
139
263
 
140
- 0.4.2 - 29th January 2011
264
+ ## 0.4.2 - 2011-01-29
265
+
266
+ ### Changed
267
+
141
268
  * Set the Thinking Sphinx database adapter when loaded, instead of requiring the Rails dispatcher to setup.
142
269
 
143
- 0.4.1 - 24th January 2011
270
+ ## 0.4.1 - 2011-01-24
271
+
272
+ ### Changed
273
+
144
274
  * Comparing against response bodies for consistency (and avoiding HTTParty magic).
145
275
 
146
- 0.4.0 - 18th January 2011
276
+ ## 0.4.0 - 2011-01-18
277
+
278
+ ### Changed
279
+
147
280
  * Using HTTPS for API calls.
148
281
  * Using Flying Sphinx server's account identifier instead of the heroku id from the environment (the latter being unreliable and not part of any official Heroku add-on documentation).
149
282
 
data/Gemfile CHANGED
@@ -1,16 +1,3 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
3
  gemspec
4
-
5
- if RUBY_VERSION.to_f <= 1.8
6
- gem "public_suffix", "< 1.4.0"
7
- gem "nokogiri", "< 1.6.0"
8
- gem "activesupport", "< 4.0.0"
9
- elsif RUBY_VERSION.to_f <= 1.9
10
- gem "public_suffix", "< 1.5.0"
11
- gem "mime-types", "< 3.0"
12
- gem "nokogiri", "< 1.7.0"
13
- elsif RUBY_VERSION.to_f <= 2.0
14
- gem "public_suffix", "< 1.5.0"
15
- gem "nokogiri", "< 1.7.0"
16
- end
@@ -9,7 +9,7 @@ This is all covered pretty well on "the Flying Sphinx site":http://flying-sphinx
9
9
  <pre><code>gem 'flying-sphinx',
10
10
  :git => 'git://github.com/flying-sphinx/flying-sphinx.git',
11
11
  :branch => 'master',
12
- :ref => 'e72b86b56a'</code></pre>
12
+ :ref => 'da021897c6'</code></pre>
13
13
 
14
14
  h2. Compatibility and Limitations
15
15
 
@@ -19,7 +19,7 @@ Gem::Specification.new do |s|
19
19
 
20
20
  s.add_runtime_dependency 'ey-hmac', '~> 2.2'
21
21
  s.add_runtime_dependency 'faraday', '>= 0.7'
22
- s.add_runtime_dependency 'gzipped_tar', '~> 0.0.3'
22
+ s.add_runtime_dependency 'gzipped_tar', '~> 0.1.1'
23
23
  s.add_runtime_dependency 'multi_json', '>= 1.3.0'
24
24
  s.add_runtime_dependency 'pusher-client', '~> 0.3'
25
25
  s.add_runtime_dependency 'thinking-sphinx', '>= 4.0.0'
@@ -1,6 +1,7 @@
1
1
  class FlyingSphinx::Configurer
2
- PresignatureError = Class.new FlyingSphinx::Error
3
- UploadError = Class.new FlyingSphinx::Error
2
+ InvalidVersionError = Class.new FlyingSphinx::Error
3
+ PresignatureError = Class.new FlyingSphinx::Error
4
+ UploadError = Class.new FlyingSphinx::Error
4
5
 
5
6
  def self.call(api, input = nil)
6
7
  new(api, input).call
@@ -12,6 +13,11 @@ class FlyingSphinx::Configurer
12
13
  end
13
14
 
14
15
  def call
16
+ if invalid_version?
17
+ raise InvalidVersionError,
18
+ "Unknown Sphinx engine/version: #{config.engine}-#{config.version}"
19
+ end
20
+
15
21
  if presignature["status"] != "OK"
16
22
  raise PresignatureError, "Requesting presignature failed"
17
23
  end
@@ -31,6 +37,10 @@ class FlyingSphinx::Configurer
31
37
 
32
38
  attr_reader :api, :input
33
39
 
40
+ def config
41
+ @config ||= FlyingSphinx::ConfigurationOptions.new input
42
+ end
43
+
34
44
  def connection
35
45
  Faraday.new(:url => presignature["url"]) do |builder|
36
46
  builder.request :multipart
@@ -46,7 +56,6 @@ class FlyingSphinx::Configurer
46
56
  end
47
57
 
48
58
  def file
49
- config = FlyingSphinx::ConfigurationOptions.new input
50
59
  writer = GZippedTar::Writer.new
51
60
 
52
61
  writer.add "sphinx/raw.conf", config.raw
@@ -61,6 +70,10 @@ class FlyingSphinx::Configurer
61
70
  StringIO.new writer.output
62
71
  end
63
72
 
73
+ def invalid_version?
74
+ api.get("/versions/#{config.engine}-#{config.version}")["status"] != "OK"
75
+ end
76
+
64
77
  def presignature
65
78
  @presignature ||= api.get "/presignature"
66
79
  end
@@ -1,3 +1,3 @@
1
1
  module FlyingSphinx
2
- Version = '2.0.0'
2
+ Version = '2.1.0'
3
3
  end
@@ -16,6 +16,10 @@ describe 'Configuring Sphinx' do
16
16
  to_return(
17
17
  :body => '{"url":"https://foo","path":"bar","fields":{},"status":"OK"}'
18
18
  )
19
+ stub_hmac_request(
20
+ :get, "https://flying-sphinx.com/api/my/v5/versions/sphinx-2.2.11"
21
+ ).to_return(:body => '{"status":"OK"}')
22
+
19
23
  stub_request(:post, "https://foo/").to_return(:status => 200)
20
24
  end
21
25
 
@@ -2,13 +2,14 @@ require "spec_helper"
2
2
 
3
3
  RSpec.describe FlyingSphinx::Configurer do
4
4
  let(:subject) { FlyingSphinx::Configurer.new api }
5
- let(:api) { double :get => presignature }
5
+ let(:api) { double "API" }
6
6
  let(:presignature) { {
7
7
  "status" => "OK",
8
8
  "path" => "a/path/of/my/own",
9
9
  "url" => "https://confserver",
10
10
  "fields" => {"message" => "something"}
11
11
  } }
12
+ let(:version_check) { {"status" => "OK"} }
12
13
  let(:configuration_options) { double "conf options", :version => "2.2.3",
13
14
  :raw => "indexer ...", :settings => settings, :engine => "manticore" }
14
15
  let(:settings) { {
@@ -19,6 +20,10 @@ RSpec.describe FlyingSphinx::Configurer do
19
20
  before :each do
20
21
  stub_request(:post, "https://confserver").to_return(:status => 200)
21
22
 
23
+ allow(api).to receive(:get).with("/versions/manticore-2.2.3").
24
+ and_return(version_check)
25
+ allow(api).to receive(:get).with("/presignature").and_return(presignature)
26
+
22
27
  allow(FlyingSphinx::ConfigurationOptions).to receive(:new).
23
28
  and_return(configuration_options)
24
29
  end
@@ -144,4 +149,27 @@ RSpec.describe FlyingSphinx::Configurer do
144
149
  )
145
150
  end
146
151
  end
152
+
153
+ context "version failure" do
154
+ before :each do
155
+ version_check["status"] = "NOT FOUND"
156
+ end
157
+
158
+ it "raises an InvalidVersionError exception" do
159
+ expect { subject.call }.to raise_error(
160
+ FlyingSphinx::Configurer::InvalidVersionError
161
+ )
162
+ end
163
+
164
+ it "does not attempt to upload" do
165
+ begin
166
+ subject.call
167
+ rescue FlyingSphinx::Configurer::InvalidVersionError
168
+ end
169
+
170
+ expect(
171
+ a_multipart_request(:post, "https://confserver")
172
+ ).not_to have_been_made
173
+ end
174
+ end
147
175
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: flying-sphinx
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0
4
+ version: 2.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Pat Allan
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-04-10 00:00:00.000000000 Z
11
+ date: 2018-04-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: ey-hmac
@@ -44,14 +44,14 @@ dependencies:
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: 0.0.3
47
+ version: 0.1.1
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: 0.0.3
54
+ version: 0.1.1
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: multi_json
57
57
  requirement: !ruby/object:Gem::Requirement
@@ -218,8 +218,8 @@ files:
218
218
  - ".gitignore"
219
219
  - ".travis.yml"
220
220
  - Appraisals
221
+ - CHANGELOG.markdown
221
222
  - Gemfile
222
- - HISTORY
223
223
  - LICENCE
224
224
  - README.textile
225
225
  - Rakefile