Upgrading build 0.6 to 0.7
Breaking0.6.3 → 0.7.3Breaking8Deprecated2New7Changed1Fixed2Other1
BreakingUpgrade verdict
7 breaking changes.
In plain terms
- You no longer have to clean up resolvers yourself; the build system does it for you.
- The Asset type is gone; use AssetId and the read methods instead.
- Use the resolver property instead of calling resolve.
- Writing a string asset now takes an AssetId and an optional encoding instead of an Asset.
Must act Top 5 of 9 that need code or config changes
What you must change
Breaking7
Removes Resolver.release; resolvers from a BuildStep no longer need to be released.
ResolverResolver.release()BuildStepRemoves the Asset class entirely.
AssetRemoves BuildStep.resolve, replaced by the BuildStep.resolver getter.
BuildStepBuildStep.resolve()BuildStep.resolverChanges AssetWriter.writeAsString to Future writeAsString(AssetId id, String contents, {Encoding encoding}).
AssetWriterAssetWriter.writeAsString()AssetIdEncodingChanges AssetWriterSpy.assetsWritten from Iterable<Asset> to Iterable<AssetId>.
AssetWriterSpyAssetWriterSpy.assetsWrittenAssetAssetIdReplaces BuildStep.input (Asset) with BuildStep.inputId (AssetId); read the primary input via readAsString or readAsBytes.
BuildStepBuildStep.inputBuildStep.inputIdBuildStep.readAsString()BuildStep.readAsBytes()AssetAssetIdResolver.getLibrary now throws NonLibraryAssetException instead of returning null for impossible libraries.
ResolverResolver.getLibrary()NonLibraryAssetExceptionDeprecations to plan for
Deprecated2
Deprecates
BuildStep.logger, which is replaced by the top-level log getter.BuildStep.loggerlogDeprecates
ManagedBuildStep; all build runs should go through runBuilders.ManagedBuildSteprunBuildersAPI changes
Generated by DepDelta from published Dart source. Not mixed with prose notes.
- removed:
class Asset - removed:
ctor Asset(this.id, this.stringContents) - removed:
field Asset.id: final AssetId - removed:
field Asset.stringContents: final String - removed:
get BuildStep.input: Asset - removed:
method Asset.toString(): String - removed:
method BuildStep.resolve(AssetId id, {bool resolveAllConstants, List<AssetId> entryPoints}): Future<Resolver> - removed:
method Resolver.release(): void - changed:
ctor ManagedBuildStep( Asset input, Iterable<AssetId> expectedOutputs, AssetReader reader, AssetWriter writer, String packageName, Resolvers resolvers, {Logger logger}) → ctor ManagedBuildStep( AssetId inputId, Iterable<AssetId> expectedOutputs, AssetReader reader, AssetWriter writer, String packageName, Resolvers resolvers) - changed:
get AssetWriterSpy.assetsWritten: Iterable<Asset> → get AssetWriterSpy.assetsWritten: Iterable<AssetId> - changed:
method AssetWriter.writeAsString(Asset asset, {Encoding encoding = …}): Future → method AssetWriter.writeAsString(AssetId id, String contents, {Encoding encoding = …}): Future - changed:
method AssetWriterSpy.writeAsString(Asset asset, {Encoding encoding = …}): Future → method AssetWriterSpy.writeAsString(AssetId id, String contents, {Encoding encoding = …}): Future - changed:
method BuildStep.writeAsString(Asset asset, {Encoding encoding = …}): Future → method BuildStep.writeAsString(AssetId id, String contents, {Encoding encoding = …}): Future - changed:
method Resolvers.get( BuildStep buildStep, List<AssetId> entryPoints, bool resolveAllConstants): Future<Resolver> → method Resolvers.get(BuildStep buildStep): Future<ReleasableResolver> - added:
class NonLibraryAssetException implements Exception - added:
class ReleasableResolver: abstract implements Resolver - added:
ctor AssetId.resolve(String uri, {AssetId from}) - added:
ctor NonLibraryAssetException(this.assetId) - added:
field NonLibraryAssetException.assetId: final AssetId - added:
get BuildStep.inputId: AssetId - added:
get BuildStep.inputLibrary: Future<LibraryElement> - added:
get BuildStep.resolver: Future<Resolver> - added:
get log: Logger - added:
method AssetReader.readAsBytes(AssetId id): Future<List<int>> - added:
method AssetWriter.writeAsBytes(AssetId id, List<int> bytes): Future - added:
method AssetWriterSpy.writeAsBytes(AssetId id, List<int> bytes): Future - added:
method BuildStep.readAsBytes(AssetId id): Future<List<int>> - added:
method BuildStep.writeAsBytes(AssetId id, List<int> bytes): Future - added:
method NonLibraryAssetException.toString(): String - added:
method ReleasableResolver.release(): void - added:
method Resolver.isLibrary(AssetId assetId): bool