NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
pub.dev · #1138 most downloaded on pub.dev
Grinder is a task runner for Dart, helping to define and automate common project workflows.
Last release 1 months ago
03 Sep 2026
Release timing varies
gaps range from 2 months to 2.6 years
Some releases are documented
notes for 31 of 54 stable releases
Nothing withdrawn
no release was ever pulled
13 years old
59 releases · first in 2013
Bump the minimum Dart SDK version
Bump the minimum Dart SDK version (#437)
Update the SDK constraint to 3.8.
Deprecate Analyzer.version(), since the Dart analyzer no longer has a
separate version from the Dart SDK.
Grant permissions to the Dart publish GitHub Action
Grant permissions to the Dart publish GitHub Action
Update the SDK constraint to 3.1.
Support package:cli_util 0.5.0.
Breaking change: Tasks can no longer take a GrinderContext parameter.
Instead, they must access the context getter.
Breaking change: Remove deprecated members startGrinder(), task(),
runProcess(), runProcessAsync(), getSdkDir(), and
Analyzer.analyzeFiles(). Remove the deprecated quiet argument to
Dart.version().
Breaking change: Remove package:grinder/grinder_files.dart,
package:grinder/grinder_sdk.dart, and package:grinder/grinder_tools.dart.
All members provided by these libraries are still available through the main
package:grinder/grinder.dart library.
Breaking change: Mark all classes exported by this library as final
except for GrinderContext.
Breaking change: Tighten a number of static types to avoid dynamic and
better match the allowed runtime values.
One column per quarter.
Update the SDK constraint to 3.0.
package:lints.Update the SDK constraint to >=2.17.0 <4.0.0 .
>=2.17.0 <4.0.0.Remove the use of the alwaysThrows annotation.
alwaysThrows annotation.analyze command and long paths on Windows (#392).repository field.Fix all uses of removed Dart SDK executables
Fix all uses of removed Dart SDK executables (#390)
dart rather than their old standalone
names.Address an issue with the removal of the pub tool from Dart 2.17 (#385).
pub tool from Dart 2.17 (#385).dartfmt tool from Dart 2.17.Address an issue with the Process.run() / RunOptions({bool runInShell}) API (@liudonghua123).
0.9.0 stable.Process.run() / RunOptions({bool runInShell}) API (@liudonghua123).Declare Never instead of Null for fail() and GrinderContext.fail().
Never instead of Null for fail() and GrinderContext.fail().args parameter to GrinderTask.execute() optional.Declare a Null return type for fail() and GrinderContext.fail().
Null return type for fail() and GrinderContext.fail().Broaden the cli_util dependency to be compatible with version 0.2.0.
cli_util dependency to be compatible with version 0.2.0.Update the code to be package:pedantic v1.9.0 compliant.
package:pedantic v1.9.0 compliant.Merge pull request #343 from google/0.8.3+1
Merge pull request #343 from google/0.8.3+1
prep for v0.8.3+1
fail() and GrinderContext.fail() as @alwaysThrows.package:pedantic to analyze the package.Upgrade dependencies for Dart 2
Address some --preview-dart-2 runtime issues.
--preview-dart-2 runtime issues.Added the ability to pass parameters to tasks from the command line (using a TaskArgs parameter on task functions)
TaskArgs parameter on task functions)unscripted)Fixed a bug with the DDC --html-report option
--html-report optionAdded categories and extraArgs parameters to Dart2Js.compile() and Dart2Js.compileAsync()
categories and extraArgs parameters to Dart2Js.compile() and
Dart2Js.compileAsync()All APIs, including pub run grinder, always use the same Dart version as the user.
pub run grinder, always use the same Dart version as the
user.Removed deprecated constants: BIN_DIR, BUILD_DIR, LIB_DIR, WEB_DIR
outFile and enableExperimentalMirrors to the dart2js taskdefaultInit method.sdkBin() methodNothing published for this version
Nothing published for this version
Deprecate the Tests class (in favor of TestRunner)
Analyzer.analyze() to a list of Dart
source files using the added method findDartSourceFiles().Analyzer.analyze() task.sourceDirs and existingSourceDirs to return the projects top-level
directories usually containing Dart source files.Tests class (in favor of TestRunner)lineLength as an optional argument to DartFmt.formatAdd a files param to TestRunner.test.
files param to TestRunner.test.Add a Dart.runAsync static method.
Dart.runAsync static method.Fix bug with Dart.run/runAsync. Args were swapped.
Introduce RunOptions to support all Process.run/Process.start parameters. The workingDirectory parameter is now deprecated in all methods, use RunOpti…
grind --completion install command to install tab-completion for task names
and options in grind.grind -h (help) output.Dart.run now takes an optional vmArgs, a list of arguments passed to the Dart VM.downgrade method do Pub.RunOptions to support all Process.run/Process.start
parameters. The workingDirectory parameter is now deprecated in all methods,
use RunOptions.workingDirectory instead.PubApp.runAsync.Dart.run, deprecate the vmNewGenHeapMB and vmOldGenHeapMB options.DartFmt.format().Analyzer.analyzeFiles is deprecated in favor of Analyzer.analyze.Pub.global.list() method to list the installed applications.TestRunner class - a wrapper around the new test package.copyFile and copyDirectory and deprecated in favor of a new copy method
GrinderContext arg is no longer expected in task functions. Instead, the
context variable (and the log and fail functions) are available as global
variables. They're injected into the zone running the current task.pub [global] run grinder:grind no longer work, use
pub [global] run grinder instead. Add :grinder if using pub run in Dart SDK < 1.10.copyFile and copyDirectory and deprecated in favor of a new copy methoddeleteEntity is deprecated in favor of a new delete methodrunProcess/runProcessAsync/runDartScript to run/runAsync/Dart.run.
Process result info (stdout, stderr, exitCode) is now exposed by these
methods and some others which call them.pub global activate/run/pub run applications - PubApppub run grinder:initNothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
added defaultInit() and defaultClean() methods, for common tasks
defaultInit() and defaultClean() methods, for common tasksworkingDirectory argument to more methods--version command line flagNothing published for this version
clarify that users should put their build scripts in tools/grind.dart
tools/grind.dartgetSdkDir methodNothing published for this version
widen the version constraint on quiver
quiverwiden the version constraint on args
argsThe convenience API is now more terse:
The convenience API is now more terse:
defineTask() method has been renamed to task()task() function now uses optional
positional parametersAdded two new entrypoint files in bin/: grind.dart and grinder.dart. These
let you run grinder via:
pub run grinder test
They look for a corresponding grinder script in the tool directory
(bin/grind.dart looks for tool/grind.dart and bin/grinder.dart looks for
tool/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 a
grind.sh script in the root of each project.
PubTool's build methods now take an optional workingDirectory argument.
Removed runSdkBinary and runSdkBinaryAsync, and they are no longer needed.
Use runProcess and runProcessAsync instead.
The methods on PubTools and Dart2jsTools are now static - you no longer need
to create an instance to use them. Also, PubTools was renamed to Pub and
Dart2jsTools was renamed to Dart2js. And a new utility class for
dartanalyzer - Analyzer - was created.
added runProcessAsync() and related async methods (such as PubTools.buildAsync(...))
runProcessAsync() and related async methods (such as
PubTools.buildAsync(...))Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →