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

APM for isar #1726

Merged
merged 32 commits into from
Dec 19, 2023
Merged
Show file tree
Hide file tree
Changes from 25 commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
fb09b38
setup
denrase Nov 14, 2023
8cefb7e
introduce wrappers for isar and isar_collection, wrap all async methods
denrase Nov 14, 2023
cc31e4b
Merge branch 'main' into feat/isar
denrase Nov 20, 2023
2420ec9
correctly setup tests
denrase Nov 20, 2023
d780a41
test isar & isar collection
denrase Nov 21, 2023
452015f
test throwing isar collection methods
denrase Nov 21, 2023
4ba63b6
add workflow for tests
denrase Nov 21, 2023
988ca81
also bump isar version
denrase Nov 21, 2023
2385a2e
add commented oout entry to craft.yml
denrase Nov 21, 2023
7910e51
Update example app
denrase Nov 21, 2023
5ee8639
Update examples
denrase Nov 21, 2023
b390fae
Add changelog entry
denrase Nov 21, 2023
fe19113
run format
denrase Nov 21, 2023
0b81c7f
Merge branch 'main' into feat/isar
denrase Nov 27, 2023
1caeb4a
fix readme
denrase Nov 27, 2023
9bf5a6d
remove separate isar import
denrase Nov 27, 2023
30e6254
add back isar dependency (used in tests)
denrase Nov 27, 2023
7961474
add generated person.g
denrase Nov 27, 2023
770a4e3
update workflows
denrase Nov 27, 2023
a47a830
add coverage to gitignore
denrase Nov 27, 2023
61cf436
ignore warning in generated mock code
denrase Nov 27, 2023
ead1481
change min coverage to 55
denrase Nov 27, 2023
30fdfa4
Add workaround for issue where UserSchema leads to compile issue on web
denrase Nov 27, 2023
2d4e12e
Merge branch 'main' into feat/isar
denrase Dec 4, 2023
23abf7e
fix changelog
denrase Dec 4, 2023
a4b42fa
update readme files
denrase Dec 5, 2023
34920d4
Merge branch 'main' into feat/isar
denrase Dec 5, 2023
65b6531
Merge branch 'main' into feat/isar
denrase Dec 18, 2023
20e3f8c
fix changelog
denrase Dec 18, 2023
525d3f8
Merge branch 'main' into feat/isar
denrase Dec 19, 2023
cbbaae8
fix changelog
denrase Dec 19, 2023
20d53f5
remove isar generator because of test failure on macOS (missing isar …
denrase Dec 19, 2023
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
2 changes: 2 additions & 0 deletions .craft.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,3 +24,5 @@ targets:
pub:sentry_sqflite:
pub:sentry_drift:
pub:sentry_hive:
# Initial release on pub.dev needed first before uncommenting
# pub:sentry_isar:
1 change: 1 addition & 0 deletions .github/workflows/dart.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ on:
- "sqflite/**"
- "hive/**"
- "drift/**"
- "isar/**"

jobs:
cancel-previous-workflow:
Expand Down
4 changes: 4 additions & 0 deletions .github/workflows/diagrams.yml
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,10 @@ jobs:
working-directory: ./hive
run: lakos . -i "{test/**,example/**}" | dot -Tsvg -o class-diagram.svg

- name: isar
working-directory: ./isar
run: lakos . -i "{test/**,example/**}" | dot -Tsvg -o class-diagram.svg

# Source: https://stackoverflow.com/a/58035262
- name: Extract branch name
shell: bash
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/dio.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ on:
- "sqflite/**"
- "hive/**"
- "drift/**"
- "isar/**"

jobs:
cancel-previous-workflow:
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/drift.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,8 @@ on:
- "dio/**"
- "file/**"
- "sqflite/**"
- "hive/**"
- "isar/**"

jobs:
cancel-previous-workflow:
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/e2e_dart.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ on:
- "sqflite/**"
- "hive/**"
- "drift/**"
- "isar/**"

env:
SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/file.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ on:
- "sqflite/**"
- "hive/**"
- "drift/**"
- "isar/**"

jobs:
cancel-previous-workflow:
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/flutter.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ on:
- "sqflite/**"
- "hive/**"
- "drift/**"
- "isar/**"

jobs:
cancel-previous-workflow:
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/hive.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,8 @@ on:
- "dio/**"
- "file/**"
- "sqflite/**"
- "drift/**"
denrase marked this conversation as resolved.
Show resolved Hide resolved
- "isar/**"

jobs:
cancel-previous-workflow:
Expand Down
116 changes: 116 additions & 0 deletions .github/workflows/isar.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,116 @@
name: sentry-isar
on:
push:
branches:
- main
- release/**
pull_request:
paths-ignore:
- "**/*.md"
- "logging/**"
- "flutter/**"
- "dio/**"
- "file/**"
- "sqflite/**"
- "hive/**"
- "drift/**"

jobs:
cancel-previous-workflow:
runs-on: ubuntu-latest
steps:
- name: Cancel Previous Runs
uses: styfle/cancel-workflow-action@01ce38bf961b4e243a6342cbade0dbc8ba3f0432 # pin@0.12.0
with:
access_token: ${{ github.token }}

build:
name: ${{ matrix.target }} | ${{ matrix.os }} | ${{ matrix.sdk }}
runs-on: ${{ matrix.os }}
timeout-minutes: 30
defaults:
run:
shell: bash
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
target: ["ios", "android", "macos", "linux", "windows"]
sdk: ["stable", "beta"]
exclude:
- os: ubuntu-latest
target: ios
- os: ubuntu-latest
target: macos
- os: ubuntu-latest
target: windows
- os: windows-latest
target: ios
- os: windows-latest
target: android
- os: windows-latest
target: macos
- os: windows-latest
target: linux
# macos-latest is taking hours due to limited resources
- os: macos-latest
target: android
- os: macos-latest
target: linux
- os: macos-latest
target: windows
# Bad CPU type in executable
- os: macos-latest
sdk: beta

steps:
- uses: actions/checkout@v4

- uses: actions/setup-java@v3
if: ${{ matrix.target == 'android' }}
with:
java-version: "11"
distribution: "adopt"

# Install required dependencies for Flutter on Linux on Ubuntu
- name: "Setup Linux"
run: |
sudo apt update
sudo apt install -y cmake dbus libblkid-dev libgtk-3-dev liblzma-dev ninja-build pkg-config xvfb
sudo apt install -y network-manager upower
if: matrix.os == 'ubuntu-latest' && matrix.target == 'linux'

- uses: subosito/flutter-action@48cafc24713cca54bbe03cdc3a423187d413aafa # pin@v2.10.0
with:
channel: ${{ matrix.sdk }}

- run: flutter upgrade

- name: Pub Get
run: |
cd isar
flutter pub get

- name: Test VM with coverage
run: |
cd isar
flutter test -j 1 --coverage --test-randomize-ordering-seed=random

- uses: codecov/codecov-action@eaaf4bedf32dbdc6b720b63067d99c4d77d6047d # pin@v3
if: runner.os == 'Linux' && matrix.sdk == 'stable' && matrix.target == 'linux'
with:
name: sentry_isar
file: ./isar/coverage/lcov.info
functionalities: "search" # remove after https://github.com/codecov/codecov-action/issues/600

- uses: VeryGoodOpenSource/very_good_coverage@e5c91bc7ce9843e87c800b3bcafdfb86fbe28491 # pin@v2.1.0
if: runner.os == 'Linux' && matrix.sdk == 'stable' && matrix.target == 'linux'
with:
path: "./isar/coverage/lcov.info"
min_coverage: 55

analyze:
uses: ./.github/workflows/analyze.yml
with:
package: isar
sdk: flutter
1 change: 1 addition & 0 deletions .github/workflows/logging.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ on:
- "sqflite/**"
- "hive/**"
- "drift/**"
- "isar/**"

jobs:
cancel-previous-workflow:
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/min_version_test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ on:
- "sqflite/**"
- "hive/**"
- "drift/**"
- "isar/**"

jobs:
cancel-previous-workflow:
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/sqflite.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ on:
- "file/**"
- "hive/**"
- "drift/**"
- "isar/**"

jobs:
cancel-previous-workflow:
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ flutter/coverage/*
sqflite/coverage/*
drift/coverage/*
hive/coverage/*
isar/coverage/*

pubspec.lock
Podfile.lock
Expand Down
9 changes: 5 additions & 4 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,16 @@

## Unreleased

### Features

- Add option to opt out of fatal level for automatically collected errors ([#1738](https://github.com/getsentry/sentry-dart/pull/1738))
- APM for isar ([#1726](https://github.com/getsentry/sentry-dart/pull/1726))

### Fixes

- Add debug_meta to all events ([#1756](https://github.com/getsentry/sentry-dart/pull/1756))
- Fixes obfuscated stacktraces when `captureMessage` or `captureEvent` is called with `attachStacktrace` option

### Features

- Add option to opt out of fatal level for automatically collected errors ([#1738](https://github.com/getsentry/sentry-dart/pull/1738))

### Dependencies

- Bump Cocoa SDK from v8.15.2 to v8.17.0 ([#1761](https://github.com/getsentry/sentry-dart/pull/1761))
Expand Down
2 changes: 2 additions & 0 deletions dart/lib/src/sentry_trace_origins.dart
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,8 @@ class SentryTraceOrigins {
'auto.db.sqflite.database_executor';
static const autoDbSqfliteDatabaseFactory =
'auto.db.sqflite.database_factory';
static const autoDbIsar = 'auto.db.isar';
static const autoDbIsarCollection = 'auto.db.isar.collection';
static const autoDbHive = 'auto.db.hive';
static const autoDbHiveBoxBase = 'auto.db.hive.box_base';
static const autoDbHiveLazyBox = 'auto.db.hive.lazy_box';
Expand Down
12 changes: 12 additions & 0 deletions flutter/example/lib/isar/user.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
import 'package:isar/isar.dart';

part 'user.g.dart';

@collection
class User {
Id id = Isar.autoIncrement;

String? name;

int? age;
}
Loading
Loading