Skip to content

Releases: snowplow/snowplow-golang-tracker

Version 3.1.0

22 Aug 14:17
372c428
Compare
Choose a tag to compare

This release adds an option to set session properties through Subject and adds an example app.

Enhancements

  • Allow setting Subject session information (#78)
  • Add Example App (#75)

Under the hood

  • Update links in README
  • Update gopkg reference to v3 (#72)

Version 3.0.0

09 Jan 03:45
Compare
Choose a tag to compare

This is a major upgrade to the tracker with several breaking API changes. The main focus in this release has been to convert and move to a modular package structure. This lets us remove erroneous dependencies (like sqlite3 if we are using the go-memdb storage implementation) but equally this is ensuring that only the required dependencies for the implementation are being brought in as the packages now need to be explicitly pulled.

Golang Version Changes

With this release we are now testing against Golang v1.19, 1.18 and 1.17. Versions older than this are not guaranteed to work anymore. Please let us know if you need the Tracker to work against older versions in an issue and we can consider investigating this.

API Changes

  • tracker.InitPayload(): The Payload struct now cannot be imported from tracker and instead needs to be imported from pkg/payload to be initialized. The constructor has been renamed from InitPayload -> Init within this package.
  • tracker.InitStorageMemory(): The StorageMemory implementation has been moved from tracker to pkg/storage/memory. The constructor has been renamed from InitStorageMemory -> Init within this package.
  • tracker.InitStorageSQLite3(): The StorageSQLite3 implementation has been moved from tracker to pkg/storage/sqlite3. The constructor has been renamed from InitStorageSQLite3 -> Init within this package.
  • tracker.Storage: For those that were providing a custom Storage layer implementation the interface now lives in pkg/storage/storageiface and contains the Storage interface and EventRow struct.

In the core tracker module the only interface change left is in the Emitter where OptionStorage and OptionDbName have been removed. You must now always provide a Storage implementation to the Emitter by:

  1. Importing or defining a Storage implementation
  2. Setting it with the RequireStorage function in the Emitter

As an example you can look at the below:

import (
  storagememory "github.com/snowplow/snowplow-golang-tracker/v3/pkg/storage/memory"
  tracker "github.com/snowplow/snowplow-golang-tracker/v3/tracker"
)

emitter := tracker.InitEmitter(tracker.RequireCollectorUri(collector),
  tracker.RequireStorage(storagememory.Init()), // ADD THIS
  tracker.OptionStorage(tracker.InitStorageMemory()), // REMOVE THIS
)

Other API moves

All helper functions used in the library have been moved from tracker to pkg/common.

Full changelog

  • Remove Vagrant testing integration (#65)
  • Remove unused script in project root (#66)
  • Remove unused dist directory (#67)
  • Upgrade to Golang v1.19 (#69)
  • Add modular pkg structure to remove erroneous imports (#70)
  • Add extra tests for storage/memory (#71)

Version 2.4.1

21 Jul 10:11
Compare
Choose a tag to compare

Bug Fixes

Replace myesui/uuid with google/uuid (#59)

Under the hood

Switch to Github Actions (#62)
Update license (#60)
Remove Vagrant references in test suite (#55)
Cleanup gitignore (#54)

Release 2.4.0

07 Oct 10:43
Compare
Choose a tag to compare

New Features

  • Add ability to set Subject per event (#50)

Cosmetic

  • Update Copyright to 2020 (#51)

Release 2.3.0

07 Oct 10:26
Compare
Choose a tag to compare

New Features

  • Add BlockingFlush utility function (#43)

Release 2.2.1

03 Jan 07:15
Compare
Choose a tag to compare

Bugs

  • Fix module path to use root directory and v2 versioning (#40)

Release 2.2.0

02 Jan 12:22
Compare
Choose a tag to compare

Bugs

  • Cleanup go module imports so that the latest tracker version can be imported (#36)
  • Remove stress test module as it is not stable (#38)

Development

  • Fix Vagrant environment (#35)

Testing

  • Add Travis tests on 1.13.x (#37)

Release 2.1.0

04 Jun 14:57
Compare
Choose a tag to compare

Features

  • Add emitter option for custom HTTP client (#29)

Bugs

  • Read response body in requests (#27)
  • Remove Request.Close setting to fix TIME_WAIT connections (#30)

Dependency management

  • Make project a Go module (#28)

Cosmetic

  • Update copyright to 2016-2019 (#32)

Version 2.0.0

21 Aug 07:24
Compare
Choose a tag to compare

Features

  • Add in-memory only storage option (#14)
  • Simplify SQLite3 getDbConn function (#25)

Bugs

  • Ensure SQLite3 database cannot be left in a bad state (#15)

Dependency management

  • Remove Godeps (#18)
  • Add dep for dependency management (#24)

Local development

  • Use Makefile for local build system (#19)
  • Fix Vagrant system (#17)

Misc

  • Update Travis to test on the latest Go versions (#13)
  • Apply Go formatting (#22)

Cosmetic

  • Add Goreport badge (#12)
  • Fix CHANGELOG to reflect correct versions (#20)
  • Fix README formatting (#16)
  • Update Copyright to 2016-2018 (#21)

Version 1.1.0

21 Jul 07:38
Compare
Choose a tag to compare

Emitter

Updated result success to be for any 2xx and 3xx codes (#9)
Added ability to pass result status with callback (#7)

Testing

Removed tip as not stable (#8)

Documentation

Fixed year in CHANGELOG for initial commit (#10)