Features:
- add on_trial callback whenever a trial is started (@mtyeh411, #375)
Bugfixes:
- Allow algorithm configuration at experiment level (@007sumit, #376)
Misc:
- only choose override if it exists as valid alternative (@spheric, #377)
Misc:
- Deprecated some legacy methods (@andreibondarev, #374)
Bugfixes:
- respect manual start configuration after an experiment has been deleted (@mtyeh411, #372)
Misc:
- Introduce goals collection to reduce complexity of Experiment#save (@pakallis, #365)
- Revise specs according to http://betterspecs.org/ (@hkliya, #369)
Features:
- Added experiment filters to dashboard (@ccallebs, #363, #364)
- Added Contributor Covenant Code of Conduct
Bugfixes:
- Fix deleting experiments in from the updated dashboard (@craigmcnamara, #352)
Bugfixes:
- Fix the dashboard for experiments with ‘/‘ in the name. (@craigmcnamara, #349)
Features:
- allow for custom redis_url different from ENV variable (@davidgrieser, #323)
- add ability to change the length of the persistence cookie (@peterylai, #335)
Bugfixes:
- Rescue from Redis::BaseError instead of Redis::CannotConnectError (@nfm, #342)
- Fix active experiments when experiment is on a later version (@ndrisso, #331)
- Fix caching of winning alternative (@nfm, #329)
Misc:
- Remove duplication from Experiment#save (@pakallis, #333)
- Remove unnecessary argument from Experiment#write_to_alternative (@t4deu, #332)
Features:
- Handle redis DNS resolution failures gracefully (@fusion2004, #310)
- Push metadata to ab_test block (@ekorneeff, #296)
- Helper methods are now private when included in controllers (@ipoval, #303)
Bugfixes:
- Return an empty hash as metadata when Split is disabled (@tomasdundacek, #313)
- Don't use capture helper from ActionView (@tomasdundacek, #312)
Misc:
- Remove body "max-width" from dashboard (@xicreative, #299)
- fix private for class methods (@ipoval, #301)
- minor memoization fix in spec (@ipoval, #304)
- Minor documentation fixes (#295, #297, #305, #308)
Features:
- Configure redis using environment variables if available (@saratovsource , #293)
- Store metadata on experiment configuration (@dekz, #291)
Bugfixes:
- Revert the Trial#complete! public API to support noargs (@dekz, #292)
Changes:
- Public class methods on
Split::Experiment(e.g.,find_or_create) have been moved toSplit::ExperimentCatalog.
Features:
- Decouple trial from Split::Helper (@joshdover, #286)
- Helper method for Active Experiments (@blahblahblah-, #273)
Misc:
- Use the new travis container based infrastructure for tests (@andrew, #280)
Changes:
- Remove support for Ruby 1.8.7 and Rails 2.3 (@qpowell, #271)
Features:
- Added new way to calculate the probability an alternative is the winner (@caser, #266, #251)
- support multiple metrics per experiment (@stevenou, #260)
Bugfixes:
- Avoiding call to params in EncapsulatedHelper (@afn, #257)
Features:
- Disable all split tests via a URL parameter (@hwartig, #263)
Bugfixes:
- Correctly escape experiment names on dashboard (@ecaron, #265)
- Handle redis connection exception error properly (@andrew, #245)
Features:
- Show metrics on the dashboard (@swrobel, #241)
Bugfixes:
- Avoid nil error with ExperimentCatalog when upgrading (@danielschwartz, #253)
- [SECURITY ISSUE] Only allow known alternatives as query param overrides (@ankane, #255)
Features:
- You can now reopen experiment from the dashboard (@mikezaby, #235)
Misc:
- Internal code tidy up (@IanVaughan, #238)
Features:
- Significantly improved z-score algorithm (@caser ,#221)
- Better sorting of Experiments on dashboard (@wadako111, #218)
Bugfixes:
- Fixed start button not being displayed in some cases (@vigosan, #219)
Misc:
- Experiment#initialize refactoring (@nberger, #224)
- Extract ExperimentStore into a seperate class (@nberger, #225)
Features:
- Sort experiments on Dashboard so "active" ones without a winner appear first (@swrobel, #204)
- Starting tests manually (@duksis, #209)
Bugfixes:
- Only trigger completion callback with valid Trial (@segfaultAX, #208)
- Fixed bug with
resettablewhen usingnormalize_experiments(@jonashuckestein, #213)
Misc:
- Added more bots to filter list (@lbeder, #214, #215, #216)
Features:
- Added Redis adapter for persisting experiments across sessions (@fengb, #203)
Misc:
- Expand upon algorithms section in README (@swrobel, #200)
Features:
- Add hooks for experiment deletion and resetting (@craigmcnamara, #198)
- Allow Split::Helper to be used outside of a controller (@nfm, #190)
- Show current Rails/Rack Env in dashboard (@rceee, #187)
Bugfixes:
- Fix whiplash algorithm when using goals (@swrobel, #193)
Misc:
- Refactor dashboard js (@buddhamagnet)
Features:
- Add hooks for Trial#choose! and Trial#complete! (@bmarini, #176)
Bugfixes:
- Stores and parses Experiment's start_time as a UNIX integer (@joeroot, #177)
Features:
- Rails 2.3 compatibility (@bhcarpenter, #167)
- Adding possibility to store overridden alternative (@duksis, #173)
Misc:
- Now testing against multiple versions of rails
Bugfixes:
- Use the specified algorithm for the experiment instead of the default (@woodhull, #165)
Misc:
- Ensure experiements are valid when configuring (@ashmckenzie, #159)
- Allow arrays to be passed to ab_test (@fenelon, #156)
Features:
- Support for Ruby 2.0.0 (@phoet, #142)
- Multiple Goals (@liujin, #109)
- Ignoring IPs using Regular Expressions (@waynemoore, #119)
- Added ability to add more bots to the default list (@themgt, #140)
- Allow custom configuration of user blocking logic (@phoet , #148)
Bugfixes:
- Fixed regression in handling of config files (@iangreenleaf, #115)
- Fixed completion rate increases for experiments users aren't participating in (@philnash, #67)
- Handle exceptions from invalid JSON in cookies (@iangreenleaf, #126)
Misc:
- updated minimum json version requirement
- Refactor Yaml Configuration (@rtwomey, #124)
- Refactoring of Experiments (@iangreenleaf @tamird, #117 #118)
- Added more known Bots, including Pingdom, Bing, YandexBot (@julesie, @zinkkrysty, @dimko)
- Improved Readme (@iangreenleaf @phoet)
Features:
- Persistence Adapters: Cookies and Session (@patbenatar, #98)
- Configure experiments from a hash (@iangreenleaf, #97)
- Pluggable sampling algorithms (@woodhull, #105)
Bugfixes:
- Fixed negative number of non-finished rates (@philnash, #83)
- Fixed behaviour of finished(:reset => false) (@philnash, #88)
- Only take into consideration positive z-scores (@thomasmaas, #96)
- Amended ab_test method to raise ArgumentError if passed integers or symbols as alternatives (@buddhamagnet, #81)
Features:
- General code quality improvements (@buddhamagnet, #79)
Bugfixes:
- Don't increment the experiment counter if user has finished (@dimko, #78)
- Fixed an incorrect test (@jaywengrow, #74)
Bugfixes:
- Fixed header gradient in FF/Opera (@philnash, #69)
- Fixed reseting of experiment in session (@apsoto, #43)
Features:
- Allow parameter overrides, even without Redis. (@bhcarpenter, #62)
Bugfixes:
- Fixes version number always increasing when alternatives are changed (@philnash, #63)
- updated guard-rspec to version 1.2
Features:
- redis failover now recovers from all redis-related exceptions
Features:
- Now works with v3.0 of redis gem
Bugfixes:
- Fixed redis failover on Rubinius
Features:
- Added configuration option to disable Split testing (@ilyakatz, #45)
Bugfixes:
- Fix weights for existing experiments (@andreas, #40)
- Fixed dashboard range error (@andrew, #42)
IMPORTANT
If using ruby 1.8.x and weighted alternatives you should always pass the control alternative through as the second argument with any other alternatives as a third argument because the order of the hash is not preserved in ruby 1.8, ruby 1.9 users are not affected by this bug.
Features:
- Experiments now record when they were started (@vrish88, #35)
- Old versions of experiments in sessions are now cleaned up
- Avoid users participating in multiple experiments at once (#21)
Bugfixes:
- Overriding alternatives doesn't work for weighted alternatives (@layflags, #34)
- confidence_level helper should handle tiny z-scores (#23)
Bugfixes:
- Fixed redis failover when a block was passed to ab_test (@layflags, #33)
Features:
- Handle redis errors gracefully (@layflags, #32)
Features:
- General code tidy up (@ryanlecompte, #22, @mocoso, #28)
- Lazy loading data from Redis (@lautis, #25)
Bugfixes:
- Handle unstarted experiments (@mocoso, #27)
- Relaxed Sinatra version requirement (@martinclu, #24)
Features:
- Redesigned dashboard (@mrappleton, #17)
- Use atomic increments in redis for better concurrency (@lautis, #18)
- Weighted alternatives
Bugfixes:
- Fix to allow overriding of experiments that aren't on version 1
Features:
- Added option to finished to not reset the users session
Bugfixes:
- Only allow strings as alternatives, fixes strange errors when passing true/false or symbols
Features:
- Experiments can now be deleted from the dashboard
- ab_test helper now accepts a block
- Improved dashboard
Bugfixes:
- After resetting an experiment, existing users of that experiment will also be reset
Features:
- Updated redis-namespace requirement to 1.0.3
- Added a configuration object for changing options
- Robot regex can now be changed via a configuration options
- Added ability to ignore visits from specified IP addresses
- Dashboard now shows percentage improvement of alternatives compared to the control
- If the alternatives of an experiment are changed it resets the experiment and uses the new alternatives
Bugfixes:
- Saving an experiment multiple times no longer creates duplicate alternatives
Bugfixes:
- Convert legacy sets to lists to avoid exceptions during upgrades from 0.1.x
Features:
- Override an alternative via a url parameter
- Experiments can now be reset from the dashboard
- The first alternative is now considered the control
- General dashboard usability improvements
- Robots are ignored and given the control alternative
Bugfixes:
- Alternatives are now store in a list rather than a set to ensure consistent ordering
- Fixed diving by zero errors
Bugfixes:
- More Robust conversion rate display on dashboard
- Ensure
Split::Versionis available everywhere, fixed dashboard
Initial Release