objectbox / objectbox-dart

Flutter database for super-fast Dart object persistence
https://docs.objectbox.io/getting-started
Apache License 2.0
927 stars 115 forks source link

Cannot update to Google Font 5.x.x #544

Closed Paroca72 closed 10 months ago

Paroca72 commented 10 months ago

After trying to update to Google Font 5.1.0 I got this error.

The current Dart SDK version is 3.0.5.

Because objectbox_generator >=1.6.1-dev.0 <1.6.1 depends on objectbox 1.6.1-dev.0 and objectbox_generator >=1.6.2-dev.0 <1.6.2-dev.1 depends on objectbox 1.6.2-dev.0, objectbox_generator >=1.6.1-dev.0 <1.6.1 or >=1.6.2-dev.0 <1.6.2-dev.1 requires objectbox 1.6.1-dev.0 or 1.6.2-dev.0.
And because objectbox_generator >=1.6.2-dev.1 <1.6.2-dev.2 depends on objectbox 1.6.2-dev.1, objectbox_generator >=1.6.1-dev.0 <1.6.1 or >=1.6.2-dev.0 <1.6.2-dev.2 requires objectbox 1.6.1-dev.0 or 1.6.2-dev.0 or 1.6.2-dev.1.
And because objectbox_generator >=1.6.2-dev.2 <1.6.2 depends on objectbox 1.6.2-dev.2 and objectbox_generator >=1.7.0-dev.0 <1.7.0-dev.1 depends on objectbox 1.7.0-dev.0, objectbox_generator >=1.6.1-dev.0 <1.6.1 or >=1.6.2-dev.0 <1.6.2 or >=1.7.0-dev.0 <1.7.0-dev.1 requires objectbox 1.6.1-dev.0 or 1.6.2-dev.0 or 1.6.2-dev.1 or 1.6.2-dev.2 or 1.7.0-dev.0.
And because objectbox_generator >=1.6.1 <1.6.2-dev.0 depends on objectbox 1.6.1 and objectbox_generator >=1.4.0-dev.1 <1.6.1-dev.0 depends on analyzer >=1.1.0 <4.0.0, objectbox_generator >=1.4.0-dev.1 <1.6.2-∞ or >=1.7.0-dev.0 <1.7.0-dev.1 requires objectbox 1.6.1-dev.0 or 1.6.1 or 1.6.2-dev.0 or 1.6.2-dev.1 or 1.6.2-dev.2 or 1.7.0-dev.0 or analyzer >=1.1.0 <4.0.0.
And because objectbox_generator >=1.2.0 <1.4.0-dev.1 depends on analyzer >=1.1.0 <3.0.0 and objectbox_generator >=0.13.0-nullsafety.0 <1.2.0 depends on analyzer ^1.1.0, objectbox_generator >=0.13.0-nullsafety.0 <1.6.2-∞ or >=1.7.0-dev.0 <1.7.0-dev.1 requires objectbox 1.6.1-dev.0 or 1.6.1 or 1.6.2-dev.0 or 1.6.2-dev.1 or 1.6.2-dev.2 or 1.7.0-dev.0 or analyzer >=1.1.0 <4.0.0.
Because no versions of build_runner match >2.4.6 <3.0.0 and build_runner 2.4.6 depends on analyzer >=4.4.0 <7.0.0, build_runner ^2.4.6 requires analyzer >=4.4.0 <7.0.0.
Thus, if build_runner ^2.4.6 and objectbox_generator >=0.13.0-nullsafety.0 <1.6.2-∞ or >=1.7.0-dev.0 <1.7.0-dev.1 then objectbox 1.6.1-dev.0 or 1.6.1 or 1.6.2-dev.0 or 1.6.2-dev.1 or 1.6.2-dev.2 or 1.7.0-dev.0.
And because objectbox_generator >=1.7.0 <1.7.1-dev.0 depends on objectbox 1.7.0 and objectbox_generator >=1.6.2 <1.7.0-dev.0 depends on objectbox 1.6.2, if build_runner ^2.4.6 and objectbox_generator >=0.13.0-nullsafety.0 <1.7.0-dev.1 or >=1.7.0 <1.7.1-dev.0 then objectbox 1.6.1-dev.0 or 1.6.1 or 1.6.2-dev.0 or 1.6.2-dev.1 or 1.6.2-dev.2 or 1.6.2 or 1.7.0-dev.0 or 1.7.0.
And because objectbox_generator >=1.7.0-dev.1 <1.7.0 depends on objectbox 1.7.0-dev.1 and objectbox_generator <0.13.0-nullsafety.0 doesn't support null safety, if build_runner ^2.4.6 and objectbox_generator <1.7.1-dev.0 then objectbox 1.6.1-dev.0 or 1.6.1 or 1.6.2-dev.0 or 1.6.2-dev.1 or 1.6.2-dev.2 or 1.6.2 or 1.7.0-dev.0 or 1.7.0-dev.1 or 1.7.0.
And because objectbox_generator >=1.7.1-dev.0 depends on http ^0.13.5 and google_fonts >=4.0.5 depends on http ^1.0.0, if build_runner ^2.4.6 and objectbox_generator any and google_fonts >=4.0.5 then objectbox 1.6.1-dev.0 or 1.6.1 or 1.6.2-dev.0 or 1.6.2-dev.1 or 1.6.2-dev.2 or 1.6.2 or 1.7.0-dev.0 or 1.7.0-dev.1 or 1.7.0.
And because xxxxxxxxxxxxx depends on both google_fonts ^5.1.0 and objectbox ^2.1.0, build_runner ^2.4.6 is incompatible with objectbox_generator.
So, because xxxxxxxxxxxxx depends on both build_runner ^2.4.6 and objectbox_generator any, version solving failed.

Thanks

greenrobot-team commented 10 months ago

Did you update using dart pub upgrade (or with --major-versions)? It should prevent updating to incompatible versions. Or did you manually edit the pubspec file?

In any case, looks like this is because objectbox_generator depends on 0.x.x versions of http. But google_fonts requires 1.0.0, which also requires Dart 3.0.

We should probably change to allow 1.x.x versions of http (but not require as that implicitly requires Dart 3).

Until we ship a compatible update you can add a dependency override:

dependency_overrides:
  http: '1.0.0'
greenrobot-team commented 10 months ago

The next release will allow v1 versions of http.