tekartik / sembast.dart

Simple io database
BSD 2-Clause "Simplified" License
763 stars 63 forks source link

Breaking change released as major #336

Closed pawlowskim closed 1 year ago

pawlowskim commented 1 year ago

Hi,

today I have update the app dependencies and my app doesn't compile because of sub-dependencies in one of the libraries I'm using. It uses ^ for sembast lib so it automatically updates it dependencies to latests "safe" version.

But in this commit: https://github.com/tekartik/sembast.dart/commit/b457f6859b5b54932ad12afcd129a16a981793b3 dynamic where changed to Object, so they are not longer nullable.

I think this might be breaking change because it may affects plenty of libraries that depends on sembast. Just pointing it out.

alextekartik commented 1 year ago

Thanks for the report, this change has been reverted though since then. So you should be able to update again. What are the version you are using? Can you please update to 3.4.0+5 and let me know if it works?

sembast: '>=3.4.0+5'
(if needed)
sembast_sqflite: '>=2.1.0+1'
(if needed)
sembast_web: '>=2.1.0+4'
pawlowskim commented 1 year ago

It worked on 3.3.1, not working on 3.4.0+5.

final finder = Finder(filter: Filter.byKey(log.id));

where id is int? in that case

alextekartik commented 1 year ago

Ah yes you right. I'm puzzled. A key must not be null. I'm not sure what I should do, I guess I can revert this specific change. Do you see this in other places ? As a side note consider using store.record(id).get() to access a record directly rather than Filter.byKey which is not efficient.

alextekartik commented 1 year ago

I think I will revert since like you said it is a breaking change.

alextekartik commented 1 year ago

Fixed in 3.4.0+6 for Filter.byKey. Let me know if you see other errors.

pawlowskim commented 1 year ago

I have removed carrets from the 3rd party lib dependencies and used fixed working version. So it won't break in the future. I don't get why people uses carret anyway...

I won't test it right now. Closing.