split 3.0.0 → 4.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +5 -5
- data/.eslintrc +1 -1
- data/.github/FUNDING.yml +1 -0
- data/.github/ISSUE_TEMPLATE/bug_report.md +24 -0
- data/.github/dependabot.yml +7 -0
- data/.github/workflows/ci.yml +71 -0
- data/.rspec +1 -0
- data/.rubocop.yml +71 -1044
- data/.rubocop_todo.yml +226 -0
- data/Appraisals +12 -1
- data/CHANGELOG.md +157 -0
- data/CODE_OF_CONDUCT.md +3 -3
- data/CONTRIBUTING.md +54 -5
- data/Gemfile +2 -0
- data/LICENSE +1 -1
- data/README.md +232 -121
- data/Rakefile +2 -0
- data/gemfiles/5.0.gemfile +1 -2
- data/gemfiles/{4.2.gemfile → 5.1.gemfile} +2 -2
- data/gemfiles/5.2.gemfile +9 -0
- data/gemfiles/6.0.gemfile +9 -0
- data/gemfiles/6.1.gemfile +9 -0
- data/gemfiles/7.0.gemfile +9 -0
- data/lib/split/algorithms/block_randomization.rb +2 -0
- data/lib/split/algorithms/weighted_sample.rb +2 -1
- data/lib/split/algorithms/whiplash.rb +3 -2
- data/lib/split/alternative.rb +7 -3
- data/lib/split/cache.rb +28 -0
- data/lib/split/combined_experiments_helper.rb +38 -0
- data/lib/split/configuration.rb +24 -13
- data/lib/split/dashboard/helpers.rb +3 -2
- data/lib/split/dashboard/pagination_helpers.rb +87 -0
- data/lib/split/dashboard/paginator.rb +17 -0
- data/lib/split/dashboard/public/dashboard.js +10 -0
- data/lib/split/dashboard/public/style.css +14 -0
- data/lib/split/dashboard/views/_controls.erb +13 -0
- data/lib/split/dashboard/views/index.erb +5 -1
- data/lib/split/dashboard/views/layout.erb +1 -1
- data/lib/split/dashboard.rb +21 -1
- data/lib/split/encapsulated_helper.rb +3 -2
- data/lib/split/engine.rb +7 -2
- data/lib/split/exceptions.rb +1 -0
- data/lib/split/experiment.rb +103 -69
- data/lib/split/experiment_catalog.rb +1 -3
- data/lib/split/extensions/string.rb +1 -0
- data/lib/split/goals_collection.rb +2 -0
- data/lib/split/helper.rb +42 -9
- data/lib/split/metric.rb +2 -1
- data/lib/split/persistence/cookie_adapter.rb +58 -15
- data/lib/split/persistence/dual_adapter.rb +54 -12
- data/lib/split/persistence/redis_adapter.rb +5 -0
- data/lib/split/persistence/session_adapter.rb +1 -0
- data/lib/split/persistence.rb +4 -2
- data/lib/split/redis_interface.rb +9 -30
- data/lib/split/trial.rb +25 -17
- data/lib/split/user.rb +20 -4
- data/lib/split/version.rb +2 -4
- data/lib/split/zscore.rb +1 -0
- data/lib/split.rb +17 -3
- data/spec/alternative_spec.rb +13 -1
- data/spec/cache_spec.rb +88 -0
- data/spec/combined_experiments_helper_spec.rb +57 -0
- data/spec/configuration_spec.rb +17 -15
- data/spec/dashboard/pagination_helpers_spec.rb +200 -0
- data/spec/dashboard/paginator_spec.rb +37 -0
- data/spec/dashboard_helpers_spec.rb +2 -2
- data/spec/dashboard_spec.rb +78 -17
- data/spec/encapsulated_helper_spec.rb +2 -2
- data/spec/experiment_spec.rb +117 -13
- data/spec/goals_collection_spec.rb +1 -1
- data/spec/helper_spec.rb +211 -112
- data/spec/persistence/cookie_adapter_spec.rb +90 -23
- data/spec/persistence/dual_adapter_spec.rb +160 -68
- data/spec/persistence/redis_adapter_spec.rb +9 -0
- data/spec/redis_interface_spec.rb +0 -69
- data/spec/spec_helper.rb +5 -6
- data/spec/split_spec.rb +7 -7
- data/spec/trial_spec.rb +65 -19
- data/spec/user_spec.rb +45 -3
- data/split.gemspec +20 -10
- metadata +61 -35
- data/.travis.yml +0 -16
data/.rubocop_todo.yml
ADDED
|
@@ -0,0 +1,226 @@
|
|
|
1
|
+
# This configuration was generated by
|
|
2
|
+
# `rubocop --auto-gen-config`
|
|
3
|
+
# on 2020-07-05 01:43:26 UTC using RuboCop version 0.86.0.
|
|
4
|
+
# The point is for the user to remove these configuration records
|
|
5
|
+
# one by one as the offenses are removed from the code base.
|
|
6
|
+
# Note that changes in the inspected code, or installation of new
|
|
7
|
+
# versions of RuboCop, may require this file to be generated again.
|
|
8
|
+
|
|
9
|
+
# Offense count: 1
|
|
10
|
+
# Cop supports --auto-correct.
|
|
11
|
+
Layout/CommentIndentation:
|
|
12
|
+
Exclude:
|
|
13
|
+
- 'lib/split/experiment.rb'
|
|
14
|
+
|
|
15
|
+
# Offense count: 1
|
|
16
|
+
# Cop supports --auto-correct.
|
|
17
|
+
Layout/ElseAlignment:
|
|
18
|
+
Exclude:
|
|
19
|
+
- 'lib/split/experiment.rb'
|
|
20
|
+
|
|
21
|
+
# Offense count: 14
|
|
22
|
+
# Cop supports --auto-correct.
|
|
23
|
+
# Configuration parameters: EnforcedStyle.
|
|
24
|
+
# SupportedStyles: around, only_before
|
|
25
|
+
Layout/EmptyLinesAroundAccessModifier:
|
|
26
|
+
Exclude:
|
|
27
|
+
- 'lib/split/algorithms/block_randomization.rb'
|
|
28
|
+
- 'lib/split/algorithms/whiplash.rb'
|
|
29
|
+
- 'lib/split/alternative.rb'
|
|
30
|
+
- 'lib/split/configuration.rb'
|
|
31
|
+
- 'lib/split/dashboard/pagination_helpers.rb'
|
|
32
|
+
- 'lib/split/encapsulated_helper.rb'
|
|
33
|
+
- 'lib/split/experiment.rb'
|
|
34
|
+
- 'lib/split/goals_collection.rb'
|
|
35
|
+
- 'lib/split/persistence/cookie_adapter.rb'
|
|
36
|
+
- 'lib/split/persistence/dual_adapter.rb'
|
|
37
|
+
- 'lib/split/redis_interface.rb'
|
|
38
|
+
- 'lib/split/trial.rb'
|
|
39
|
+
- 'lib/split/user.rb'
|
|
40
|
+
|
|
41
|
+
# Offense count: 8
|
|
42
|
+
# Cop supports --auto-correct.
|
|
43
|
+
# Configuration parameters: EnforcedStyle.
|
|
44
|
+
# SupportedStyles: empty_lines, empty_lines_except_namespace, empty_lines_special, no_empty_lines, beginning_only, ending_only
|
|
45
|
+
Layout/EmptyLinesAroundClassBody:
|
|
46
|
+
Exclude:
|
|
47
|
+
- 'lib/split/experiment_catalog.rb'
|
|
48
|
+
- 'lib/split/goals_collection.rb'
|
|
49
|
+
- 'lib/split/metric.rb'
|
|
50
|
+
- 'lib/split/persistence/cookie_adapter.rb'
|
|
51
|
+
- 'lib/split/persistence/redis_adapter.rb'
|
|
52
|
+
- 'lib/split/persistence/session_adapter.rb'
|
|
53
|
+
- 'lib/split/zscore.rb'
|
|
54
|
+
|
|
55
|
+
# Offense count: 2
|
|
56
|
+
# Cop supports --auto-correct.
|
|
57
|
+
Layout/EmptyLinesAroundMethodBody:
|
|
58
|
+
Exclude:
|
|
59
|
+
- 'lib/split/dashboard/helpers.rb'
|
|
60
|
+
- 'lib/split/zscore.rb'
|
|
61
|
+
|
|
62
|
+
# Offense count: 1
|
|
63
|
+
# Cop supports --auto-correct.
|
|
64
|
+
# Configuration parameters: EnforcedStyle.
|
|
65
|
+
# SupportedStyles: empty_lines, empty_lines_except_namespace, empty_lines_special, no_empty_lines
|
|
66
|
+
Layout/EmptyLinesAroundModuleBody:
|
|
67
|
+
Exclude:
|
|
68
|
+
- 'lib/split/encapsulated_helper.rb'
|
|
69
|
+
|
|
70
|
+
# Offense count: 4
|
|
71
|
+
# Cop supports --auto-correct.
|
|
72
|
+
# Configuration parameters: EnforcedStyleAlignWith, AutoCorrect, Severity.
|
|
73
|
+
# SupportedStylesAlignWith: keyword, variable, start_of_line
|
|
74
|
+
Layout/EndAlignment:
|
|
75
|
+
Exclude:
|
|
76
|
+
- 'lib/split/configuration.rb'
|
|
77
|
+
- 'lib/split/experiment.rb'
|
|
78
|
+
- 'lib/split/trial.rb'
|
|
79
|
+
|
|
80
|
+
# Offense count: 17
|
|
81
|
+
# Cop supports --auto-correct.
|
|
82
|
+
# Configuration parameters: Width, IgnoredPatterns.
|
|
83
|
+
Layout/IndentationWidth:
|
|
84
|
+
Exclude:
|
|
85
|
+
- 'lib/split/algorithms/block_randomization.rb'
|
|
86
|
+
- 'lib/split/algorithms/whiplash.rb'
|
|
87
|
+
- 'lib/split/alternative.rb'
|
|
88
|
+
- 'lib/split/configuration.rb'
|
|
89
|
+
- 'lib/split/dashboard/pagination_helpers.rb'
|
|
90
|
+
- 'lib/split/encapsulated_helper.rb'
|
|
91
|
+
- 'lib/split/experiment.rb'
|
|
92
|
+
- 'lib/split/goals_collection.rb'
|
|
93
|
+
- 'lib/split/persistence/cookie_adapter.rb'
|
|
94
|
+
- 'lib/split/persistence/dual_adapter.rb'
|
|
95
|
+
- 'lib/split/redis_interface.rb'
|
|
96
|
+
- 'lib/split/trial.rb'
|
|
97
|
+
- 'lib/split/user.rb'
|
|
98
|
+
|
|
99
|
+
# Offense count: 4
|
|
100
|
+
# Cop supports --auto-correct.
|
|
101
|
+
# Configuration parameters: EnforcedStyle.
|
|
102
|
+
# SupportedStyles: space, no_space
|
|
103
|
+
Layout/SpaceAroundEqualsInParameterDefault:
|
|
104
|
+
Exclude:
|
|
105
|
+
- 'lib/split/goals_collection.rb'
|
|
106
|
+
- 'lib/split/persistence/dual_adapter.rb'
|
|
107
|
+
- 'lib/split/persistence/redis_adapter.rb'
|
|
108
|
+
- 'lib/split/user.rb'
|
|
109
|
+
|
|
110
|
+
# Offense count: 15
|
|
111
|
+
# Cop supports --auto-correct.
|
|
112
|
+
# Configuration parameters: EnforcedStyle, EnforcedStyleForEmptyBraces.
|
|
113
|
+
# SupportedStyles: space, no_space
|
|
114
|
+
# SupportedStylesForEmptyBraces: space, no_space
|
|
115
|
+
Layout/SpaceBeforeBlockBraces:
|
|
116
|
+
Exclude:
|
|
117
|
+
- 'lib/split/configuration.rb'
|
|
118
|
+
- 'lib/split/experiment.rb'
|
|
119
|
+
- 'lib/split/experiment_catalog.rb'
|
|
120
|
+
- 'lib/split/helper.rb'
|
|
121
|
+
- 'lib/split/trial.rb'
|
|
122
|
+
|
|
123
|
+
# Offense count: 35
|
|
124
|
+
# Cop supports --auto-correct.
|
|
125
|
+
# Configuration parameters: EnforcedStyle, EnforcedStyleForEmptyBraces, SpaceBeforeBlockParameters.
|
|
126
|
+
# SupportedStyles: space, no_space
|
|
127
|
+
# SupportedStylesForEmptyBraces: space, no_space
|
|
128
|
+
Layout/SpaceInsideBlockBraces:
|
|
129
|
+
Exclude:
|
|
130
|
+
- 'lib/split.rb'
|
|
131
|
+
- 'lib/split/configuration.rb'
|
|
132
|
+
- 'lib/split/experiment.rb'
|
|
133
|
+
- 'lib/split/experiment_catalog.rb'
|
|
134
|
+
- 'lib/split/helper.rb'
|
|
135
|
+
- 'lib/split/trial.rb'
|
|
136
|
+
- 'lib/split/user.rb'
|
|
137
|
+
|
|
138
|
+
# Offense count: 10
|
|
139
|
+
# Cop supports --auto-correct.
|
|
140
|
+
# Configuration parameters: EnforcedStyle, EnforcedStyleForEmptyBraces.
|
|
141
|
+
# SupportedStyles: space, no_space, compact
|
|
142
|
+
# SupportedStylesForEmptyBraces: space, no_space
|
|
143
|
+
Layout/SpaceInsideHashLiteralBraces:
|
|
144
|
+
Exclude:
|
|
145
|
+
- 'lib/split/experiment.rb'
|
|
146
|
+
- 'lib/split/helper.rb'
|
|
147
|
+
- 'lib/split/persistence/redis_adapter.rb'
|
|
148
|
+
|
|
149
|
+
# Offense count: 1
|
|
150
|
+
# Cop supports --auto-correct.
|
|
151
|
+
# Configuration parameters: EnforcedStyle.
|
|
152
|
+
# SupportedStyles: final_newline, final_blank_line
|
|
153
|
+
Layout/TrailingEmptyLines:
|
|
154
|
+
Exclude:
|
|
155
|
+
- 'Rakefile'
|
|
156
|
+
|
|
157
|
+
# Offense count: 3
|
|
158
|
+
# Cop supports --auto-correct.
|
|
159
|
+
# Configuration parameters: AllowInHeredoc.
|
|
160
|
+
Layout/TrailingWhitespace:
|
|
161
|
+
Exclude:
|
|
162
|
+
- 'lib/split/helper.rb'
|
|
163
|
+
|
|
164
|
+
# Offense count: 1
|
|
165
|
+
Lint/UselessAssignment:
|
|
166
|
+
Exclude:
|
|
167
|
+
- 'lib/split/goals_collection.rb'
|
|
168
|
+
|
|
169
|
+
# Offense count: 1
|
|
170
|
+
# Cop supports --auto-correct.
|
|
171
|
+
# Configuration parameters: EnforcedStyle.
|
|
172
|
+
# SupportedStyles: always, conditionals
|
|
173
|
+
Style/AndOr:
|
|
174
|
+
Exclude:
|
|
175
|
+
- 'lib/split/experiment_catalog.rb'
|
|
176
|
+
|
|
177
|
+
# Offense count: 1
|
|
178
|
+
# Cop supports --auto-correct.
|
|
179
|
+
Style/ColonMethodCall:
|
|
180
|
+
Exclude:
|
|
181
|
+
- 'lib/split/combined_experiments_helper.rb'
|
|
182
|
+
|
|
183
|
+
# Offense count: 1
|
|
184
|
+
# Cop supports --auto-correct.
|
|
185
|
+
Style/DefWithParentheses:
|
|
186
|
+
Exclude:
|
|
187
|
+
- 'lib/split/helper.rb'
|
|
188
|
+
|
|
189
|
+
# Offense count: 23
|
|
190
|
+
# Cop supports --auto-correct.
|
|
191
|
+
# Configuration parameters: EnforcedStyle, UseHashRocketsWithSymbolValues, PreferHashRocketsForNonAlnumEndingSymbols.
|
|
192
|
+
# SupportedStyles: ruby19, hash_rockets, no_mixed_keys, ruby19_no_mixed_keys
|
|
193
|
+
Style/HashSyntax:
|
|
194
|
+
Exclude:
|
|
195
|
+
- 'Rakefile'
|
|
196
|
+
- 'lib/split/experiment.rb'
|
|
197
|
+
- 'lib/split/experiment_catalog.rb'
|
|
198
|
+
- 'lib/split/helper.rb'
|
|
199
|
+
- 'lib/split/metric.rb'
|
|
200
|
+
- 'lib/split/persistence.rb'
|
|
201
|
+
- 'lib/split/persistence/redis_adapter.rb'
|
|
202
|
+
|
|
203
|
+
# Offense count: 1
|
|
204
|
+
# Cop supports --auto-correct.
|
|
205
|
+
# Configuration parameters: EnforcedStyle.
|
|
206
|
+
# SupportedStyles: require_parentheses, require_no_parentheses, require_no_parentheses_except_multiline
|
|
207
|
+
Style/MethodDefParentheses:
|
|
208
|
+
Exclude:
|
|
209
|
+
- 'lib/split/configuration.rb'
|
|
210
|
+
|
|
211
|
+
# Offense count: 9
|
|
212
|
+
# Cop supports --auto-correct.
|
|
213
|
+
# Configuration parameters: AllowMultipleReturnValues.
|
|
214
|
+
Style/RedundantReturn:
|
|
215
|
+
Exclude:
|
|
216
|
+
- 'lib/split/alternative.rb'
|
|
217
|
+
- 'lib/split/experiment.rb'
|
|
218
|
+
- 'lib/split/helper.rb'
|
|
219
|
+
- 'lib/split/zscore.rb'
|
|
220
|
+
|
|
221
|
+
# Offense count: 258
|
|
222
|
+
# Cop supports --auto-correct.
|
|
223
|
+
# Configuration parameters: EnforcedStyle, ConsistentQuotesInMultiline.
|
|
224
|
+
# SupportedStyles: single_quotes, double_quotes
|
|
225
|
+
Style/StringLiterals:
|
|
226
|
+
Enabled: false
|
data/Appraisals
CHANGED
|
@@ -4,5 +4,16 @@ end
|
|
|
4
4
|
|
|
5
5
|
appraise "5.0" do
|
|
6
6
|
gem "rails", "~> 5.0"
|
|
7
|
-
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
appraise "5.1" do
|
|
10
|
+
gem "rails", "~> 5.1"
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
appraise "5.2" do
|
|
14
|
+
gem "rails", "~> 5.2"
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
appraise "6.0" do
|
|
18
|
+
gem 'rails', '~> 6.0'
|
|
8
19
|
end
|
data/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,160 @@
|
|
|
1
|
+
## 4.0.1 (December 30th, 2021)
|
|
2
|
+
|
|
3
|
+
Bugfixes:
|
|
4
|
+
- ab_test must return metadata on error or if split is disabled/excluded user (@andrehjr, #622)
|
|
5
|
+
- Fix versioned experiments when used with allow_multiple_experiments=control (@andrehjr, #613)
|
|
6
|
+
- Only block Pinterest bot (@huoxito, #606)
|
|
7
|
+
- Respect experiment defaults when loading experiments in initializer. (@mattwd7, #599)
|
|
8
|
+
- Removes metadata key when it updated to nil (@andrehjr, #633)
|
|
9
|
+
- Force experiment does not count for metrics (@andrehjr, #637)
|
|
10
|
+
- Fix cleanup_old_versions! misbehaviour (@serggl, #661)
|
|
11
|
+
|
|
12
|
+
Features:
|
|
13
|
+
- Make goals accessible via on_trial_complete callbacks (@robin-phung, #625)
|
|
14
|
+
- Replace usage of SimpleRandom with RubyStats(Used for Beta Distribution RNG) (@andrehjr, #616)
|
|
15
|
+
- Introduce enable/disable experiment cohorting (@robin-phung, #615)
|
|
16
|
+
- Add on_experiment_winner_choose callback (@GenaMinenkov, #574)
|
|
17
|
+
- Add Split::Cache to reduce load on Redis (@rdh, #648)
|
|
18
|
+
- Caching based optimization in the experiment#save path (@amangup, #652)
|
|
19
|
+
- Adds config option for cookie domain (@joedelia, #664)
|
|
20
|
+
|
|
21
|
+
Misc:
|
|
22
|
+
- Drop support for Ruby < 2.5 (@andrehjr, #627)
|
|
23
|
+
- Drop support for Rails < 5 (@andrehjr, #607)
|
|
24
|
+
- Bump minimum required redis to 4.2 (@andrehjr, #628)
|
|
25
|
+
- Removed repeated loading from config (@robin-phung, #619)
|
|
26
|
+
- Simplify RedisInterface usage when persisting Experiment alternatives (@andrehjr, #632)
|
|
27
|
+
- Remove redis_url impl. Deprecated on version 2.2 (@andrehjr, #631)
|
|
28
|
+
- Remove thread_safe config as redis-rb is thread_safe by default (@andrehjr, #630)
|
|
29
|
+
- Fix typo of in `Split::Trial` class variable (TomasBarry, #644)
|
|
30
|
+
- Single HSET to update values, instead of multiple ones (@andrehjr, #640)
|
|
31
|
+
- Use Redis#hmset to keep compatibility with Redis < 4.0 (@andrehjr, #659)
|
|
32
|
+
- Remove 'set' parsing for alternatives. Sets were used as storage and deprecated on 0.x (@andrehjr, #639)
|
|
33
|
+
- Adding documentation related to what is stored on cookies. (@andrehjr, #634)
|
|
34
|
+
- Keep railtie defined under the Split gem namespace (@avit, #666)
|
|
35
|
+
- Update RSpec helper to support block syntax (@clowder, #665)
|
|
36
|
+
|
|
37
|
+
## 3.4.1 (November 12th, 2019)
|
|
38
|
+
|
|
39
|
+
Bugfixes:
|
|
40
|
+
- Reference ActionController directly when including split helpers, to avoid breaking Rails API Controllers (@andrehjr, #602)
|
|
41
|
+
|
|
42
|
+
## 3.4.0 (November 9th, 2019)
|
|
43
|
+
|
|
44
|
+
Features:
|
|
45
|
+
- Improve DualAdapter (@santib, #588), adds a new configuration for the DualAdapter, making it possible to keep consistency for logged_out/logged_in users. It's a opt-in flag. No Behavior was changed on this release.
|
|
46
|
+
- Make dashboard pagination default "per" param configurable (@alopatin, #597)
|
|
47
|
+
|
|
48
|
+
Bugfixes:
|
|
49
|
+
- Fix `force_alternative` for experiments with incremented version (@giraffate, #568)
|
|
50
|
+
- Persist alternative weights (@giraffate, #570)
|
|
51
|
+
- Combined experiment performance improvements (@gnanou, #575)
|
|
52
|
+
- Handle correctly case when ab_finished is called before ab_test for a user (@gnanou, #577)
|
|
53
|
+
- When loading active_experiments, it should not look into user's 'finished' keys (@andrehjr, #582)
|
|
54
|
+
|
|
55
|
+
Misc:
|
|
56
|
+
- Remove `rubyforge_project` from gemspec (@giraffate, #583)
|
|
57
|
+
- Fix URLs to replace http with https (@giraffate , #584)
|
|
58
|
+
- Lazily include split helpers in ActionController::Base (@hasghari, #586)
|
|
59
|
+
- Fix unused variable warnings (@andrehjr, #592)
|
|
60
|
+
- Fix ruby warnings (@andrehjr, #593)
|
|
61
|
+
- Update rubocop.yml config (@andrehjr, #594)
|
|
62
|
+
- Add frozen_string_literal to all files that were missing it (@andrehjr, #595)
|
|
63
|
+
|
|
64
|
+
## 3.3.2 (April 12th, 2019)
|
|
65
|
+
|
|
66
|
+
Features:
|
|
67
|
+
- Added uptime robot to configuration.rb (@razel1982, #556)
|
|
68
|
+
- Check to see if being run in Rails application and run in before_initialize (@husteadrobert, #555)
|
|
69
|
+
|
|
70
|
+
Bugfixes:
|
|
71
|
+
- Fix error message interpolation (@hanibash, #553)
|
|
72
|
+
- Fix Bigdecimal warnings (@agraves, #551)
|
|
73
|
+
- Avoid hitting up on redis for robots/excluded users. (@andrehjr, #544)
|
|
74
|
+
- Checks for defined?(request) on Helper#exclude_visitor?. (@andrehjr)
|
|
75
|
+
|
|
76
|
+
Misc:
|
|
77
|
+
- Update travis to add Rails 6 (@edmilton, #559)
|
|
78
|
+
- Fix broken specs in developement environment (@dougpetronilio, #557)
|
|
79
|
+
|
|
80
|
+
## 3.3.1 (January 11th, 2019)
|
|
81
|
+
|
|
82
|
+
Features:
|
|
83
|
+
- Filter some more bots (@janosch-x, #542)
|
|
84
|
+
|
|
85
|
+
Bugfixes:
|
|
86
|
+
- Fix Dashboard Pagination Helper typo (@cattekin, #541)
|
|
87
|
+
- Do not storage alternative in cookie if experiment has a winner (@sadhu89, #539)
|
|
88
|
+
- fix user participating alternative not found (@NaturalHokke, #536)
|
|
89
|
+
|
|
90
|
+
Misc:
|
|
91
|
+
- Tweak RSpec instructions (@eliotsykes, #540)
|
|
92
|
+
- Improve README regarding rspec usage (@vermaxik, #538)
|
|
93
|
+
|
|
94
|
+
## 3.3.0 (August 13th, 2018)
|
|
95
|
+
|
|
96
|
+
Features:
|
|
97
|
+
|
|
98
|
+
- Added pagination for dashboard (@GeorgeGorbanev, #518)
|
|
99
|
+
- Add Facebot crawler to list of bots (@pfeiffer, #530)
|
|
100
|
+
- Ignore previewing requests (@pfeiffer, #531)
|
|
101
|
+
- Fix binding of ignore_filter (@pfeiffer, #533)
|
|
102
|
+
|
|
103
|
+
Bugfixes:
|
|
104
|
+
|
|
105
|
+
- Fix cookie header duplication (@andrehjr, #522)
|
|
106
|
+
|
|
107
|
+
Performance:
|
|
108
|
+
|
|
109
|
+
- Improve performance of RedisInterface#make_list_length by using LTRIM command (@mlovic, #509)
|
|
110
|
+
|
|
111
|
+
Misc:
|
|
112
|
+
|
|
113
|
+
- Update development dependencies
|
|
114
|
+
- test rails 5.2 on travis (@lostapathy, #524)
|
|
115
|
+
- update ruby versions for travis (@lostapathy, #525)
|
|
116
|
+
|
|
117
|
+
## 3.2.0 (September 21st, 2017)
|
|
118
|
+
|
|
119
|
+
Features:
|
|
120
|
+
|
|
121
|
+
- Allow configuration of how often winning alternatives are recalculated (@patbl, #501)
|
|
122
|
+
|
|
123
|
+
Bugfixes:
|
|
124
|
+
|
|
125
|
+
- Avoid z_score numeric exception for conversion rates >1 (@cmantas, #503)
|
|
126
|
+
- Fix combined experiments (@semanticart, #502)
|
|
127
|
+
|
|
128
|
+
## 3.1.1 (August 30th, 2017)
|
|
129
|
+
|
|
130
|
+
Bugfixes:
|
|
131
|
+
|
|
132
|
+
- Bring back support for ruby 1.9.3 and greater (rubygems 2.0.0 or greater now required) (@patbl, #498)
|
|
133
|
+
|
|
134
|
+
Misc:
|
|
135
|
+
|
|
136
|
+
- Document testing with RSpec (@eliotsykes, #495)
|
|
137
|
+
|
|
138
|
+
## 3.1.0 (August 14th, 2017)
|
|
139
|
+
|
|
140
|
+
Features:
|
|
141
|
+
|
|
142
|
+
- Support for combined experiments (@daviddening, #493)
|
|
143
|
+
- Rewrite CookieAdapter to work with Rack::Request and Rack::Response directly (@andrehjr, #490)
|
|
144
|
+
- Enumeration of a User's Experiments that Respects the db_failover Option(@MarkRoddy, #487)
|
|
145
|
+
|
|
146
|
+
Bugfixes:
|
|
147
|
+
|
|
148
|
+
- Blocked a few more common bot user agents (@kylerippey, #485)
|
|
149
|
+
|
|
150
|
+
Misc:
|
|
151
|
+
|
|
152
|
+
- Repository Audit by Maintainer.io (@RichardLitt, #484)
|
|
153
|
+
- Update development dependencies
|
|
154
|
+
- Test on ruby 2.4.1
|
|
155
|
+
- Test compatibility with rails 5.1
|
|
156
|
+
- Add uris to metadata section in gemspec
|
|
157
|
+
|
|
1
158
|
## 3.0.0 (March 30th, 2017)
|
|
2
159
|
|
|
3
160
|
Features:
|
data/CODE_OF_CONDUCT.md
CHANGED
|
@@ -68,7 +68,7 @@ members of the project's leadership.
|
|
|
68
68
|
## Attribution
|
|
69
69
|
|
|
70
70
|
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
|
|
71
|
-
available at [
|
|
71
|
+
available at [https://contributor-covenant.org/version/1/4][version]
|
|
72
72
|
|
|
73
|
-
[homepage]:
|
|
74
|
-
[version]:
|
|
73
|
+
[homepage]: https://contributor-covenant.org
|
|
74
|
+
[version]: https://contributor-covenant.org/version/1/4/
|
data/CONTRIBUTING.md
CHANGED
|
@@ -1,13 +1,62 @@
|
|
|
1
|
-
|
|
1
|
+
# Contributing to Split
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Want to contribute to Split? That's great! Here are a couple of guidelines that will help you contribute. Before we get started: Please note that this project is released with a [Contributor Code of Conduct](CODE_OF_CONDUCT.md) to ensure that this project is a welcoming place for **everyone** to contribute to. By participating in this project you agree to abide by its terms.
|
|
4
|
+
|
|
5
|
+
#### Overview
|
|
6
|
+
|
|
7
|
+
* [Contribution workflow](#contribution-workflow)
|
|
8
|
+
* [Setup instructions](#setup-instructions)
|
|
9
|
+
* [Reporting a bug](#reporting-a-bug)
|
|
10
|
+
* [Contributing to an existing issue](#contributing-to-an-existing-issue)
|
|
11
|
+
* [Our labels](#our-labels)
|
|
12
|
+
* [Additional info](#additional-info)
|
|
13
|
+
|
|
14
|
+
## Contribution workflow
|
|
4
15
|
|
|
5
16
|
* Fork the project.
|
|
6
17
|
* Make your feature addition or bug fix.
|
|
7
18
|
* Add tests for it. This is important so I don't break it in a
|
|
8
19
|
future version unintentionally.
|
|
9
20
|
* Add documentation if necessary.
|
|
10
|
-
* Commit
|
|
11
|
-
(
|
|
21
|
+
* Commit. Do not mess with the Rakefile, version, or history.
|
|
22
|
+
(If you want to have your own version, that is fine. But bump version in a commit by itself I can ignore when I pull.)
|
|
12
23
|
* Send a pull request. Bonus points for topic branches.
|
|
13
|
-
* Discussion at the [Google Group](https://groups.google.com/d/forum/split-ruby)
|
|
24
|
+
* Discussion at the [Google Group](https://groups.google.com/d/forum/split-ruby)
|
|
25
|
+
|
|
26
|
+
## Setup instructions
|
|
27
|
+
|
|
28
|
+
You can find in-depth instructions to install in our [README](https://github.com/splitrb/split/blob/master/README.md).
|
|
29
|
+
|
|
30
|
+
*Note*: Split requires Ruby 1.9.2 or higher.
|
|
31
|
+
|
|
32
|
+
## Reporting a bug
|
|
33
|
+
|
|
34
|
+
So you've found a bug, and want to help us fix it? Before filing a bug report, please double-check the bug hasn't already been reported. You can do so [on our issue tracker](https://github.com/splitrb/split/issues?q=is%3Aissue+is%3Aopen+label%3Abug). If something hasn't been raised, you can go ahead and create a new issue with the following information:
|
|
35
|
+
|
|
36
|
+
* When did the error happen?
|
|
37
|
+
* How can the error be reproduced?
|
|
38
|
+
* If possible, please also provide an error message or a screenshot to illustrate the problem.
|
|
39
|
+
|
|
40
|
+
If you want to be really thorough, there is a great overview on Stack Overflow of [what you should consider when reporting a bug](http://stackoverflow.com/questions/240323/how-to-report-bugs-the-smart-way).
|
|
41
|
+
|
|
42
|
+
It goes without saying that you're welcome to help investigate further and/or find a fix for the bug. If you want to do so, just mention it in your bug report and offer your help!
|
|
43
|
+
|
|
44
|
+
## Contributing to an existing issue
|
|
45
|
+
|
|
46
|
+
### Finding an issue to work on
|
|
47
|
+
|
|
48
|
+
We've got a few open issues and are always glad to get help on that front. You can view the list of issues [here](https://github.com/splitrb/split/issues). Most of the issues are labelled, so you can use the labels to get an idea of which issue could be a good fit for you. (Here's [a good article](https://medium.freecodecamp.com/finding-your-first-open-source-project-or-bug-to-work-on-1712f651e5ba) on how to find your first bug to fix).
|
|
49
|
+
|
|
50
|
+
Before getting to work, take a look at the issue and at the conversation around it. Has someone already offered to work on the issue? Has someone been assigned to the issue? If so, you might want to check with them to see whether they're still actively working on it.
|
|
51
|
+
|
|
52
|
+
If the issue is a few months old, it might be a good idea to write a short comment to double-check that the issue or feature is still a valid one to jump on.
|
|
53
|
+
|
|
54
|
+
Feel free to ask for more detail on what is expected: are there any more details or specifications you need to know?
|
|
55
|
+
|
|
56
|
+
And if at any point you get stuck: don't hesitate to ask for help.
|
|
57
|
+
|
|
58
|
+
### Making your contribution
|
|
59
|
+
|
|
60
|
+
We've outlined the contribution workflow [here](#contribution-workflow). If you're a first-timer, don't worry! GitHub has a ton of guides to help you through your first pull request: You can find out more about pull requests [here](https://help.github.com/articles/about-pull-requests/) and about creating a pull request [here](https://help.github.com/articles/creating-a-pull-request/).
|
|
61
|
+
|
|
62
|
+
Especially if you're a newcomer to Open Source and you've found some little bumps along the way while contributing, we recommend you write about them. [Here](https://medium.freecodecamp.com/new-contributors-to-open-source-please-blog-more-920af14cffd)'s a great article about why writing about your experience is important; this will encourage other beginners to try their luck at Open Source, too!
|
data/Gemfile
CHANGED