Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
59 commits
Select commit Hold shift + click to select a range
481ddd5
Add melos setup and check only set up Dart for now
buenaflor Jul 29, 2025
82fa1bc
Update
buenaflor Jul 30, 2025
af3e3ee
Update]
buenaflor Jul 30, 2025
7734657
Update]
buenaflor Jul 30, 2025
b5e5b42
Update
buenaflor Jul 30, 2025
75e40d4
Update
buenaflor Jul 30, 2025
086519b
Update
buenaflor Jul 30, 2025
f977b38
Fix CHANGELOG
buenaflor Aug 5, 2025
ecce8da
Update gitignore
buenaflor Aug 5, 2025
c692b29
Fix symlink in CHANGELOG
buenaflor Aug 5, 2025
0cae93e
Add logging to melos
buenaflor Aug 5, 2025
1d983dd
Update
buenaflor Aug 5, 2025
030fb25
Merge branch 'umbrella/melos' into chore/melos/logging
buenaflor Aug 5, 2025
831a6de
Update
buenaflor Aug 5, 2025
412240d
Update
buenaflor Aug 5, 2025
26ec9b8
Update
buenaflor Aug 5, 2025
33a6226
Add dio to packages
buenaflor Aug 5, 2025
f0b3ecf
Update workflow
buenaflor Aug 5, 2025
17289a5
Update
buenaflor Aug 5, 2025
feb0e3f
Update
buenaflor Aug 5, 2025
4bc5a30
Update
buenaflor Aug 5, 2025
dae9306
Update
buenaflor Aug 5, 2025
7cc04b4
Update
buenaflor Aug 5, 2025
0706b8a
Add hive to packages
buenaflor Aug 5, 2025
47ea449
Update
buenaflor Aug 5, 2025
0679ecf
Add file to packages
buenaflor Aug 5, 2025
784ef2d
Add link to packages
buenaflor Aug 5, 2025
f5a74a7
Update
buenaflor Aug 5, 2025
326b809
Update
buenaflor Aug 5, 2025
1364687
Update
buenaflor Aug 5, 2025
b7af752
Update
buenaflor Aug 5, 2025
e3e05e5
Fix test
buenaflor Aug 5, 2025
ea6336a
Fix test
buenaflor Aug 5, 2025
ccbc158
Fix test
buenaflor Aug 5, 2025
049e3dc
Fix test
buenaflor Aug 5, 2025
476b8ed
Fix test
buenaflor Aug 5, 2025
2f0529d
Add flutter to packages
buenaflor Aug 5, 2025
de2a130
Update
buenaflor Aug 5, 2025
9e8d113
Update
buenaflor Aug 5, 2025
00c8f61
Update
buenaflor Aug 5, 2025
ff47526
Update
buenaflor Aug 5, 2025
01e4133
Update
buenaflor Aug 5, 2025
387477d
Update
buenaflor Aug 5, 2025
0e5657b
Update
buenaflor Aug 5, 2025
433eb78
Update
buenaflor Aug 5, 2025
070f3ce
Update
buenaflor Aug 5, 2025
ef1c5fc
Update
buenaflor Aug 5, 2025
78247fc
Update
buenaflor Aug 5, 2025
020d1f9
Update
buenaflor Aug 5, 2025
238abad
Update
buenaflor Aug 5, 2025
4e1f46d
Update
buenaflor Aug 5, 2025
f5ecc24
Update
buenaflor Aug 5, 2025
a4f63fa
Update
buenaflor Aug 5, 2025
7d8578e
Clean up
buenaflor Aug 5, 2025
76b8309
Merge branch 'umbrella/melos' into chore/melos/general-cleanup
buenaflor Aug 6, 2025
057fade
Updaet
buenaflor Aug 6, 2025
cc55001
Updaet
buenaflor Aug 6, 2025
656cce4
Update
buenaflor Aug 6, 2025
3706b67
Merge branch 'umbrella/melos' into chore/melos/general-cleanup
buenaflor Aug 6, 2025
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
22 changes: 11 additions & 11 deletions .craft.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,17 +8,17 @@ targets:
# See https://github.com/getsentry/sentry-dart/pull/2113 for more context
skipValidation: true
packages:
dart:
flutter:
logging:
dio:
file:
sqflite:
hive:
drift:
isar:
link:
firebase_remote_config:
packages/dart:
packages/flutter:
packages/logging:
packages/dio:
packages/file:
packages/sqflite:
packages/hive:
packages/drift:
packages/isar:
packages/link:
packages/firebase_remote_config:
- name: github
- name: registry
sdks:
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/e2e_dart.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@ on:
- "!**/*.md"
- "!**/class-diagram.svg"
- ".github/workflows/e2e_dart.yml"
- '.github/workflows/analyze.yml'
- "dart/**"
- ".github/workflows/analyze.yml"
- "packages/dart/**"
- "e2e_test/**"

env:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/metrics.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ on:
push:
paths:
- .github/workflows/metrics.yml
- dart/**
- packages/dart/**
- packages/flutter/**
- metrics/**
- "!**/*.md"
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/min_version_test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ on:
- "!**/*.md"
- "!**/class-diagram.svg"
- ".github/workflows/min_version_test.yml"
- "dart/**"
- "packages/dart/**"
- "packages/flutter/**"
- "min_version_test/**"

Expand Down Expand Up @@ -57,7 +57,7 @@ jobs:

- uses: ruby/setup-ruby@472790540115ce5bd69d399a020189a8c87d641f # [email protected]
with:
ruby-version: '3.1.2' # https://github.com/flutter/flutter/issues/109385#issuecomment-1212614125
ruby-version: "3.1.2" # https://github.com/flutter/flutter/issues/109385#issuecomment-1212614125

- name: Uninstall existing CocoaPods and install globally
run: |
Expand Down
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -22,4 +22,4 @@ pubspec.lock
Podfile.lock

.gradle
flutter/.gradle
packages/flutter/.gradle
112 changes: 88 additions & 24 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,35 +1,99 @@
### Dart
# Contributing to Sentry Dart & Flutter

All you need is the [sentry-dart](https://github.com/getsentry/sentry-dart/tree/main/dart). The `sentry` package doesn't depend on the Flutter SDK.
Thank you for your interest in contributing to Sentry's Dart and Flutter SDKs! This guide will help
you get started.

### Flutter
## Prerequisites

All you need is the [sentry-flutter](https://github.com/getsentry/sentry-dart/tree/main/flutter) and `sentry-dart` as stated above.
### Required Tools

The SDK currently supports Android, iOS, and Web. We build the example app for these targets on 3 platforms: Windows, macOS, and Linux.
This is to make sure you'd be able to contribute to this project if you're using any of these operating systems.
* **Dart SDK** - Required for all packages
* **Flutter SDK** - Required for `sentry-flutter` and Flutter integrations
* **[melos](https://melos.invertase.dev/)** - For managing the monorepo

We also run CI against the Flutter `stable` and `beta` channels, so you should be able to build it if you're in one of those.
## Environment Setup

The Flutter SDK has our Native SDKs embedded if you wish to learn more about them, they sit at:
### 1. Install melos

[sentry-java](https://github.com/getsentry/sentry-java) for the Android integration.
[sentry-cocoa](https://github.com/getsentry/sentry-cocoa) for the Apple integration.
[sentry-native](https://github.com/getsentry/sentry-native) for the Android NDK integration.
```bash
dart pub global activate melos
```

### Dependencies
### 2. Bootstrap the project

* The Dart SDK (if you want to change `sentry-dart`)
* The Flutter SDK (if you want to change `sentry-dart` or `sentry-flutter`)
* Android: Android SDK (`sentry-java`) with NDK (`sentry-native`): The example project includes C++.
* iOS: Cocoa SDK (`sentry-cocoa`), you'll need a Mac with Xcode installed.
* Web: No additional dependencies.
At the repository root, run:

### Static Code Analysis, Tests, Formatting, Pub Score and Dry publish
```bash
melos bootstrap
```

* Dart/Flutter
* Execute `./tool/presubmit.sh` within the `dart` and `flutter` folders
* Swift/CocoaPods
* Use `swiftlint` and `pod lib lint`
* Kotlin
* Use `ktlint` and `detekt`
If you're using [fvm](https://fvm.app/), specify the SDK path:

```bash
melos bootstrap --sdk-path=/Users/user/fvm/default/
```

## Project Structure

### Core SDKs

* **[packages/dart](https://github.com/getsentry/sentry-dart/tree/main/packages/dart)** - Core Dart
SDK (`sentry` package)
* **[packages/flutter](https://github.com/getsentry/sentry-dart/tree/main/packages/flutter)** -
Flutter SDK (`sentry_flutter` package)

### Integration Packages

Located under `packages/`, we maintain integrations for popular Dart/Flutter libraries:

* **sentry_dio** - HTTP client integration for [dio](https://pub.dev/packages/dio)
* **sentry_logging** - Integration for the [logging](https://pub.dev/packages/logging) package
* **sentry_sqflite** - Integration for [sqflite](https://pub.dev/packages/sqflite) database
* **sentry_drift** - Integration for [drift](https://pub.dev/packages/drift) database
* **sentry_hive** - Integration for [hive](https://pub.dev/packages/hive) database
* **sentry_isar** - Integration for [isar](https://pub.dev/packages/isar) database
* **sentry_file** - File I/O operations integration
* **sentry_link** - GraphQL integration via [gql_link](https://pub.dev/packages/gql_link)
* **sentry_firebase_remote_config** - Integration
for [firebase_remote_config](https://pub.dev/packages/firebase_remote_config)

## Platform Support

The Flutter SDK supports the following platforms:

* Android
* iOS
* macOS
* Linux
* Windows
* Web

We test the example app on Windows, macOS, and Linux to ensure cross-platform compatibility. CI runs
against Flutter `stable` and `beta` channels.

## Native SDK Dependencies

The Flutter SDK embeds platform-specific native SDKs:

* **Android**: [sentry-java](https://github.com/getsentry/sentry-java) (via
Gradle) + [sentry-native](https://github.com/getsentry/sentry-native) for NDK
* **iOS/macOS**: [sentry-cocoa](https://github.com/getsentry/sentry-cocoa) (via CocoaPods/SPM)
* **Linux/Windows**: [sentry-native](https://github.com/getsentry/sentry-native) (bundled in
`packages/flutter/sentry-native/`)
* **Web**: [sentry-javascript](https://github.com/getsentry/sentry-javascript) (loaded via CDN)

[//]: # (TODO: buenaflor - properly set up precommit hooks)
[//]: # (### Static Code Analysis, Tests, Formatting, Pub Score and Dry publish)

[//]: # ()
[//]: # (* Dart/Flutter)

[//]: # ( * Execute `./tool/presubmit.sh` within the `dart` and `flutter` folders)

[//]: # (* Swift/CocoaPods)

[//]: # ( * Use `swiftlint` and `pod lib lint`)

[//]: # (* Kotlin)

[//]: # ( * Use `ktlint` and `detekt`)
Loading
Loading