Replies: 3 comments 6 replies
-
I hear you. However, it is not like 3.0 came out yesterday, and we already upgrading to it. I think people who are not upgrading to Dart 3.0 after almost 4 months now (which is a mostly a non-breaking upgrade), probably won't want to migrate their API to |
Beta Was this translation helpful? Give feedback.
-
dart update pace is very fast, 4 months is too little time, i think the driver could have a slower update pace to ensure more compatibility i think i could update to dart 2.18 now and when dart 3.3 release go to dart 2.19 keeping a constant delay of 3 or four versions of dart, this is one of the reasons why banks and large companies adopt java because it is very stable. |
Beta Was this translation helpful? Give feedback.
-
Also adding my two cents since I was mentioned:
Will the Dart team release bugs and feature updates for Dart 2.18 for a longer period of time too? If you don't want to update - fine, but I don't understand why one would want to not update some core components and sill expect everything else to be up-to-date. By doing a major version increase, we can also keep supporting 2.x releases without Dart 3 after the initial postgres 3.0 release. Perhaps it was unfortunate that the change requiring Dart 3.0 has been published with a 2.x version tag to support the experimental API import. That's probably something we should revert after the stable 3.0 release (by removing the v3 API from a stable 2.x release I guess).
Updating to Dart 3.0 isn't that breaking though, is it? The change is that you're now forced to support null-safety (which does enable performance improvements), but you can still chose to use a language version of 2.18 with the Dart 3.0 SDK.
The v3 version of the package will also come with new API, which is likely a bigger breakage than the change of the SDK version constraint. It's probably fine not to update immediately once it comes out, but it also adds new features that would be very cumbersome to include in the v2 API (like explicit control over prepared statements). Since we're going to do a breaking release either way, we might take a few more breaking options as well.
Outside of Java 8, it's not like you get infinite support lifetimes for Java as well. The stability argument mostly refers to the fact that a program compiled with javac from JDK 11 runs just fine against the latest JVM. This is kind of similar with Dart - as long as you're using null-safety (which came out more than two years ago), no source code changes are necessary to adopt the 3.0 SDK. |
Beta Was this translation helpful? Give feedback.
-
@isoos @simolus3
I saw they put dart 3.0 as the minimum supported version, I think as a database driver being a lower level package it should be more stable and have less changes that may affect many users who cannot change the version of dart with each release, because of other project dependencies or even because they may be small teams working on many projects, I think the driver has to be compatible with a wider range of dart versions to ensure it makes it to the majority of users. package users, many users are still stuck on dart 2.18.
I think this should be considered so that your users stuck on dart 2.18 can access bug and feature updates for a slightly longer period of time.
I think stability and compatibility is very important for users of a library/package
Besides dart 3.0 doesn't bring huge improvements in performance, it's more about adding syntax features, I think it could wait a little longer before this significant change.
I'm more in favor of changes that don't have such a huge impact in terms of breakage that it stops users from upgrading.
Beta Was this translation helpful? Give feedback.
All reactions