PackageTrack
Sign in Get early access

build_runner

A build system for Dart code generation and modular compilation.

2.16.0 1000K downloads/mo #18 most downloaded on pub.dev dart-lang/build

What this package is like to depend on

Last release 23 days ago

31 Jul 2026

Ships fairly regularly

a new release about every 3 weeks

Nearly every release is documented

notes for 194 of 198 stable releases

1 version withdrawn

withdrawn after publishing

10 years old

201 releases · first in 2016

24 releases in the last 12 months

see the full history below

Release timeline

201 releases · Nov 2016 to Jul 2026
2017 2018 2019 2020 2021 2022 2023 2024 2025 2026
Release Pre-release Withdrawn

Releases

latest 60 of 201
  1. 2.16.0 31 Jul 2026
    Release notes
    • New default output behavior: always fix incorrect generated files. For
      example: if you "dart run build_runner build", modify a generated file,
      then build again, it will be fixed, undoing your modifications.
    • New option, --keep-modified-outputs. Use this to get the old output
      behavior: manual modifications to generated files are kept. They will be
      overwritten if a build is triggered due to an input file change, a
      configuration change or dart run build_runner clean.
    • New option, --only-check, for use in continuous builds and tests. With this
      option build_runner writes nothing, but builds and compares with the files
      already on disk. If there is any difference between disk and expected output
      then the differences are logged and the build fails.
    • Allow package_config 3.0.0.
    Open source →
    Release notes
    • New default output behavior: always fix incorrect generated files. For example: if you "dart run build_runner build", modify a generated file, then build again, it will be fixed, undoing your modifications.
    • New option, --keep-modified-outputs. Use this to get the old output behavior: manual modifications to generated files are kept. They will be overwritten if a build is triggered due to an input file change, a configuration change or dart run build_runner clean.
    • New option, --only-check, for use in continuous builds and tests. With this option build_runner writes nothing, but builds and compares with the files already on disk. If there is any difference between disk and expected output then the differences are logged and the build fails.
    • Allow package_config 3.0.0.
    Open source →
  2. 2.15.3 27 Jul 2026
    Release notes
    • Simplify deletion of stale outputs: don't try to handle package renames.
    • The daemon asset server now rejects various non-local connections.
    • Bug fix: in incremental builds, when an input was deleted, its output was deleted at the start of the build. Make it consistent with other output deletions: wait until the end of the build.
    • Bug fix: post process builders with build_to: source can only write to output packages.
    • Bug fix: post process builders with build_to: cache can only write output corresponding to known packages.
    • Bug fix: reject incorrect builder config that has duplicate builder keys.
    • Bug fix: reject invalid builder factories in build.yaml.
    • Bug fix: correctly filter served or --output post process output.
    • Bug fix: serve mode only serves the specified package subdirectories.
    • Bug fix: serve live reload websocket checks for localhost origin.
    • Bug fix: don't follow symlinks when cleaning up output folders.
    • Bug fix: catch Windows-specific absolute paths.
    Open source →
  3. 2.15.2 13 Jul 2026
    Release notes
    • Allow analyzer 14.x, require 13.3.0.
    • Require Dart 3.11.0.
    Open source →
  4. 2.15.1 08 Jul 2026
    Release notes
    • Pass Dart SDK --packages arg to builder compiles, so they can be compiled with different packages to the current version solve.
    • More efficient watching for file changes in workspaces and other setups with nested packages.
    • Support builders with no declared outputs. They can't output anything, but they can do processing, write log messages and choose whether to fail the build.
    • Mention in command usage that --define values are parsed as JSON with a fallback.
    • Performance: reduce size of serialized build state when there are optional outputs that are not written.
    • Bug fix: handle errors from post process builders in previous runs without crashing.
    • Bug fix: fix dart run build_runner test to correctly pass arguments after -- to the test process.
    • Bug fix: fix crash if a resolved Dart source contains invalid utf8.
    • Bug fix: fix incorrect output when builder code changes during builder compile.
    • Bug fix: do a clean build when switching between a workspace build and a package build, as incremental builds were sometimes incorrect.
    • Require Dart 3.8.0.
    Open source →
  5. 2.15.0 30 Apr 2026
    Release notes
    • Remove --low-resources-mode as default memory usage has been improved. If you have problems with RAM usage please file an issue.
    • Remove --log-performance and --track-performance. File an issue if you have performance measurement needs not covered by the newer --dart-aot-perf.
    • Removed options can still be passed, they will be ignored with a warning.
    • Bug fix: fix crash during logging if an asset path is an invalid URI.
    • Bug fix: with --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.
    • Allow analyzer 13.0.0.
    Open source →
  6. 2.14.1 24 Apr 2026
    Release notes
    • 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.
    • Bug fix: the 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.
    Open source →
  7. 2.14.0 22 Apr 2026
    Release notes
    • Performance: further improvements to management of files for analysis for 2x faster incremental builds.
    • Performance: default to AOT compilation for commands other than 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.
    • Add support for 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.
    • Paths specified using --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.
    • Add OSC 8 hyperlinks for logged input paths.
    • Better handling of deletions of files during the build: if the file is not needed ignore the deletion, if it's needed try to use the cached version, as a last resort restart the build.
    • Defer deletions of files by 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.
    • Add --workspace flag to clean command, use it to clear the cache used for a --workspace build.
    • Add new command 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.
    • Add locking: 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.
    • Note: the daemon command ignores build_runner stop and ignores the new locking as it uses its own locking.
    • Bug fix: small correctness fix in input tracking.
    • Bug fix: fix corner case that caused missing outputs with 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.
    • Bug fix: when building with --workspace generate the entrypoint and compiled artifacts under the workspace root instead of the current package root.
    • Remove code_builder dependency so builders can use any version of it.
    Open source →
  8. 2.13.1 20 Mar 2026
    Release notes
    • Allow analyzer 11.0.0 and 12.0.0.
    Open source →
  9. 2.13.0 17 Mar 2026
    Release notes
    • 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 full benchmark results. Optimizations included: faster management of files for analysis, re-use syntax errors computation, avoid a throw/catch on "not yet generated" source, copy asset graph without a serialization round trip, re-use trigger configuration digest.
    • Add --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.
    • Add --verbose-durations flag that logs durations with greater precision.
    • Improve debugging instructions in README.md.
    • Bug fix: fix line wrapping in build_runner args usage output.
    Open source →
  10. 2.12.2 05 Mar 2026
    Release notes
    • Bug fix: don't crash if applies_builders in build.yaml mentions an unknown builder.
    Open source →
  11. 2.12.1 04 Mar 2026
    Release notes
    • Require build_config 1.3.0.
    Open source →
  12. 2.12.0 03 Mar 2026 withdrawn
    Release notes
    • Add support for globs in the package list of workspace pubspec.yaml, matching the new feature in Dart SDK 3.11.
    • Support the 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.
    • Bug fix: prevent logging crash when using build_test in a builder.
    Open source →
  13. 2.11.1 11 Feb 2026
    Release notes
    • Improve logging on build script build failures, don't repeatedly log an identical failure.
    • Bug fix: with --workspace flag, correctly build for sources in the workspace root instead of failing with "tried to delete from package not in the build".
    Open source →
  14. 2.11.0 05 Feb 2026
    Release notes
    • 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 experimental and subject to change based on feedback, please add feedback at https://github.com/dart-lang/build/discussions/4349.
    • Bug fix: fix crash in corner case with post process builder, optional builder and output used for --output, watch or serve.
    • Bug fix: fix crash in corner case with watch or serve when builders depend on generated files in the current build.
    Open source →
  15. 2.10.5 13 Jan 2026
    Release notes
    • 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.
    • Allow analyzer 10.0.0.
    Open source →
  16. 2.10.4 19 Nov 2025
    Release notes
    • Allow analyzer 9.0.0.
    Open source →
  17. 2.10.3 14 Nov 2025
    Release notes
    • Performance: improve scalability with the number of library cycles, making builds much faster for some large codebases.
    • Bug fix: fix crash when you run dart run build_runner build in a subdirectory of a package.
    • Bug fix: in a workspace, generate for transitive dependencies of the current package instead of for all packages in the workspace.
    Open source →
  18. 2.10.2 11 Nov 2025
    Release notes
    • Bug fix: fix issue with webdev failing due to a modification during a build.
    • In "serve" and "watch" modes, retry failed compiles instead of exiting.
    Open source →
  19. 2.10.1 24 Oct 2025
    Release notes
    • Performance: improve 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.
    • Bug fix: look up triggers in the 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.
    • Bug fix: fix incorrect log with build_runner/aot on Windows with JIT.
    Open source →
  20. 2.10.0 20 Oct 2025
    Release notes
    • Add AOT compilation of builders. A future release will AOT compile builders automatically, for this release it's behind a flag. AOT compiled builders start up faster and have higher throughput, for faster builds overall. Builders that use dart:mirrors cannot be AOT compiled.
    • Add force-aot flag to AOT compile builders.
    • Add force-jit flag to force the current default of JIT compiling builders.
    • Add the --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.
    • Require analyzer 8.0.0. Remove use of deprecated analyzer members, use their recommended and compatible replacements.
    • Internal changes for build_test.
    Open source →
  21. 2.9.0 01 Oct 2025
    Release notes
    • Watch mode: handle builder config changes without recompiling or exiting.
    • Remove log output about build_runner internals.
    • Print the port that gets picked if you pass 0 for a port number, for example with dart run build_runner serve web:0.
    • Improve warnings when an option is specified for an unknown builder.
    • Rewrite bootstrap code to remove use of dart:mirrors.
    • Bug fix: require args 2.5.0.
    Open source →
  22. 2.8.0 05 Sep 2025
    Release notes
    • Make errors more prominent in log output, highlight in red.
    • Remove "deleting declared outputs" warning.
    • Bug fix: fix incorrect display of some "usage" messages.
    • Move code from build_resolvers into build_runner.
    • Move code from build_runner_core into build_runner.
    • Move code from timing into build_runner.
    • Remove unused deps: build_resolvers, build_runner_core, timing.
    Open source →
  23. 2.7.2 02 Sep 2025
    Release notes
    • Use build 4.0.0.
    Open source →
  24. 2.7.1 02 Sep 2025
    Release notes
    • Bug fix: with 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.
    • Remove undocumented / unused features: lib/build_script_generate.dart, bin/graph_inspector.dart, build_runner doctor and build_runner generate-build-script commands.
    • Remove deps on pubspec_parse and timing.
    • Use build 3.1.0.
    Open source →
  25. 2.7.0 15 Aug 2025
    Release notes
    • 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 are configured in new a top-level section of build.yaml called triggers. See the build_config docs for more information.
    • Remove interactive prompts for whether to delete files.
    • Ignore -d flag: always delete files as if -d was passed.
    • Remove --use-polling-watcher flag.
    • Remove build_runner serve mode $graph and $perf handlers.
    • Documentation revamp.
    • Bug fix: delete transitive generated outputs as well as direct generated outputs. So, a generated file now gets deleted if its input was a generated file that is no longer output.
    • Bug fix: fix crash creating a merged output dir with a file called lib.
    Open source →
  26. 2.6.1 07 Aug 2025
    Release notes
    • Use build 3.0.1.
    Open source →
  27. 2.6.0 17 Jul 2025
    Release notes
    • Remove unused deps: analyzer, build_resolvers, collection, http, js, meta, package_config, pool, web, yaml.
    • Remove unused dev_deps: http, package_config, web.
    • Testing: read build configs using AssetReader so they're easier to test.
    • Use build 3.0.0.
    • Use build_resolvers 3.0.0.
    Open source →
  28. 2.6.0-dev.2 16 Jul 2025 pre-release
    Release notes
    • Remove unused deps: analyzer, build_resolvers, collection, http, js, meta, package_config, pool, web, yaml.
    • Remove unused dev_deps: http, package_config, web.
    • Testing: read build configs using AssetReader so they're easier to test.
    Open source →
  29. 2.6.0-dev.1 24 Jun 2025 pre-release
    Release notes
    • Use build 3.0.0-dev.
    • Use build_resolvers 3.0.0-dev.
    Open source →
  30. 2.5.4 23 Jun 2025
    Release notes
    • Bug fix: fix incremental build when previous build had package: import of a missing dep or a missing file.
    Open source →
  31. 2.5.3 20 Jun 2025
    Release notes
    • Bug fix: fix corner case with checked in generated output that could cause a crash.
    • Bug fix: during initial build cleanup, really delete files that correspond to hidden generated files.
    Open source →
  32. 2.5.2 18 Jun 2025
    Release notes
    • Simplify warnings for outdated analyzer.
    Open source →
  33. 2.5.1 17 Jun 2025
    Release notes
    • Don't log stack traces for subclasses of Exception.
    • Bug fix: don't run builders with multiple outputs once per output.
    Open source →
  34. 2.5.0 16 Jun 2025
    Release notes

    User-visible changes:

    • Improved performance for large builds. More performance improvements will follow, if your workflow is affected by slow build_runner performance then please consider sharing details at https://github.com/dart-lang/build/discussions.
    • Improved logging: show what builders are running and, for long-running builders, where the time is spent.

    Versions:

    • Bump the min SDK to 3.7.0.
    • Use build_test 3.0.0.
    • Use build_runner_core 9.0.0.

    Internal changes:

    • Start using `package:build/src/internal.dart'.
    • Refactor MultiPackageAssetReader to internal AssetFinder.
    • FinalizedReader no longer implements AssetReader.
    • Refactor CachingAssetReader to FilesystemCache.
    • Refactor FileBasedAssetReader and FileBasedAssetWriter to ReaderWriter.
    • Remove OnDeleteWriter, add functionality to ReaderWriter.
    • Add NodeType to AssetNode, remove subtypes. Make mutations explicit.
    • Use built_value for AssetNode and related types.
    • Add details of what changed and what is built to --verbose logging.
    • Compute outputs as needed instead of storing them in the asset graph.
    • Refactor invalidation to track current build progress in Build instead of in the asset graph.
    • Remove completeBuild from RunnerAssetWriter as it's no longer needed.
    Open source →
  35. 2.4.15 11 Feb 2025
    Release notes
    • Update to package:web and dart:js_interop.
    • Support the latest package:shelf_web_socket.
    • Add hidden --use-experimental-resolver flag for issue #3811 performance work. This flag will be removed.
    Open source →
  36. 2.4.14 16 Dec 2024
    Release notes
    • Write generated assets at the end of a build to avoid invalidating other tools with a file watcher multiple times.
    • Bump the min sdk to 3.6.0.
    • Allow analyzer version 7.x.
    • Hard code the generated build script to language version 3.6.
    • Allow dart_style version 4.0.0, require at least 2.3.7.
    Open source →
  37. 2.4.13 30 Sep 2024
    Release notes
    • Bump the min sdk to 3.5.0.
    • Bump the mime dependency to allow version 2.x.
    Open source →
  38. 2.4.12 30 Jul 2024
    Release notes
    • Bump the min sdk to 3.5.0-259.0.dev.
    • Fix watch mode for workspace repos.
    Open source →
  39. 2.4.11 05 Jun 2024
    Release notes
    • Explicitly pass the current isolates package config instead of assuming the location, to support the upcoming pub workspaces feature.
    Open source →
  40. 2.4.10 15 May 2024
    Release notes
    • Support version 1.x and 2.x of shelf_web_socket and 2.x and 3.x
    • of web_socket_channel.
    • Bump the min sdk to 3.4.0.
    Open source →
  41. 2.4.9 28 Mar 2024
    Release notes
    • Update the package:frontend_server_client constraint to >=3.0.0 <5.0.0.
    Open source →
  42. 2.4.8 11 Jan 2024
    Release notes
    • Update README.md to point to the FAQ and other docs.
    • Print stack traces for Error subtype exceptions in non-verbose mode.
    • Support latest version of package:js.
    Open source →
  43. 2.4.7 28 Nov 2023
    Release notes
    • Fix broken link in README.md.
    • Bump the min sdk to 3.0.0.
    • Add a warning to the doctor command if a build.yml file is found (instead of a build.yaml file).
    Open source →
  44. 2.4.6 29 Jun 2023
    Release notes
    • Allow the latest analyzer (6.x.x).
    Open source →
  45. 2.4.5 06 Jun 2023
    Release notes
    • Fix a bug handling a builder which has a required_input that matches it's own output.
    Open source →
  46. 2.4.4 13 May 2023
    Release notes
    • Use a stable order for builders without an order defined by dependencies.
    Open source →
  47. 2.4.3 12 May 2023
    Release notes
    • Make the doctor command visible.
    Open source →
  48. 2.4.2 09 May 2023
    Release notes
    • Support package:build version 2.4.x.
    Open source →
  49. 2.4.1 13 Mar 2023
    Release notes
    • Mention --build-filter option in the README.
    • Update to build_daemon 4.0.
    • Support enabling experiments in build scripts.
    Open source →
  50. 2.4.0 18 Jan 2023
    Release notes
    • 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.
    • Require Dart 3.0, drop support for unsound build scripts.
    Open source →
  51. 2.3.3 16 Dec 2022
    Release notes
    • Remove references to NullThrownError.
    Open source →
  52. 2.3.2 18 Oct 2022
    Release notes
    • Add supported platforms to pubspec.
    Open source →
  53. 2.3.1 18 Oct 2022
    Release notes
    • Upgrade to frontend_service_client version 3.
    Open source →
  54. 2.3.0 10 Oct 2022
    Release notes
    • Add -d as a shorthand for --delete-conflicting-outputs.
    Open source →
  55. 2.2.1 13 Sep 2022
    Release notes
    • Allow the latest package:analyzer.
    • Stop ignoring the no_leading_underscores_for_library_prefixes lint in generated build scripts, code_builder now does this for you.
    Open source →
  56. 2.2.0 12 Jul 2022
    Release notes
    • Support global 'runs_before' configuration for builders. This allows users to influence the ordering of builders in their build.
    Open source →
  57. 2.1.11 16 May 2022
    Release notes
    • Stop reading or requiring .packages files.
    • Use an explicit dynamic generic type for collections in default builder options to reduce behavior differences between reading default options and user provided options.
    Open source →
  58. 2.1.10 15 Apr 2022
    Release notes
    • Allow build version 2.3.x.
    Open source →
  59. 2.1.9 14 Apr 2022
    Release notes
    • Fix up the formatting a bit for the error message that is logged when we get errors from the directory watcher.
    • Ignore the no_leading_underscores_for_library_prefixes lint in the generated build script.
    • Report changed assets when running as a deamon.
    • Allow analyzer version 4.x.
    Open source →
  60. 2.1.8 14 Mar 2022
    Release notes
    • Support null stack traces coming from the build runner script isolate.
    Open source →

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive