dartle 0.34.0
dartle: ^0.34.0 copied to clipboard
A simple build system written in Dart. Tasks can be declared in a regular Dart file, or Dart applications can use this package to create their own build systems.
Dartle Release Notes #
done, waiting for next release #
0.34.0 #
- added a new hook:
onEverythingUpToDate. Allows customizing the message shown when "Everything is up-to-date". - require Dart SDK 3.9.0 to benefit from Dart performance improvements.
0.33.0 #
Dartle Cache #
- when directory is deleted, report all files within it that were deleted, not just the directory itself.
0.32.0 #
Dartle Cache #
- made
FileChangesendable through Isolates (some instances ofFileSystemEntitymay not be, so internallyFileChangeno longer holds one). - added
FileChange.pathandFileChange.entityKindproperties.
0.30.0 #
0.29.0 #
0.28.0 #
Dartle Core #
runBasicfunction now returns the tasks that may have been executed.- Fixed exports: both
ChangeSetandFileChangefromdartle_cacheare re-exported now.
Dartle Cache #
- Moved
ChangeSettodartle_cachelibrary. It's still exported by the main library as well.
Dartle Dart #
formattask is now incremental (only changed files are reformatted).
0.27.0 #
- log task name in bold.
- bumped all libraries versions.
0.26.0 #
- bumped all libraries versions.
0.25.0 #
Dartle Core #
- removed
cacheoption tocreateCleanTaskfunction andRunToDeleteclass. - fixed handling of
FINERlog messages to matchTRACElog level. - fixed bug in
RunToDelete: do not remove full directory as it may contain files filtered out by file-collection. - big internal reorganization of Dart files. Should not affect users importing
packge:dartle/dartle.dart.
Dartle Cache #
- changed methods that took
TaskInvocationto usenameandargs. Avoids taking up dependencies on Dartle Core types.
0.24.0 #
Dartle Core #
- fixed regression (in 0.23.1) reporting task errors.
- changed signature of
execProcandexecReadto take a function instead ofSet<int>to determine when exit code is success. - changed signature of
downloadand related functions to take a function instead ofSet<int>to determine when status code is success. - added optional
SecurityContextargument todownloadfunctions.
0.23.1 #
Dartle Core #
- removed double warning on missing task invocation.
- report single Exception without wrapping it into MultipleExceptions.
- fixed creation of new project if dartle.dart or pubspec.yaml files are missing.
0.23.0 #
Dartle Core #
- require Dart 3.
- removed Freezed build dependency.
- added
--disable-cache,-dcommand-line option. - added helper functions:
taskOutputs,tar,untar,tempFile,tempDir. - added parameter
FileCollection:allowAbsolutePaths(not recommended to set totruein normal builds). - improved reporting of how many tasks will run/dependencies/defaults.
Dartle Cache #
- new method:
hasTaskto determine whether a task has been executed.
0.22.2 #
- fixed metadata for Dart 3.
0.22.1 #
DartleCache #
- fixed mistake that caused build tasks' cached artifacts to be deleted accidentally.
0.22.0 #
Dartle Core #
- added new helper functions:
download,downloadTextanddownloadJson. - added helper function
homeDir. - added extension function to
File:writeBinary. - added default name
cleanfor task created bycreateCleanTask. - stopped exporting
StdStreamConsumer. UseexecRead,execProcorexecfunctions configuration instead. - made
execProcfail withProcessExitCodeExceptionif the process exit code is not zero (configurable via parametersuccessCodes). failBuildnow returnsNever, given it always throwsDartleException.
0.20.0 #
Dartle Core #
- fixed bug in
deleteAllin which it deleted full directory, not respectingfileExtensionsorexclusionsfilters. - added
tracelog level, used it for logging cache file checks. - added optional
cacheparameter tocreateCleanTask.
0.19.0 #
Dartle Core #
- support for incremental task actions.
- include task ArgsValidator info on verbose usage.
- removed dependency on
filepackage. - force deletion of task outputs when required.
- better error reporting on conflicting file collections for task RunCondition.
Dartle Cache #
- introduced versioning for cache. Allows future evolution.
- better detection of directory changes when files are deleted.
Dartle Dart #
- made the
testtask incremental. Only changed tests are executed. Use-fto force all.
0.18.0 #
Dartle Core #
- automatically run
dart pub getbefore trying to compiledartle.dartif dependencies not downloaded yet. - do not re-run task if previous run did not create certain declared outputs.
- added better support for logging colored/styled messages without formatting.
- logged messages are now printed in the same
Zonethey were emitted from.
0.17.0 #
Dartle Core #
- log stack-traces of all Exceptions when error is unknown or logging level is
debug. - fixed logger initialization on new task Actors. Parallel task action logging should now work properly.
- invalidate Dartle cache when re-compiling dartle.dart as tasks may have been modified.
0.16.0 #
Dartle Core #
- improved new projects created when 'dartle.dart' file is not found.
- only log task's runCondition when
debuglogging is enabled. - log executable tasks in a more compact way to better support large number of tasks.
0.15.0 #
Dartle Core #
- expose
runBasicfunction to allow embedding Dartle in other CLI tools. - made it possible to create
DartleCacheon a non-default location. - added support for exclusions in
FileCollectionfor directories. - added
unionmethod toFileCollection. - added
MultiFileCollectiontype. - added
createCleanTaskfunction to make it easier to clean builds. - changed CLI option
--colorful-logto--color. - respect
NO_COLORenvironment variable (https://no-color.org/). - added
environmentargument torunDartExefunction. - removed restriction on tasks ins/outs having to be within the project root dir.
- display tasks' runCondition when displaying task information (-s option).
Dartle Dart #
- fixed tasks inputs/outputs to respect
DartleDart.rootDir. - added new task,
compileExeto compile executables declared in pubspec.
0.14.1 #
- fixed the version in distribution.
0.14.0 #
Dartle Core #
- breaking change: refactored FileCollection (incl.
file,dirfunctions). Simplified how collections may be defined. - added 'PROFILE' log level and logged times of each significant build step.
- cleanup cache entries that are no long relevant after build.
- run post-run actions at end of each TaskPhase instead of only at the end of the build.
- better reporting of which tasks failed at end of build.
- cancel all pending tasks immediately on first build failure.
deleteOutputsfunction now works with all instances ofFileCondition, not onlyRunOnChanges.- new
RunConditionimplementation:RunToDelete(used to implement cleaning tasks). - fixed
deleteAllso it removes directories after emptying them. - improved
DartleCacheso it will not trust timestamps when diff is less than 1 second. Some file systems have low resolution timestamps. DartleCachenow hashes files by loading small buffer into memory at a time instead of whole file.DartleCachehash now distinguishes between empty file and empty directory.
Note: the file collection change was necessary for Dartle to be able to reliably detect build misconfiguration. It was previously next to impossible to determine when tasks had clashing outputs or were missing dependencies given the order in which files are read and written to. The new API is less powerful but should suffice in most cases, and it allows computing the intersection between tasks inputs and outputs reliably... that lets Dartle provide much more powerful diagnostics, getting it closer to providing reproduce-able builds.
Dartle Dart #
- breaking change: replaced
DartConfig.runBuildRunnerwithDartConfig.buildRunnerRunCondition. - improved Dart tasks dependencies to avoid errors in edge cases.
Note: the new
DartConfig.buildRunnerRunConditionproperty allows better control over when therunBuildRunnertask runs, which is important as it's an expensive task.
0.12.1 #
- include custom task phases in information about tasks.
0.12.0 #
- added build phases to ensure ordering between tasks without dependencies:
setup,build,teardown. - enabled parallelization of tasks by default.
0.11.0 #
- better error message when no default tasks exist and no tasks are selected.
- new
intersectionmethod added toFileCollection. - made most
FileCollectionmethods more platform-independent (handle path differences better). - auto-detect dependencies between tasks due to inputs/outputs - error if no explicitly dependency exists.
0.10.0 #
- ask user whether to create a new Dartle project if executed in directory not containing dartle.dart.
- Dart test task does not bomb when faced with unexpected output.
- fixed #6 - file inputs/outputs are cached separately per task.
0.9.1 #
- updated Dart test model library.
0.9.0 #
- new Dart Test reporter - shows better status of running tests and failed tests at the end.
- improved logging of how many tasks will run or are up-to-date.
- improved show-tasks output: includes which tasks would run and why.
- added
RunConditionCombineralong withORandANDimplementations. #3Dart lib: runPubGet on pubspec.yaml and lock file changes.
0.8.0 #
- non-null-by-default release.
- created dartle_dart library.
- compile dartle.dart into executable automatically when running 'dartle' executable.
- improved log messages.
0.6.1 #
- better 'debug' log level message color.
0.6.0 #
- improved logging output.
- added option to turn off colorful-log.
0.5.1 #
- Fixed Dartle version in published package.
0.5.0 #
- Added CLI --version option.
- Improved help messages.
- Run tasks in parallel when no dependencies force an ordering.
- Use different Isolates to run parallel tasks when their actions is a top-level function and the
-pflag is used. - Let tasks take arguments (e.g.
dartle task :arg). - Verify task's arguments using its
ArgsValidator. - Changed Task action's parameter list to take a non-optional
List<String>. - Fixed bug where not all executable tasks were shown with the -s flag.
0.4.0 #
- Implemented task dependencies.
- New option to show all build tasks.
- New option to show task graph.
- Use dart2native to compile dartle build file where available.
- Better error handling to avoid crashes.
- Improved process execution functions.
- Fixed RunOnChanges: must run task if its outputs do not exist.
- Changed failBuild function to throw DartleException (not call exit).
0.3.0 #
- Improved dartle caching.
- Attempt to use fastest snapshot method available to make script runs faster.
- Support choosing tasks by fuzzy name selection.
0.2.0 #
- Implemented dartle executable. Snapshots dartle.dart in order to run faster.
0.1.0 #
- Added basic functionality: run tasks, logging.
0.0.0 #
- Initial version, created by Stagehand