build_config
Format definition and support for parsing `build.yaml` configuration.
1.3.2
5.8M downloads/mo
#130 most downloaded on pub.dev
dart-lang/build
What this package is like to depend on
Last release 28 days ago
27 Jul 2026
Ships unpredictably
gaps range from 2 weeks to 2.2 years
Nearly every release is documented
notes for 36 of 36 stable releases
Nothing withdrawn
no release was ever pulled
9 years old
36 releases · first in 2017
3 releases in the last 12 months
see the full history below
Release timeline
36 releases · Nov 2017 to Jul 2026Releases
latest 36-
1.3.227 Jul 2026 -
1.3.108 Jul 2026Release notes
Open source →- Document that
--definevalues are parsed as JSON with a fallback. - Require Dart 3.8.0.
- Document that
-
1.3.025 Feb 2026Release notes
Open source →- Add
build_tokey topost_process_builders. Like thebuilderskey, it controls where the builder output is written: by defaultcache, the hidden build cache, orsourceto write next to source files.
- Add
-
1.2.015 Aug 2025Release notes
Open source →- Add top level key
triggers. See the docs for more information. - Bump the min sdk to 3.7.0.
- Remove unused dep:
yaml. - Documentation revamp.
- Add top level key
-
1.1.216 Dec 2024 -
1.1.118 Oct 2022 -
1.1.012 Jul 2022Release notes
Open source →- Require Dart 2.14
- Support
runsBeforeglobal configuration for builders. This allows users to have some control over builder ordering.
-
1.0.020 Apr 2021 -
0.4.712 Mar 2021 -
0.4.617 Feb 2021Release notes
Open source →- Comment out dev dependency temporarily to break source_gen/json_serializable dependency loop.
-
0.4.508 Dec 2020 -
0.4.402 Dec 2020 -
0.4.318 Nov 2020Release notes
Open source →- Added the
additional_public_assetsoption, which describes the assets readable when the configured package is not the root of the build.
- Added the
-
0.4.205 Feb 2020Release notes
Open source →- Add support for an
auto_apply_buildersoption to thetargetconfig.- Defaults to
true(the previous behavior), setting it tofalsemeans all builders have to be explicitly enabled.
- Defaults to
- Add support for an
-
0.4.103 Jul 2019Release notes
Open source →- Added optional
configYamlPathparameter toBuildConfig.parse. When provided, errors reported when parsing build configuration will include the file path.
- Added optional
-
0.4.1+108 Aug 2019Release notes
Open source →- Support the latest release of
package:json_annotation. - Increased the lower bound for the Dart SDK to
>=2.3.0.
- Support the latest release of
-
0.4.023 Apr 2019Release notes
Open source →- Breaking for build systems - change type of
BuilderOptionsfields toMap<String, dynamic>to drop dependency onbuild. Does not impact packages only depending onbuild.yamlparsing. - Breaking for build systems - versioning scheme is changing to match
package:build. Changes which are breaking to users - those withbuild.yamlfiles will be indicated with a breaking major version bump. Changed which are breaking to build system implementors - those who use the Dart API for this package, will be indicated with a minor version bump.
- Breaking for build systems - change type of
-
0.3.210 Apr 2019Release notes
Open source →- Add an explicit error when
buildExtensionsis configured to overwrite it's input. - Add an explicit error when an
InputSethas an empty or null value in a glob list. - Increase lower bound SDK constraint to 2.0.0.
- Normalize builder keys with the legacy
|separator to use:instead.
- Add an explicit error when
-
0.3.122 Jun 2018Release notes
Open source →- Improve validation and errors when parsing
build.yaml. - Add
BuildConfig.globalOptionssupport.
- Improve validation and errors when parsing
-
0.3.1+116 Jul 2018 -
0.3.1+224 Jul 2018 -
0.3.1+325 Sep 2018 -
0.3.1+423 Oct 2018 -
0.3.005 Jun 2018Release notes
Open source →-
Parsing of
build.yamlfiles is now done with thejson_serializablepackage and is Dart 2 compatible.- The error reporting will be a bit different, but generally should be better, and will include the yaml spans of the problem sections.
Breaking Changes
There are no changes to the
build.yamlformat, the following changes only affect the imperative apis of this package.- The Constructors for most of the build config classes other than
BuildConfigitself now have to be ran inside a build config zone, which can be done using therunInBuildConfigZonefunction. This gives the context about what package is currently being parsed, as well as what the default dependencies should be for targets. - Many constructor signatures have changed, for the most part removing the
packageparameter (it is now read off the zone).
-
-
0.2.606 Apr 2018Release notes
Open source →- The
targetandbuild_extensionskeys for builder definitions are now optional and should be omitted in most cases since they are currently unused. - Support options based on mode, add
devOptionsandreleaseOptionsonTargetBuilderConfig. - Support applying default options based on builder definitions, add
option,devOptions, andreleaseOptionstoTargetBuilderConfigDefaults. - Ensure that
defaultsandgenerateForfields are never null. - Add
InputSet.anythingto name the input sets that don't filter out any assets.
- The
-
0.2.6+106 Apr 2018 -
0.2.6+216 May 2018 -
0.2.513 Mar 2018Release notes
Open source →- Added
post_process_builderssection tobuild.yaml. See README.md for more information.-dev - Adds support for
$defaultas a dependency, i.e.:
targets: $default: ... foo: dependencies: - $default - Added
-
0.2.401 Mar 2018 -
0.2.301 Feb 2018Release notes
Open source →- Expose key normalization methods publicly, these include:
normalizeBuilderKeyUsagenormalizeTargetKeyUsage
- Expose key normalization methods publicly, these include:
-
0.2.218 Jan 2018Release notes
Open source →- Bug fix: Empty build.yaml files no longer fail to parse.
- Allow
$defaultas a target name to get he package name automatically filled in.
-
0.2.2+118 Jan 2018 -
0.2.122 Dec 2017Release notes
Open source →- Change the default for
BuilderDefinition.buildTotoBuildTo.cache. Builders which want to operate on the source tree will need to explicitly opt in. Allow this regardless of the value ofautoApplyand the build system will need to filter out the builders that can't run. - By default including any configuration for a Builder within a BuildTarget will enabled that builder.
- Change the default for
-
0.2.021 Dec 2017Release notes
Open source →- Add
build_tooption to Builder configuration. - Add
BuildConfig.fromBuildConfigDirfor cases where the package name and dependencies are already known. - Add
TargetBuilderConfigclass to configure builders applied to specific targets. - Add
TargetBuilderConfigDefaultsclass for Builder authors to provide default configuration. - Add
InputSetand changesourcesandgenerate_forto use it. - Remove
BuildTarget.isDefaultand related config parsing. The default will be determined by the target which matches the package name. - Normalize Target and Builder names so they are scoped to the package they are defined in.
Breaking
- Remove
BuildConfigSetclass. This was unused. - Hide
Pubspecclass. ConstructBuildConfiginstances with a package path rather than an already createdPubspecinstance.
- Add
-
0.1.130 Nov 2017Release notes
Open source →- Add
auto_applyoption to Builder configuration. - Add
required_inputsoption to Builder configuration. - Add
is_optionaloption to Builder configuration.
- Add
-
0.1.014 Nov 2017Release notes
Open source →- Initial release - pulled from
package:dazel. Updated to supportbuild_extensionsinstead ofinput_extensionandoutput_extensions.
- Initial release - pulled from