Skip to content

Releases: snowplow/snowplow-ruby-tracker

Version 0.8.1-rc1

17 May 13:49
Compare
Choose a tag to compare
Version 0.8.1-rc1 Pre-release
Pre-release
Merge branch 'release/0.8.1-rc1'

Version 0.8.0

29 Oct 17:11
Compare
Choose a tag to compare

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

14 Oct 11:51
Compare
Choose a tag to compare
Version 0.7.0

Version 0.7.0-alpha.2

13 Sep 12:44
Compare
Choose a tag to compare
Version 0.7.0-alpha.2 Pre-release
Pre-release
Testing GitHub Actions deployment

Snowplow Ruby Tracker v0.6.1

26 Dec 09:16
Compare
Choose a tag to compare

Bug-fix release, fixing POST payload issues.

Bug fixes

  • Update payload_data schema to 1-0-4 (#102)

Snowplow Ruby Tracker v0.6.0

18 Aug 16:53
Compare
Choose a tag to compare

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

  • Fix track_page_view_contract bug (#98)
  • Fix coveralls test coverage report (#97)

Snowplow Ruby Tracker v0.5.2

07 Oct 14:55
Compare
Choose a tag to compare

Adds a missing dependency, SecureRandom.

Under the hood

Snowplow Ruby Tracker v0.5.1

01 Oct 14:59
Compare
Choose a tag to compare

Stopped using the uuid gem for UUID generation because it failed randomly when generating UUIDs with high frequency.

Under the hood

  • Started using UUID implementation from SecureRandom in the Ruby Standard Library, thanks @kazjote! (#85)

Snowplow Ruby Tracker v0.5.0

11 Aug 13:23
Compare
Choose a tag to compare

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

  • Updated Travis image to show status of master branch (#78)
  • Added bundler installation to up.guidance (#83)

Snowplow Ruby Tracker v0.4.2

08 Apr 10:34
Compare
Choose a tag to compare

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)