Hello fellow Dartisans! Welcome to the eighth issue of This Week in Dart! This Week in Dart's aim is to be a useful collection of changes and news from across the Dart ecosystem and its surrounding community.
To contribute to this and future issues, feel free to contribute on GitHub or suggest content for next week on GitHub discussions.
To discuss this week's issue, feel free to join us on the Unofficial Dart Community Discord in the
This week saw the release of Dart 2.17.5, a patch release with the following fixes and improvements:
- Improved analysis of enhanced enums in switch statements (SDK issue #49188)
- Fix compiler crash when initializing
Finalizableobjects (SDK issue #49075)
To learn how to update your Dart version, check out Get the Dart SDK or download the update from the Dart SDK archive.
- Dart and Flutter enable Allstar and Security Scorecards
- Soundness violation with self-written futures
- package:azure_cosmosdb was released
Azure Cosmos DB SQL API for Dart and Flutter.
- package:opencl was released
A wrapper of the OpenCL library for the Dart programming language.
- package:pubspec_builder was released
A builder for extracting the contents of pubspec.yaml into code.
- package:dart_z3 was released
Dart bindings for the Z3 theorem prover library.
- package:parchment was released
Platform-agnostic rich text document model based on the Delta format and used in the Feather editor.
- package:sentry v6.6.0 was released
- package:melos v2.5.0 was released
- package:cached v1.1.0 was released
- package:sass v1.53.0 was released
- package:mono_repo v6.3.0 was released
- package:github v9.3.0 was released
- package:dom_builder v2.0.10 was released
- package:sunrise_sunset_calc v3.0.0 was released
Dart SDK updates
30 unique authors have contributed 106 commits to the Dart SDK in the past week.
The following are some handpicked, interesting changes:
- [vm, gc] Prevent multiple threads racing to finalize marking from triggering an extra (synchronous) GC
- [dart2js] Add deferred read/write path to serialization
- [vm, gc] Apply incremental marking back-pressure in proportion to internal allocation size
- Add quick fix for UNNECESSARY_FINAL
- [vm, compiler] Use RISC-V's compare-and-branch for a shorter write barrier sequence
- [analysis_server] ReplaceFinalWithConst to handle unnecessary
Keep in mind, none of these changes are guaranteed to eventually land in a stable release.
Language updates and discussion
Changes and improvements to the language specification are continuously being discussed and implemented.
Recently, patterns and pattern matching have been explored as a solution to some of the most commonly requests features and functionality.
To learn more and perhaps comment on patterns, refer to the Patterns Feature Specification and Goals and Constraints documents.
One piece of the puzzle of patterns is the introduction of records, a way to represent a series of positional fields and a collection of named fields. This past week saw version 1.4 of the Records Feature Specification released.
To learn more about and contribute to discussion of this and other potential changes to the Dart language, visit the Dart language repository.
Package of the week
The package of the week is freezed!
package:freezed is a package for Dart that provides code generation for immutable classes and has a simple syntax/API without compromising on the features.
freezed provides many features focused around generating classes representing models, including support for data classes, unions, pattern matching, handled serialization, and more.
You can learn more about freezed, how to set it up, and how to use it on its pub page.
Dart's package ecosystem is growing fast, and we want to help foster that growth. If you know of any great open source projects, let us know by suggesting a package on GitHub discussions.
Check the Flutter Meetup Network and the Dart Language tag on Meetup to find an event near you or online and connect with other Dart developers!
Let us know about other future events on the events discussion board.
Quotes and notes
Share quotes and comments you see and hear about Dart on our quotes discussion board for future inclusion!
The following are some jobs that will provide you the opportunity to use or even build Dart.
If you know of any jobs which use or are related to Dart, let us know in the Job postings for Dart discussion board.
- The Dart and Flutter teams have job openings across a wide variety of roles. See Flutter and Dart team job openings for more information.