-
Notifications
You must be signed in to change notification settings - Fork 67
Remove v1.0 / v1.1 serialization format code. Require 3.6.0+ (which has newest serialization format) via increased Dart SDK constraint #1592
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
PR HealthBreaking changes ✔️
Changelog Entry ✔️
Changes to files need to be accounted for in their respective changelogs. API leaks ✔️The following packages contain symbols visible in the public API, but not exported by the library. Export these symbols or remove them from your publicly visible API.
License Headers ✔️
All source files should start with a license header. Unrelated files missing license headers
Package publish validation ✔️
Documentation at https://github.com/dart-lang/ecosystem/wiki/Publishing-automation. |
5f974c6
to
a0a9d88
Compare
…as newest serialization format) via increased Dart SDK constraint
a0a9d88
to
63dc87a
Compare
While the CLI protocol is unstable and being developed, we shouldn't be afraid of changing things. If the protocol changes in Dart SDK it has to change in these packages, which will require an increase in SDK constraint. That will make those packages's test fail on the stable Dart SDK on github CI. => I think it doesn't make much sense to even run the tests on stable Dart SDK. @dcharkes Can we remove the CI config that runs on stable Dart SDK? I think it will just slow down development without any meaningful benefit. |
We already have users using this. This was added to avoid breaking them unnecessarily. Why can't we make backwards compatible changes?
The benefit is not unnecessarily breaking people experimenting with this. We also have to deal with possible version skew between the Dart and Flutter SDK. So breaking the protocol in a non-backwards compatible way requires manual rolls into the Dart SDK and Flutter SDK. I'd really like to avoid that.
👍 SGTM! (Maybe we can do 3.5.0? Or doesn't that remove meaningful old versions?) |
Can we remove the dependency on |
237a005
to
bd64ed9
Compare
I can make another PR for that - it's somewhat orthogonal to removing this json encoding/decoding fallback code.
Updated to 3.5.0.
Do we have a list of them (in case we need to reach out about breaking changes)?
It's possible to be backwards compatible, but incurs engineering churn (adding multi-version support, adding tests, ...) and we'll have to maintain that for at least 3 months (our cadance of stable versions). So if it slows the development of this down, I'd rather not commit to being compatible for too long (e.g. we may actually consider only allowing enabling the experiment on master/dev/beta channels and not stable -- this is what we did for wasm until it was stable) |
Actually it's not much to remove, so I included it in this PR. |
@dcharkes PTAL |
Adding a new feature to the protocol is usually intensely discussed. Adding the backwards compatibility in the from/toJson and some tests is <5 minutes. So I think we're going to be wasting more time manually migrating users and answering questions on breakages than maintaining the backwards compatibility. If there is a specific backwards compatibility that we want to break, which we currently can't due to the 3 month window, we can reevaluate. But I'd rather not remove the guardrails if we don't have a concrete case.
I don't think so. I'm aware of mediapipe, https://github.com/bdero/test_native_assets, intl, icu4x. I have heard from users using this and shipping apps on iOS, but I have not made a list of this. |
I've moved the sdk dependency to 3.5.0, so nobody should get broken and tests pass on stable. @dcharkes do you have any other comments? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM once the comment regarding the SDK version and also removing v1.2 is addressed.
…ion-specific branching code)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks, @dcharkes
This PR updates the Dart SDK constraint of
package:native_assets_cli
to be 3.6.0 pre-release or higher. That means users on older SDKs will use older versions ofpackage:native_assets_cli
. Users of 3.6.0+ SDK are guaranteed to have newer json protocol.=> We can remove the code that deals with v1.0 / v1.1 serialization code.