flipper 1.1.0 → 1.1.2

Sign up to get free protection for your applications and to get access to all the features.
data/Changelog.md CHANGED
@@ -2,19 +2,37 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file.
4
4
 
5
- ## Unreleased
5
+ ## 1.1.2
6
+
7
+ ### Bug Fixes
8
+
9
+ - Fix ActiveRecord adapter when table doesn't exist (https://github.com/flippercloud/flipper/pull/786).
10
+ - Fix ActiveRecord adapter when using MySQL with expressions (https://github.com/flippercloud/flipper/pull/790)
11
+ - Fix an error where the Rails integration in `Flipper::Engine` was not properly delegating a class method to the instance (https://github.com/flippercloud/flipper/pull/788)
12
+
13
+ ### Additions/Changes
14
+
15
+ - Added `$ rails generate flipper:update` to generate necessary schema migrations (https://github.com/flippercloud/flipper/pull/787)
16
+
17
+ ## 1.1.1
18
+
19
+ ### Bug Fixes
20
+
21
+ - Whoops! Anyone not using flipper-active_record would hit a missing require because of our fancy gemspecs (https://github.com/flippercloud/flipper/pull/785).
22
+
23
+ ## 1.1.0
6
24
 
7
25
  ### Additions/Changes
8
26
 
9
- * Better read-only mode for UI (https://github.com/flippercloud/flipper/pull/772).
10
- * Allow configuring preload via a block similar to memoize (https://github.com/flippercloud/flipper/pull/771).
27
+ - Better read-only mode for UI (https://github.com/flippercloud/flipper/pull/772).
28
+ - Allow configuring preload via a block similar to memoize (https://github.com/flippercloud/flipper/pull/771).
11
29
  ```ruby
12
30
  Rails.application.configure do
13
31
  # don't preload features for /assets/* but do for everything else
14
32
  config.flipper.preload = ->(request) { !request.path.start_with?('/assets') }
15
33
  end
16
34
  ```
17
- * Added `strict` configuration to warn when accessing a feature that doesn't exist (https://github.com/flippercloud/flipper/pull/760, https://github.com/flippercloud/flipper/pull/763)
35
+ - Added `strict` configuration to warn when accessing a feature that doesn't exist (https://github.com/flippercloud/flipper/pull/760, https://github.com/flippercloud/flipper/pull/763)
18
36
  ```ruby
19
37
  Rails.application.configure do
20
38
  # Setting to `true` or `:raise` will raise error when a feature doesn't exist.
@@ -22,19 +40,22 @@ All notable changes to this project will be documented in this file.
22
40
  config.flipper.strict = !Rails.env.production?
23
41
  end
24
42
  ```
25
- * Handle deprecation of Rack::File in Rack 3.1 (https://github.com/flippercloud/flipper/pull/773).
26
- * Human readable actor names in flipper-ui (https://github.com/flippercloud/flipper/pull/737).
27
- * Expressions are now available and considered "alpha". They are not yet documented, but you can see examples in [examples/expressions.rb](examples/expressions.rb). (https://github.com/flippercloud/flipper/pull/692)
28
- * Allow head requests to api (https://github.com/flippercloud/flipper/pull/759)
29
- * Cloud Telemetry alpha (https://github.com/flippercloud/flipper/pull/775).
30
- * Easier statsd setup (https://github.com/flippercloud/flipper/pull/779).
43
+ - Handle deprecation of Rack::File in Rack 3.1 (https://github.com/flippercloud/flipper/pull/773).
44
+ - Human readable actor names in flipper-ui (https://github.com/flippercloud/flipper/pull/737).
45
+ - Expressions are now available and considered "alpha". They are not yet documented, but you can see examples in [examples/expressions.rb](examples/expressions.rb). Those using the `flipper-active_record` adapter will want to [migrate the database](See https://github.com/flippercloud/flipper/issues/557) so it can store JSON expressions (https://github.com/flippercloud/flipper/pull/692)
46
+ ```
47
+ $ rails generate flipper:update && rails db:migrate
48
+ ```
49
+ - Allow head requests to api (https://github.com/flippercloud/flipper/pull/759)
50
+ - Cloud Telemetry alpha (https://github.com/flippercloud/flipper/pull/775).
51
+ - Easier statsd setup (https://github.com/flippercloud/flipper/pull/779).
31
52
  ```ruby
32
53
  # You can now just do this in your configure block and it'll require the files and configure the client.
33
54
  Flipper.configure do |conf|
34
55
  conf.statsd = my_client
35
56
  end
36
57
  ```
37
- * Load cloud secrets from Rails credentials (https://github.com/flippercloud/flipper/pull/782)
58
+ - Load cloud secrets from Rails credentials (https://github.com/flippercloud/flipper/pull/782)
38
59
  ```bash
39
60
  $ rails credentials:edit -e development
40
61
  ```
@@ -48,52 +69,52 @@ All notable changes to this project will be documented in this file.
48
69
 
49
70
  ### Additions/Changes
50
71
 
51
- * ui, api: Allow Rack 3 (https://github.com/flippercloud/flipper/pull/670)
52
- * cloud: The `flipper-cloud` gem has been merged into the `flipper` and no longer needs to be added separately. Configure cloud by setting the `FLIPPER_CLOUD_TOKEN` environment variable. (https://github.com/flippercloud/flipper/pull/743)
53
- ```diff
54
- # Gemfile
55
- gem 'flipper'
56
- - gem 'flipper-cloud'
57
- ```
72
+ - ui, api: Allow Rack 3 (https://github.com/flippercloud/flipper/pull/670)
73
+ - cloud: The `flipper-cloud` gem has been merged into the `flipper` and no longer needs to be added separately. Configure cloud by setting the `FLIPPER_CLOUD_TOKEN` environment variable. (https://github.com/flippercloud/flipper/pull/743)
74
+ ```diff
75
+ # Gemfile
76
+ gem 'flipper'
77
+ - gem 'flipper-cloud'
78
+ ```
58
79
 
59
80
  ### Breaking Changes
60
81
 
61
- * Removed `bool`, `actors`, `time`, `actor`, `percentage_of_actors`, and `percentage_of_time` methods on `Flipper` and `Flipper::DSL`. They are rarely if ever used and conflict with some upcoming features. If you are using them, you can migrate via a search and replace like so:
62
- * Change `Flipper.bool` => `Flipper::Types::Boolean.new`
63
- * Change `Flipper.boolean` => `Flipper::Types::Boolean.new`
64
- * Change `Flipper.actor` => `Flipper::Types::Actor.new`
65
- * Change `Flipper.percentage_of_actors` => `Flipper::Types::PercentageOfActors.new`
66
- * Change `Flipper.actors` => `Flipper::Types::PercentageOfActors.new`
67
- * Change `Flipper.percentage_of_time` => `Flipper::Types::PercentageOfTime.new`
68
- * Change `Flipper.time` => `Flipper::Types::PercentageOfTime.new`
82
+ - Removed `bool`, `actors`, `time`, `actor`, `percentage_of_actors`, and `percentage_of_time` methods on `Flipper` and `Flipper::DSL`. They are rarely if ever used and conflict with some upcoming features. If you are using them, you can migrate via a search and replace like so:
83
+ - Change `Flipper.bool` => `Flipper::Types::Boolean.new`
84
+ - Change `Flipper.boolean` => `Flipper::Types::Boolean.new`
85
+ - Change `Flipper.actor` => `Flipper::Types::Actor.new`
86
+ - Change `Flipper.percentage_of_actors` => `Flipper::Types::PercentageOfActors.new`
87
+ - Change `Flipper.actors` => `Flipper::Types::PercentageOfActors.new`
88
+ - Change `Flipper.percentage_of_time` => `Flipper::Types::PercentageOfTime.new`
89
+ - Change `Flipper.time` => `Flipper::Types::PercentageOfTime.new`
69
90
 
70
91
  ## 0.28.3
71
92
 
72
- * Updated cloud config to ensure that poll adapter ONLY syncs from cloud to local adapter (and never back to cloud). Shouldn't affect anyone other than making things more safe if an incorrect response is received from the cloud poll endpoint. (https://github.com/flippercloud/flipper/pull/740)
93
+ - Updated cloud config to ensure that poll adapter ONLY syncs from cloud to local adapter (and never back to cloud). Shouldn't affect anyone other than making things more safe if an incorrect response is received from the cloud poll endpoint. (https://github.com/flippercloud/flipper/pull/740)
73
94
 
74
95
  ## 0.28.2
75
96
 
76
97
  ### Additions/Changes
77
98
 
78
- * UI: fix path to bundled assets when mounted in another Rack app (https://github.com/flippercloud/flipper/pull/742)
99
+ - UI: fix path to bundled assets when mounted in another Rack app (https://github.com/flippercloud/flipper/pull/742)
79
100
 
80
101
  ## 0.28.1
81
102
 
82
103
  ### Additions/Changes
83
104
 
84
- * Use new method of making logs bold for rails (https://github.com/flippercloud/flipper/pull/726)
85
- * Bundle bootstrap, jquery and poppler with the library. (https://github.com/flippercloud/flipper/pull/731)
105
+ - Use new method of making logs bold for rails (https://github.com/flippercloud/flipper/pull/726)
106
+ - Bundle bootstrap, jquery and poppler with the library. (https://github.com/flippercloud/flipper/pull/731)
86
107
 
87
108
  ## 0.28.0
88
109
 
89
110
  ### Additions/Changes
90
111
 
91
- * Allow multiple actors for Flipper.enabled?. Improves performance of feature flags for multiple actors and simplifies code for users of flipper. This likely breaks things for anyone using Flipper internal classes related to actors, but that isn't likely you so you should be fine.
112
+ - Allow multiple actors for Flipper.enabled?. Improves performance of feature flags for multiple actors and simplifies code for users of flipper. This likely breaks things for anyone using Flipper internal classes related to actors, but that isn't likely you so you should be fine.
92
113
  ```diff
93
114
  - [user, user.team, user.org].any? { |actor| Flipper.enabled?(:my_feature, actor) }
94
115
  + Flipper.enabled?(:my_feature, user, user.team, user.org)
95
116
  ```
96
- * If you currently use `actor.thing` in a group, you'll need to change it to `actor.actor`.
117
+ - If you currently use `actor.thing` in a group, you'll need to change it to `actor.actor`.
97
118
  ```diff
98
119
  - Flipper.register(:our_group) do |actor|
99
120
  - actor.thing.is_a?(OurClassName)
@@ -102,7 +123,7 @@ All notable changes to this project will be documented in this file.
102
123
  + actor.actor.is_a?(OurClassName)
103
124
  + end
104
125
  ```
105
- * If you currently use `context.thing` in a group or elsewhere, you'll need to change it to `context.actors`.
126
+ - If you currently use `context.thing` in a group or elsewhere, you'll need to change it to `context.actors`.
106
127
  ```diff
107
128
  - Flipper.register(:our_group) do |actor, context|
108
129
  - context.thing.is_a?(OurClassName)
@@ -114,155 +135,155 @@ All notable changes to this project will be documented in this file.
114
135
 
115
136
  ### Deprecations
116
137
 
117
- * `:thing` in `enabled?` instrumentation payload. Use `:actors` instead.
118
- ```diff
119
- ActiveSupport::Notifications.subscribe('enabled?.feature_operation.flipper') do |name, start, finish, id, payload|
120
- - payload[:thing]
121
- + payload[:actors]
122
- end
123
- ```
138
+ - `:thing` in `enabled?` instrumentation payload. Use `:actors` instead.
139
+ ```diff
140
+ ActiveSupport::Notifications.subscribe('enabled?.feature_operation.flipper') do |name, start, finish, id, payload|
141
+ - payload[:thing]
142
+ + payload[:actors]
143
+ end
144
+ ```
124
145
 
125
146
  ## 0.27.1
126
147
 
127
- * Quick fix for missing require of "flipper/version" that was causing issues with some flipper-ui people.
148
+ - Quick fix for missing require of "flipper/version" that was causing issues with some flipper-ui people.
128
149
 
129
150
  ## 0.27.0
130
151
 
131
- * Easy Import/Export (https://github.com/flippercloud/flipper/pull/709). This has some breaking changes but only if you are using flipper internals. If you are just using Flipper.* methods, you'll be fine.
152
+ - Easy Import/Export (https://github.com/flippercloud/flipper/pull/709). This has some breaking changes but only if you are using flipper internals. If you are just using Flipper.\* methods, you'll be fine.
132
153
 
133
154
  ## 0.26.2
134
155
 
135
- * Improve Active Record Adapter get/get_multi/get_all performance by 5-10x when dealing with thousands of gate values (https://github.com/flippercloud/flipper/pull/707).
156
+ - Improve Active Record Adapter get/get_multi/get_all performance by 5-10x when dealing with thousands of gate values (https://github.com/flippercloud/flipper/pull/707).
136
157
 
137
158
  ## 0.26.1
138
159
 
139
- * Improve `Flipper#enabled?` performance by ~37%-55% (https://github.com/flippercloud/flipper/pull/706)
140
- * Make Memory adapter threadsafe (https://github.com/flippercloud/flipper/pull/702 and https://github.com/flippercloud/flipper/pull/703)
141
- * ActiveRecord adapter: wrap all reads/writes in `with_connection` (https://github.com/flippercloud/flipper/pull/705)
142
- * Improve performance of background polling (https://github.com/flippercloud/flipper/pull/699)
143
- * Remove executables directive from gem (https://github.com/flippercloud/flipper/pull/693)
160
+ - Improve `Flipper#enabled?` performance by ~37%-55% (https://github.com/flippercloud/flipper/pull/706)
161
+ - Make Memory adapter threadsafe (https://github.com/flippercloud/flipper/pull/702 and https://github.com/flippercloud/flipper/pull/703)
162
+ - ActiveRecord adapter: wrap all reads/writes in `with_connection` (https://github.com/flippercloud/flipper/pull/705)
163
+ - Improve performance of background polling (https://github.com/flippercloud/flipper/pull/699)
164
+ - Remove executables directive from gem (https://github.com/flippercloud/flipper/pull/693)
144
165
 
145
166
  ## 0.26.0
146
167
 
147
- * Cloud Background Polling (https://github.com/flippercloud/flipper/pull/682)
148
- * Changed default branch from master to main
149
- * Allow configuring railtie via ENV vars (https://github.com/flippercloud/flipper/pull/681)
150
- * flipper-ui: Fix issue preventing feature flags being enabled when confirm_fully_enable is on and feature_removal_enabled is off (https://github.com/flippercloud/flipper/pull/680)
168
+ - Cloud Background Polling (https://github.com/flippercloud/flipper/pull/682)
169
+ - Changed default branch from master to main
170
+ - Allow configuring railtie via ENV vars (https://github.com/flippercloud/flipper/pull/681)
171
+ - flipper-ui: Fix issue preventing feature flags being enabled when confirm_fully_enable is on and feature_removal_enabled is off (https://github.com/flippercloud/flipper/pull/680)
151
172
 
152
173
  ## 0.25.4
153
174
 
154
- * Added read_only UI config option (https://github.com/flippercloud/flipper/pull/679)
175
+ - Added read_only UI config option (https://github.com/flippercloud/flipper/pull/679)
155
176
 
156
177
  ## 0.25.3
157
178
 
158
- * Added configurable confirm warning for fully enabling a feature (https://github.com/flippercloud/flipper/pull/665)
159
- * Update rack protection to < 4 (https://github.com/flippercloud/flipper/pull/675)
160
- * Check sadd_returns_boolean on the actual client class rather than ::Redis (https://github.com/flippercloud/flipper/pull/677)
179
+ - Added configurable confirm warning for fully enabling a feature (https://github.com/flippercloud/flipper/pull/665)
180
+ - Update rack protection to < 4 (https://github.com/flippercloud/flipper/pull/675)
181
+ - Check sadd_returns_boolean on the actual client class rather than ::Redis (https://github.com/flippercloud/flipper/pull/677)
161
182
 
162
183
  ## 0.25.2
163
184
 
164
- * Fix deprecation warnings for Redis >= 4.8.0 (https://github.com/flippercloud/flipper/pull/660)
185
+ - Fix deprecation warnings for Redis >= 4.8.0 (https://github.com/flippercloud/flipper/pull/660)
165
186
 
166
187
  ## 0.25.1
167
188
 
168
189
  ### Additions/Changes
169
190
 
170
- * ActiveRecord: use provided `gate_class` option when calling `#get_all` (https://github.com/flippercloud/flipper/pull/647)
171
- * Relaxed the rack-protection version to support latest (https://github.com/flippercloud/flipper/commit/f4a41c541ccf14c535a61c6bc6fe7eeabbfc7e71).
172
- * Configure ActiveRecord adapter immediately upon require of flipper-active_record (https://github.com/flippercloud/flipper/pull/652)
191
+ - ActiveRecord: use provided `gate_class` option when calling `#get_all` (https://github.com/flippercloud/flipper/pull/647)
192
+ - Relaxed the rack-protection version to support latest (https://github.com/flippercloud/flipper/commit/f4a41c541ccf14c535a61c6bc6fe7eeabbfc7e71).
193
+ - Configure ActiveRecord adapter immediately upon require of flipper-active_record (https://github.com/flippercloud/flipper/pull/652)
173
194
 
174
195
  ## 0.25.0
175
196
 
176
197
  ### Additions/Changes
177
198
 
178
- * Added a prompt in Flipper UI for the 'Delete' button to prevent accidental delete of features (https://github.com/flippercloud/flipper/pull/625)
179
- * Added failsafe adapter (https://github.com/flippercloud/flipper/pull/626)
180
- * Removed previously deprecated options and settings. Those upgrading from `<0.21` should upgrade to `~>0.24` first and fix any deprecation warnings when initializing Flipper. (https://github.com/flippercloud/flipper/pull/627)
181
- * ActiveRecord: base class for internal models (https://github.com/flippercloud/flipper/pull/629)
182
- * Remove use of `Rack::BodyProxy` in the memoizer middleware (https://github.com/flippercloud/flipper/pull/631)
199
+ - Added a prompt in Flipper UI for the 'Delete' button to prevent accidental delete of features (https://github.com/flippercloud/flipper/pull/625)
200
+ - Added failsafe adapter (https://github.com/flippercloud/flipper/pull/626)
201
+ - Removed previously deprecated options and settings. Those upgrading from `<0.21` should upgrade to `~>0.24` first and fix any deprecation warnings when initializing Flipper. (https://github.com/flippercloud/flipper/pull/627)
202
+ - ActiveRecord: base class for internal models (https://github.com/flippercloud/flipper/pull/629)
203
+ - Remove use of `Rack::BodyProxy` in the memoizer middleware (https://github.com/flippercloud/flipper/pull/631)
183
204
 
184
205
  ## 0.24.1
185
206
 
186
207
  ### Additions/Changes
187
208
 
188
- * flipper-api: `exclude_gates` parameter to exclude gate data in GETs (https://github.com/flippercloud/flipper/pull/572).
189
- * Make it possible to disable internal memoization (https://github.com/flippercloud/flipper/pull/612).
190
- * Add Flipper::Actor#hash so actors can be hash keys (https://github.com/flippercloud/flipper/pull/616).
191
- * Pretty Up `rails routes` again and make rack-protection dependency less strict (https://github.com/flippercloud/flipper/pull/619).
192
- * Add kwargs for method_missing using ruby 3.0 (https://github.com/flippercloud/flipper/pull/620).
193
- * Relax the rack-protection dependency (https://github.com/flippercloud/flipper/commit/c1cb9cd78140c2b09123687642558101e6e5d37d).
209
+ - flipper-api: `exclude_gates` parameter to exclude gate data in GETs (https://github.com/flippercloud/flipper/pull/572).
210
+ - Make it possible to disable internal memoization (https://github.com/flippercloud/flipper/pull/612).
211
+ - Add Flipper::Actor#hash so actors can be hash keys (https://github.com/flippercloud/flipper/pull/616).
212
+ - Pretty Up `rails routes` again and make rack-protection dependency less strict (https://github.com/flippercloud/flipper/pull/619).
213
+ - Add kwargs for method_missing using ruby 3.0 (https://github.com/flippercloud/flipper/pull/620).
214
+ - Relax the rack-protection dependency (https://github.com/flippercloud/flipper/commit/c1cb9cd78140c2b09123687642558101e6e5d37d).
194
215
 
195
216
  ## 0.24.0
196
217
 
197
218
  ### Additions/Changes
198
219
 
199
- * Add Ruby 3.0 and 3.1 to the CI matrix and fix groups block arity check for ruby 3 (https://github.com/flippercloud/flipper/pull/601)
200
- * Removed support for Ruby 2.5 (which was end of line 9 months ago)
201
- * Add (alpha) client side instrumentation of events to cloud (https://github.com/flippercloud/flipper/pull/602)
202
- * Fix deprecated uses of Redis#pipelined (https://github.com/flippercloud/flipper/pull/603). redis-rb >= 3 now required.
203
- * Fix Flipper UI Rack application when `Rack::Session::Pool` is used to build it (https://github.com/flippercloud/flipper/pull/606).
220
+ - Add Ruby 3.0 and 3.1 to the CI matrix and fix groups block arity check for ruby 3 (https://github.com/flippercloud/flipper/pull/601)
221
+ - Removed support for Ruby 2.5 (which was end of line 9 months ago)
222
+ - Add (alpha) client side instrumentation of events to cloud (https://github.com/flippercloud/flipper/pull/602)
223
+ - Fix deprecated uses of Redis#pipelined (https://github.com/flippercloud/flipper/pull/603). redis-rb >= 3 now required.
224
+ - Fix Flipper UI Rack application when `Rack::Session::Pool` is used to build it (https://github.com/flippercloud/flipper/pull/606).
204
225
 
205
226
  ## 0.23.1
206
227
 
207
228
  ### Additions/Changes
208
229
 
209
- * Relax dalli version constraint (https://github.com/flippercloud/flipper/pull/596)
230
+ - Relax dalli version constraint (https://github.com/flippercloud/flipper/pull/596)
210
231
 
211
232
  ### Bug Fixes
212
233
 
213
- * Fix railtie initialization to mount middleware after config/intializers/* (https://github.com/flippercloud/flipper/pull/586)
234
+ - Fix railtie initialization to mount middleware after config/intializers/\* (https://github.com/flippercloud/flipper/pull/586)
214
235
 
215
236
  ## 0.23.0
216
237
 
217
238
  ### Additions/Changes
218
239
 
219
- * Allow some HTML in banner and descriptions (https://github.com/flippercloud/flipper/pull/570).
220
- * Moved some cloud headers to http client (https://github.com/flippercloud/flipper/pull/567).
221
- * Update flipper-ui jquery and bootstrap versions (https://github.com/flippercloud/flipper/issues/565 and https://github.com/flippercloud/flipper/pull/566).
222
- * Moved docs to www.flippercloud.io/docs (https://github.com/flippercloud/flipper/pull/574).
223
- * PStore adapter now defaults to thread safe and no longer supports `.thread_safe` (https://github.com/flippercloud/flipper/commit/4048704fefe41b716015294a19a0b94546637630).
224
- * Add failover adapter (https://github.com/flippercloud/flipper/pull/584).
225
- * Improve http adapter error message (https://github.com/flippercloud/flipper/pull/587).
226
- * Rails 7 support (mostly in https://github.com/flippercloud/flipper/pull/592).
240
+ - Allow some HTML in banner and descriptions (https://github.com/flippercloud/flipper/pull/570).
241
+ - Moved some cloud headers to http client (https://github.com/flippercloud/flipper/pull/567).
242
+ - Update flipper-ui jquery and bootstrap versions (https://github.com/flippercloud/flipper/issues/565 and https://github.com/flippercloud/flipper/pull/566).
243
+ - Moved docs to www.flippercloud.io/docs (https://github.com/flippercloud/flipper/pull/574).
244
+ - PStore adapter now defaults to thread safe and no longer supports `.thread_safe` (https://github.com/flippercloud/flipper/commit/4048704fefe41b716015294a19a0b94546637630).
245
+ - Add failover adapter (https://github.com/flippercloud/flipper/pull/584).
246
+ - Improve http adapter error message (https://github.com/flippercloud/flipper/pull/587).
247
+ - Rails 7 support (mostly in https://github.com/flippercloud/flipper/pull/592).
227
248
 
228
249
  ## 0.22.2
229
250
 
230
251
  ### Additions/Changes
231
252
 
232
- * Allow adding multiple actors at once in flipper-ui via comma separation (configurable via `Flipper::UI.configuration.actors_separator`) (https://github.com/flippercloud/flipper/pull/556)
253
+ - Allow adding multiple actors at once in flipper-ui via comma separation (configurable via `Flipper::UI.configuration.actors_separator`) (https://github.com/flippercloud/flipper/pull/556)
233
254
 
234
255
  ### Bug Fixes
235
256
 
236
- * Fix railtie initialization to avoid altering middleware order (https://github.com/flippercloud/flipper/pull/563)
257
+ - Fix railtie initialization to avoid altering middleware order (https://github.com/flippercloud/flipper/pull/563)
237
258
 
238
259
  ## 0.22.1
239
260
 
240
261
  ### Additions/Changes
241
262
 
242
- * Remove Octicons and replace with a pure CSS status circle (https://github.com/flippercloud/flipper/pull/547)
243
- * Rescue unique errors in AR and Sequel when setting value (https://github.com/flippercloud/flipper/commit/87f5a98bce7baad7a27b75b5bce3256967769f27)
244
- * Add a Content-Security-Policy to flipper-ui (https://github.com/flippercloud/flipper/pull/552)
245
- * Fix Synchronizer issue that occurs for ActiveRecord adapter (https://github.com/flippercloud/flipper/pull/554)
263
+ - Remove Octicons and replace with a pure CSS status circle (https://github.com/flippercloud/flipper/pull/547)
264
+ - Rescue unique errors in AR and Sequel when setting value (https://github.com/flippercloud/flipper/commit/87f5a98bce7baad7a27b75b5bce3256967769f27)
265
+ - Add a Content-Security-Policy to flipper-ui (https://github.com/flippercloud/flipper/pull/552)
266
+ - Fix Synchronizer issue that occurs for ActiveRecord adapter (https://github.com/flippercloud/flipper/pull/554)
246
267
 
247
268
  ## 0.22.0
248
269
 
249
270
  ### Additions/Changes
250
271
 
251
- * Enable log subscriber by default in Rails (https://github.com/flippercloud/flipper/pull/525)
252
- * Remove memoizer from API and UI (https://github.com/flippercloud/flipper/pull/527). If you are using the UI or API without configuring the default instance of Flipper, you'll need to enable memoization if you want it. For examples, see the examples/ui and examples/api directories.
253
- * Fix SQL reserved word use in get_all for ActiveRecord and Sequel (https://github.com/flippercloud/flipper/pull/536).
254
- * Handle spaces in names gracefully in UI (https://github.com/flippercloud/flipper/pull/541).
272
+ - Enable log subscriber by default in Rails (https://github.com/flippercloud/flipper/pull/525)
273
+ - Remove memoizer from API and UI (https://github.com/flippercloud/flipper/pull/527). If you are using the UI or API without configuring the default instance of Flipper, you'll need to enable memoization if you want it. For examples, see the examples/ui and examples/api directories.
274
+ - Fix SQL reserved word use in get_all for ActiveRecord and Sequel (https://github.com/flippercloud/flipper/pull/536).
275
+ - Handle spaces in names gracefully in UI (https://github.com/flippercloud/flipper/pull/541).
255
276
 
256
277
  ## 0.21.0
257
278
 
258
279
  ### Additions/Changes
259
280
 
260
- * Default to using memory adapter (https://github.com/flippercloud/flipper/pull/501)
261
- * Adapters now configured on require when possible (https://github.com/flippercloud/flipper/pull/502)
262
- * Added cloud recommendation to flipper-ui. Can be disabled with `Flipper::UI.configure { |config| config.cloud_recommendation = false }`. Just want to raise awareness that more is available if people want it (https://github.com/flippercloud/flipper/pull/504)
263
- * Added default `flipper_id` implementation via `Flipper::Identifier` and automatically included it in ActiveRecord and Sequel models (https://github.com/flippercloud/flipper/pull/505)
264
- * Deprecate superflous sync_method setting (https://github.com/flippercloud/flipper/pull/511)
265
- * Flipper is now pre-configured when used with Rails. By default, it will [memoize and preload all features for each request](https://flippercloud.io/docs/optimization#memoization). (https://github.com/flippercloud/flipper/pull/506)
281
+ - Default to using memory adapter (https://github.com/flippercloud/flipper/pull/501)
282
+ - Adapters now configured on require when possible (https://github.com/flippercloud/flipper/pull/502)
283
+ - Added cloud recommendation to flipper-ui. Can be disabled with `Flipper::UI.configure { |config| config.cloud_recommendation = false }`. Just want to raise awareness that more is available if people want it (https://github.com/flippercloud/flipper/pull/504)
284
+ - Added default `flipper_id` implementation via `Flipper::Identifier` and automatically included it in ActiveRecord and Sequel models (https://github.com/flippercloud/flipper/pull/505)
285
+ - Deprecate superflous sync_method setting (https://github.com/flippercloud/flipper/pull/511)
286
+ - Flipper is now pre-configured when used with Rails. By default, it will [memoize and preload all features for each request](https://flippercloud.io/docs/optimization#memoization). (https://github.com/flippercloud/flipper/pull/506)
266
287
 
267
288
  ### Upgrading
268
289
 
@@ -270,359 +291,359 @@ You should be able to upgrade to 0.21 without any breaking changes. However, if
270
291
 
271
292
  1. Adapters are configured when on require, so unless you are using caching or other customizations, you can remove adapter configuration.
272
293
 
273
- ```diff
274
- # config/initializers/flipper.rb
275
- - Flipper.configure do |config|
276
- - config.default { Flipper.new(Flipper::Adapters::ActiveRecord.new) }
277
- - end
278
- ```
294
+ ```diff
295
+ # config/initializers/flipper.rb
296
+ - Flipper.configure do |config|
297
+ - config.default { Flipper.new(Flipper::Adapters::ActiveRecord.new) }
298
+ - end
299
+ ```
279
300
 
280
301
  2. `Flipper::Middleware::Memoizer` will be enabled by default -- including preloading. **Note**: You may want to disable preloading (see below) if you have > 100 features.
281
302
 
282
- ```diff
283
- # config/initializers/flipper.rb
284
- - Rails.configuration.middleware.use Flipper::Middleware::Memoizer,
285
- - preload: [:stats, :search, :some_feature]
286
- + Rails.application.configure do
287
- + # Uncomment to configure which features to preload on all requests
288
- + # config.flipper.preload = [:stats, :search, :some_feature]
289
- + #
290
- + # Or, you may want to disable preloading entirely:
291
- + # config.flipper.preload = false
292
- + end
293
- ```
303
+ ```diff
304
+ # config/initializers/flipper.rb
305
+ - Rails.configuration.middleware.use Flipper::Middleware::Memoizer,
306
+ - preload: [:stats, :search, :some_feature]
307
+ + Rails.application.configure do
308
+ + # Uncomment to configure which features to preload on all requests
309
+ + # config.flipper.preload = [:stats, :search, :some_feature]
310
+ + #
311
+ + # Or, you may want to disable preloading entirely:
312
+ + # config.flipper.preload = false
313
+ + end
314
+ ```
294
315
 
295
316
  3. `#flipper_id`, which is used to enable features for specific actors, is now defined by [Flipper::Identifier](lib/flipper/identifier.rb) on all ActiveRecord and Sequel models. You can remove your implementation if it is in the form of `ModelName;id`.
296
317
 
297
318
  4. When using `flipper-cloud`, The `Flipper::Cloud.app` webhook receiver is now mounted at `/_flipper` by default.
298
319
 
299
- ```diff
300
- # config/routes.rb
301
- - mount Flipper::Cloud.app, at: "/_flipper"
302
- ```
320
+ ```diff
321
+ # config/routes.rb
322
+ - mount Flipper::Cloud.app, at: "/_flipper"
323
+ ```
303
324
 
304
325
  ## 0.20.4
305
326
 
306
327
  ### Additions/Changes
307
328
 
308
- * Allow actors and time gates to deal with decimal percentages (https://github.com/flippercloud/flipper/pull/492)
309
- * Change Flipper::Cloud::Middleware to receive webhooks at / in addition to /webhooks.
310
- * Add `write_through` option to ActiveSupportCacheStore adapter to support write-through caching (https://github.com/flippercloud/flipper/pull/512)
329
+ - Allow actors and time gates to deal with decimal percentages (https://github.com/flippercloud/flipper/pull/492)
330
+ - Change Flipper::Cloud::Middleware to receive webhooks at / in addition to /webhooks.
331
+ - Add `write_through` option to ActiveSupportCacheStore adapter to support write-through caching (https://github.com/flippercloud/flipper/pull/512)
311
332
 
312
333
  ## 0.20.3
313
334
 
314
335
  ### Additions/Changes
315
336
 
316
- * Changed the internal structure of how the memory adapter stores things.
337
+ - Changed the internal structure of how the memory adapter stores things.
317
338
 
318
339
  ## 0.20.2
319
340
 
320
341
  ### Additions/Changes
321
342
 
322
- * Http adapter now raises error when enable/disable/add/remove/clear fail.
323
- * Cloud adapter sends some extra info like hostname, ruby version, etc. for debugging and decision making.
343
+ - Http adapter now raises error when enable/disable/add/remove/clear fail.
344
+ - Cloud adapter sends some extra info like hostname, ruby version, etc. for debugging and decision making.
324
345
 
325
346
  ## 0.20.1
326
347
 
327
348
  ### Additions/Changes
328
349
 
329
- * Just a minor tweak to cloud webhook middleware to provide more debugging information about why a hook wasn't successful.
350
+ - Just a minor tweak to cloud webhook middleware to provide more debugging information about why a hook wasn't successful.
330
351
 
331
352
  ## 0.20.0
332
353
 
333
354
  ### Additions/Changes
334
355
 
335
- * Add support for webhooks to `Flipper::Cloud` (https://github.com/flippercloud/flipper/pull/489).
356
+ - Add support for webhooks to `Flipper::Cloud` (https://github.com/flippercloud/flipper/pull/489).
336
357
 
337
358
  ## 0.19.1
338
359
 
339
360
  ### Additions/Changes
340
361
 
341
- * Bump rack-protection version to < 2.2 (https://github.com/flippercloud/flipper/pull/487)
342
- * Add memoizer_options to Flipper::Api.app (https://github.com/flippercloud/flipper/commit/174ad4bb94046a25c432d3c53fe1ff9f5a76d838)
362
+ - Bump rack-protection version to < 2.2 (https://github.com/flippercloud/flipper/pull/487)
363
+ - Add memoizer_options to Flipper::Api.app (https://github.com/flippercloud/flipper/commit/174ad4bb94046a25c432d3c53fe1ff9f5a76d838)
343
364
 
344
365
  ## 0.19.0
345
366
 
346
367
  ### Additions/Changes
347
368
 
348
- * 100% of actors is now considered conditional. Feature#on?, Feature#conditional?, Feature#state would all be affected. See https://github.com/flippercloud/flipper/issues/463 for more.
349
- * Several doc updates.
369
+ - 100% of actors is now considered conditional. Feature#on?, Feature#conditional?, Feature#state would all be affected. See https://github.com/flippercloud/flipper/issues/463 for more.
370
+ - Several doc updates.
350
371
 
351
372
  ## 0.18.0
352
373
 
353
374
  ### Additions/Changes
354
375
 
355
- * Add support for feature descriptions to flipper-ui (https://github.com/flippercloud/flipper/pull/461).
356
- * Remove rubocop (https://github.com/flippercloud/flipper/pull/469).
357
- * flipper-ui redesign (https://github.com/flippercloud/flipper/pull/470).
358
- * Removed support for ruby 2.4.
359
- * Added support for ruby 2.7.
360
- * Removed support for Rails 4.x.x.
361
- * Removed support for customizing actors, groups, % of actors and % of time text in flipper-ui in favor of automatic and more descriptive text.
376
+ - Add support for feature descriptions to flipper-ui (https://github.com/flippercloud/flipper/pull/461).
377
+ - Remove rubocop (https://github.com/flippercloud/flipper/pull/469).
378
+ - flipper-ui redesign (https://github.com/flippercloud/flipper/pull/470).
379
+ - Removed support for ruby 2.4.
380
+ - Added support for ruby 2.7.
381
+ - Removed support for Rails 4.x.x.
382
+ - Removed support for customizing actors, groups, % of actors and % of time text in flipper-ui in favor of automatic and more descriptive text.
362
383
 
363
384
  ## 0.17.2
364
385
 
365
386
  ### Additions/Changes
366
387
 
367
- * Avoid errors on import when there are no features and shared specs/tests for get all with no features (https://github.com/flippercloud/flipper/pull/441 and https://github.com/flippercloud/flipper/pull/442)
368
- * ::ActiveRecord::RecordNotUnique > ActiveRecord::RecordNotUnique (https://github.com/flippercloud/flipper/pull/444)
369
- * Clear gate values on enable (https://github.com/flippercloud/flipper/pull/454)
370
- * Remove use of multi from redis adapter (https://github.com/flippercloud/flipper/pull/451)
388
+ - Avoid errors on import when there are no features and shared specs/tests for get all with no features (https://github.com/flippercloud/flipper/pull/441 and https://github.com/flippercloud/flipper/pull/442)
389
+ - ::ActiveRecord::RecordNotUnique > ActiveRecord::RecordNotUnique (https://github.com/flippercloud/flipper/pull/444)
390
+ - Clear gate values on enable (https://github.com/flippercloud/flipper/pull/454)
391
+ - Remove use of multi from redis adapter (https://github.com/flippercloud/flipper/pull/451)
371
392
 
372
393
  ## 0.17.1
373
394
 
374
- * Fix require in flipper-active_record (https://github.com/flippercloud/flipper/pull/437)
395
+ - Fix require in flipper-active_record (https://github.com/flippercloud/flipper/pull/437)
375
396
 
376
397
  ## 0.17.0
377
398
 
378
399
  ### Additions/Changes
379
400
 
380
- * Allow shorthand block notation on group types (https://github.com/flippercloud/flipper/pull/406)
381
- * Relax active record/support constraints to support Rails 6 (https://github.com/flippercloud/flipper/pull/409)
382
- * Allow disabling fun (https://github.com/flippercloud/flipper/pull/413)
383
- * Include thing_value in payload of Instrumented#enable and #disable (https://github.com/flippercloud/flipper/pull/417)
384
- * Replace Erubis with Erubi (https://github.com/flippercloud/flipper/pull/407)
385
- * Allow customizing Rack::Protection middleware list (https://github.com/flippercloud/flipper/pull/385)
386
- * Allow setting write_timeout for ruby 2.6+ (https://github.com/flippercloud/flipper/pull/433)
387
- * Drop support for Ruby 2.1, 2.2, and 2.3 (https://github.com/flippercloud/flipper/commit/cf58982e70de5e6963b018ceced4f36a275f5b5d)
388
- * Add support for Ruby 2.6 (https://github.com/flippercloud/flipper/commit/57888311449ec81184d3d47ba9ae5cb1ad4a2f45)
389
- * Remove support for Rails 3.2 (https://github.com/flippercloud/flipper/commit/177c48c4edf51d4e411e7c673e30e06d1c66fb40)
390
- * Add write_timeout for flipper http adapter for ruby 2.6+ (https://github.com/flippercloud/flipper/pull/433)
391
- * Relax moneta version to allow for < 1.2 (https://github.com/flippercloud/flipper/pull/434).
392
- * Improve active record idempotency (https://github.com/flippercloud/flipper/pull/436).
393
- * Allow customizing add actor placeholder text (https://github.com/flippercloud/flipper/commit/5faa1e9cf66b68f8227d2f8408fb448a14676c45)
401
+ - Allow shorthand block notation on group types (https://github.com/flippercloud/flipper/pull/406)
402
+ - Relax active record/support constraints to support Rails 6 (https://github.com/flippercloud/flipper/pull/409)
403
+ - Allow disabling fun (https://github.com/flippercloud/flipper/pull/413)
404
+ - Include thing_value in payload of Instrumented#enable and #disable (https://github.com/flippercloud/flipper/pull/417)
405
+ - Replace Erubis with Erubi (https://github.com/flippercloud/flipper/pull/407)
406
+ - Allow customizing Rack::Protection middleware list (https://github.com/flippercloud/flipper/pull/385)
407
+ - Allow setting write_timeout for ruby 2.6+ (https://github.com/flippercloud/flipper/pull/433)
408
+ - Drop support for Ruby 2.1, 2.2, and 2.3 (https://github.com/flippercloud/flipper/commit/cf58982e70de5e6963b018ceced4f36a275f5b5d)
409
+ - Add support for Ruby 2.6 (https://github.com/flippercloud/flipper/commit/57888311449ec81184d3d47ba9ae5cb1ad4a2f45)
410
+ - Remove support for Rails 3.2 (https://github.com/flippercloud/flipper/commit/177c48c4edf51d4e411e7c673e30e06d1c66fb40)
411
+ - Add write_timeout for flipper http adapter for ruby 2.6+ (https://github.com/flippercloud/flipper/pull/433)
412
+ - Relax moneta version to allow for < 1.2 (https://github.com/flippercloud/flipper/pull/434).
413
+ - Improve active record idempotency (https://github.com/flippercloud/flipper/pull/436).
414
+ - Allow customizing add actor placeholder text (https://github.com/flippercloud/flipper/commit/5faa1e9cf66b68f8227d2f8408fb448a14676c45)
394
415
 
395
416
  ## 0.16.2
396
417
 
397
418
  ### Additions/Changes
398
419
 
399
- * Bump rollout redis dependency to < 5 (https://github.com/flippercloud/flipper/pull/403)
400
- * Bump redis dependency to < 5 (https://github.com/flippercloud/flipper/pull/401)
401
- * Bump sequel dependency to < 6 (https://github.com/flippercloud/flipper/pull/399 and https://github.com/flippercloud/flipper/commit/edc767e69b4ce8daead9801f38e0e8bf6b238765)
420
+ - Bump rollout redis dependency to < 5 (https://github.com/flippercloud/flipper/pull/403)
421
+ - Bump redis dependency to < 5 (https://github.com/flippercloud/flipper/pull/401)
422
+ - Bump sequel dependency to < 6 (https://github.com/flippercloud/flipper/pull/399 and https://github.com/flippercloud/flipper/commit/edc767e69b4ce8daead9801f38e0e8bf6b238765)
402
423
 
403
424
  ## 0.16.1
404
425
 
405
426
  ### Additions/Changes
406
427
 
407
- * Add actors API endpoint (https://github.com/flippercloud/flipper/pull/372).
408
- * Fix rack body proxy require for those using flipper without rack (https://github.com/flippercloud/flipper/pull/376).
409
- * Unescapes feature_name in FeatureNameFromRoute (https://github.com/flippercloud/flipper/pull/377).
410
- * Replace delete_all with destroy_all in ActiveRecord adapter (https://github.com/flippercloud/flipper/pull/395)
411
- * Target correct bootstrap breakpoints in flipper UI (https://github.com/flippercloud/flipper/pull/396)
428
+ - Add actors API endpoint (https://github.com/flippercloud/flipper/pull/372).
429
+ - Fix rack body proxy require for those using flipper without rack (https://github.com/flippercloud/flipper/pull/376).
430
+ - Unescapes feature_name in FeatureNameFromRoute (https://github.com/flippercloud/flipper/pull/377).
431
+ - Replace delete_all with destroy_all in ActiveRecord adapter (https://github.com/flippercloud/flipper/pull/395)
432
+ - Target correct bootstrap breakpoints in flipper UI (https://github.com/flippercloud/flipper/pull/396)
412
433
 
413
434
  ## 0.16.0
414
435
 
415
436
  ### Bug Fixes
416
437
 
417
- * Support slashes in feature names (https://github.com/flippercloud/flipper/pull/362).
438
+ - Support slashes in feature names (https://github.com/flippercloud/flipper/pull/362).
418
439
 
419
440
  ### Additions/Changes
420
441
 
421
- * Re-order gates for improved performance in some cases (https://github.com/flippercloud/flipper/pull/370).
422
- * Add Feature#exist?, DSL#exist? and Flipper#exist? (https://github.com/flippercloud/flipper/pull/371).
442
+ - Re-order gates for improved performance in some cases (https://github.com/flippercloud/flipper/pull/370).
443
+ - Add Feature#exist?, DSL#exist? and Flipper#exist? (https://github.com/flippercloud/flipper/pull/371).
423
444
 
424
445
  ## 0.15.0
425
446
 
426
- * Move Flipper::UI configuration options to Flipper::UI::Configuration (https://github.com/flippercloud/flipper/pull/345).
427
- * Bug fix in adapter synchronizing and switched DSL#import to use Synchronizer (https://github.com/flippercloud/flipper/pull/347).
428
- * Fix AR adapter table name prefix/suffix bug (https://github.com/flippercloud/flipper/pull/350).
429
- * Allow feature names to end with "features" in UI (https://github.com/flippercloud/flipper/pull/353).
447
+ - Move Flipper::UI configuration options to Flipper::UI::Configuration (https://github.com/flippercloud/flipper/pull/345).
448
+ - Bug fix in adapter synchronizing and switched DSL#import to use Synchronizer (https://github.com/flippercloud/flipper/pull/347).
449
+ - Fix AR adapter table name prefix/suffix bug (https://github.com/flippercloud/flipper/pull/350).
450
+ - Allow feature names to end with "features" in UI (https://github.com/flippercloud/flipper/pull/353).
430
451
 
431
452
  ## 0.14.0
432
453
 
433
- * Changed sync_interval to be seconds instead of milliseconds.
454
+ - Changed sync_interval to be seconds instead of milliseconds.
434
455
 
435
456
  ## 0.13.0
436
457
 
437
458
  ### Additions/Changes
438
459
 
439
- * Update PStore adapter to allow setting thread_safe option (https://github.com/flippercloud/flipper/pull/334).
440
- * Update Flipper::UI to Bootstrap 4 (https://github.com/flippercloud/flipper/pull/336).
441
- * Add Flipper::UI configuration to add a banner with customizeable text and background color (https://github.com/flippercloud/flipper/pull/337).
442
- * Add sync adapter (https://github.com/flippercloud/flipper/pull/341).
443
- * Make cloud use sync adapter (https://github.com/flippercloud/flipper/pull/342). This makes local flipper operations resilient to cloud failures.
460
+ - Update PStore adapter to allow setting thread_safe option (https://github.com/flippercloud/flipper/pull/334).
461
+ - Update Flipper::UI to Bootstrap 4 (https://github.com/flippercloud/flipper/pull/336).
462
+ - Add Flipper::UI configuration to add a banner with customizeable text and background color (https://github.com/flippercloud/flipper/pull/337).
463
+ - Add sync adapter (https://github.com/flippercloud/flipper/pull/341).
464
+ - Make cloud use sync adapter (https://github.com/flippercloud/flipper/pull/342). This makes local flipper operations resilient to cloud failures.
444
465
 
445
466
  ## 0.12.2
446
467
 
447
468
  ### Additions/Changes
448
469
 
449
- * Improvements/fixes/examples for rollout adapter (https://github.com/flippercloud/flipper/pull/332).
470
+ - Improvements/fixes/examples for rollout adapter (https://github.com/flippercloud/flipper/pull/332).
450
471
 
451
472
  ## 0.12.1
452
473
 
453
474
  ### Additions/Changes
454
475
 
455
- * Added rollout adapter documentation (https://github.com/flippercloud/flipper/pull/328).
476
+ - Added rollout adapter documentation (https://github.com/flippercloud/flipper/pull/328).
456
477
 
457
478
  ### Bug Fixes
458
479
 
459
- * Fixed ActiveRecord and Sequel adapters to include disabled features for `get_all` (https://github.com/flippercloud/flipper/pull/327).
480
+ - Fixed ActiveRecord and Sequel adapters to include disabled features for `get_all` (https://github.com/flippercloud/flipper/pull/327).
460
481
 
461
482
  ## 0.12
462
483
 
463
484
  ### Additions/Changes
464
485
 
465
- * Added Flipper.instance= writer method for explicitly setting the default instance (https://github.com/flippercloud/flipper/pull/309).
466
- * Added Flipper::UI configuration instance for changing text and things (https://github.com/flippercloud/flipper/pull/306).
467
- * Delegate memoize= and memoizing? for Flipper and Flipper::DSL (https://github.com/flippercloud/flipper/pull/310).
468
- * Fixed error when enabling the same group or actor more than once (https://github.com/flippercloud/flipper/pull/313).
469
- * Fixed redis cache adapter key (and thus cache misses) (https://github.com/flippercloud/flipper/pull/325).
470
- * Added Rollout adapter to make it easy to import rollout data into Flipper (https://github.com/flippercloud/flipper/pull/319).
471
- * Relaxed redis gem dependency constraint to allow redis-rb 4 (https://github.com/flippercloud/flipper/pull/317).
472
- * Added configuration option for Flipper::UI to disable feature removal (https://github.com/flippercloud/flipper/pull/322).
486
+ - Added Flipper.instance= writer method for explicitly setting the default instance (https://github.com/flippercloud/flipper/pull/309).
487
+ - Added Flipper::UI configuration instance for changing text and things (https://github.com/flippercloud/flipper/pull/306).
488
+ - Delegate memoize= and memoizing? for Flipper and Flipper::DSL (https://github.com/flippercloud/flipper/pull/310).
489
+ - Fixed error when enabling the same group or actor more than once (https://github.com/flippercloud/flipper/pull/313).
490
+ - Fixed redis cache adapter key (and thus cache misses) (https://github.com/flippercloud/flipper/pull/325).
491
+ - Added Rollout adapter to make it easy to import rollout data into Flipper (https://github.com/flippercloud/flipper/pull/319).
492
+ - Relaxed redis gem dependency constraint to allow redis-rb 4 (https://github.com/flippercloud/flipper/pull/317).
493
+ - Added configuration option for Flipper::UI to disable feature removal (https://github.com/flippercloud/flipper/pull/322).
473
494
 
474
495
  ## 0.11
475
496
 
476
497
  ### Backwards Compatibility Breaks
477
498
 
478
- * Set flipper from env for API and UI (https://github.com/flippercloud/flipper/pull/223 and https://github.com/flippercloud/flipper/pull/229). It is documented, but now the memoizing middleware requires that the SetupEnv middleware is used first, unless you are configuring a Flipper default instance.
479
- * Drop support for Ruby 2.0 as it is end of lined (https://github.com/flippercloud/flipper/commit/c2c81ed89938155ce91acb5173ac38580f630e3d).
480
- * Allow unregistered groups (https://github.com/flippercloud/flipper/pull/244). Only break in compatibility is that previously unregistered groups could not be enabled and now they can be.
481
- * Removed support for metriks (https://github.com/flippercloud/flipper/pull/291).
482
-
483
- ### Additions/Changes
484
-
485
- * Use primary keys with sequel adapter (https://github.com/flippercloud/flipper/pull/210). Should be backwards compatible, but if you want it to work this way you will need to migrate your database to the new schema.
486
- * Add redis cache adapter (https://github.com/flippercloud/flipper/pull/211).
487
- * Finish API and HTTP adapter that speaks to API.
488
- * Add flipper cloud adapter (https://github.com/flippercloud/flipper/pull/249). Nothing to see here yet, but good stuff soon. ;)
489
- * Add importing (https://github.com/flippercloud/flipper/pull/251).
490
- * Added Adapter#get_all to allow for more efficient preload_all (https://github.com/flippercloud/flipper/pull/255).
491
- * Added :unless option to Flipper::Middleware::Memoizer to allow skipping memoization and preloading for certain requests.
492
- * Made it possible to instrument Flipper::Cloud (https://github.com/flippercloud/flipper/commit/4b10e4d807772202f63881f5e2c00d11ac58481f).
493
- * Made it possible to wrap Http adapter when using Flipper::Cloud (https://github.com/flippercloud/flipper/commit/4b10e4d807772202f63881f5e2c00d11ac58481f).
494
- * Instrument get_multi in instrumented adapter (https://github.com/flippercloud/flipper/commit/951d25c5ce07d3b56b0b2337adf5f6bcbe4050e7).
495
- * Allow instrumenting Flipper::Cloud http adapter (https://github.com/flippercloud/flipper/pull/253).
496
- * Add DSL#preload_all and Adapter#get_all to allow for making even more efficient loading of features (https://github.com/flippercloud/flipper/pull/255).
497
- * Allow setting debug output of http adapter (https://github.com/flippercloud/flipper/pull/256 and https://github.com/flippercloud/flipper/pull/258).
498
- * Allow setting env key for middleware (https://github.com/flippercloud/flipper/pull/259).
499
- * Added ActiveSupport cache store adapter for use with Rails.cache (https://github.com/flippercloud/flipper/pull/265 and https://github.com/flippercloud/flipper/pull/297).
500
- * Added support for up to 3 decimal places in percentage based rollouts (https://github.com/flippercloud/flipper/pull/274).
501
- * Removed Flipper::GroupNotRegistered error as it is now unused (https://github.com/flippercloud/flipper/pull/270).
502
- * Added get_all to all adapters (https://github.com/flippercloud/flipper/pull/298).
503
- * Added support for Rails 5.1 (https://github.com/flippercloud/flipper/pull/299).
504
- * Added Flipper default instance generation (https://github.com/flippercloud/flipper/pull/279).
499
+ - Set flipper from env for API and UI (https://github.com/flippercloud/flipper/pull/223 and https://github.com/flippercloud/flipper/pull/229). It is documented, but now the memoizing middleware requires that the SetupEnv middleware is used first, unless you are configuring a Flipper default instance.
500
+ - Drop support for Ruby 2.0 as it is end of lined (https://github.com/flippercloud/flipper/commit/c2c81ed89938155ce91acb5173ac38580f630e3d).
501
+ - Allow unregistered groups (https://github.com/flippercloud/flipper/pull/244). Only break in compatibility is that previously unregistered groups could not be enabled and now they can be.
502
+ - Removed support for metriks (https://github.com/flippercloud/flipper/pull/291).
503
+
504
+ ### Additions/Changes
505
+
506
+ - Use primary keys with sequel adapter (https://github.com/flippercloud/flipper/pull/210). Should be backwards compatible, but if you want it to work this way you will need to migrate your database to the new schema.
507
+ - Add redis cache adapter (https://github.com/flippercloud/flipper/pull/211).
508
+ - Finish API and HTTP adapter that speaks to API.
509
+ - Add flipper cloud adapter (https://github.com/flippercloud/flipper/pull/249). Nothing to see here yet, but good stuff soon. ;)
510
+ - Add importing (https://github.com/flippercloud/flipper/pull/251).
511
+ - Added Adapter#get_all to allow for more efficient preload_all (https://github.com/flippercloud/flipper/pull/255).
512
+ - Added :unless option to Flipper::Middleware::Memoizer to allow skipping memoization and preloading for certain requests.
513
+ - Made it possible to instrument Flipper::Cloud (https://github.com/flippercloud/flipper/commit/4b10e4d807772202f63881f5e2c00d11ac58481f).
514
+ - Made it possible to wrap Http adapter when using Flipper::Cloud (https://github.com/flippercloud/flipper/commit/4b10e4d807772202f63881f5e2c00d11ac58481f).
515
+ - Instrument get_multi in instrumented adapter (https://github.com/flippercloud/flipper/commit/951d25c5ce07d3b56b0b2337adf5f6bcbe4050e7).
516
+ - Allow instrumenting Flipper::Cloud http adapter (https://github.com/flippercloud/flipper/pull/253).
517
+ - Add DSL#preload_all and Adapter#get_all to allow for making even more efficient loading of features (https://github.com/flippercloud/flipper/pull/255).
518
+ - Allow setting debug output of http adapter (https://github.com/flippercloud/flipper/pull/256 and https://github.com/flippercloud/flipper/pull/258).
519
+ - Allow setting env key for middleware (https://github.com/flippercloud/flipper/pull/259).
520
+ - Added ActiveSupport cache store adapter for use with Rails.cache (https://github.com/flippercloud/flipper/pull/265 and https://github.com/flippercloud/flipper/pull/297).
521
+ - Added support for up to 3 decimal places in percentage based rollouts (https://github.com/flippercloud/flipper/pull/274).
522
+ - Removed Flipper::GroupNotRegistered error as it is now unused (https://github.com/flippercloud/flipper/pull/270).
523
+ - Added get_all to all adapters (https://github.com/flippercloud/flipper/pull/298).
524
+ - Added support for Rails 5.1 (https://github.com/flippercloud/flipper/pull/299).
525
+ - Added Flipper default instance generation (https://github.com/flippercloud/flipper/pull/279).
505
526
 
506
527
  ## 0.10.2
507
528
 
508
- * Add Adapter#get_multi to allow for efficient loading of more than one feature at a time (https://github.com/flippercloud/flipper/pull/198)
509
- * Add DSL#preload for efficiently loading several features at once using get_mutli (https://github.com/flippercloud/flipper/pull/198)
510
- * Add :preload and :preload_all options to memoizer as a way of efficiently loading several features for a request in one network call instead of N where N is the number of features checked (https://github.com/flippercloud/flipper/pull/198)
511
- * Strip whitespace out of feature/actor/group values posted by UI (https://github.com/flippercloud/flipper/pull/205)
512
- * Fix bug with dalli adapter where deleting a feature using the UI or API was not clearing the cache in the dalli adapter which meant the feature would continue to use whatever cached enabled state was present until the TTL was hit (1cd96f6)
513
- * Change cache keys for dalli adapter. Backwards compatible in that it will just repopulate new keys on first check with this version, but old keys are not expired, so if you used the default ttl of 0, you'll have to expire them on your own. The primary reason for the change was safer namespacing of the cache keys to avoid collisions.
529
+ - Add Adapter#get_multi to allow for efficient loading of more than one feature at a time (https://github.com/flippercloud/flipper/pull/198)
530
+ - Add DSL#preload for efficiently loading several features at once using get_mutli (https://github.com/flippercloud/flipper/pull/198)
531
+ - Add :preload and :preload_all options to memoizer as a way of efficiently loading several features for a request in one network call instead of N where N is the number of features checked (https://github.com/flippercloud/flipper/pull/198)
532
+ - Strip whitespace out of feature/actor/group values posted by UI (https://github.com/flippercloud/flipper/pull/205)
533
+ - Fix bug with dalli adapter where deleting a feature using the UI or API was not clearing the cache in the dalli adapter which meant the feature would continue to use whatever cached enabled state was present until the TTL was hit (1cd96f6)
534
+ - Change cache keys for dalli adapter. Backwards compatible in that it will just repopulate new keys on first check with this version, but old keys are not expired, so if you used the default ttl of 0, you'll have to expire them on your own. The primary reason for the change was safer namespacing of the cache keys to avoid collisions.
514
535
 
515
536
  ## 0.10.1
516
537
 
517
- * Add docker compose support for contributing
518
- * Add sequel adapter
519
- * Show confirmation dialog when deleting a feature in flipper-ui
538
+ - Add docker compose support for contributing
539
+ - Add sequel adapter
540
+ - Show confirmation dialog when deleting a feature in flipper-ui
520
541
 
521
542
  ## 0.10.0
522
543
 
523
- * Added feature check context (https://github.com/flippercloud/flipper/pull/158)
524
- * Do not use mass assignment for active record adapter (https://github.com/flippercloud/flipper/pull/171)
525
- * Several documentation improvements
526
- * Make Flipper::UI.app.inspect return a String (https://github.com/flippercloud/flipper/pull/176)
527
- * changes boolean gate route to api/v1/features/boolean (https://github.com/flippercloud/flipper/pull/175)
528
- * add api v1 percentage_of_actors endpoint (https://github.com/flippercloud/flipper/pull/179)
529
- * add api v1 percentage_of_time endpoint (https://github.com/flippercloud/flipper/pull/180)
530
- * add api v1 actors gate endpoint (https://github.com/flippercloud/flipper/pull/181)
531
- * wait for activesupport to tell us when active record is loaded for active record adapter (https://github.com/flippercloud/flipper/pull/192)
544
+ - Added feature check context (https://github.com/flippercloud/flipper/pull/158)
545
+ - Do not use mass assignment for active record adapter (https://github.com/flippercloud/flipper/pull/171)
546
+ - Several documentation improvements
547
+ - Make Flipper::UI.app.inspect return a String (https://github.com/flippercloud/flipper/pull/176)
548
+ - changes boolean gate route to api/v1/features/boolean (https://github.com/flippercloud/flipper/pull/175)
549
+ - add api v1 percentage_of_actors endpoint (https://github.com/flippercloud/flipper/pull/179)
550
+ - add api v1 percentage_of_time endpoint (https://github.com/flippercloud/flipper/pull/180)
551
+ - add api v1 actors gate endpoint (https://github.com/flippercloud/flipper/pull/181)
552
+ - wait for activesupport to tell us when active record is loaded for active record adapter (https://github.com/flippercloud/flipper/pull/192)
532
553
 
533
554
  ## 0.9.2
534
555
 
535
- * GET /api/v1/features
536
- * POST /api/v1/features - add feature endpoint
537
- * rack-protection 2.0.0 support
538
- * pretty rake output
556
+ - GET /api/v1/features
557
+ - POST /api/v1/features - add feature endpoint
558
+ - rack-protection 2.0.0 support
559
+ - pretty rake output
539
560
 
540
561
  ## 0.9.1
541
562
 
542
- * bump flipper-active_record to officially support rails 5
563
+ - bump flipper-active_record to officially support rails 5
543
564
 
544
565
  ## 0.9.0
545
566
 
546
- * Moves SharedAdapterTests module to Flipper::Test::SharedAdapterTests to avoid clobbering anything top level in apps that use Flipper
547
- * Memoizable, Instrumented and OperationLogger now delegate any missing methods to the original adapter. This was lost with the removal of the official decorator in 0.8, but is actually useful functionality for these "wrapping" adapters.
548
- * Instrumenting adapters is now off by default. Use Flipper::Adapters::Instrumented.new(adapter) to instrument adapters and maintain the old functionality.
549
- * Added dalli cache adapter (https://github.com/flippercloud/flipper/pull/132)
567
+ - Moves SharedAdapterTests module to Flipper::Test::SharedAdapterTests to avoid clobbering anything top level in apps that use Flipper
568
+ - Memoizable, Instrumented and OperationLogger now delegate any missing methods to the original adapter. This was lost with the removal of the official decorator in 0.8, but is actually useful functionality for these "wrapping" adapters.
569
+ - Instrumenting adapters is now off by default. Use Flipper::Adapters::Instrumented.new(adapter) to instrument adapters and maintain the old functionality.
570
+ - Added dalli cache adapter (https://github.com/flippercloud/flipper/pull/132)
550
571
 
551
572
  ## 0.8
552
573
 
553
- * removed Flipper::Decorator and Flipper::Adapters::Decorator in favor of just calling methods on wrapped adapter
554
- * fix bug where certain versions of AR left off quotes for key column which caused issues with MySQL https://github.com/flippercloud/flipper/issues/120
555
- * fix bug where AR would store multiple gate values for percentage gates for each enable/disable and then nondeterministically pick one on read (https://github.com/flippercloud/flipper/pull/122 and https://github.com/flippercloud/flipper/pull/124)
556
- * added readonly adapter (https://github.com/flippercloud/flipper/pull/111)
557
- * flipper groups now match for truthy values rather than explicitly only true (https://github.com/flippercloud/flipper/issues/110)
558
- * removed gate operation instrumentation (https://github.com/flippercloud/flipper/commit/32f14ed1fb25c64961b23c6be3dc6773143a06c8); I don't think it was useful and never found myself instrumenting it in reality
559
- * initial implementation of flipper api - very limited functionality right now (get/delete feature, boolean gate for feature) but more is on the way
560
- * made it easy to remove a feature (https://github.com/flippercloud/flipper/pull/126)
561
- * add minitest shared tests for adapters that work the same as the shared specs for rspec (https://github.com/flippercloud/flipper/pull/127)
574
+ - removed Flipper::Decorator and Flipper::Adapters::Decorator in favor of just calling methods on wrapped adapter
575
+ - fix bug where certain versions of AR left off quotes for key column which caused issues with MySQL https://github.com/flippercloud/flipper/issues/120
576
+ - fix bug where AR would store multiple gate values for percentage gates for each enable/disable and then nondeterministically pick one on read (https://github.com/flippercloud/flipper/pull/122 and https://github.com/flippercloud/flipper/pull/124)
577
+ - added readonly adapter (https://github.com/flippercloud/flipper/pull/111)
578
+ - flipper groups now match for truthy values rather than explicitly only true (https://github.com/flippercloud/flipper/issues/110)
579
+ - removed gate operation instrumentation (https://github.com/flippercloud/flipper/commit/32f14ed1fb25c64961b23c6be3dc6773143a06c8); I don't think it was useful and never found myself instrumenting it in reality
580
+ - initial implementation of flipper api - very limited functionality right now (get/delete feature, boolean gate for feature) but more is on the way
581
+ - made it easy to remove a feature (https://github.com/flippercloud/flipper/pull/126)
582
+ - add minitest shared tests for adapters that work the same as the shared specs for rspec (https://github.com/flippercloud/flipper/pull/127)
562
583
 
563
584
  ## 0.7.5
564
585
 
565
- * support for rails 5 beta/ rack 2 alpha
566
- * fix uninitialized constant in rails generators
567
- * fix adapter test for clear to ensure that feature is not deleted, only gates
586
+ - support for rails 5 beta/ rack 2 alpha
587
+ - fix uninitialized constant in rails generators
588
+ - fix adapter test for clear to ensure that feature is not deleted, only gates
568
589
 
569
590
  ## 0.7.4
570
591
 
571
- * Add missing migration file to gemspec for flipper-active_record
592
+ - Add missing migration file to gemspec for flipper-active_record
572
593
 
573
594
  ## 0.7.3
574
595
 
575
- * Add Flipper ActiveRecord adapter
596
+ - Add Flipper ActiveRecord adapter
576
597
 
577
598
  ## 0.7.2
578
599
 
579
- * Add Flipper::UI.application_breadcrumb_href for setting breadcrumb back to original app from Flipper UI
600
+ - Add Flipper::UI.application_breadcrumb_href for setting breadcrumb back to original app from Flipper UI
580
601
 
581
602
  ## 0.7.1
582
603
 
583
- * Fix bug where features with names that match static file routes were incorrectly routing to the file action (https://github.com/flippercloud/flipper/issues/80)
604
+ - Fix bug where features with names that match static file routes were incorrectly routing to the file action (https://github.com/flippercloud/flipper/issues/80)
584
605
 
585
606
  ## 0.7
586
607
 
587
- * Added Flipper.groups and Flipper.group_names
588
- * Changed percentage_of_random to percentage_of_time
589
- * Added enable/disable convenience methods for all gates (enable_group, enable_actor, enable_percentage_of_actors, enable_percentage_of_time)
590
- * Added value convenience methods (boolean_value, groups_value, actors_value, etc.)
591
- * Added Feature#gate_values for getting typecast adapter gate values
592
- * Added Feature#enabled_gates and #disabled_gates for getting the gates that are enabled/disabled for the feature
593
- * Remove Feature#description
594
- * Added Flipper::Adapters::PStore
595
- * Moved memoizable decorator to instance variable storage from class level thread local stuff. Now not thread safe, but we can make a thread safe version later.
608
+ - Added Flipper.groups and Flipper.group_names
609
+ - Changed percentage_of_random to percentage_of_time
610
+ - Added enable/disable convenience methods for all gates (enable_group, enable_actor, enable_percentage_of_actors, enable_percentage_of_time)
611
+ - Added value convenience methods (boolean_value, groups_value, actors_value, etc.)
612
+ - Added Feature#gate_values for getting typecast adapter gate values
613
+ - Added Feature#enabled_gates and #disabled_gates for getting the gates that are enabled/disabled for the feature
614
+ - Remove Feature#description
615
+ - Added Flipper::Adapters::PStore
616
+ - Moved memoizable decorator to instance variable storage from class level thread local stuff. Now not thread safe, but we can make a thread safe version later.
596
617
 
597
618
  UI
598
619
 
599
- * Totally new. Works like a charm.
620
+ - Totally new. Works like a charm.
600
621
 
601
622
  Mongo
602
623
 
603
- * Updated to latest driver (~> 2.0)
624
+ - Updated to latest driver (~> 2.0)
604
625
 
605
626
  ## 0.6.3
606
627
 
607
- * Minor bug fixes
628
+ - Minor bug fixes
608
629
 
609
630
  ## 0.6.2
610
631
 
611
- * Added Flipper.group_exists?
632
+ - Added Flipper.group_exists?
612
633
 
613
634
  ## 0.6.1
614
635
 
615
- * Added statsd support for instrumentation.
636
+ - Added statsd support for instrumentation.
616
637
 
617
638
  ## 0.4.0
618
639
 
619
- * No longer use #id for detecting actors. You must now define #flipper_id on
640
+ - No longer use #id for detecting actors. You must now define #flipper_id on
620
641
  anything that you would like to behave as an actor.
621
- * Strings are now used instead of Integers for Actor identifiers. More flexible
642
+ - Strings are now used instead of Integers for Actor identifiers. More flexible
622
643
  and the only reason I used Integers was to do modulo for percentage of actors.
623
644
  Since percentage of actors now uses hashing, integer is no longer needed.
624
- * Easy integration of instrumentation with AS::Notifications or anything similar.
625
- * A bunch of stuff around inspecting and getting names/descriptions out of
645
+ - Easy integration of instrumentation with AS::Notifications or anything similar.
646
+ - A bunch of stuff around inspecting and getting names/descriptions out of
626
647
  things to more easily figure out what is going on.
627
- * Percentage of actors hash is now also seeded with feature name so the same
648
+ - Percentage of actors hash is now also seeded with feature name so the same
628
649
  actors don't get all features instantly.