NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
pub.dev · #136 most downloaded on pub.dev
A build system for Dart code generation and modular compilation.
Last release 1 months ago
02 Sep 2026
Ships fairly regularly
a new release about every 3 weeks
Nearly every release is documented
notes for 60 of the last 60 stable releases
1 version withdrawn
withdrawn after publishing
10 years old
202 releases · first in 2016
Support null stack traces coming from the build runner script isolate.
- Allow the latest pkg:build.
pkg:build.- Allow the latest analyzer.
One column per quarter.
Use raw string literals for builder options when generating build scripts.
Minor fixes to the log message when compiling the build script has some output.
Support --enable-experiment option in build daemon.
--enable-experiment option in build daemon.Don't rethrow file watcher errors - instead log at severe level and continue going. The file watcher implementation should restart automatically as of
0.9.7+13.Add --log-requests flag to build daemon.
--log-requests flag to build daemon.2.1.0).- Allow analyzer version 2.x.x.
Don't set the content length header or body when responding to HEAD requests.
Allow builders defined as relative imports from the root of a package to run with sound null safety.
Fix a serve mode bug which causes an unhandled exception if the build fails to initialize (usually because it is out of date).
Use the frontend server to improve the performance of generating build script snapshots.
Fix bad cast in build_runner while parsing options for daemon mode.
Update to the latest build_runner_core.
Migrate to null safety.
Update to the latest build_runner_core.
- Allow the latest dart_style.
dart_style.Allow the latest http_multi_server.
http_multi_server.Remove support for hot-reloads. Use package:webdev instead.
package:webdev instead.build package1.x1.x of shelf_web_socket and 2.x of web_socket_channelFix arg parsing for the clean and generate-build-script commands.
clean and generate-build-script commands.Fix snapshot generation hanging on windows if there is anything on stdout.
- Allow the latest build_config.
build_config.- Update to glob 2.x.
2.x.Allow the null safe pre-release version of shelf, package_config, and watcher.
shelf, package_config, and
watcher.Don't rethrow file watcher errors - instead log at severe level and continue going. The file watcher implementation should restart automatically as of
0.9.7+13.Support generating custom build scripts through package:build_runner/build_script_generate.dart:
package:build_runner/build_script_generate.dart:
generateAndRun to snapshot and run build scripts.findBuilderApplications to find builder applications from a
package graph.Allow the null safe pre-release version of stream_transform.
stream_transform.Allow the null safe pre-releases of all migrated deps.
builders section is found in when parsing an overridden
build.yaml file via the --config flag.Fix handling of build.yaml generateFor default config for values including a $ such as $package$. Use raw strings in the generated build script.
build.yaml generateFor default config for values including
a $ such as $package$. Use raw strings in the generated build script.- Allow build version 1.6.x.
1.6.x.Allow build_config version '>=0.4.1 <0.4.6'.
'>=0.4.1 <0.4.6'.'>=2.1.11 <4.0.0'.Allow build_config version 0.4.4.
Allow build_config version 0.4.3.
Better handle the case where the package config file is deleted while the watcher is running, by waiting for up to 1 second for it to be written again
Ensure that the generated build script is opted out of null safety, even if the current package supports it.
Remove high sdk constraint, allow >=2.9.0.
Unpin analyzer and set the min sdk to 2.10 to resolve the subsequent issue https://github.com/dart-lang/sdk/issues/42887.
Unpin analyzer and set the min sdk to 2.10 to resolve the subsequent issue https://github.com/dart-lang/sdk/issues/42887.
Pin analyzer to 0.39.14 to work around Issue #2763.
Pin analyzer to 0.39.14 to work around Issue #2763.
Add an --enable-experiment flag which enables running builders on code that requires a language experiment to be enabled.
--enable-experiment flag which enables running builders on code that
requires a language experiment to be enabled.Add a warning if a package is missing some required placeholder files, including $package$ and lib/$lib$.
$package$ and lib/$lib$.package_config.json.Update to build_runner_core version ^5.0.0.
build_runner_core version ^5.0.0.package_resolver.Kill the watcher script when we see edits to the package_config.json file in the same way that we already do for the .packages file.
Give a warning instead of a stack trace when using a build config override file for a package that does not exist.
Improve the error message when a --hostname argument is invalid.
--hostname argument is invalid.2.6.0 to enable extension methods.stream_transform.Enable the native windows directory watcher by default.
--help invocations without generating the build script.- Allow build version 1.2.x.
build version 1.2.x.Build filters allow you to choose explicitly which files to build instead of building entire directories.
Build filters allow you to choose explicitly which files to build instead of building entire directories.
A build filter is a combination of a package and a path, with glob syntax supported for each.
Whenever a build filter is provided, only required outputs matching one of the build filters will be built, in addition to the inputs to those outputs.
Build filters are supplied using the new --build-filter option, which accepts
relative paths under the package as well as package: uris.
Glob syntax is allowed in both package names and paths.
Example: The following would build and serve the JS output for an application, as well as copy over the required SDK resources for that app:
pub run build_runner serve \
--build-filter="web/main.dart.js" \
--build-filter="package:build_web_compilers/**/*.js"
The build daemon now accepts build filters when registering a build target. If no filters are supplied these default filters are used, which is designed to match the previous behavior as closely as possible:
<target-dir>/**package:*/**Note: There is one small difference compared to the previous behavior, which is that build to source outputs from other top level directories in the root package will no longer be built when they would have before. This should have no meaningful impact other than being more efficient.
Note: For all the listed use cases it is up to the user or tool the user is using to request all the required files for the desired task. This package only provides the core building blocks for these use cases.
If you have a large number of tests but only want to run a single one you can
now build just that test instead of all tests under the test directory.
This can greatly speed up iteration times in packages with lots of tests.
Example: This will build a single web test and run it:
pub run build_runner test \
--build-filter="test/my_test.dart.browser_test.dart.js" \
--build-filter="package:build_web_compilers/**/*.js" \
-- -p chrome test/my_test.dart
Note: If your test requires any other generated files (css, etc) you will need to add additional filters.
This feature works as expected with the --output <dir> and the serve
command. This means you can create an output directory for a single
application in your package instead of all applications under the same
directory.
The serve command also uses the build filters to restrict what files are available, which means it ensures if something works in serve mode it will also work when you create an output directory.
Fix bugs in snapshot invalidation logic that prevented invalidation when core packages changed and always created a new snapshot on the second build.
Improve the manual change detector to do a file system scan on demand instead of using a file watcher.
Set the charset to utf-8 for Dart content returned by the AssetHandler.
charset to utf-8 for Dart content returned by the AssetHandler.Added watch event debouncing to the daemon command to line up with the watch command. This makes things work more nicely with swap files as well as "s
daemon command to line up with the
watch command. This makes things work more nicely with swap files as well
as "save all" type scenarios (you will only get a single build most times).Require package:build_config ">=0.4.1 <0.4.2". Use new API that improves error information when a build configuration file is malformed.
package:build_config ">=0.4.1 <0.4.2". Use new API that improves
error information when a build configuration file is malformed.Fix an issue where warning logs on startup were accidentally upgraded to severe logs in the daemon mode.
Preemptively re-snapshot when the build_runner or build_daemon packages are updated.
build_runner or build_daemon packages
are updated.Support the latest build_daemon version.
build_daemon version.assetServerPort as a top level helper method.Update the test command to wait to exit until the inner test process exits.
test command to wait to exit until the inner test process exits.Depend on the latest build_daemon and provide a shutdown notification on build script updates.
build_daemon and provide a shutdown notification on
build script updates.Use a polling directory watcher by default on windows again.
Fix an issue where exit codes were not set correctly when running the generated build script directly.
Update to the latest build_daemon.
build_daemon.Add a run command to execute VM entrypoints with generated sources.
run command to execute VM entrypoints with generated sources.Your coding agent can read these notes before it upgrades. Set up the MCP server →