build_runner_core
Core tools to organize the structure of a build and run Builders.
9.3.2
2.4M downloads/mo
#239 most downloaded on pub.dev
dart-lang/build
What this package is like to depend on
Last release 11 months ago
02 Sep 2025
Release timing varies
gaps range from 8 days to 6 months
Nearly every release is documented
notes for 96 of 96 stable releases
Nothing withdrawn
no release was ever pulled
8 years old
98 releases · first in 2018
2 releases in the last 12 months
see the full history below
Release timeline
98 releases · Jun 2018 to Sep 2025
2019
2020
2021
2022
2023
2024
2025
2026
Releases
latest 60 of 98-
9.3.202 Sep 2025 -
9.3.102 Sep 2025Release notes
Open source →- Move
runBuilderto here frompackage:build. Please note that all ofbuild_runner_coreis intended to be internal tobuild_runner: the supported ways to run builders arebuild_runneron the command line andbuild_testin tests. If you need ongoing support for a different way to run builders please get in touch at https://github.com/dart-lang/build/discussions. - Similarly, move
runPostProcessBuilderto here frompackage:build. - Use
build3.1.0. - Use
build_runner2.7.1. - Remove
overrideGeneratedOutputDirectory,pubBinary.
- Move
-
9.3.015 Aug 2025Release notes
Open source →- Add support for build.yaml
triggers. Seebuild_runner2.7.0 for usage. - Remove interactive prompts for whether to delete files.
- Ignore
-dflag: always delete files as if-dwas passed. - 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.
- Add support for build.yaml
-
9.2.107 Aug 2025 -
9.2.017 Jul 2025Release notes
Open source →- Removed unused dev_deps:
test_process. - Bug fix: fix incremental build after build with import of missing package.
- Testing: read build configs using
AssetReaderso they're easier to test. - Use
build3.0.0. - Use
build_resolvers3.0.0.
- Removed unused dev_deps:
-
9.2.0-dev.216 Jul 2025 pre-releaseRelease notes
Open source →- Removed unused dev_deps:
test_process. - Bug fix: fix incremental build after build with import of missing package.
- Testing: read build configs using
AssetReaderso they're easier to test.
- Removed unused dev_deps:
-
9.2.0-dev.124 Jun 2025 pre-release -
9.1.223 Jun 2025Release notes
Open source →- Bug fix: fix incremental build when previous build had
package:import of a missing dep or a missing file.
- Bug fix: fix incremental build when previous build had
-
9.1.120 Jun 2025Release notes
Open source →- 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.
-
9.1.018 Jun 2025 -
9.0.117 Jun 2025Release notes
Open source →- Don't log stack traces for subclasses of
Exception. - Bug fix: don't run builders with multiple outputs once per output.
- Don't log stack traces for subclasses of
-
9.0.016 Jun 2025Release notes
Open source →- Improved performance for large builds. More performance improvements
will follow, if your workflow is affected by slow
build_runnerperformance 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.
Breaking changes:
- Breaking: refactor
OverridableEnvironmentandIOEnvironmentintoBuildEnvironment - Breaking: add
deleteDirectorytoRunnerAssetWriter, makedeletereturnFuture<void>, remove deprecatedOnDelete.
Versions:
- Bump the min SDK to 3.7.0.
- Use
build_test3.0.0.
Internal changes:
- Fix crash when running on assets ending in a dot.
- Start using `package:build/src/internal.dart'.
- Refactor
PathProvidingAssetReadertoAssetPathProvider. - Refactor
MultiPackageAssetReaderto internalAssetFinder. FinalizedReaderno longer implementsAssetReader.- Add internal
Filesystemthat backsAssetReaderandAssetWriterimplementations. - Refactor
CachingAssetReadertoFilesystemCache. - Refactor
BuildCacheReadertoGeneratedAssetHider. - Refactor
FileBasedAssetReaderandFileBasedAssetWritertoReaderWriter. - Move
BuildStepImpltobuild_runner_core, useSingleStepReaderdirectly. - Remove
BuildCacheWriter, functionality is handled byAssetPathProvider. - Refactor
SingleStepReadertoSingleStepReaderWriter, incorporatingAssetWriterSpyfunctionality. - Add
NodeTypetoAssetNode, remove subtypes. Make mutations explicit. - Use
built_valueforAssetNodeand related types, and for serialization. - Add details of what changed and what is built to
--verboselogging. - New change detection algorithm.
- Add
reportUnusedAssetsForInputtoBuildOptions, to listen for when a builder notifies that an asset is unused. - Use
LibraryCycleGraphLoaderto load transitive deps for analysis. - Track post process builder outputs separately from the main graph Instead of
in
postProcessAnchornodes. - Compute outputs as needed instead of storing them in the asset graph.
- Check build options for changes in the phase setup instead of storing them in the asset graph.
- Refactor invalidation to track current build progress in
Buildinstead of in the asset graph. - Track resolver dependencies as library cycle graphs.
- Ignore deprecated analyzer API usages.
- Store errors in the asset graph instead of separate files.
- Improved performance for large builds. More performance improvements
will follow, if your workflow is affected by slow
-
8.0.016 Dec 2024Release notes
Open source →- Breaking: Add
completeBuildtoRunnerAssetWriter, a method expected to be called by the build system at the end of a completed build. - Add
wrapInBatchto obtain a reader/writer pair that will batch writes before flushing them at the end of a build. - Bump the min sdk to 3.6.0.
- Require analyzer ^6.9.0, allow version 7.x.
- Fix analyzer deprecations.
- Breaking: Add
-
7.3.230 Jul 2024Release notes
Open source →- Additional fixes for pub workspace repos
- Migrate deprecates uses of
whereNotNull()tononNulls. - Bump the min sdk to 3.5.0-259.0.dev.
-
7.3.105 Jun 2024Release notes
Open source →- Support the upcoming pub workspaces feature.
- Bump the min sdk to 3.4.0.
- Remove some unnecessary casts and non-null assertions now that we have private field promotion.
-
7.3.030 Jan 2024Release notes
Open source →- Bump the min sdk to 3.0.0.
- Add
integration_testas a default top level directory for sources.
-
7.2.1125 Sep 2023Release notes
Open source →- Add better error messages for incomplete package configs when creating a package graph.
- Update to build_resolvers 2.4.0 and use the shared analyzer resolvers instance.
-
7.2.1005 Jun 2023Release notes
Open source →- Fix build script invalidation check for custom build scripts from other packages.
-
7.2.924 May 2023 -
7.2.808 May 2023Release notes
Open source →- Raise the minimum SDK constraint to 2.18.
- Optimize
BuildStep.packageConfig
-
7.2.725 Oct 2022Release notes
Open source →- Handle generation of hidden assets in a way consistent with the definition of public assets used in other parts of the build system.
-
7.2.7+124 May 2023 -
7.2.618 Oct 2022 -
7.2.518 Oct 2022 -
7.2.413 Sep 2022Release notes
Open source →- Fix some new lints.
- Fix a bug in the LRU cache.
- Fix a bug when manually deleting outputs of multiple output builders.
-
7.2.316 Dec 2021 -
7.2.201 Oct 2021 -
7.2.101 Oct 2021 -
7.1.002 Aug 2021 -
7.0.109 Jul 2021 -
7.0.020 Apr 2021Release notes
Open source →- Migrate to null safety.
- Add an early error if any output extensions overlap with any input extensions to avoid infinite loops.
-
6.1.1212 Mar 2021 -
6.1.1112 Mar 2021Release notes
Open source →- Update to graphs
1.x. - Update to build
2.x. - Update to build_resolvers
2.x.
- Update to graphs
-
6.1.1018 Feb 2021Release notes
Open source →- Don't count packages in dependency_overrides as immediate dependencies when building package graphs. This allows you to override transitive builder deps without accidentally applying those builders to the root package.
-
6.1.917 Feb 2021 -
6.1.817 Feb 2021 -
6.1.701 Feb 2021 -
6.1.607 Jan 2021 -
6.1.515 Dec 2020 -
6.1.409 Dec 2020Release notes
Open source →- Allow build_config version
'>=0.4.1 <0.4.6'. - Allow yaml version
'>=2.1.11 <4.0.0'.
- Allow build_config version
-
6.1.308 Dec 2020 -
6.1.202 Dec 2020 -
6.1.119 Nov 2020Release notes
Open source →- Fix a bug where
canReadwould throw if thepackagewas unknown, instead of returningfalse.
- Fix a bug where
-
6.1.018 Nov 2020Release notes
Open source →- Require the latest build version (1.5.1).
- Support the
additional_public_assetsoption in build configurations. - Fix a bug where the server would respond with a 500 instead of a 404 for files that don't match any build filters but had previously failed.
- Fix the generated package config to include the full output directory for the root package.
-
6.0.329 Sep 2020 -
6.0.222 Sep 2020 -
6.0.103 Aug 2020 -
6.0.004 Jun 2020 -
5.2.011 May 2020Release notes
Open source →- Dart language experiments are now tracked on the asset graph and will
invalidate the build if they change.
- Experiments are enabled for a zone by using the
withEnabledExperimentsfunction frompackage:build/experiments.dart.
- Experiments are enabled for a zone by using the
- Dart language experiments are now tracked on the asset graph and will
invalidate the build if they change.
-
5.1.022 Apr 2020Release notes
Open source →- Add a warning if a package is missing some required placholder files,
including
$package$andlib/$lib$. - Reduce chances for changing apparent build phases across machines with a
different order of packages from
package_config.json.
- Add a warning if a package is missing some required placholder files,
including
-
5.0.031 Mar 2020Release notes
Open source →Breaking changes
PackageGraph.forPathandPackageGraph.forThisPackageare now static methods which return aFuture<PackageGraph>instead of constructors.PackageNodenow requires aLanguageVersion.
Other changes
- Builds no longer depend on the contents of the package_config.json file,
instead they depend only on the language versions inside of it.
- This should help CI builds that want to share a cache across runs.
- Improve the error message for build.yaml parsing errors, suggesting a clean build if you believe the parse error is incorrect.
- Remove unused dev dependency on
package_resolver.
-
4.5.325 Mar 2020Release notes
Open source →- Don't throw a
BuildScriptInvalidatedexception on package_config.json updates unless running from snapshot.
- Don't throw a
-
4.5.206 Mar 2020Release notes
Open source →- Don't assume the existence of a .dart_tool/package_config.json file when creating output directories.
-
4.5.105 Mar 2020 -
4.5.005 Mar 2020Release notes
Open source →- Add the
package_config.jsonfile as an internal source, and invalidate builds when it changes. - Avoid treating
AssetIdpaths as URIs.
- Add the
-
4.4.005 Feb 2020Release notes
Open source →- Support the
auto_apply_builderstarget configuration added inbuild_configversion0.4.2.
- Support the
-
4.3.012 Dec 2019Release notes
Open source →- Add the
$package$synthetic placeholder file and update the docs to prefer using only that orlib/$lib$. - Add the
assetsdirectory and$package$placeholders to the default sources allow list.
- Add the
-
4.2.111 Dec 2019Release notes
Open source →- Bug fix: Changing the root package name will no longer cause subsequent builds to fail (Issue #2566).
-
4.2.015 Nov 2019Release notes
Open source →New Feature
- Allow reading assets created previously by the same
BuildStep.
- Allow reading assets created previously by the same
-
4.1.020 Sep 2019Release notes
Open source →- Add support for trimming builds based on
BuildStep.reportUnusedAssetscalls. See thebuildpackage for more details. - Include
node/**in the default set of sources (when there is no target defined) for the root package.
- Add support for trimming builds based on