👌 Improved support for Rails 3.1 and Rails 3.2. Thanks to masverba, Daan and IsaacLewis.
Finer Grained Exceptions for Missing Experiments (Nick Barnwell)
Minor change in locating config file (Ariel Salomon)
👍 Allow for table names in specified :timestamps (Peter Kovacs)
When a named scope includes a join, created_at can be ambiguous. Use
metric "Sky is limit" do model Sky, :timestamp => 'skies.created_at' end
0️⃣ Make vanity_identity method private on controller; ensure no default route (Ariel Salomon)
➕ Add Rails 2.3-compatible generator (Ariel Salomon)
🚅 Lazy Playground initialization for rails 3.1 (Jonathan del Strother)
📚 Update documentation to reflect that host, port, and database options for redis 🗄 connections are deprecated in favor of using the connection option with a URI (Patrick Joyce)
👍 1.7.0 adds support for ActionMailer, for example:
class UserMailer < ActionMailer::Base def invite_email(user) use_vanity_mailer user mail :to => user.email, :subject => ab_test(:invite_subject) end end
📚 See the documentation for more details.
With 1.7.0 and moving forward, if you need to setup a database schema (relational databases only), please use the generator:
$ rails generate vanity $ rake db:migrate
🚅 Rails generator for AR migrations (Zaid Zawaideh)
✅ A/B testing in ActionMailer (Joseph Sofaer)
🛠 Fix hung passenger processes when using Redis client (Chris Griego)
🛠 Fixed cookie domain setting.
- Set Vanity.playground.add_participant_path = '/path/to/vanity/action'
- Add <%= Vanity.vanity_js %> to the bottom of any view that needs to set up an ab_test
🛠 Fix for metrics on rails 3 models (Esteban Pastorino).
✅ AbTest#choose returns an Alternative rather than just the value (Doug Cole).
➕ Add warnings instead of swallowing errors (Anthony Eden).
🛠 Fixing broken test for mongodb adapter (Joshua Krall).
🛠 Fix returning correct experiment when in test mode and manually set via
chooses (Ryan Sonnek).
✅ Don't round the conversion rate before using it, it affects the test results, making them less accurate (Doug Cole).
🛠 Fixed loading config from yml when using other than redis adapter (Arttu Tervo)
0️⃣ Default to localhost unless host in config file (Arttu Tervo)
🛠 Fixed mongo connection adapter connect! when called after disconnect! (Arttu Tervo)
👉 Use mongo replica set connection if multiple hosts were given in YAML 🔧 configuration file (Arttu Tervo)
🔧 Cookie domain from rails configuration (Arttu Tervo)
➕ Add bson_ext to Gemfile to load C extension for mongodb ruby driver, and ✅ prevent Notice messages as the tests run (tenaciousflea)
⚡️ Update redis-namespace dependency to 1.0 (Ville Lautanala)
➕ Added number of participants and number of converted participants to ab_test template (Avishai Weiss).
🛠 Fixed to work with redis-rb 2.2.0 (Kevin Menard).
🛠 Fixed to work with Postgresql: it complained that the index names generated by ➕ add_index were too long, so I gave them shorter names (Robert Rasmussen).
🛠 Fixed SQL errors comparing an int to a varchar column, and no "as" on a column alias (Robert Rasmussen).
🛠 Fixed auto-escaped text in the experiment template that I marked as html_safe (Robert Rasmussen).
➕ Added some Rails 3.x documentation to the 2-minute demo instructionsa (Andy Atkinson).
🛠 Fix to set collecting flag from vanity.yml config file.
🛠 Fixes some minor bugs in RoR when including the Dashboard (netguru)
Note: MongoDB URI scheme changed from mongo: to mongodb: to be consistent with the rest of the civilized world. If you get an error because Vanity can't find ⚡️ the MongoDB adapter, fear not! It's still there, just need to update your config/vanity.yml file.
🚅 Rails 3 support (Adam Keys, Stephen Celis, Brian Leonard, Ryan Carver)
🔄 Changed MongoDB URI scheme from 'mongo://' to the standard 'mongodb://' and 📇 renamed the mongodb adapter filename to make it match (JS Boulanger)
➕ Added support for ERB in YAML configuration files (JS Boulanger)
🛠 Fixed initialization of playground's Rails defaults such that they can be overriden in the environment (JS Boulanger)
⬆️ Note: Run this command to upgrade your database to 1.4, or you will not have access to collected metrics and experiment data:
Connection adapters! We have a new way for managing connections which extends 🔧 to multiple adapters (not just Redis). The easiest is to use the configuration file config/vanity.yml. For example:
development: adapter: redis production: adapter: mongodb
🤡 We get to keep Redis, add new MongoDB adapter, but lose Mock. It's still there, but there's a new way to use Vanity outside production: you can turn data collection on/off.
🚅 Under Rails, data collection is turned off in all environments except production. To turn if on/off:
Vanity.playground.collecting = true/false.
🚀 This release switches to latest Redis gem and uses redis-namespace (what took me so long?) If your own code relies on the Redis gem, watch out: there are some subtle incompatibilities between 1.x and 2.x.
🔧 Now using RVM, gemsets and Bundler to test Vanity in different configurations. ✅ To run the full set of tests in all the supported versions of Ruby: rake test:rubies ✅ To test specific version of Ruby: rake test:rubies[1.8.7] To switch around: rvm [email protected]
- ➕ Added: Adapter API, see Vanity::Adapters::AbstractAdapter and Vanity::Adapters::RedisAdapter.
- ➕ Added: MongoDB support.
- ➕ Added: Upgrade command.
- ⚡️ Added: Metric.last_update_at.
- ➕ Added: Vanity.playground.collecting. You want this to be true only in production environment. When false, disables collecting of metric and experiment data.
- ➕ Added: Remote metrics. Push data to remote service.
- ➕ Added: Partial support for multi-series metrics. Laying the ground for the future.
- 🔄 Change: Vanity.playground.redis and redis= methods are deprecated, use connection and establish_connection instead.
- ✂ Removed: Metric.created_at, derived from experiment and never used.