miguelpruivo / flutter_file_picker

File picker plugin for Flutter, compatible with mobile (iOS & Android), Web, Desktop (Mac, Linux, Windows) platforms with Flutter Go support.
MIT License
1.35k stars 672 forks source link

Version solving faile #1586

Closed skgaurav-web closed 1 month ago

skgaurav-web commented 2 months ago

Because file_picker >=8.1.0 depends on web ^1.0.0 and firebase_auth_web >=5.10.0 depends on web ^0.5.1, file_picker >=8.1.0 is incompatible with firebase_auth_web >=5.10.0. And because firebase_auth >=5.1.3 depends on firebase_auth_web ^5.12.5, file_picker >=8.1.0 is incompatible with firebase_auth >=5.1.3. So, because eshop_multivendor depends on both firebase_auth ^5.1.4 and file_picker ^8.1.2, version solving failed.

navaronbracke commented 2 months ago

You should update your firebase_auth_web dependency.

aliumac commented 2 months ago

same issue with the latest version of firebase_core_web

file_picker >=8.1.0 is incompatible with firebase_core_web ^2.17.5

IanVS commented 2 months ago

I have a similar problem, and I'm sorry but I'm pretty new to flutter.

Because file_picker >=8.0.1 <8.1.0 depends on web ^0.5.1 and every version of flutter_test from sdk depends on web 0.3.0, file_picker >=8.0.1 <8.1.0 is incompatible with flutter_test from sdk.

I'm using flutter 3.16.8 right now. Is there a version compatibility matrix somewhere, showing which versions of this package are compatible with flutter versions? Based on https://github.com/miguelpruivo/flutter_file_picker/blob/5ee480577803a2d1af5a9bd915834d1d6f913f78/pubspec.yaml, 8.0.6 should be compatible with my flutter, but there's no tag for 8.0.7, which is what I have installed (why is there no git tag?). I wouldn't expect the flutter compat to change in a patch release, so I assume 8.0.7 should also be fine with my flutter version, but then the error above confuses me. Any help you can give would be appreciated!

navaronbracke commented 2 months ago

@IanVS The changelog lists changes to the minimum Flutter/ Dart version.

https://github.com/miguelpruivo/flutter_file_picker/blob/master/CHANGELOG.md#810 Indicates that version 8.1.0 requires Flutter 3.22.0 / Dart 3.4

https://github.com/miguelpruivo/flutter_file_picker/blob/master/CHANGELOG.md#600 Indicates that file_picker v6 supports Flutter 3.7 or higher. So you'll have to stick with maximum file_picker v7 or upgrade your Flutter version.

There were no other changes to supported versions as far as I can tell.

Since there aren't any functional changes (except for the Dart 3.4 requirement) to package:web, would it be sufficient to allow => 0.5.1 < 2.0.0 as version range for package:web ? (you'll still need to upgrade your FLutter version in that case, though)

IanVS commented 2 months ago

Thanks @navaronbracke , but I was using 8.0.7, which is prior to 8.1.0, so shouldn't that support flutter 3.7 and higher? Meaning my flutter of 3.16.8 should have been fine, right?

navaronbracke commented 2 months ago

That is correct, if you pin file_picker: 8.0.7 that should be fine. Not pinning it would probably cause pub to pick 8.1.0, per semantic versioning? I don't think file_picker considers Flutter/Dart upgrades as breaking changes (flutter/packages doesn't do that either)

If you do still run into versioning issues with package:web, that is because your current Flutter version pins package:web to 0.3.0.

IanVS commented 2 months ago

Yes, I was pinning, you can see in the error message above, file_picker >=8.0.1 <8.1.0 depends on web ^0.5.1..., so I think that maybe due to those versions depending on a more recent version of web than flutter_test, maybe they require a newer version of flutter than specified in the changelog? Like I said, I'm pretty new to flutter dev, but it seems like file_picker in this range only works with older versions of flutter so long as flutter_test is not used, right?

navaronbracke commented 2 months ago

Does upgrading to Flutter 3.19.0 work? I didn't immediately find the required Flutter version for package:web 0.5.1

flutter_test is a dependency of the Flutter SDK (for writing widget tests), hence why your are locked into web: 0.3.0 at the moment.

IanVS commented 2 months ago

No flutter 3.19.0 doesn't work, due to:

The current Dart SDK version is 3.3.0.

Because file_picker >=8.0.6 <8.1.0 depends on win32 >=5.5.1 which requires SDK version >=3.4.0 <4.0.0, file_picker >=8.0.6 <8.1.0 is forbidden.

I'm getting the impression that dependency management with flutter is a bit of a nightmare, lol. I'll keep upgrading flutter and other dependencies, and I'm sure eventually I can get it all to mesh up.

navaronbracke commented 2 months ago

I'm getting the impression that dependency management with flutter is a bit of a nightmare, lol.

It would be a nightmare in other systems too. That's the deal with transitive dependencies. IIRC Flutter only provides support for the current stable release and the two releases prior to that one (so Flutter 3.19.0 is the lowest one still under support)

MisaGu commented 2 months ago

Is it a problem to upgrade the 'web' package to its latest version in the 'file_picker' lib? Why it hasn't been done so far, if on web it only supports pickFiles method?

navaronbracke commented 2 months ago

Is it a problem to upgrade the 'web' package to its latest version in the 'file_picker' lib? Why it hasn't been done so far, if on web it only supports pickFiles method?

file_picker already uses the latest version of package:web

github-actions[bot] commented 2 months ago

This issue is stale because it has been open for 7 days with no activity.

github-actions[bot] commented 1 month ago

This issue was closed because it has been inactive for 14 days since being marked as stale.