- Fix some new lints.
- Fix a bug in the LRU cache.
- Allow the latest analyzer.
- Fix a bug compilation bug on the 2.14 sdk.
- Drop package:pedantic dependency and replace it with package:lints.
- Deprecate the
pubBinary
variable. - Add a
dartBinary
variable to be used instead ofpubBinary
. - Update
pub run
references todart run
.
- Support capture groups, a feature introduced in
build
:2.1.0
.
- Allow analyzer version 2.x.x.
- Migrate to null safety.
- Add an early error if any output extensions overlap with any input extensions to avoid infinite loops.
- Allow build_config
0.4.7
- Update to graphs
1.x
. - Update to build
2.x
. - Update to build_resolvers
2.x
.
- 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.
- Allow the latest
build_config
.
- Update glob to
2.x
.
- Allow the null safe pre-release of
package_config
andwatcher
.
- Allow the null safe pre-releases of all migrated deps.
- Allow build version
1.6.x
.
- Allow build_config version
'>=0.4.1 <0.4.6'
. - Allow yaml version
'>=2.1.11 <4.0.0'
.
- Allow
package:json_annotation
v4.x
.
- Support the latest
package:build_config
.
- Fix a bug where
canRead
would throw if thepackage
was unknown, instead of returningfalse
.
- Require the latest build version (1.5.1).
- Support the
additional_public_assets
option 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.
- Fix #1804.
- Require the latest build version (1.5.x).
- Add back the
overrideGeneratedOutputDirectory
method.
- Remove some constants and utilities which are implementation details.
- 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
withEnabledExperiments
function frompackage:build/experiments.dart
.
- Experiments are enabled for a zone by using the
- 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
.
PackageGraph.forPath
andPackageGraph.forThisPackage
are now static methods which return aFuture<PackageGraph>
instead of constructors.PackageNode
now requires aLanguageVersion
.
- 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
.
- Don't throw a
BuildScriptInvalidated
exception on package_config.json updates unless running from snapshot.
- Don't assume the existence of a .dart_tool/package_config.json file when creating output directories.
- Don't fail if there is no .dart_tool/package_config.json file.
- Add the
package_config.json
file as an internal source, and invalidate builds when it changes. - Avoid treating
AssetId
paths as URIs.
- Support the
auto_apply_builders
target configuration added inbuild_config
version0.4.2
.
- Add the
$package$
synthetic placeholder file and update the docs to prefer using only that orlib/$lib$
. - Add the
assets
directory and$package$
placeholders to the default sources allow list.
- Bug fix: Changing the root package name will no longer cause subsequent builds to fail (Issue #2566).
- Allow reading assets created previously by the same
BuildStep
.
- Add support for trimming builds based on
BuildStep.reportUnusedAssets
calls. See thebuild
package for more details. - Include
node/**
in the default set of sources (when there is no target defined) for the root package.
- Added a new
BuildFilter
class which matches a set of assets with glob syntax support for both package and file names. - Added
buildFilters
toBuildOptions
which is aSet<BuildFilter>
and is used to filter exactly which outputs will be generated.- Note that any inputs to the specified files will also necessarily be built.
BuildRunner.run
also now accepts an optionalSet<BuildFilter>
argument.FinalizedReader
also now accepts aSet<BuildFilter>
optional parameter and will only allow reading matched files.- This means you can create output directories or servers that respect build filters.
FinalizedReader.reset
now requires an additionalSet<BuildFilter>
argument.
- When skipping build script updates, don't check if the build script is a part of the asset graph either.
- Factor out the logic to do a manual file system scan for changes into a
new
AssetTracker
class.- This is not exposed publicly and is only intended to be used from the
build_runner
package.
- This is not exposed publicly and is only intended to be used from the
- Support the latest release of
package:json_annotation
.
- Fix --log-performance crash on windows by ensuring we use valid windows directory names.
- Support the latest
package:build_config
.
- Handle symlink creation failures and link to dev mode docs for windows.
- Explicitly require Dart SDK
>=2.2.0 <3.0.0
. - Fix an error that could occur when serializing outdated glob nodes.
- Add additional error details and a fallback for #1804
- Share an asset graph when building regardless of whether the build script was started from a snapshot.
- Only track valid and readable assets as inputs to globs. Fixes a crash when attempting to check outputs from an invalid asset.
- Remove usage of set literals to fix errors on older sdks that don't support them.
- Fix an issue where
--symlink
was forcing outputs to not be hoisted. BuildImpl
now takes an optional list ofBuildTargets
instead of a list ofbuildDirs
.- Warn when there are no assets to write in a specified output directory.
- Handle asset graph decode failures.
- Update
build_resolvers
to version1.0.0
.
- Fix an issue where the
finalizedReader
was notreset
prior to build.
- The
build
method now requires a list ofbuildDirs
. - Remove
buildDirs
fromBuildOptions
. - Added the
overrideGeneratedDirectory
method which overrides the directory for generated outputs.- Must be invoked before creating a
BuildRunner
instance.
- Must be invoked before creating a
- Update to
package:graphs
version0.2.0
. - Allow
build
version1.1.x
. - Update the way combined input hashes are computed to not rely on ordering.
- Digest implementations must now include the AssetId, not just the contents.
- Require package:build version 1.1.0, which meets the new requirements for digests.
- Fix a
NoSuchMethodError
that the user could get when adding new dependencies.
- Fix a bug where adding new dependencies or removing dependencies could cause
subsequent build errors, requiring a
pub run build_runner clean
to fix.
- Support running the build script as a snapshot.
- Added new exceptions,
BuildScriptChangedException
andBuildConfigChangedException
. These should be handled by scripts as described in the documentation. - Added new
FailureType
s ofbuildScriptChanged
andbuildConfigChanged
.
- Support the latest
package:json_annotation
.
- Update
package:build
version constraint to>1.0.0 <1.0.1
.
- The performance tracking apis have changed significantly, and performance
tracking now uses the
timing
package. - The
BuildOptions
static factory now takes aLogSubscription
instead of aBuildEnvironment
. Logging should be start as early as possible to catch logs emitted during setup.
- Use the
timing
package for performance tracking. - Added support for
BuildStep.trackStage
to track performance of custom build stages within your builder.
- Fixed a node invalidation issue when fixing build errors that could cause a situation which was only resolvable with a full rebuild.
- Fixed an issue where builders that didn't read their primary input would get invalidated on fresh builds when they shouldn't.
- Removed the constraint on reading files that output to cache from files that output to source.
- Bug Fix: Don't output a
packages
symlink within thepackages
directory.
- Restore
new
keyword for a working release on Dart 1 VM. - Bug Fix: Don't include any non-lib assets from dependencies in the build, even if they are a source in a target.
- Bug Fix: Don't include any non-lib assets from dependencies in the build, even if they are a source in a target.
- Release broken on Dart 1 VM.
- Migrated glob tracking to a specialized node type to fix #1702.
- Implementations of
BuildEnvironment
must now implement thefinalizeBuild
method. There is a default implementation if you extendBuildEnvironment
that is a no-op.- This method is invoked at the end of the build that allows you to do arbitrary additional work, such as creating merged output directories.
- The
assumeTty
argument onIOEnvironment
has moved to a named argument sincenull
is an accepted value. - The
outputMap
field onBuildOptions
has moved to theIOEnvironment
class.
- Added a
outputSymlinksOnly
option toIOEnvironment
constructor, that causes the merged output directories to contain only symlinks, which is much faster than copying files. - Added the
FinalizedAssetView
class which provides a list of all available assets to theBuildEnvironment
during the build finalization phase.outputMap
has moved fromBuildOptions
to this constructor, as a named argument.
- The
OverridableEnvironment
now supports overriding the newfinalizeBuild
api. - The number of concurrent actions per phase is now limited (currently to 16), which should help with memory and cpu usage for large builds.
- Support
package:json_annotation
v1.
- Tag errors from cached actions when they are printed.
- Changed the default file caching logic to use an LRU cache.
- Clarify wording for conflicting output directory options. No behavioral differences.
- Reduce the memory consumption required to create an output dir significantly.
- Increased the upper bound for the sdk to
<3.0.0
.
- Allow reuse cache between machines with different OS
- The hash dir for the asset graph under
.dart_tool/build
is now based on a relative path to the build script instead of the absolute path.- This enables
.dart_tool/build
directories to be reused across different computers and directories for the same project.
- This enables
- The
BuildPerformance
class is now serializable, it has afromJson
constructor and atoJson
instance method. - Added
BuildOptions.logPerformanceDir
, performance logs will be continuously written to that directory if provided. - Added support for
global_options
inbuild.yaml
of the root package. - Allow overriding the default
Resolvers
implementation. - Allows building with symlinked files. Note that changes to the linked files will not trigger rebuilds in watch or serve mode.
BuildPhasePerformance.action
has been replaced withBuildPhasePerformance.builderKeys
.BuilderActionPerformance.builder
has been replaced withBuilderActionPerformance.builderKey
.BuildResult
no longer has anexception
orstackTrace
field.- Dropped
failOnSevere
arguments. Severe logs are always considered failing.
- Remove dependency on package:cli_util.
Initial release, migrating the core functionality of package:build_runner to this package.