flipper 1.0.0 → 1.1.1

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