split

The Rack Based A/B testing framework

MIT License

Downloads
7.6M
Stars
2.7K
Committers
175

Bot releases are visible (Hide)

split - v4.0.3 Latest Release

Published by andrehjr 11 months ago

4.0.3 (November 15th, 2023)

Bugfixes:

  • Do not throw error if alternativas have data that can lead to negative numbers for probability calculation (@andrehjr, #703)
  • Do not persist invalid extra_info on ab_record_extra_info. (@trostli @andrehjr, #717)
  • CROSSSLOT keys issue fix when using redis cluster (@naveen-chidhambaram, #710)
  • Convert value to string before saving it in RedisAdapter (@Jealrock, #714)
  • Fix deprecation warning with Redis 4.8.0 (@martingregoire, #701)

Misc:

  • Add matrix as a default dependency (@andrehjr, #705)
  • Add Ruby 3.2 to Github Actions (@andrehjr, #702)
  • Update documentation regarding finding users outside a web session (@andrehjr, #716)
  • Update actions/checkout to v4 (@andrehjr, #718)
split - v4.0.2

Published by andrehjr almost 2 years ago

Bugfixes:

  • Stop crashing on non-hash json (@knarewski, #697)
  • Handle when Rails is partially loaded as a Gem (@TSMMark, #687)

Features:

  • Add support for redis-client, which does not automatically cast types to strings (@knarewski, #696)
  • Add ability to initialize experiments (@robin-phung, #673)

Misc:

  • Fix default branch name and gem metadata indentation (@ursm, #693)
  • Update actions/checkout to v3 (@andrehjr, #683)
  • Enforce double quotes (@andrehjr, #682)
  • Fix Rubocop Style/* Offenses (@andrehjr, #681)
  • Enable rubocop on Github Actions (@andrehjr, #680)
  • Fix all Layout issues on the project (@andrehjr, #679)
  • Fix Style/HashSyntax offenses (@andrehjr, #678)
  • Remove usage of deprecated implicit block expectation from specs (@andrehjr, #677)
  • Remove appraisals configuration (@andrehjr, #676)
  • Add Ruby 3.1 (@andrehjr, #675)
  • Encapsulate Split::Algorithms at our own module to avoid explicit calling rubystats everywhere (@andrehjr, #674)
split - v4.0.1

Published by andrehjr almost 3 years ago

Bugfixes:

  • ab_test must return metadata on error or if split is disabled/excluded user (@andrehjr, #622)
  • Fix versioned experiments when used with allow_multiple_experiments=control (@andrehjr, #613)
  • Only block Pinterest bot (@huoxito, #606)
  • Respect experiment defaults when loading experiments in initializer. (@mattwd7, #599)
  • Removes metadata key when it updated to nil (@andrehjr, #633)
  • Force experiment does not count for metrics (@andrehjr, #637)
  • Fix cleanup_old_versions! misbehaviour (@serggl, #661)

Features:

  • Make goals accessible via on_trial_complete callbacks (@robin-phung, #625)
  • Replace usage of SimpleRandom with RubyStats(Used for Beta Distribution RNG) (@andrehjr, #616)
  • Introduce enable/disable experiment cohorting (@robin-phung, #615)
  • Add on_experiment_winner_choose callback (@GenaMinenkov, #574)
  • Add Split::Cache to reduce load on Redis (@rdh, #648)
  • Caching based optimization in the experiment#save path (@amangup, #652)
  • Adds config option for cookie domain (@joedelia, #664)

Misc:

  • Drop support for Ruby < 2.5 (@andrehjr, #627)
  • Drop support for Rails < 5 (@andrehjr, #607)
  • Bump minimum required redis to 4.2 (@andrehjr, #628)
  • Removed repeated loading from config (@robin-phung, #619)
  • Simplify RedisInterface usage when persisting Experiment alternatives (@andrehjr, #632)
  • Remove redis_url impl. Deprecated on version 2.2 (@andrehjr, #631)
  • Remove thread_safe config as redis-rb is thread_safe by default (@andrehjr, #630)
  • Fix typo of in Split::Trial class variable (TomasBarry, #644)
  • Single HSET to update values, instead of multiple ones (@andrehjr, #640)
  • Use Redis#hmset to keep compatibility with Redis < 4.0 (@andrehjr, #659)
  • Remove 'set' parsing for alternatives. Sets were used as storage and deprecated on 0.x (@andrehjr, #639)
  • Adding documentation related to what is stored on cookies. (@andrehjr, #634)
  • Keep railtie defined under the Split gem namespace (@avit, #666)
  • Update RSpec helper to support block syntax (@clowder, #665)
split - v3.4.1

Published by andrehjr almost 5 years ago

3.4.1 (November 12th, 2019)

Bugfixes:

  • Reference ActionController directly when including split helpers, to avoid breaking Rails API Controllers (@andrehjr, #602)
split - v3.4.0

Published by andrehjr almost 5 years ago

This version includes a few performance improvements and bugfixes. 🚀

3.4.0 (November 9th, 2019)

Features:

  • 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 an opt-in flag. No Behavior was changed on this release.
  • Make dashboard pagination default "per" param configurable (@alopatin, #597)

Bugfixes:

  • Fix force_alternative for experiments with incremented version (@giraffate, #568)
  • Persist alternative weights (@giraffate, #570)
  • Combined experiment performance improvements (@gnanou, #575)
  • Handle correctly case when ab_finished is called before ab_test for a user (@gnanou, #577)
  • When loading active_experiments, it should not look into user's 'finished' keys (@andrehjr, #582)

Misc:

  • Remove rubyforge_project from gemspec (@giraffate, #583)
  • Fix URLs to replace http with https (@giraffate , #584)
  • Lazily include split helpers in ActionController::Base (@hasghari, #586)
  • Fix unused variable warnings (@andrehjr, #592)
  • Fix ruby warnings (@andrehjr, #593)
  • Update rubocop.yml config (@andrehjr, #594)
  • Add frozen_string_literal to all files that were missing it (@andrehjr, #595)
split - v3.3.2

Published by andrehjr over 5 years ago

Features:

  • Added uptime robot to configuration.rb (@razel1982, #556)
  • Check to see if being run in Rails application and run in before_initialize (@husteadrobert, #555)

Bugfixes:

  • Fix error message interpolation (@hanibash, #553)
  • Fix Bigdecimal warnings (@agraves, #551)
  • Avoid hitting up on redis for robots/excluded users. (@andrehjr, #544)
  • Checks for defined?(request) on Helper#exclude_visitor?. (@andrehjr)

Misc:

  • Update travis to add Rails 6 (@edmilton, #559)
  • Fix broken specs in developement environment (@dougpetronilio, #557)
split -

Published by andrehjr almost 6 years ago

split - v3.3.0

Published by andrew about 6 years ago

Features:

  • Added pagination for dashboard (@GeorgeGorbanev, #518)
  • Add Facebot crawler to list of bots (@pfeiffer, #530)
  • Ignore previewing requests (@pfeiffer, #531)
  • Fix binding of ignore_filter (@pfeiffer, #533)

Bugfixes:

  • Fix cookie header duplication (@andrehjr, #522)

Performance:

  • Improve performance of RedisInterface#make_list_length by using LTRIM command (@mlovic, #509)

Misc:

  • Update development dependencies
  • test rails 5.2 on travis (@lostapathy, #524)
  • update ruby versions for travis (@lostapathy, #525)
gem install split -v 3.3.0

or via Bundler:

gem "split", "~> 3.3.0"
split - v3.2.0

Published by andrew about 7 years ago

Features:

  • Allow configuration of how often winning alternatives are recalculated (@patbl, #501)

Bugfixes:

  • Avoid z_score numeric exception for conversion rates >1 (@cmantas, #503)
  • Fix combined experiments (@semanticart, #502)

Available on Rubygems: https://rubygems.org/gems/split/versions/3.2.0

gem install split -v 3.2.0

or via Bundler:

gem "split", "~> 3.2.0"
split - v3.1.1

Published by andrew about 7 years ago

Bugfixes:

  • Bring back support for ruby 1.9.3 and greater (rubygems 2.0.0 or greater now required) (@patbl, #498)

Misc:

  • Document testing with RSpec (@eliotsykes, #495)

Available on Rubygems: https://rubygems.org/gems/split/versions/3.1.1

gem install split -v 3.1.1

or via Bundler:

gem "split", "~> 3.1.1"
split - v3.1.0

Published by andrew about 7 years ago

Features:

  • Support for combined experiments (@daviddening, #493)
  • Rewrite CookieAdapter to work with Rack::Request and Rack::Response directly (@andrehjr, #490)
  • Enumeration of a User's Experiments that Respects the db_failover Option(@MarkRoddy, #487)

Bugfixes:

  • Blocked a few more common bot user agents (@kylerippey, #485)

Misc:

  • Repository Audit by Maintainer.io (@RichardLitt, #484)
  • Update development dependencies
  • Test on ruby 2.4.1
  • Test compatibility with rails 5.1
  • Add uris to metadata section in gemspec

Available on Rubygems: https://rubygems.org/gems/split/versions/3.1.0

gem install split -v 3.1.0

or via Bundler:

gem "split", "~> 3.1.0"
split - v3.0.0

Published by andrew over 7 years ago

Features:

  • added block randomization algorithm and specs (@hulleywood, #475)
  • Add ab_record_extra_info to allow record extra info to alternative and display on dashboard. (@tranngocsam, #460)

Bugfixes:

  • Avoid crashing on Ruby 2.4 for numeric strings (@flori, #470)
  • Fix issue where redis isn't required (@tomciopp , #466)

Misc:

  • Avoid variable_size_secure_compare private method (@eliotsykes, #465)

Available on Rubygems: https://rubygems.org/gems/split/versions/3.0.0

gem install split -v 3.0.0

or via Bundler:

gem "split", "~> 3.0.0"
split - v2.2.0

Published by andrew almost 8 years ago

Features:

  • Remove dependency on Redis::Namespace (@bschaeffer, #425)
  • Make resetting on experiment change optional (@moggyboy, #430)
  • Add ability to force alternative on dashboard (@ccallebs, #437)

Bugfixes:

  • Fix variations reset across page loads for multiple=control and improve coverage (@Vasfed, #432)

Misc:

  • Remove Explicit Return (@BradHudson, #441)
  • Update Redis config docs (@bschaeffer, #422)
  • Harden HTTP Basic snippet against timing attacks (@eliotsykes, #443)
  • Removed a couple old ruby 1.8 hacks (@andrew, #456)
  • Run tests on rails 5 (@andrew, #457)
  • Fixed a few codeclimate warnings (@andrew, #458)
  • Use codeclimate for test coverage (@andrew #455)

Available on Rubygems: https://rubygems.org/gems/split/versions/2.2.0

gem install split -v 2.2.0

or via Bundler:

gem "split", "~> 2.2.0"
split - v2.1.0

Published by andrew about 8 years ago

Features

  • Support REDIS_PROVIDER variable used in Heroku (@kartikluke, #426)

Available on Rubygems: https://rubygems.org/gems/split/versions/2.1.0

gem install split -v 2.1.0

or via Bundler:

gem "split", "~> 2.1.0"
split - v2.0.0

Published by andrew over 8 years ago

Breaking changes:

  • Removed deprecated finished and begin_experiment methods
  • Namespaced override param to avoid potential clashes (@henrik, #398)

Available on Rubygems: https://rubygems.org/gems/split/versions/2.0.0

gem install split -v 2.0.0

or via Bundler:

gem "split", "~> 2.0.0"
split - v1.7.0

Published by andrew over 8 years ago

Features:

  • Running concurrent experiments on same endpoint/view (@karmakaze, #421)

Available on Rubygems: https://rubygems.org/gems/split/versions/1.7.0

gem install split -v 1.7.0

or via Bundler:

gem "split", "~> 1.7.0"
split - v1.6.0

Published by andrew over 8 years ago

Features:

  • Add Dual Redis(logged-in)/cookie(logged-out) persistence adapter (@karmakaze, #420)

Available on Rubygems: https://rubygems.org/gems/split/versions/1.6.0

gem install split -v 1.6.0

or via Bundler:

gem "split", "~> 1.6.0"
split - v1.5.0

Published by andrew over 8 years ago

Features:

  • Add expire_seconds: TTL option to RedisAdapter (@karmakaze, #409)
  • Optional custom persistence adapter (@ndelage, #411)

Misc:

  • Use fakeredis for testing (@andrew, #412)

Available on Rubygems: https://rubygems.org/gems/split/versions/1.5.0

gem install split -v 1.5.0

or via Bundler:

gem "split", "~> 1.5.0"
split - v1.4.5

Published by andrew over 8 years ago

Bugfixes:

  • Fix Negative numbers on non-finished (@divineforest, #408)
  • Eliminate extra RedisAdapter hget (@karmakaze, #407)
  • Remove unnecessary code from Experiment class (@pakallis, #391, #392, #393)

Misc:

  • Simplify Configuration#normalized_experiments (@pakallis, #395)
  • Clarify test running instructions (@henrik, #397)

Available on Rubygems: https://rubygems.org/gems/split/versions/1.4.5

gem install split -v 1.4.5

or via Bundler:

gem "split", "~> 1.4.5"
split - v1.4.4

Published by andrew over 8 years ago

Bugfixes:

  • Increment participation if store override is true and no experiment key exists (@spheric, #380)

Misc:

  • Deprecated finished method in favour of ab_finished (@andreibondarev, #389)
  • Added minimum version requirement to simple-random
  • Clarify finished with first option being a hash in Readme (@henrik, #382)
  • Refactoring the User abstraction (@andreibondarev, #384)

Available on Rubygems: https://rubygems.org/gems/split/versions/1.4.4

gem install split -v 1.4.4

or via Bundler:

gem "split", "~> 1.4.4"
Package Rankings
Top 1.53% on Rubygems.org
Top 6.67% on Proxy.golang.org
Badges
Extracted from project README
Gem Version Code Climate Test Coverage standard-readme compliant Open Source Helpers