grinder
Grinder is a task runner for Dart, helping to define and automate common project workflows.
0.10.0
171K downloads/mo
#911 most downloaded on pub.dev
google/grinder.dart
What this package is like to depend on
Last release 1 months ago
01 Jul 2026
Release timing varies
gaps range from 2 months to 2.6 years
Some releases are documented
notes for 30 of 53 stable releases
Nothing withdrawn
no release was ever pulled
13 years old
58 releases · first in 2013
1 release in the last 12 months
see the full history below
Release timeline
58 releases · Sep 2013 to Jul 2026Releases
latest 58-
0.10.001 Jul 2026Release notes
Open source →-
Update the SDK constraint to 3.1.
-
Support package:cli_util 0.5.0.
-
Breaking change: Tasks can no longer take a
GrinderContextparameter. Instead, they must access thecontextgetter. -
Breaking change: Remove deprecated members
startGrinder(),task(),runProcess(),runProcessAsync(),getSdkDir(), andAnalyzer.analyzeFiles(). Remove the deprecatedquietargument toDart.version(). -
Breaking change: Remove
package:grinder/grinder_files.dart,package:grinder/grinder_sdk.dart, andpackage:grinder/grinder_tools.dart. All members provided by these libraries are still available through the mainpackage:grinder/grinder.dartlibrary. -
Breaking change: Mark all classes exported by this library as
finalexcept forGrinderContext. -
Breaking change: Tighten a number of static types to avoid
dynamicand better match the allowed runtime values.
-
-
0.9.509 Nov 2023Release notes
Open source →- Update the SDK constraint to 3.0.
- Rev to the latest version of
package:lints.
Release notes
Open source →- Update the SDK constraint to 3.0.
- Rev to the latest version of
package:lints.
-
0.9.427 Apr 2023 -
0.9.306 Feb 2023Release notes
Open source →- Remove the use of the
alwaysThrowsannotation. - Fixed an issue with the
analyzecommand and long paths on Windows (#392). - Populate the pubspec
repositoryfield. - Update the markdown badges in the readme.
Release notes
Open source →- Remove the use of the
alwaysThrowsannotation. - Fixed an issue with the
analyzecommand and long paths on Windows (#392). - Populate the pubspec
repositoryfield. - Update the markdown badges in the readme.
- Remove the use of the
-
0.9.222 Jun 2022Release notes
Open source →- Run all Dart SDK executables through
dartrather than their old standalone names.
- Run all Dart SDK executables through
-
0.9.104 Apr 2022Release notes
Open source →- Address an issue with the removal of the
pubtool from Dart 2.17 (#385). - Address an issue with the removal of the
dartfmttool from Dart 2.17.
- Address an issue with the removal of the
-
0.9.018 Mar 2021Release notes
Open source →- Publish
0.9.0stable. - Address an issue with the
Process.run()/RunOptions({bool runInShell})API (@liudonghua123).
- Publish
-
0.9.0-nullsafety.017 Jan 2021 pre-releaseRelease notes
Open source →- Support null-safety.
- Declare
Neverinstead ofNullforfail()andGrinderContext.fail(). - Make the
argsparameter toGrinderTask.execute()optional.
-
0.8.613 Oct 2020 -
0.8.509 Jun 2020 -
0.8.418 Mar 2020 -
0.8.320 Jul 2018 -
0.8.3+121 Jul 2019Release notes
Open source →- Mark
fail()andGrinderContext.fail()as@alwaysThrows. - Use
package:pedanticto analyze the package.
- Mark
-
0.8.210 May 2018 -
0.8.119 Dec 2017Release notes
Open source →- Added the ability to pass parameters to tasks from the command line (using
a
TaskArgsparameter on task functions) - Removed the older way to pass flags and options to tasks (via named and positional parameters on task functions)
- Remove a dependency on a non-strong mode package (
unscripted)
- Added the ability to pass parameters to tasks from the command line (using
a
-
0.8.029 Oct 2015Release notes
Open source →- Removed deprecated constants: BIN_DIR, BUILD_DIR, LIB_DIR, WEB_DIR
- Removed the 120-col line wrapping on task output
- Added a task for DDC (dev_compiler)
- Fixed an issue where we were emitting overly verbose stack traces on failures
- Fixed an issue where we would emit stdout after a failure, even when the stdout had been emitted as part of the task
- Added
outFileandenableExperimentalMirrorsto the dart2js task - Some grinder output now written using ansi colors
- Removed the deprecated
defaultInitmethod. - Added a task for dartdoc
- Added a new
sdkBin()method
-
0.8.0+113 Nov 2015 -
0.8.0+227 Jan 2016Release notes
Open source →- Added
categoriesandextraArgsparameters toDart2Js.compile()andDart2Js.compileAsync()
- Added
-
0.8.0+316 Oct 2016Release notes
Open source →- All APIs, including
pub run grinder, always use the same Dart version as the user.
- All APIs, including
-
0.8.0-dev.229 Oct 2015 pre-releaseNothing published for this version
-
0.8.0-dev.126 Oct 2015 pre-releaseNothing published for this version
-
0.7.209 Jul 2015Release notes
Open source →- Auto-expand directories passed to
Analyzer.analyze()to a list of Dart source files using the added methodfindDartSourceFiles(). - Add tests for
Analyzer.analyze()task. - Add
sourceDirsandexistingSourceDirsto return the projects top-level directories usually containing Dart source files. - Deprecate the
Testsclass (in favor ofTestRunner) - Add
lineLengthas an optional argument toDartFmt.format
- Auto-expand directories passed to
-
0.7.119 May 2015Release notes
Open source →- Added
grind --completion installcommand to install tab-completion for task names and options ingrind. - Improved
grind -h(help) output. Dart.runnow takes an optionalvmArgs, a list of arguments passed to the Dart VM.- Added
downgrademethod doPub. - Introduce
RunOptionsto support allProcess.run/Process.startparameters. TheworkingDirectoryparameter is now deprecated in all methods, useRunOptions.workingDirectoryinstead. - Added
PubApp.runAsync. - In
Dart.run, deprecate the vmNewGenHeapMB and vmOldGenHeapMB options. - Added support for passing lists of files or directories to
DartFmt.format(). Analyzer.analyzeFilesis deprecated in favor ofAnalyzer.analyze.- Added a
Pub.global.list()method to list the installed applications. - added a
TestRunnerclass - a wrapper around the newtestpackage.
- Added
-
0.7.1+120 May 2015 -
0.7.1+224 May 2015 -
0.7.1+324 May 2015 -
0.7.021 Apr 2015Release notes
Open source →- Big changes! Task definitions are now primarily annotation based; see the readme for more information and an example
- The
GrinderContextarg is no longer expected in task functions. Instead, thecontextvariable (and thelogandfailfunctions) are available as global variables. They're injected into the zone running the current task. pub [global] run grinder:grindno longer work, usepub [global] run grinderinstead. Add:grinderif usingpub runin Dart SDK < 1.10.copyFileandcopyDirectoryand deprecated in favor of a newcopymethoddeleteEntityis deprecated in favor of a newdeletemethod- Renamed
runProcess/runProcessAsync/runDartScripttorun/runAsync/Dart.run. Process result info (stdout, stderr, exitCode) is now exposed by these methods and some others which call them. - Added a wrapper class around
pub global activate/run/pub runapplications -PubApp - Grinder can now create a simple starter script for a project - run
pub run grinder:init
-
0.7.0-dev.210 Apr 2015 pre-releaseNothing published for this version
-
0.7.0-dev.129 Mar 2015 pre-releaseNothing published for this version
-
0.6.629 Jan 2015Nothing published for this version
-
0.6.6+131 Jan 2015Nothing published for this version
-
0.6.6+231 Jan 2015Nothing published for this version
-
0.6.6+305 Feb 2015Nothing published for this version
-
0.6.514 Jan 2015Release notes
Open source →- added
defaultInit()anddefaultClean()methods, for common tasks - added methods for Pub.global.activate and Pub.global.run
- added an optional
workingDirectoryargument to more methods - added a
--versioncommand line flag - have the version command check to see if there's a newer version of grinder available
- the dart2js compile tasks now create the output directory if it doesn't exist
- added
-
0.6.418 Dec 2014Release notes
Open source →- clarify that users should put their build scripts in
tools/grind.dart - add a
getSdkDirmethod
- clarify that users should put their build scripts in
-
0.6.4+123 Dec 2014Nothing published for this version
-
0.6.311 Dec 2014Nothing published for this version
-
0.6.213 Nov 2014 -
0.6.113 Oct 2014 -
0.6.024 Sep 2014Release notes
Open source →The convenience API is now more terse:
- the
defineTask()method has been renamed totask() - instead of named parameters, the
task()function now uses optional positional parameters
Added two new entrypoint files in
bin/:grind.dartandgrinder.dart. These let you run grinder via:pub run grinder testThey look for a corresponding grinder script in the
tooldirectory (bin/grind.dartlooks fortool/grind.dartandbin/grinder.dartlooks fortool/grinder.dart). If they find a corresponding script they run it in a new Dart VM process. This means that projects will no longer have to have agrind.shscript in the root of each project.PubTool's build methods now take an optional
workingDirectoryargument.Removed
runSdkBinaryandrunSdkBinaryAsync, and they are no longer needed. UserunProcessandrunProcessAsyncinstead.The methods on
PubToolsandDart2jsToolsare now static - you no longer need to create an instance to use them. Also,PubToolswas renamed toPubandDart2jsToolswas renamed toDart2js. And a new utility class for dartanalyzer -Analyzer- was created. - the
-
0.5.729 Jul 2014Release notes
Open source →- added
runProcessAsync()and related async methods (such asPubTools.buildAsync(...)) - removed duplicated stack traces when the build fails with exceptions
- throw an exception when running SDK binaries, and we are not able to locate the Dart SDK
- added
-
0.5.621 Jul 2014Nothing published for this version
-
0.5.423 May 2014Nothing published for this version
-
0.5.322 May 2014Nothing published for this version
-
0.5.211 Apr 2014Nothing published for this version
-
0.5.106 Jan 2014Nothing published for this version
-
0.5.003 Jan 2014Nothing published for this version
-
0.4.521 Dec 2013Nothing published for this version
-
0.4.410 Dec 2013Nothing published for this version
-
0.4.327 Nov 2013Nothing published for this version
-
0.4.226 Nov 2013Nothing published for this version
-
0.4.125 Nov 2013Nothing published for this version
-
0.4.011 Nov 2013Nothing published for this version
-
0.1.030 Oct 2013Nothing published for this version
-
0.0.718 Oct 2013Nothing published for this version
-
0.0.609 Oct 2013Nothing published for this version
-
0.0.501 Oct 2013Nothing published for this version
-
0.0.424 Sep 2013Nothing published for this version