-
Notifications
You must be signed in to change notification settings - Fork 87
/
Copy pathCHANGES
282 lines (211 loc) · 9.39 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
1.6.0
* Adapters - Support for Rails 6.1 and above (Adapters::ActiveRecord,
Adapters::ActiveSupportCache, ActiveSupportCache::MonetaStore)
* Adapters::YAML - add `theadsafe` option
* Adapters::Sequel - fix deadlock issue with #increment on MySQL in newer
Sequel versions (#244)
* Adapters::Sequel - fix issue with Postgres HStore on newer Postgres (#243)
* Adapters - fixed an issue many adapters had where #merge! errored if passed
an empty hash (#246)
* Support changes - Drop support for 2.3 and 2.4, add support for 3.x
1.5.2
* Proxy - handle returning config when the adapter does not use config
* Avoid calling `supports?(:expires)` when expiry isn't needed
* Adapters::Mongo - fix `merge!` behaviour when no values are inserted
1.5.1
* Adapters::File - fix an implicit hash issue in Ruby 3 (#222)
1.5.0
* Adapters - internally, most (all?) adapters now inherit from a base Adapter class
* Adapters - adapter configuration is now accessed via a `config` method on
each adapter - see the code for examples. This shouldn't affect
users unless they were directly modifying adapters' attributes.
* Redis - fix deprecation warnings for Redis 4.6+ multi/pipelined handling (#215)
* Mongo - slight improvement to error handling
1.4.2
* Pool - fix busy-loop issue (#197)
1.4.1
* Adapters::Mongo - deprecate :db option, document :database option (#194)
* Adapters::Mongo - add retries to increment operation
1.4.0
* Adapters::Mongo - drop support for moped gem (#182)
* Adapters::Redis - use #exists? where available (#189)
* Some reorganisation of code into more separate files (#177)
1.3.0
* Transformer - add :each_key support (#170)
* Server - add :each_key support, use non-blocking IO (#165)
* Builder - dup options before passing to adapter/proxy (#174)
* Adapter::Couch - add HTTP basic auth support
* Support MRI 2.7.0 (#172)
* Minimum required MRI version is now 2.3.0 (#172)
1.2.1
* Transformer - fix :escape transformer deserialize implementation (#168)
1.2.0
* Adapters::Sequel - fix for compatibility with new version of JDBC SQLite
* Adapters::Couch - refactor of error handling, #clear, #merge!, #slice, rev caching
* Fallback - add fallback proxy (#162)
* Pool - rewrite to enable limiting of size, gradual shrinking
* Enumerable - add proxy providing Enumerable API (using #each_key)
* Adapters::Couch, Adapters::RestClient - add Faraday :adapter option
* Adapters::Couch - add :full_commit and :batch options to some operations
* Adapters::LRUHash - rewrite to take advantage of ordered hashes
* Adapters::ActiveRecord - recover from deadlock during increment
1.1.1
* Adapters::Sequel - use prepared statements
* Adapters::Sqlite - use upsert for increment where supported
1.1.0
* Adapters::ActiveRecord - rewrite to use Arel directly; support for Rails 5
* Moneta::Server - close all connections when stopping
* Moneta::Shared - recover from socket errors
* Transformer - add :urlsafe_base64; use this by default for keys with Couch
adapter
* Adapters::MongoMoped - recover from failed increment
* Moneta::Pool - fix race condition in #pop (#144)
* Moneta::Client - raise EOFError if a read fails
* Moneta::Expires - use Rational objects to get much more accurate time
resolution
* Moneta::Lock/Moneta::Pool - allow wrapped methods to call other wrapped
methods
* Adapters::Sequel - add optimisations for MySQL, PostgreSQL and SQLite
* Adapters::Sequel - add Postgres+HStore backend
* Add Adapters::ActiveSupportCache
* Adapters::Sqlite - add :journal_mode option
* Add table creation options to Sequel and ActiveRecord adapters
* Adapters::ActiveRecord - support for forking (#159)
* Adapters::Cassandra - rewrite to use cassandra-driver gem (#81)
* Adapters::Couch - add a LRUHash to cache document revs
* Adapters::KyotoCabinet - implement atomic increment
* Add :each_key feature and implemented on many adapters; add
Moneta::WeakEachKey (#143; see feature matrix)
* Add bulk read/write methods to the spec; added default implementation to
Defaults and fast versions in many adapters (#116; see feature matrix)
* First class support for latest JRuby (#160)
* Minimum required MRI version is now 2.2.2 (#135)
1.0.0
* Adapters::Sequel - allow usage of Sequel extensions and connection validation
* ActiveSupport::Cache::MonetaStore - dup options before mutating them
* ActiveSupport::Cache::MonetaStore - allow writing raw values
0.8.1
* Adapters::TokyoTyrant - more consistent error handling
* Adapters::MongoMoped - support for moped gem v2.0
* Adapters::MongoOfficial - support for mongo gem versions 2-4
* Adapters::File - fix a bug in #load (#74)
* Adapters::LRUHash - allow to disable the limits by passing nil for max_size, max_count
* Transformer - don't use OpenSSL::Digest::Digest namespace
* Adapters::Sequel - fix issue with unknown "blob" type
* Rack::Cache - fix deprecated require paths
* Adapters::MemcachedNative - properly close connections
* Transformer - support bson gem versions 2-4
* Transformer - switch to rbzip2 gem for bzip2 support
* Adapters::MemcachedDalli - #create returns a boolean
0.8.0
* Rename Moneta::Adapters::Mongo to Moneta::Adapters::MongoOfficial
* Add Moneta::Adapters::MongoMoped
* Drop Ruby 1.8 support
0.7.20
* Adapters::LRUHash: add option :max_value
* Moneta.new(:Couch, :Riak, :RestClient): use urlencode instead of base64 for key encoding)
* Transformer: Add :hex encoder
* Transformer: Don't wrap object in array for JSON serialization
* Transformer: Add :php serializer
* Moneta.new(:Sequel) - Don't encode blob data using base64
* Moneta::Adapters::LMDB added (Symas Lightning Memory-Mapped Database)
* Moneta::Adapters::Sequel - Fix for https://github.com/jeremyevans/sequel/issues/715
0.7.19
* ActionDispatch::Session::MonetaStore fixed for Rails 4
* Moneta::Server: Tries now to remove stale unix socket
* Moneta::Server: More robust and better performance
0.7.18
* Adapters::File#increment and #create fixed on JRuby
* Adapters::Couch and Adapters::Mongo can store hashes directly as documents.
It is not necessary to serialize values as strings anymore.
* Adapters::Couch#create added
* Pool thread safety improved
* Transformer: Add CityHash
0.7.17
* Transformer: LZ4 compression added
0.7.16
* Better builder validation
* Adapters::Sequel: check for correct exceptions
0.7.15
* CONTRIBUTORS file added
* Adapters::File#increment fixed
0.7.14
* Adapters::ActiveRecord, Adapters::Sequel: store values as blobs
* Adapters::ActiveRecord fixed and improved
0.7.13
* Adapters::ActiveRecord: Use connection_pool
* Adapters::File: Race condition in #increment fixed
0.7.12
* Concurrency tests added
* Bugfixes for File, Sqlite, Sequel and Datamapper, ActiveRecord
0.7.11
* Logger: Add option :file
* Adapters::TokyoTyrant supports both native (ruby-tokyotyrant) and pure-ruby tokyotyrant gems
* Adapters::Couch use Faraday directly instead of buggy CouchRest
* Adapters::RestClient use Faraday
* Transformer: add quoted printable encoding (:qp)
0.7.10
* Adapters::TokyoTyrant added
* Add attr_reader :backend and option :backend to some adapters
* Cache rename #backend to #adapter
0.7.9
* Adapters::KyotoCabinet added
* Feature detection methods #features and #supports? added
* Validity checks added which check features
0.7.8
* Adapters::Memcached: switched to Dalli by default
* Adapters::Daybreak: add option :sync to load and store
* Adapters::LRUHash: add option :max_count
* Adapters::Mongo: add options :user and :password
* Adapters::Mongo: Correctly close connection
* Adapters::Redis: Correctly close connection
* Transformer: add inspect key transformer
* Added #create method to atomically create entries
* Added WeakCreate and WeakIncrement proxies
* Added Mutex and Semaphore synchronization primitives for
shared/distributed database locks
* Rename unix socket options from :file to :socket
0.7.6
* Adapters::Daybreak: api changed
* Adapters::File: flock fix for jruby
* Transformer: add to_s key transformer
0.7.5
* OptionsSupport#with: Add support to insert additional proxies
* Builder#adapter: Accepts Moneta store instance now
0.7.4
* Transformer: fix truncate
* Adapters::RestClient: raise error if store fails
* Adapters::TDB added
* Adapters::Daybreak added
* Adapters::Mongo - Expiration and increment support added
* Pool proxy added
* Mixin ExpiresSupport added
* Expiration value handling unified
* 0 and false are interpreted as persist value
* Adapters::RestClient uses net/http now
0.7.3
* Added Adapters::RestClient
* Added Rack::MonetaRest
* Added Rack::MonetaStore
0.7.2
* Renamed WithOptions to OptionSupport
* Refactored Base in Defaults mixin
* Removed Transformer option :quiet
* Transformer might raise an exception if an invalid value is transformed
* Expires middleware only wraps Arrays and nils in an Array if
no expiration time is given (backward compatible change)
* Moneta middlewares are not allowed to modify option hash given to functions
like #load and #store
0.7.1
* Memcached: Use binary protocol and no base64 encoding of the keys
* Transformer: Remove newlines from base64 encodes values
* Server: Add method #run which will block and #running? to allow forking
* SDBM: #store might raise errors (Don't use SDBM, it is unstable!)
* Add #decrement method
* Fix #fetch to handle false correctly
* Fix Expires middleware to handle boolean and nil values correctly
* Base64 encode Riak keys since Riak needs valid UTF-8 for the REST interface
0.7.0
* Major rewrite by Daniel Mendler
0.6.0
* First public release by Yehuda Katz