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 today
07 Oct 2026
Ships fairly regularly
a new release about every 4 weeks
Nearly every release is documented
notes for 60 of the last 60 stable releases
1 version withdrawn
withdrawn after publishing
10 years old
203 releases · first in 2016
Support analyzer 14.5.0. Require analyzer 14.3.0.
analyzer 14.5.0. Require analyzer 14.3.0.Clarify terminology: refer to .dart_tool/build/generated as the "artifact tree", and the normal output location as the "package path".
.dart_tool/build/generated as the "artifactserve and daemon modes, source files not involved in the build are no--keep-modified-outputs and--only-check.One column per quarter.
New default output behavior: always fix incorrect generated files. For example: if you "dart run build_runner build", modify a generated file, then bu
--keep-modified-outputs. Use this to get the old outputdart run build_runner clean.--only-check, for use in continuous builds and tests. With thisbuild_runner writes nothing, but builds and compares with the filespackage_config 3.0.0.Simplify deletion of stale outputs: don't try to handle package renames.
daemon asset server now rejects various non-local connections.build_to: source can only write to
output packages.build_to: cache can only write output
corresponding to known packages.build.yaml.--output post process output.serve mode only serves the specified package subdirectories.serve live reload websocket checks for localhost origin.Allow analyzer 14.x, require 13.3.0.
analyzer 14.x, require 13.3.0.Pass Dart SDK --packages arg to builder compiles, so they can be compiled with different packages to the current version solve.
--packages arg to builder compiles, so they can be compiled
with different packages to the current version solve.--define values are parsed as JSON with a
fallback.dart run build_runner test to correctly pass arguments after
-- to the test process.Remove --low-resources-mode as default memory usage has been improved. If you have problems with RAM usage please file an issue.
--low-resources-mode as default memory usage has been improved. If
you have problems with RAM usage please file an issue.--log-performance and --track-performance. File an issue if you
have performance measurement needs not covered by the newer --dart-aot-perf.--workspace the global options affecting build order were read
from the wrong package. They are now read from build.yaml in the workspace
root, like other global options.analyzer 13.0.0.Bug fix: fix crash if a package used to belong to a workspace but was removed from the workspace leaving a stale workspace.ref file.
workspace.ref file.watch command now always does one build before exiting due to
a request from another build_runner process. Fix crashes related to request
before build start.Performance: further improvements to management of files for analysis for 2x faster incremental builds.
run. This
costs more initial startup time but gives faster builds afterwards. Fall back
to JIT if the compile fails due to use of dart:mirrors. Use the
--force-jit flag if you want the old default JIT builder compile. Use the
--force-aot flag to turn off the fallback to JIT compile.asset: scheme to the --build-filter flag. It is like
package: but for the whole package, not just lib. For example,
package:a/b.dart is the same as asset:a/lib/b.dart.--build-filter when using the --workspace flag now
apply to the current package, not the workspace root. Other packages must
be referred to using package: or asset: schemes.build_runner until the build is complete. Don't
write files unless the contents changed. These reduce unnecessary work by
tools that watch the filesystem.--workspace flag is no longer experimental, remove the warning.--workspace flag to clean command, use it to clear the cache used for
a --workspace build.stop: run dart run build_runner stop to terminate a
running watch or serve command in the current package or workspace. If
a build is in progress, the build will complete first.build_runner will wait for any already-running command before
running. If there is an already-running watch or serve command, it will be
closed after the currently-running build, as if you ran the new
dart run build_runner stop.daemon command ignores build_runner stop and ignores the new
locking as it uses its own locking.build_runner serve
when directories were specified with a port, for example
build_runner serve web:0. Before the fix, non-optional outputs to cache
under web would be skipped unless they were used by another build step.
With the fix, all non-optional outputs under web are built and served.--workspace generate the entrypoint and compiled
artifacts under the workspace root instead of the current package root.code_builder dependency so builders can use any version of it.Allow analyzer 11.0.0 and 12.0.0.
analyzer 11.0.0 and 12.0.0.Performance: speedup of between 1.4x for small initial builds to 4x for large incremental builds. See https://github.com/dart-lang/build/pull/4405 for
--dart-aot-perf flag for profiling on Linux. Use it with --force-aot.
It runs the builders under the perf profiling tool which writes to
perf.data.--verbose-durations flag that logs durations with greater precision.build_runner args usage output.Bug fix: don't crash if applies_builders in build.yaml mentions an unknown builder.
applies_builders in build.yaml mentions an
unknown builder.- Require build_config 1.3.0.
build_config 1.3.0.Add support for globs in the package list of workspace pubspec.yaml, matching the new feature in Dart SDK 3.11.
pubspec.yaml,
matching the new feature in Dart SDK 3.11.build_to key added to post_process_builders in
build_config 1.3.0. Post process builders can use this to output files
to the source tree.build_test in a builder.Improve logging on build script build failures, don't repeatedly log an identical failure.
--workspace flag, correctly build for sources in the workspace
root instead of failing with "tried to delete from package not in the build".Add --workspace flag. Use it with dart run build_runner build or watch to build or watch or all packages in the current workspace. It is currently exp
--workspace flag. Use it with dart run build_runner build or watch
to build or watch or all packages in the current workspace. It is currently
experimental and subject to change based on feedback, please add feedback at
https://github.com/dart-lang/build/discussions/4349.--output, watch or serve.watch or serve when builders depend
on generated files in the current build.Add logging of builder compilation so you can tell how much time is spent on the JIT or AOT compile. Explicitly log restarts to recompile builders.
analyzer 10.0.0.- Allow analyzer 9.0.0.
analyzer 9.0.0.Performance: improve scalability with the number of library cycles, making builds much faster for some large codebases.
dart run build_runner build in a
subdirectory of a package.Bug fix: fix issue with webdev failing due to a modification during a build.
Performance: improve findAssets scalability, making it much faster for prefix matches in packages with thousands of files or more. One specific use ca
findAssets scalability, making it much faster for
prefix matches in packages with thousands of files or more. One specific use
case that is now faster is builders that use source_gen shared parts, for
example built_value and json_serializable.triggers section of build.yaml using the
full name. For the case in which the builder name matched the package name,
the abbreviated name was being used instead.with build_runner/aot on Windows with JIT.Require analyzer 8.0.0. Remove use of deprecated analyzer members, use their recommended and compatible replacements.
dart:mirrors cannot be AOT compiled.force-aot flag to AOT compile builders.force-jit flag to force the current default of JIT compiling builders.--dart-jit-vm-arg option. Its values are passed to dart run when
a build script is started in JIT mode. This allows specifying options to
attach a debugger to builders.analyzer 8.0.0. Remove use of deprecated analyzer members, use
their recommended and compatible replacements.build_test.Watch mode: handle builder config changes without recompiling or exiting.
build_runner internals.dart run build_runner serve web:0.dart:mirrors.args 2.5.0.Make errors more prominent in log output, highlight in red.
build_resolvers into build_runner.build_runner_core into build_runner.timing into build_runner.build_resolvers, build_runner_core, timing.- Use build 4.0.0.
build 4.0.0.Bug fix: with build_runner serve, special handling of paths containing /packages/ was hiding actual folders called packages. Serve the actual folders
build_runner serve, special handling of paths containing
/packages/ was hiding actual folders called packages. Serve the actual
folders first, before trying the package lookup.lib/build_script_generate.dart,
bin/graph_inspector.dart, build_runner doctor and
build_runner generate-build-script commands.pubspec_parse and timing.build 3.1.0.Performance: builders can choose to run only when "triggered". A builder runs only if triggered if the option run_only_if_triggered is true. Triggers
run_only_if_triggered is true. Triggers
are configured in new a top-level section of build.yaml called triggers.
See the build_config docs
for more information.-d flag: always delete files as if -d was passed.--use-polling-watcher flag.build_runner serve mode $graph and $perf handlers.lib.- Use build 3.0.1.
build 3.0.1.Remove unused deps: analyzer, build_resolvers, collection, http, js, meta, package_config, pool, web, yaml.
analyzer, build_resolvers, collection, http,
js, meta, package_config, pool, web, yaml.http, package_config, web.AssetReader so they're easier to test.build 3.0.0.build_resolvers 3.0.0.Remove unused deps: analyzer, build_resolvers, collection, http, js, meta, package_config, pool, web, yaml.
analyzer, build_resolvers, collection, http,
js, meta, package_config, pool, web, yaml.http, package_config, web.AssetReader so they're easier to test.- Use build 3.0.0-dev. - Use build_resolvers 3.0.0-dev.
build 3.0.0-dev.build_resolvers 3.0.0-dev.Bug fix: fix incremental build when previous build had package: import of a missing dep or a missing file.
package: import of
a missing dep or a missing file.Bug fix: fix corner case with checked in generated output that could cause a crash.
Simplify warnings for outdated analyzer.
analyzer.Don't log stack traces for subclasses of Exception.
Exception.Improved performance for large builds. More performance improvements will follow, if your workflow is affected by slow build_runner performance then p
User-visible changes:
build_runner performance
then please consider sharing details at
https://github.com/dart-lang/build/discussions.Versions:
build_test 3.0.0.build_runner_core 9.0.0.Internal changes:
MultiPackageAssetReader to internal AssetFinder.FinalizedReader no longer implements AssetReader.CachingAssetReader to FilesystemCache.FileBasedAssetReader and FileBasedAssetWriter to ReaderWriter.OnDeleteWriter, add functionality to ReaderWriter.NodeType to AssetNode, remove subtypes. Make mutations explicit.built_value for AssetNode and related types.--verbose logging.Build instead of
in the asset graph.completeBuild from RunnerAssetWriter as it's no longer needed.Update to package:web and dart:js_interop.
package:shelf_web_socket.--use-experimental-resolver flag for issue #3811 performance
work. This flag will be removed.Write generated assets at the end of a build to avoid invalidating other tools with a file watcher multiple times.
Bump the mime dependency to allow version 2.x.
mime dependency to allow version 2.x.Bump the min sdk to 3.5.0-259.0.dev.
Explicitly pass the current isolates package config instead of assuming the location, to support the upcoming pub workspaces feature.
Support version 1.x and 2.x of shelf_web_socket and 2.x and 3.x
1.x and 2.x of shelf_web_socket and 2.x and 3.xweb_socket_channel.Update the package:frontend_server_client constraint to >=3.0.0 <5.0.0.
package:frontend_server_client constraint to >=3.0.0 <5.0.0.Update README.md to point to the FAQ and other docs.
Error subtype exceptions in non-verbose mode.package:js.Add a warning to the doctor command if a build.yml file is found (instead of a build.yaml file).
doctor command if a build.yml file is found (instead
of a build.yaml file).Allow the latest analyzer (6.x.x).
Fix a bug handling a builder which has a required_input that matches it's own output.
required_input that matches it's
own output.Use a stable order for builders without an order defined by dependencies.
Make the doctor command visible.
doctor command visible.Support package:build version 2.4.x.
Mention --build-filter option in the README.
Warn if a package: builder import cannot be resolved and skip it, instead of creating an invalid build script or failing in other obscure ways.
package: builder import cannot be resolved and skip it,
instead of creating an invalid build script or failing in other obscure ways.Remove references to NullThrownError.
NullThrownError.Add supported platforms to pubspec.
Upgrade to frontend_service_client version 3.
frontend_service_client version 3.Add -d as a shorthand for --delete-conflicting-outputs.
-d as a shorthand for --delete-conflicting-outputs.Allow the latest package:analyzer.
package:analyzer.Support global 'runs_before' configuration for builders. This allows users to influence the ordering of builders in their build.
Stop reading or requiring .packages files.
.packages files.dynamic generic type for collections in default builder
options to reduce behavior differences between reading default options and
user provided options.- Allow build version 2.3.x.
Your coding agent can read these notes before it upgrades. Set up the MCP server →