Releases: snowplow/snowplow-ruby-tracker
Version 0.8.1-rc1
Merge branch 'release/0.8.1-rc1'
Version 0.8.0
We are pleased to announce a new release of the Snowplow Ruby Tracker, now on version 0.8.0.
In fact we didn’t get around to announcing version 0.7.0 before going straight to 0.8.0! We’ve added several features as well as improving the API:
Features
- Add event-specific Subject properties to your events
- Add page properties to your non-page view events
- Comprehensive new API documentation using YARD
- Set domain_session_id and domain_session_idx event properties
- Set your own Emitter path
- Configure the Emitter logger
Improvements
- Added keyword arguments to improve the API BREAKING CHANGE
- Removed the Contracts type checking gem
- Brought the code in line with Rubocop style
Fixes
- Added “app” and “web” to the list of possible platforms
- Fixed eCommerce events not supporting the Ruby 1.9-style hash notation
The change from version 0.7.0 to 0.8.0 is the removal of the type-checking gem Contracts. This was required because it didn’t work in Ruby 3.0 with keyword arguments. We had already been considering depreciating it, as throwing RunTime errors for mistakes in your tracking seemed undesirable, and some users found that it clashed with their existing Contract class. Testing your tracking code is important to make sure you are generating the events you expect.
The big (breaking) change for version 0.7.0 was the addition of keyword arguments. This change makes the code much more readable. Almost all public API methods now use keyword arguments.
# From this:
tracker.track_struct_event("demo", "explain", nil, nil, nil, [entity])
# To this:
tracker.track_struct_event(category: "demo", action: "explain", context: [entity])
We’ve added a new class, Page. You can add Page objects to any track_x_event
method call, allowing you to directly populate the page_url
, page_title
, and referrer
properties for all your event types. Similarly, you can also now attach Subject objects to any track_x_event
method call. This means you can easily set different user properties for every event.
Thanks to some community contributions, event sending is now more configurable. An Emitter path option can be set (thanks @larubbio), and the Emitter logger is now configurable (thanks @mcls). Following a request from @PatrikTrelsmoJualo, we have also added Subject methods for setting domain_session_id
and domain_session_idx
, to help with matching events between the Snowplow JavaScript and Ruby trackers. As always, we love hearing from our users. Please feel free to comment or contribute!
Version 0.7.0
Version 0.7.0
Version 0.7.0-alpha.2
Testing GitHub Actions deployment
Snowplow Ruby Tracker v0.6.1
Snowplow Ruby Tracker v0.6.0
New features
- Add support for attaching true timestamp to events (#94)
- Add track_self_describing_event (#93)
- Add support for dvce_sent_tstamp (#92)
Housekeeping
- Support Ruby 2.2.5 and 2.3.1 (#100)
- Require Ruby >= 2.0.0 (#99)
- Add RubyGems credentials to .travis.yml (#96)
- Add CI/CD to project (#95)
Fixes
Snowplow Ruby Tracker v0.5.2
Snowplow Ruby Tracker v0.5.1
Snowplow Ruby Tracker v0.5.0
Makes the Tracker more robust, plus introduces several breaking API changes
Bug fixes
- Made synchronous flush wait until buffer is empty (#79)
- Started handling all network-related exceptions (#76)
- Started treating all 2xx and 3xx status codes as successful (#75)
- Prevented the buffer from being flushed when it is empty (#62)
- Made Emitter and AsyncEmitter thread-safe (#74)
- Fixed callback logic to only fire one callback per buffer flush (#61)
New features
API changes
- Made tracker.flush synchronous by default (#80)
- Added SelfDescribingJson class (#82)
- Made buffer size 1-indexed rather than 0-indexed (#67)
- Made number of worker threads used by AsyncEmitter configurable (#77)
Under the hood
- Bumped contexts schema to 1-0-1 (#53)
- Updated Contracts dependency range to "~> 0.7", "<= 0.11" (#81)
- Moved Contracts mixin inside classes (#73)
Build and documentation
Snowplow Ruby Tracker v0.4.2
Miscellaneous tweaks, including an important relaxation of the Contracts dependency.
Bug fixes
- Relaxed Contracts dependency (#68)
Vagrant
- Updated vagrant up to work with latest Peru version (#69)
- Added missing bundler step to Vagrant quickstart (#70)
Documentation
- Added License button to README (#66)