Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release/6.0.0 #874

Merged
merged 25 commits into from
Feb 1, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
10df78e
Process tracked events on a serial background queue (close #822)
mscwilson Oct 2, 2023
be06ba9
Remove the use of the FMDB dependency in SQLiteEventStore (close #823)
matus-tomlein Oct 17, 2023
a332666
Enable representing self-describing data using Codable structs (close…
matus-tomlein Nov 24, 2023
981df5a
Return non-optional TrackerController instance from `createTracker` (…
Kymer Dec 1, 2023
a087ca3
Improve concurrency model using a single internal dispatch queue (clo…
matus-tomlein Dec 1, 2023
f3fe2aa
Flush events only when the buffer is full (close #827)
danigutierrezayuso Oct 4, 2023
cd7906a
Change default buffer option to single (#849)
matus-tomlein Nov 22, 2023
5cb24cd
Make network requests serially in network connection (close #846)
matus-tomlein Nov 29, 2023
53df77f
Update CI build (#856)
matus-tomlein Jan 9, 2024
0a41038
Add screen engagement tracking of time spent and list items scrolled …
matus-tomlein Jan 11, 2024
5a2f691
Add SDK privacy manifest file (close #811)
matus-tomlein Jan 12, 2024
8033cfc
Remove available storage and total storage from platform context (clo…
matus-tomlein Jan 12, 2024
974310f
Add support for visionOS (#830)
matus-tomlein Jan 16, 2024
c890a86
Add VisionOS events and entities (#857)
mscwilson Jan 19, 2024
5961965
Fix bundle path check to handle symbolic links (close #858)
mylifeasdog Jan 19, 2024
b189a23
Add configurable limit for the maximum age and number of events in th…
matus-tomlein Jan 27, 2024
9781785
Add an option to override platform context properties (close #865)
matus-tomlein Jan 30, 2024
37799c5
Add API to decorate link with user/session info (close #819)
greg-el Sep 13, 2023
9b11e7b
Update copyright notices (close #868)
mscwilson Jan 30, 2024
7f71537
Match BaseEvent entities API with Android tracker (close #867)
mscwilson Jan 31, 2024
29c3b0c
Add request timeout to network connection and configuration (close #836)
matus-tomlein Jan 31, 2024
4cbc55f
Enable lifecycle autotracking by default (close #852)
matus-tomlein Jan 31, 2024
b394803
Expose event store from emitter controller to be able to remove all e…
matus-tomlein Jan 31, 2024
fab33a1
Set the platform event property to tv on tvOS and mobile on watchOS (…
matus-tomlein Feb 1, 2024
c361f24
Prepare for 6.0.0 release
matus-tomlein Feb 1, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
97 changes: 68 additions & 29 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,14 @@ on: [push]
jobs:
podspec:
name: Lint Podspec for ${{ matrix.platform }}
runs-on: macos-11
runs-on: macos-13
strategy:
matrix:
platform: [ios, ios, osx, tvos, watchos]
steps:
- uses: maxim-lobanov/setup-xcode@v1
with:
xcode-version: latest-stable
- uses: actions/checkout@v3
- name: Lint Podspec
run: pod lib lint --platforms=${{ matrix.platform }}
Expand All @@ -21,36 +24,36 @@ jobs:
fail-fast: false
matrix:
include:
- name: "Integration (iOS 15.2, Xcode 13.2.1)"
- name: "Integration (iOS, Xcode 13.4)"
os: macos-12
xcode-version: "13.2.1"
sdk: iphonesimulator15.2
destination: "platform=iOS Simulator,OS=15.2,name=iPhone 13"
xcode-version: 13.4
destination: "platform=iOS Simulator,name=iPhone 13"
target: IntegrationTests
- name: "Unit (iOS 15.2, Xcode 13.2.1)"

- name: "Unit (iOS, Xcode 13.4)"
os: macos-12
xcode-version: "13.2.1"
sdk: iphonesimulator15.2
destination: "platform=iOS Simulator,OS=15.2,name=iPhone 13"
xcode-version: 13.4
destination: "platform=iOS Simulator,name=iPhone 13"
target: Tests
- name: "Unit (macOS 12.1, Xcode 13.2.1)"

- name: "Unit (macOS, Xcode 13.4)"
os: macos-12
xcode-version: "13.2.1"
sdk: macosx12.1
destination: "platform=OS X"
xcode-version: 13.4
destination: "platform=macOS"
target: Tests
- name: "Unit (watchOS 8.3, Xcode 13.2.1)"

- name: "Unit (watchOS, Xcode 13.4)"
os: macos-12
xcode-version: "13.2.1"
sdk: watchos8.3
destination: "platform=watchOS Simulator,OS=8.3,name=Apple Watch Series 7 - 45mm"
xcode-version: 13.4
destination: "platform=watchOS Simulator,name=Apple Watch Series 7 - 45mm"
target: Tests
- name: "Unit (tvOS 15.2, Xcode 13.2.1)"

- name: "Unit (tvOS, Xcode 13.4)"
os: macos-12
xcode-version: "13.2.1"
sdk: appletvsimulator15.2
destination: "platform=tvOS Simulator,OS=15.2,name=Apple TV"
xcode-version: 13.4
destination: "platform=tvOS Simulator,name=Apple TV"
target: Tests

steps:
- name: Checkout
uses: actions/checkout@v3
Expand All @@ -77,18 +80,26 @@ jobs:
run: while ! nc -z '0.0.0.0' 9090; do sleep 1; done
# -- Micro --

- name: Select Xcode Version
run: sudo xcode-select -s /Applications/Xcode_${{ matrix.xcode-version }}.app/Contents/Developer
- uses: maxim-lobanov/setup-xcode@v1
with:
xcode-version: ${{ matrix.xcode-version }}

- name: Build & Test
run: |
set -o pipefail && xcodebuild \
-scheme SnowplowTracker \
-sdk "${{ matrix.sdk }}" \
-destination "${{ matrix.destination }}" \
-only-testing ${{ matrix.target }} \
-resultBundlePath TestResults \
clean test | xcpretty

- name: Create test results
uses: kishikawakatsumi/xcresulttool@v1
with:
path: TestResults.xcresult
title: "Test results: ${{ matrix.name }}"
if: success() || failure()

build_objc_demo_app:
name: "ObjC demo (iOS ${{ matrix.version.ios }})"
needs: test_framework
Expand All @@ -100,8 +111,22 @@ jobs:
fail-fast: false
matrix:
version:
- {ios: 15.5, iphone: iPhone 12 Pro, watchos: 8.5, watch: Apple Watch Series 5 - 44mm, macos: '12', xcode: 13.4}
- {ios: 14.4, iphone: iPhone 8, watchos: 7.2, watch: Apple Watch Series 4 - 40mm, macos: '11', xcode: 12.4}
- {
ios: 15.5,
iphone: iPhone 12 Pro,
watchos: 8.5,
watch: Apple Watch Series 5 - 44mm,
macos: "12",
xcode: 13.4,
}
- {
ios: 14.4,
iphone: iPhone 8,
watchos: 7.2,
watch: Apple Watch Series 4 - 40mm,
macos: "11",
xcode: 12.4,
}

steps:
- name: Checkout
Expand Down Expand Up @@ -131,7 +156,14 @@ jobs:
fail-fast: false
matrix:
version:
- {ios: '14.4', iphone: iPhone 12 Pro, watchos: '7.2', watch: Apple Watch Series 5 - 44mm, macos: '11', xcode: 12.4}
- {
ios: "14.4",
iphone: iPhone 12 Pro,
watchos: "7.2",
watch: Apple Watch Series 5 - 44mm,
macos: "11",
xcode: 12.4,
}

steps:
- name: Checkout
Expand Down Expand Up @@ -161,7 +193,14 @@ jobs:
fail-fast: false
matrix:
version:
- {ios: '14.4', iphone: iPhone 11 Pro, watchos: '7.2', watch: Apple Watch Series 5 - 44mm, macos: '11', xcode: 12.4}
- {
ios: "14.4",
iphone: iPhone 11 Pro,
watchos: "7.2",
watch: Apple Watch Series 5 - 44mm,
macos: "11",
xcode: 12.4,
}

steps:
- name: Checkout
Expand Down Expand Up @@ -207,7 +246,7 @@ jobs:
fail-fast: false
matrix:
version:
- {ios: 15.5, iphone: iPhone 12 Pro, macos: '12', xcode: 13.4}
- { ios: 15.5, iphone: iPhone 12 Pro, macos: "12", xcode: 13.4 }

steps:
- name: Checkout
Expand Down
27 changes: 27 additions & 0 deletions CHANGELOG
Original file line number Diff line number Diff line change
@@ -1,3 +1,30 @@
Version 6.0.0 (2024-02-01)
--------------------------
- Add screen engagement tracking of time spent and list items scrolled on a screen (#851)
- Enable lifecycle autotracking by default (#852)
- Add support for visionOS (#830)
- Add VisionOS events and entities (#857)
- Improve concurrency model using a single internal dispatch queue (#820)
- Process tracked events on a serial background queue (#822)
- Add API to decorate link with user/session info (#819)
- Add configurable limit for the maximum age and number of events in the event store and remove old events before sending (#860)
- Add request timeout to network connection and configuration (#836) thanks to @danigutierrezayuso
- Expose event store from emitter controller to be able to remove all events from database (#834) thanks to @danigutierrezayuso
- Make network requests serially in network connection (#846)
- Change default buffer option to single (#849)
- Flush events only when the buffer is full (#827) thanks to @danigutierrezayuso
- Add SDK privacy manifest file (#811)
- Remove available storage and total storage from platform context (#824)
- Add an option to override platform context properties (#865)
- Remove the use of the FMDB dependency in SQLiteEventStore (#823)
- Return non-optional TrackerController instance from `createTracker` (#847) thanks to @Kymer
- Enable representing self-describing data using Codable structs (#844)
- Match BaseEvent entities API with Android tracker (#867)
- Fix bundle path check to handle symbolic links (#858) thanks to @mylifeasdog
- Set the platform event property to tv on tvOS and mobile on watchOS (#872)
- Update copyright notices (#868)
- Update CI build (#856)

Version 5.6.0 (2023-10-12)
--------------------------
Add configuration to send requests with user ID to a Focal Meter endpoint (#745)
Expand Down
2 changes: 1 addition & 1 deletion Examples
Submodule Examples updated 161 files
5 changes: 3 additions & 2 deletions Integrationtests/TestTrackEventsToMicro.swift
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Copyright (c) 2013-2023 Snowplow Analytics Ltd. All rights reserved.
// Copyright (c) 2013-present Snowplow Analytics Ltd. All rights reserved.
//
// This program is licensed to you under the Apache License Version 2.0,
// and you may not use this file except in compliance with the Apache License
Expand All @@ -21,11 +21,12 @@ class TestTrackEventsToMicro: XCTestCase {
super.setUp()

let trackerConfig = TrackerConfiguration()
.screenEngagementAutotracking(false)
.logLevel(.debug)

tracker = Snowplow.createTracker(namespace: "testMicro-" + UUID().uuidString,
network: NetworkConfiguration(endpoint: Micro.endpoint),
configurations: [trackerConfig])!
configurations: [trackerConfig])

wait(for: [Micro.reset()], timeout: Micro.timeout)
}
Expand Down
2 changes: 1 addition & 1 deletion Integrationtests/Utils/Micro.swift
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Copyright (c) 2013-2023 Snowplow Analytics Ltd. All rights reserved.
// Copyright (c) 2013-present Snowplow Analytics Ltd. All rights reserved.
//
// This program is licensed to you under the Apache License Version 2.0,
// and you may not use this file except in compliance with the Apache License
Expand Down
4 changes: 2 additions & 2 deletions LICENSE
Original file line number Diff line number Diff line change
Expand Up @@ -186,7 +186,7 @@
same "printed page" as the copyright notice for easier
identification within third-party archives.

Copyright 2023 Snowplow Analytics Ltd.
Copyright 2013-present Snowplow Analytics Ltd.

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
Expand All @@ -199,4 +199,4 @@
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.


51 changes: 20 additions & 31 deletions Package.resolved
Original file line number Diff line number Diff line change
@@ -1,34 +1,23 @@
{
"object": {
"pins": [
{
"package": "FMDB",
"repositoryURL": "https://github.com/ccgus/fmdb",
"state": {
"branch": null,
"revision": "61e51fde7f7aab6554f30ab061cc588b28a97d04",
"version": "2.7.7"
}
},
{
"package": "Mocker",
"repositoryURL": "https://github.com/WeTransfer/Mocker.git",
"state": {
"branch": null,
"revision": "5d86f27a8f80d4ba388bc1a379a3c2289a1f3d18",
"version": "2.6.0"
}
},
{
"package": "SwiftDocCPlugin",
"repositoryURL": "https://github.com/apple/swift-docc-plugin",
"state": {
"branch": null,
"revision": "3303b164430d9a7055ba484c8ead67a52f7b74f6",
"version": "1.0.0"
}
"pins" : [
{
"identity" : "mocker",
"kind" : "remoteSourceControl",
"location" : "https://github.com/WeTransfer/Mocker.git",
"state" : {
"revision" : "5d86f27a8f80d4ba388bc1a379a3c2289a1f3d18",
"version" : "2.6.0"
}
]
},
"version": 1
},
{
"identity" : "swift-docc-plugin",
"kind" : "remoteSourceControl",
"location" : "https://github.com/apple/swift-docc-plugin",
"state" : {
"revision" : "3303b164430d9a7055ba484c8ead67a52f7b74f6",
"version" : "1.0.0"
}
}
],
"version" : 2
}
5 changes: 2 additions & 3 deletions Package.swift
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
// swift-tools-version:5.2
// swift-tools-version:5.3.0

import PackageDescription

let package = Package(
name: "SnowplowTracker",
defaultLocalization: "en",
platforms: [
.macOS("10.13"),
.iOS("11.0"),
Expand All @@ -16,13 +17,11 @@ let package = Package(
targets: ["SnowplowTracker"]),
],
dependencies: [
.package(name: "FMDB", url: "https://github.com/ccgus/fmdb", from: "2.7.6"),
.package(name: "Mocker", url: "https://github.com/WeTransfer/Mocker.git", from: "2.5.4"),
],
targets: [
.target(
name: "SnowplowTracker",
dependencies: ["FMDB"],
path: "./Sources"),
.testTarget(
name: "Tests",
Expand Down
46 changes: 46 additions & 0 deletions [email protected]
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
// swift-tools-version:5.9

import PackageDescription

let package = Package(
name: "SnowplowTracker",
defaultLocalization: "en",
platforms: [
.macOS("10.13"),
.iOS("11.0"),
.tvOS("12.0"),
.watchOS("6.0"),
.visionOS("1.0")
],
products: [
.library(
name: "SnowplowTracker",
targets: ["SnowplowTracker"]),
],
dependencies: [
.package(name: "Mocker", url: "https://github.com/WeTransfer/Mocker.git", from: "2.5.4"),
],
targets: [
.target(
name: "SnowplowTracker",
path: "./Sources"),
.testTarget(
name: "Tests",
dependencies: [
"SnowplowTracker",
"Mocker"
],
path: "Tests"),
.testTarget(
name: "IntegrationTests",
dependencies: [
"SnowplowTracker"
],
path: "IntegrationTests")
]
)
#if swift(>=5.6)
package.dependencies += [
.package(url: "https://github.com/apple/swift-docc-plugin", from: "1.0.0"),
]
#endif
Loading
Loading