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.32k stars 653 forks source link

Version solving faile #1586

Open skgaurav-web opened 2 weeks ago

skgaurav-web commented 2 weeks 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 weeks ago

You should update your firebase_auth_web dependency.

aliumac commented 2 weeks 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 weeks 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 weeks 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 weeks 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 weeks 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 weeks 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 weeks 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 weeks 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 weeks 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 1 week 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 1 week 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 4 days ago

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