This document provides guidance for handling version conflicts, upgrading between Parse SDK versions, and resolving common dependency issues.
Version conflicts occur when multiple packages in your project have incompatible requirements. Here's how to resolve them.
Problem:
Because your_app depends on parse_server_sdk ^8.0.0 which depends on dio ^5.0.0,
and your_app depends on another_package ^2.0.0 which depends on dio ^6.0.0,
version solving failed.
Solutions (in order of preference):
Check if a newer version of Parse SDK supports the required dependency version:
# Check for Parse SDK updates
cd packages/dart
dart pub outdated
# Or for Flutter package
cd packages/flutter
flutter pub outdatedUpdate your pubspec.yaml:
dependencies:
parse_server_sdk: ^9.0.0 # Newer version may support dio ^6.0.0If Parse SDK doesn't support the required version, create a GitHub issue:
- Go to https://github.com/parse-community/Parse-SDK-Flutter/issues
- Title: "Support for [dependency] ^X.0.0"
- Include:
- Current Parse SDK version you're using
- Dependency version you need
- Why you need the newer version
- Any relevant error messages
Warning: Only for development/testing, not for production!
dependency_overrides:
dio: ^6.0.0 # Override to resolve conflict temporarilyRisks:
- May cause runtime errors if Parse SDK uses deprecated APIs
- Not guaranteed to work
- Should never be published to pub.dev
- Must test thoroughly
See When to Fork section below.
Problem:
Because parse_server_sdk >=8.0.0 requires SDK version >=3.2.6 <4.0.0,
and your project has SDK version 2.19.0, version solving failed.
Solutions (in order of preference):
For Dart projects:
# Check current Dart version
dart --version
# Upgrade Dart (via brew on macOS)
brew upgrade dart
# Or download from https://dart.dev/get-dartFor Flutter projects:
# Check current Flutter version
flutter --version
# Upgrade Flutter
flutter upgrade
# Or upgrade to specific channel
flutter channel stable
flutter upgradeMigration guides:
- Dart migration: https://dart.dev/guides/language/evolution
- Flutter migration: https://docs.flutter.dev/release/breaking-changes
Check compatibility table in the Dart or Flutter package README and use an older Parse SDK version:
dependencies:
parse_server_sdk: ^7.0.0 # Supports older Dart versionsNote: Older versions:
- May lack newer features
- May have unfixed bugs
- May have security vulnerabilities
- Consider upgrading your Dart/Flutter instead
When upgrading Dart/Flutter, review breaking changes:
Dart 3.x breaking changes:
- Null safety enforced (no longer opt-in)
- Some deprecated APIs removed
- Enhanced enums with members
- Records and patterns introduced
Flutter 3.x breaking changes:
- Material 3 as default
- Deprecated APIs removed
- iOS minimum version increased
- Android minimum SDK version updated
Resources:
Problem:
Because package_a depends on http ^0.13.0 and package_b depends on http ^1.0.0,
and both are required by your app, version solving failed.
Solutions:
# Update all dependencies to latest compatible versions
dart pub upgrade
# Or for Flutter
flutter pub upgradeThe Parse SDK update might have newer dependency constraints that resolve the conflict.
Create a GitHub issue with your complete dependency tree:
# Generate dependency tree
dart pub deps
# Or for Flutter
flutter pub depsInclude the output in your GitHub issue.
Solution:
- Check if newest Parse SDK supports Dart 3+
- If not, check GitHub issues for timeline
- Consider contributing the update yourself
- Temporarily use Dart 2.x compatible patterns
Troubleshooting:
-
Check Dart/Flutter version in CI:
# Example for GitHub Actions - uses: dart-lang/setup-dart@v1 with: sdk: 3.2.6 # Ensure matches Parse SDK requirements
-
Update cache keys:
- uses: actions/cache@v3 with: path: ~/.pub-cache key: ${{ runner.os }}-pub-${{ hashFiles('**/pubspec.lock') }}
-
Clear cached dependencies:
dart pub cache repair
Common issue: sembast_web version conflicts
Solution:
dependencies:
parse_server_sdk_flutter: ^9.0.0
sembast_web: ^2.2.0 # Match version used by Parse SDK
# Check Parse SDK's pubspec.yaml for exact versionsIf newer Parse SDK requires newer Flutter/Dart that doesn't support your target devices:
-
Check minimum requirements:
- iOS: Check Flutter's minimum iOS version
- Android: Check Flutter's minimum SDK version
- Web: Check browser compatibility
-
Options:
- Upgrade device requirements
- Use older Parse SDK version
- Fork and maintain custom version
- VERSIONING_POLICY.md - Full versioning policy
- Dart Packages - Official Dart package guide
- Using Packages - Flutter package guide
- Pub Versioning - How Dart versions work
- Semantic Versioning - Version numbering explained