Monday, October 17, 2016

Good-bye symlinks

Dart 1.20 is now available. Get it now!

Back in the Dart 1.19 release we introduced support for the .package file; our replacement for the /packages/ directory often filled with hundreds of symlinks. In 1.19 this support was opt-in via passing an option to pub get. Now that it has had time to mature, and based on favorable feedback, we have gone ahead and made it the default. If for some reason this causes issues, you can still get symlinks by using the pub get --packages-dir command; in such cases make sure to file an issue.

One common question we have received is how to handle resource loading in a world without packages symlinks. The symlinks blog post covers this in detail. In summary you can either resolve a Uri to a resource using the new resolvePackageUri API (e.g., Uri actualURI = 
    await Isolate.resolvePackageUri(Uri.parse("package:foo/bar.txt")) ), or you can use the new package:resource that provides a more abstract API.

Finally, the VM has been updated to throw catchable Error objects when method compilation fails. This allows package:test, for instance, to provide useful stack traces when running code with syntax errors.

See the full changelog here.

Download the latest release, and let us know what you think!