-
Notifications
You must be signed in to change notification settings - Fork 15
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
AngularDart 8 Roadmap #6
Comments
Old pipes and animations in |
Can we also deprecate and remove |
@ykmnkmi I'm okay with that. Feel free to send in a PR! |
@GZGavinZhao |
@GZGavinZhao looking at the "Fix all static analysis warnings" and "constant_identifier_names" rule (152 cases), can I deprecate public members with names like this "OnPush" and replace them with new ones? |
@ykmnkmi No problem, go for it :) |
@GZGavinZhao I thinks analyzer warnings task is done. |
@ykmnkmi Good idea! The only caution I would have is that if we migrate to Dart 3, we either have to remove non-null-safe support entirely, or find a way to disable/isolate it during testing. In my opinion, the 2nd option is more desirable, but I'm not sure how difficult it would be. If the 2nd option is not possible, then we will likely have to remove non-null-safety support from AngularDart. Side note, Angular's runtime code is already theoretically compatible with Dart 3 as indicated by the Pub packages page and it seems that @jodinathan was able to get it working as well; the only potential blocker here is the Angular Compiler, as explained in the previous paragraph. |
Currently, I'm bumping all package versions to the minimal version that has migrated to Dart 3.0 or the latest pre-3.0 version and fixing errors and analysis warnings. For example: # ngtest/pubspec.yaml
dependencies:
collection: ^1.17.2
# ...
dev_dependencies:
build_runner: ^2.4.6
build_test: ^2.2.0
build_web_compilers: ^4.0.4
test: ^1.24.4
# ... One package that is holding up migration is mockito, as I am waiting for it to update. It's a dev dependency in |
Is it possible to keep AngularDart 8 compatible with dart 2.18, 2.19 and 3? |
@insinfo I think it would be better to backporting updates to v7.x branch, keeping it with Dart 2.x and analyzer 5.x build stack. |
@ykmnkmi |
@insinfo dart-lang/mockito#706 and tests in |
I forked ngdart here to try to make it work on dart 3.1.5, made some dependency changes, set it to sdk: '>=3.0.0 <4.0.0', and made modifications to the mixins classes and it seems to be working well on dart 3.1.5 in a large project. I have no knowledge of the structure of the angular project, I don't know what the "goldens" package and the "_tests" package are, I ran the "ngast" and "ngcompiler" package tests and it passed all the tests https://github.com/insinfo/angular_8 |
the "ngforms", "ngrouter", "ngast" and "ngcompiler" package could be integrated with the "ngdart" package to reduce dependencies on many packages and facilitate maintenance in just one package |
I did a proof of concept here, I modified the ngdart package to include the ngast, ngcompiler, ngforms, ngrouter and ngtest packages. And I used it on the project I'm working on and it seems to be working well. now my project depends on just one package |
@insinfo, I also think about it. As for goldens, I use goldens to view changes in generated JS in the process of changing AngularDart internals. |
For those that would like to run
|
@duquefirehawk If you overwrite only the build_modules package, a warning message will appear, so that this message does not appear, you must also overwrite the analyzer package [WARNING] ngdart on web/main.dart: Your current `analyzer` version may not fully support your current SDK version.
Analyzer language version: 3.1.0
SDK language version: 3.2.0
Please update to the latest `analyzer` version (6.4.1) by running
`dart pub upgrade`.
If you are not getting the latest version by running the above command, you
can try adding a constraint like the following to your pubspec to start
diagnosing why you can't get the latest version:
dev_dependencies:
analyzer: ^6.4.1 environment:
sdk: ^3.2.1
dependencies:
ngdart: ^8.0.0-dev.2
ngrouter: ^4.0.0-dev.1
ngforms: ^5.0.0-dev.1
dev_dependencies:
build_runner: ^2.1.2
build_test: ^2.1.3
build_web_compilers: ^4.0.0
lints: ^2.1.0
test: ^1.24.0
dependency_overrides:
build_modules: ^5.0.0
analyzer: ^6.4.1 |
Oh well I guess it's time for a pre-release for Dart 3. I will publish one this weekend. |
Maybe a pre-release for ngcomponents too while you are at it :) |
Dart 3 pre-release has been published, version are as follows: dependencies:
ngdart: 8.0.0-dev.4
ngrouter: 4.0.0-dev.3
ngforms: 5.0.0-dev.3
dev_dependencies:
ngtest: 5.0.0-dev.3
# internal packages
others:
ngast: 3.0.0-dev.2
ngcompiler: 3.0.0-dev.3 Will publish a pre-release |
This is an incomplete list that I can think of on the top of my head, and I'll come back here to add more things. Feel free to suggest anything more!
For now, I don't expect there to be breaking changes in existing codebases that are using null safety.
melos
?) (Setup melos #14)._tests/
(most of them have been resolved) (Re-enable all the skipped tests in _tests/ #9).nganalyzer
).NgTestBed
(NgTestBed can't infer type of createXXFactory() #5).ngcomponents
.something else. Our tooling is getting old (e.g.Hugo.grinder
,jekyll-assets
) and slow. We can even use AngularDart to write that whole website and usengpuppeteer
to pre-render it.Verified that it is theoretically doable, design in progress.Work in progress: Migrate contents to new website website#9angular_components
? So far everything in the ecosystem is around Material Design. We can utilize existing Angular TS libraries to drastically reduce the work, such as ng-zorro.The text was updated successfully, but these errors were encountered: