PackageTrack
Sign in Get early access

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 2026
2018 2019 2020 2021 2022 2023 2024 2025 2026
Release Pre-release

Releases

latest 36
  1. 1.3.2 27 Jul 2026
    Release notes
    • Reject builder names with the wrong package name.
    Open source →
  2. 1.3.1 08 Jul 2026
    Release notes
    • Document that --define values are parsed as JSON with a fallback.
    • Require Dart 3.8.0.
    Open source →
  3. 1.3.0 25 Feb 2026
    Release notes
    • Add build_to key to post_process_builders. Like the builders key, it controls where the builder output is written: by default cache, the hidden build cache, or source to write next to source files.
    Open source →
  4. 1.2.0 15 Aug 2025
    Release notes
    • 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.
    Open source →
  5. 1.1.2 16 Dec 2024
    Release notes
    • Stop using deprecated JsonKey.ignore.
    • Bump the min sdk to 3.6.0.
    Open source →
  6. 1.1.1 18 Oct 2022
    Release notes
    • Expand pubspec description to improve pub score.
    Open source →
  7. 1.1.0 12 Jul 2022
    Release notes
    • Require Dart 2.14
    • Support runsBefore global configuration for builders. This allows users to have some control over builder ordering.
    Open source →
  8. 1.0.0 20 Apr 2021
    Release notes
    • Migrate to null safety.
    Open source →
  9. 0.4.7 12 Mar 2021
    Release notes
    • Allow the latest pubspec_parse and checked_yaml.
    Open source →
  10. 0.4.6 17 Feb 2021
    Release notes
    • Comment out dev dependency temporarily to break source_gen/json_serializable dependency loop.
    Open source →
  11. 0.4.5 08 Dec 2020
    Release notes
    • Allow package:json_annotation v4.x.
    Open source →
  12. 0.4.4 02 Dec 2020
    Release notes
    • Support the latest pkg:yaml.
    Open source →
  13. 0.4.3 18 Nov 2020
    Release notes
    • Added the additional_public_assets option, which describes the assets readable when the configured package is not the root of the build.
    Open source →
  14. 0.4.2 05 Feb 2020
    Release notes
    • Add support for an auto_apply_builders option to the target config.
      • Defaults to true (the previous behavior), setting it to false means all builders have to be explicitly enabled.
    Open source →
  15. 0.4.1 03 Jul 2019
    Release notes
    • Added optional configYamlPath parameter to BuildConfig.parse. When provided, errors reported when parsing build configuration will include the file path.
    Open source →
  16. 0.4.1+1 08 Aug 2019
    Release notes
    • Support the latest release of package:json_annotation.
    • Increased the lower bound for the Dart SDK to >=2.3.0.
    Open source →
  17. 0.4.0 23 Apr 2019
    Release notes
    • Breaking for build systems - change type of BuilderOptions fields to Map<String, dynamic> to drop dependency on build. Does not impact packages only depending on build.yaml parsing.
    • Breaking for build systems - versioning scheme is changing to match package:build. Changes which are breaking to users - those with build.yaml files 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.
    Open source →
  18. 0.3.2 10 Apr 2019
    Release notes
    • Add an explicit error when buildExtensions is configured to overwrite it's input.
    • Add an explicit error when an InputSet has 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.
    Open source →
  19. 0.3.1 22 Jun 2018
    Release notes
    • Improve validation and errors when parsing build.yaml.
    • Add BuildConfig.globalOptions support.
    Open source →
  20. 0.3.1+1 16 Jul 2018
    Release notes
    • Increased the upper bound for the sdk to <3.0.0.
    Open source →
  21. 0.3.1+2 24 Jul 2018
    Release notes
    • Support package:json_annotation v1.
    Open source →
  22. 0.3.1+3 25 Sep 2018
    Release notes
    • Support package:build version 1.x.x.
    Open source →
  23. 0.3.1+4 23 Oct 2018
    Release notes
    • Support the latest package:json_annotation.
    Open source →
  24. 0.3.0 05 Jun 2018
    Release notes
    • Parsing of build.yaml files is now done with the json_serializable package 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.yaml format, the following changes only affect the imperative apis of this package.

    • The Constructors for most of the build config classes other than BuildConfig itself now have to be ran inside a build config zone, which can be done using the runInBuildConfigZone function. 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 package parameter (it is now read off the zone).
    Open source →
  25. 0.2.6 06 Apr 2018
    Release notes
    • The target and build_extensions keys for builder definitions are now optional and should be omitted in most cases since they are currently unused.
    • Support options based on mode, add devOptions and releaseOptions on TargetBuilderConfig.
    • Support applying default options based on builder definitions, add option, devOptions, and releaseOptions to TargetBuilderConfigDefaults.
    • Ensure that defaults and generateFor fields are never null.
    • Add InputSet.anything to name the input sets that don't filter out any assets.
    Open source →
  26. 0.2.6+1 06 Apr 2018
    Release notes
    • Restore error for missing build extensions.
    Open source →
  27. 0.2.6+2 16 May 2018
    Release notes
    • Restore error for missing default target.
    Open source →
  28. 0.2.5 13 Mar 2018
    Release notes
    • Added post_process_builders section to build.yaml. See README.md for more information.-dev
    • Adds support for $default as a dependency, i.e.:
    targets:
      $default:
        ...
      foo:
        dependencies:
          - $default
    
    Open source →
  29. 0.2.4 01 Mar 2018
    Release notes
    • Add support for runs_before in BuilderDefinition.
    Open source →
  30. 0.2.3 01 Feb 2018
    Release notes
    • Expose key normalization methods publicly, these include:
      • normalizeBuilderKeyUsage
      • normalizeTargetKeyUsage
    Open source →
  31. 0.2.2 18 Jan 2018
    Release notes
    • Bug fix: Empty build.yaml files no longer fail to parse.
    • Allow $default as a target name to get he package name automatically filled in.
    Open source →
  32. 0.2.2+1 18 Jan 2018
    Release notes
    • Expand support for package:build to include version 0.12.0.
    Open source →
  33. 0.2.1 22 Dec 2017
    Release notes
    • Change the default for BuilderDefinition.buildTo to BuildTo.cache. Builders which want to operate on the source tree will need to explicitly opt in. Allow this regardless of the value of autoApply and 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.
    Open source →
  34. 0.2.0 21 Dec 2017
    Release notes
    • Add build_to option to Builder configuration.
    • Add BuildConfig.fromBuildConfigDir for cases where the package name and dependencies are already known.
    • Add TargetBuilderConfig class to configure builders applied to specific targets.
    • Add TargetBuilderConfigDefaults class for Builder authors to provide default configuration.
    • Add InputSet and change sources and generate_for to use it.
    • Remove BuildTarget.isDefault and 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 BuildConfigSet class. This was unused.
    • Hide Pubspec class. Construct BuildConfig instances with a package path rather than an already created Pubspec instance.
    Open source →
  35. 0.1.1 30 Nov 2017
    Release notes
    • Add auto_apply option to Builder configuration.
    • Add required_inputs option to Builder configuration.
    • Add is_optional option to Builder configuration.
    Open source →
  36. 0.1.0 14 Nov 2017
    Release notes
    • Initial release - pulled from package:dazel. Updated to support build_extensions instead of input_extension and output_extensions.
    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