google / reflectable.dart

Reflectable is a Dart library that allows programmers to eliminate certain usages of dynamic reflection by specialization of reflective code to an equivalent implementation using only static techniques. The use of dynamic reflection is constrained in order to ensure that the specialized code can be generated and will have a reasonable size.
https://pub.dev/packages/reflectable
BSD 3-Clause "New" or "Revised" License
382 stars 57 forks source link

reflectable >=4.0.7 incompatible with flutter_localizations #331

Closed gromanssp closed 2 months ago

gromanssp commented 3 months ago

I am updating my flutter project to 3.22.0 and have compatibility issues with flutter_localizations The error is as follows: Because analyzer >=6.5.1 depends on meta 1.15.0 and analyzer >=6.5.0 <6.5.1 depends on meta 1.14.0, analyzer >=6.5.0 requires meta 1.14.0. (1) So, because every version of flutter_localizations from sdk depends on meta 1.12.0, flutter_localizations from sdk is incompatible with analyzer >=6.5.0. Because reflectable >=4.0.8 <4.0.9 depends on analyzer ^6.5.0 and reflectable >=4.0.7 <4.0.8 depends on analyzer ^6.7.0, reflectable >=4.0.7 <4.0.9 requires analyzer ^6.5.0. And because reflectable >=4.0.9 depends on analyzer >=6.5.0 <6.7.0, reflectable >=4.0.7 requires analyzer ^6.5.0. And because flutter_localizations from sdk is incompatible with analyzer >=6.5.0 (1), flutter_localizations from sdk is incompatible with reflectable >=4.0.7. So, because my project depends on both flutter_localizations from sdk and reflectable ^4.0.7, version solving failed.

eernstg commented 2 months ago

We did have some glitches with the dependency management recently.

Reflectable 4.0.9 depends on >=6.5.0 <6.7.0. The reason why this does not include version 6.7.0 itself (or higher) is that it caused version resolution failures when 6.7.0 was included, as it was in reflectable 4.0.8 and 4.0.7.

Apparently, the version constraints have changed in such a way that we get version resolution failures also with the constraints that used to work.

You might be able to resolve the conflicts simply by using 4.0.7 or 4.0.8 rather than 4.0.9 (they are basically identical except for those version constraints).

Going forward, it would be nice if we didn't have these very finicky version issues. But right now we might have to make adjustments to the constraints for a while (one reason being that the new macro related packages have some circularity issues that makes it difficult to perform version solving right now; I hope that'll be settled soon).

By the way, does the fact that https://github.com/flutter/flutter/issues/152984 was closed indicate that this issue has been resolved in the meantime?

gromanssp commented 2 months ago

The error I am currently having comes from the file that creates reflectable. In the latest version of flutter 3.24.0 does not give compatibility problems with reflectable 4.0.9 but gives error when trying to run the project.

eernstg commented 2 months ago

I just published version 4.0.10 where the analyzer dependency is ^6.7.0, which might resolve your issue.

eernstg commented 2 months ago

Thanks, @gromanssp! Does it work for you? In that case we can close this issue.

gromanssp commented 2 months ago

Thanks, @gromanssp! Does it work for you? In that case we can close this issue.

I just tried with the version of flutter 3.24.1and the new version of reflectable and is already working the apk. Thank you very much, for my part I can say that the problem is solved.

eernstg commented 2 months ago

Great, thanks! Closing.