PackageTrack
Sign in Get early access

build

A package for authoring build_runner compatible code generators.

4.0.10 6.3M downloads/mo #114 most downloaded on pub.dev dart-lang/build

What this package is like to depend on

Last release 24 days ago

31 Jul 2026

Ships fairly regularly

a new release about every 4 weeks

Nearly every release is documented

notes for 105 of 108 stable releases

Nothing withdrawn

no release was ever pulled

11 years old

110 releases · first in 2016

12 releases in the last 12 months

see the full history below

Release timeline

110 releases · Jan 2016 to Jul 2026
2017 2018 2019 2020 2021 2022 2023 2024 2025 2026
Release Pre-release

Releases

latest 60 of 110
  1. 4.0.10 31 Jul 2026
    Release notes
    • Allow package_config 3.0.0.
    Open source →
    Release notes
    • Allow package_config 3.0.0.
    Open source →
  2. 4.0.9 27 Jul 2026
    Release notes
    • AssetId now validates package names in addition to paths.
    • Bug fix: more strictly prohibit absolute paths in AssetId path validation.
    Open source →
    Release notes
    • AssetId now validates package names in addition to paths.
    • Bug fix: more strictly prohibit absolute paths in AssetId path validation.
    Open source →
  3. 4.0.8 13 Jul 2026
    Release notes
    • Allow analyzer 14.0.0, require 13.3.0.
    • Require Dart 3.11.0.
    Open source →
  4. 4.0.7 08 Jul 2026
    Release notes
    • Replace Builder extension method hasOutputFor with matchesInput. Deprecate hasOutputFor. The new matchesInput is identical, but now that zero-output builders are supported the old name is misleading.
    • Require Dart 3.8.0.
    Open source →
  5. 4.0.6 27 Apr 2026
    Release notes
    • Allow analyzer 13.0.0.
    Open source →
  6. 4.0.5 20 Mar 2026
    Release notes
    • Allow analyzer 11.0.0 and 12.0.0.
    Open source →
  7. 4.0.4 13 Jan 2026
    Release notes
    • Allow analyzer 10.0.0.
    Open source →
  8. 4.0.3 19 Nov 2025
    Release notes
    • Allow analyzer 9.0.0.
    Open source →
  9. 4.0.2 08 Oct 2025
    Release notes
    • Require analyzer 8.0.0. Remove use of deprecated analyzer members, use their recommended and compatible replacements.
    Open source →
  10. 4.0.1 01 Oct 2025
    Release notes
    • Improvements to dartdoc.
    Open source →
  11. 4.0.0 02 Sep 2025
    Release notes
    • Remove methods and classes deprecated in 4.0.0.
    • Make AssetReader.digest abstract.
    • Remove unused deps: async, build_runner_core, convert.
    Open source →
  12. 3.1.0 02 Sep 2025
    Release notes
    • Deprecate runBuilder. It has been moved to package:build_runner_core and will be removed from package:build. Please note: the currently supported ways to run builders are using build_runner on the command line or build_test in 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.
    • Deprecate runPostProcessBuilder. Like runBuilder, it has been moved to package:build_runner_core and will be removed from package:build.
    • Deprecate AssetWriterSpy. It will be removed.
    • Deprecate MultiplexingBuilder. It will be removed.
    • Use build_runner_core 9.3.1.
    Open source →
  13. 3.0.2 15 Aug 2025
    Release notes
    • Use build_runner_core 9.3.0.
    • Documentation revamp.
    • Allow meta 1.16.0.
    Open source →
  14. 3.0.1 07 Aug 2025
    Release notes
    • Small improvements to RAM usage.
    • Allow analyzer 8.0.0.
    Open source →
  15. 3.0.0 17 Jul 2025
    Release notes
    • Removed unused deps: meta, pool.
    • Breaking: use the new element2 APIs in analyzer. Builders that do resolution need to switch to the new API, see https://github.com/dart-lang/sdk/blob/main/pkg/analyzer/doc/element_model_migration_guide.md. For questions please use https://github.com/dart-lang/build/discussions.
    Open source →
  16. 3.0.0-dev.2 16 Jul 2025 pre-release
    Release notes
    • Removed unused deps: meta, pool.
    Open source →
  17. 3.0.0-dev.1 24 Jun 2025 pre-release
    Release notes
    • Breaking: use the new element2 APIs in analyzer. Builders that do resolution need to switch to the new API, see https://github.com/dart-lang/sdk/blob/main/pkg/analyzer/doc/element_model_migration_guide.md. For questions please use https://github.com/dart-lang/build/discussions.
    Open source →
  18. 2.5.4 23 Jun 2025
    Release notes
    • Use build_runner_core 9.1.2.
    Open source →
  19. 2.5.3 20 Jun 2025
    Release notes
    • Use build_runner_core 9.1.1.
    Open source →
  20. 2.5.2 18 Jun 2025
    Release notes
    • Use build_runner_core 9.1.0.
    Open source →
  21. 2.5.1 17 Jun 2025
    Release notes
    • Use build_runner_core 9.0.1.
    Open source →
  22. 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.
    • AssetNotFoundException now also reports the missing path.

    Versions:

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

    Internal changes:

    • Add package:build/src/internal.dart for use by build_resolvers, build_runner_core and build_test.
    • Refactor PathProvidingAssetReader to AssetPathProvider.
    • Refactor MultiPackageAssetReader to internal AssetFinder.
    • Add internal Filesystem that backs AssetReader and AssetWriter implementations.
    • Refactor CachingAssetReader to FilesystemCache.
    • Refactor BuildCacheReader to BuildCacheAssetPathProvider.
    • Refactor FileBasedAssetReader and FileBasedAssetWriter to ReaderWriter.
    • Move BuildStepImpl to build_runner_core, use SingleStepReader directly.
    • Add LibraryCycleGraphLoader for loading transitive deps for analysis.
    • Track resolver dependencies as library cycle graphs.
    • Ignore deprecated analyzer API usages.
    Open source →
  23. 2.4.2 16 Dec 2024
    Release notes
    • Bump the min sdk to 3.6.0.
    • Remove some unnecessary casts and non-null assertions now that we have private field promotion.
    • Require analyzer ^6.9.0, allow <8.0.0.
    • Fix analyzer deprecations.
    Open source →
  24. 2.4.1 29 Jun 2023
    Release notes
    • Allow the latest analyzer (6.x.x).
    Open source →
  25. 2.4.0 08 May 2023
    Release notes
    • Add BuildStep.packageConfig getter to resolve a package config of all packages involved in the current build.
    Open source →
  26. 2.3.1 13 Sep 2022
    Release notes
    • Allow the latest package:analyzer.
    • Bump min sdk to 2.17.0.
    Open source →
  27. 2.3.0 15 Apr 2022
    Release notes
    • Support ^ in build extensions that don't use capture groups, which results in full path matching instead of suffix matching.
    Open source →
  28. 2.2.2 14 Apr 2022
    Release notes
    • Allow analyzer version 4.x.
    Open source →
  29. 2.2.1 20 Dec 2021
    Release notes
    • Fix a bug where builders were allowed to write to the same asset multiple times.
    Open source →
  30. 2.2.0 16 Dec 2021
    Release notes
    • Allow reusing the values held by Resources when the resource has a dispose method. Previously the instances were discarded and recreated for every build even if they had tried to clean up their own state.
    • Allow the latest analyzer.
    Open source →
  31. 2.1.1 01 Oct 2021
    Release notes
    • Throw an ArgumentError if an expected output matches the input.
    • Bump min sdk to 2.14.0.
    Open source →
  32. 2.1.0 02 Aug 2021
    Release notes
    • Expand the expressiveness of buildExtensions include capture groups, enabling directory moves.
    • Add an allowedOutputs getter to BuildStep. It returns assets that may be written in that step.
    Open source →
  33. 2.0.3 09 Jul 2021
    Release notes
    • Allow analyzer version 2.x.x.
    Open source →
  34. 2.0.2 27 May 2021
    Release notes
    • Handle failed resolvers in buildStep.complete.
    Open source →
  35. 2.0.1 20 Apr 2021
    Release notes
    • Require package:async version 2.5.0 and package:collection version 1.15.0.
    Open source →
  36. 2.0.0 12 Mar 2021
    Release notes
    • Migrate to null-safety
    • Breaking: Remove the deprecated rootPackage argument to runBuilder
    • Breaking: Change the first argument to AssetId.resolve from a String (which previously was required to be a valid URI) to a Uri instance. Call sites which have static errors can wrap the argument with Uri.parse().
    Open source →
  37. 1.6.3 17 Feb 2021
    Release notes
    • Use latest analyzer version 1.x.
    • Use latest glob version 2.x.
    Open source →
  38. 1.6.2 01 Feb 2021
    Release notes
    • Fix AssetId.resolve for empty uris
    Open source →
  39. 1.6.1 07 Jan 2021
    Release notes
    • Allow the null safe pre-releases of all migrated deps.
    Open source →
  40. 1.6.0 15 Dec 2020
    Release notes
    • Adds the Future<AstNode> astNodeFor(Element, {bool resolve}) api to Resolver which provides a safe way of getting ast nodes (avoiding InconsistentAnalysisExceptions).
    Open source →
  41. 1.5.2 02 Dec 2020
    Release notes
    • Allow the latest analyzer verion 0.41.x.
    Open source →
  42. 1.5.1 18 Nov 2020
    Release notes
    • Expose a set of valid inputs in InvalidInputException.
    • AssetReader implementations are now expected to throw InvalidInputExceptions when reading invalid inputs. The check has been removed from the build step implementation.
    Open source →
  43. 1.5.0 22 Sep 2020
    Release notes
    • Allow the latest analyzer version 0.40.x.
    • Added the Future<CompilationUnit> compilationUnitFor(AssetId id) api to the Resolver class, which returns only the parsed AST for the given asset.
      • Much cheaper than libraryFor, because it only reads the given asset instead of touching all transitive deps.
      • Still may be suitable for some builders which don't need the fully resolved Element model.
    Open source →
  44. 1.4.0 09 Sep 2020
    Release notes

    The resolver will now throw an SyntaxErrorInAssetException when attempting to resolve an asset with syntax errors. You can opt-out of this new behavior by passing allowSyntaxErrors: true to libraryFor.

    Open source →
  45. 1.3.0 11 May 2020
    Release notes

    Added a new experiments library which exposes a list of language experiments through a Zone variable. This should only be used by builders which are invoking compilers or some other tool and need to pass on the language experiments.

    Open source →
  46. 1.2.2 15 Nov 2019
    Release notes

    Updated docs for some minor behavior changes in build_resolvers 1.3.0

    • Resolver.libraries will now return any library that has been resolved with this resolver. This means calls to libraryFor or isLibrary on files not already resolved will make subsequent libraries streams return more libraries than previous calls did.
    • The same holds for findLibraryByName since it searches through the libraries stream. You may get a different result at different points in your build method if you resolve additional libraries.
    Open source →
  47. 1.2.1 28 Oct 2019
    Release notes
    • Allow analyzer 0.39.x.
    Open source →
  48. 1.2.0 20 Sep 2019
    Release notes
    • Add the void reportUnusedAssets(Iterable<AssetId> ids) method to the BuildStep class.
      • WARNING: Using this introduces serious risk of non-hermetic builds.
      • Indicates to the build system that ids were read but their content has no impact on the outputs of the build.
      • Build system implementations can choose to support this feature or not, and it should be assumed to be a no-op by default.
    Open source →
  49. 1.1.6 16 Aug 2019
    Release notes
    • Allow analyzer version 0.38.0.
    Open source →
  50. 1.1.5 15 Jul 2019
    Release notes
    • Allow analyzer version 0.37.0.
    Open source →
  51. 1.1.4 26 Apr 2019
    Release notes
    • Internal cleanup: use "strict raw types".
    • Some return types for interfaces to implement changed from Future<dynamic> to Future<void>.
    Open source →
  52. 1.1.3 04 Apr 2019
    Release notes
    • Update the minimum sdk constraint to 2.1.0.
    • Increased the upper bound for package:analyzer to <0.37.0.
    Open source →
  53. 1.1.2 26 Mar 2019
    Release notes
    • Internal fixes: Remove default value for optional argument.
    Open source →
  54. 1.1.1 31 Jan 2019
    Release notes
    • Requires analyzer version 0.35.0
      • Resolver implementations in other packages are now backed by an AnalysisDriver. There are behavior changes which may be breaking. The LibraryElement instances returned by the resolver will now:
        • Have non-working context fields.
        • Have no source offsets for annotations or their errors.
        • Have working session fields.
        • Have Source instances with different URIs than before.
    Open source →
  55. 1.1.0 14 Jan 2019
    Release notes
    • Add Resolver.assetIdForElement API. This allows finding the Dart source asset which contains the definition of an element found through the analyzer.
    • Include the AssetId hash code in the default digest implementation.
      • Any custom implementations of the AssetReader.digest method should do the same, and a comment has been added to that effect.
    Open source →
  56. 1.0.2 05 Dec 2018
    Release notes
    • Increased the upper bound for package:analyzer to <0.35.0.
    Open source →
  57. 1.0.1 08 Oct 2018
    Release notes
    • Increased the upper bound for package:analyzer to <0.34.0.
    Open source →
  58. 1.0.0 25 Sep 2018
    Release notes

    Breaking Changes

    • Changed the return type of Builder.build from Future<dynamic> to FutureOr<void>. This should not be breaking for most Builder authors, it is only breaking for build system implementations that run Builders.
    Open source →
  59. 0.12.8 24 Sep 2018
    Release notes
    • Added the T trackStage<T>(String label, T Function() action); method to BuildStep. Actions that are tracked in this way will show up in the performance timeline at /$perf.
    Open source →
  60. 0.12.7 21 Jun 2018
    Release notes
    • Added Resolvers.reset method.
    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