NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
pub.dev · #1494 most downloaded on pub.dev
Dart console SDK - write console (cli) apps/scripts using dart.
Last release 12 days ago
26 Sep 2026
Release timing varies
gaps range from 2 weeks to 4 months
Most releases are documented
notes for 42 of the last 60 stable releases
3 versions withdrawn
withdrawn after publishing
6 years old
301 releases · first in 2020
One column per quarter.
Add dcli compile --packed to distribute the compiled application and native libraries as one compressed, self-extracting executable. Keep the existing
dcli compile --packed to distribute the compiled application and native
libraries as one compressed, self-extracting executable. Keep the existing
hidden bundle mode by default. Cache extraction is serialized, verifies files,
and repairs missing or corrupted contents.dcli pack resources across independently gzip-compressed 256 KiB part
classes. Packing and extraction process parts serially with bounded buffers.
Existing generated resources remain readable; new resources require the
updated library and use unpack() rather than the legacy content getter.Detect native build hooks during compilation and bundle native libraries with the application. Scripts with bundled libraries now produce a native lau
.name.bundle/ directory containing the actual
executable and libraries. Run the launcher as usual; no parent lib/ directory
is created.Upgrade pubspec_manager to 4.0.0
BREAKING: change the case of stacktrace to stackTrace to conform with parent exceptions in a number of DCliException dervied classes.
BREAKING: change the case of stacktrace to stackTrace to conform with parent exceptions in a number of DCliException dervied classes.
upgraded lint_hard and circular buffer deps.
we now restore the XDG_RUNTIME_DIR and DBUS_SESSION_BUS_ADDRESS env vars on linux when releasing sudo priviledges. This is to help give tooling access to the linux credential store.
Added NamedLock.observe() for read-only diagnostic and monitoring snapshots without acquiring or otherwise affecting the observed lock.
NamedLock.observe() for read-only diagnostic and monitoring snapshots
without acquiring or otherwise affecting the observed lock.updated to using posix 6.5.1 so we can use its 'kill' command.
Removed deprecated public APIs and deprecated entry-point libraries.
NamedLock files to use the visible
pid.<pid>.isolate.<isolate>.name.<name> filename format.NamedLock files so stale
locks are detected when an operating system or container reuses a PID.ps process checks with native process APIs: kill(pid, 0) and
proc_pidinfo for macOS process start identities.Fixed a bug in the read where it was mixing codecs.
Change the script runner to use the --resident flag to improve startup times for dart scripts (from 5sec down to 1).
no using the document_throws package to document all exceptions.
$ 8.4.0
includeParentEnvironment to start() and startFromArgs() so child process inheritance can be controlled.DCLi functions which execute process have assumed that data is ascii which is incorrect as most cli system utilise utf-8. This updates changes the def
start() now take an 'encoding' parameter which is used if no Progress is passed to the method. If you pass in
a Progress then the encoding of that Progress is used.
corrected documentation for Progresses. Added a new progress 'both' which allows you to output both stdout and stderr via a single LineAction.
8.2.0 Fixes a major bug which could randomly cause a hang when running a process (.run, .start etc) due to a race condition. All users should upgrade
8.2.0 Fixes a major bug which could randomly cause a hang when running a process (.run, .start etc) due to a race condition. All users should upgrade to 8.2.0
exitCode was not being set for non-zero results due to the dart:io package having its own global exitCode setter.
upgraded to pubspec_manager 3.x
This is a re-release of 7.2 with the correct version number reflecting that breaking change.
Fixes #260 - thanks to @passy for the suggested fix.
Removed usage of deprecated const from win32.
upgraded to pubspec_manager 2.x
fixed missing await in sleepAsync causing it to return immediately.
exposed the sleepAsync function.
broken buid - generated files were missing.
updated to code to conform to the lates lint_hard lints. Work on the 'pack' command to ensure it generates code that conforms with the latest lint rul
Merge pull request #255 from davidmartos96/archive_v4 - thanks for the patch
BREAKING - copyTree now copies empty directories and links. To revert to the original behaviour pass in 'includeEmpty: false' and 'includeLinks: false
BREAKING - copyTree now copies empty directories and links. To revert to the original behaviour pass in 'includeEmpty: false' and 'includeLinks: false'.
Added new method withPrivilegesAsync
upgraded to archive 3.6.1 to overcome dart 3.5 compatibility issue.
attempt two at fixing the process runner bug.
fixed a bug in all of the 'process' runners caused by a changed to the native_synchronize package which now can be in a closed state. This confused ou
upgraded to archive 3.6.1 to overcome dart 3.5 compatibility issue. upgraded all packaages to scope 5.x upgraded all packages to lint_hard 5.x
upgraded to native_synchronise_temp 0.5.0 to resolve https://github.com/onepub-dev/dcli/issues/252
fixed a bug in chown. If the path was a directlry and recursive was true then we wouldn't change the permissions of the directory itself only its chil
Upgraded to win32 v5 to fix an issue with a deprecated api for dart 3.5.
Breaking
The AskValidator now takes an additional argument 'customErrorMessage'. This will only affect
users that have built custom ask validators.
change String validate(String line) to String validate(String line, {String? customErrorMessage})
and then return the customErrorMessage rather than you usual error message if the customErrorMessage is not null.
When outputing an error from you validator you should use customErrorMessage??'my original error'
Thanks to Emad Beltaje for the contribution!
Upgraded to win32 v5 to fix an issue with a deprecated api for dart 3.5.
We have left stub methods for the old withXXX form that are marked as deprecated and will throw an UnsupportedError if you call them.
We have left stub methods for the old withXXX form that are marked as deprecated and will throw an UnsupportedError if you call them.
-- withTempDir replaced by withTempDirAsync -- withFileProtection replaced by withFileProtectionAsync
Removed a number of redundant methods from the dcli package that were just pass throughs to the dcli_core package. As the dcli barrel file now exports the dcli_core functions for these methods there should be no noticiable difference in the API.
Added new method PubCache::pathToGlobalPackage
Fixed a bug in NamedLock which was causing a dead lock if the an existing lock file was found but the owning process was no longer runnimg.
change the #! bang to use dart rather than dcli. In the early days dcli had to read a script and set up the pubspec but we no longer support this mode
opened the win32 compatible version range. This resulted in a number of deprecated warnings which we have suppressed. This should be ok until we need…
Merge pull request #248 from sstasi95/master
Added a sync test for exitCode.
Nothing published for this version
added back in the missing nothrow arg to start method.
Most unit tests are now working and most of the common process execution paths appear to be working.
down graded max win32 version to 5.3 to avoid deprecation notices.
fetch/fetchMulti are now async.
Still a chunk more to do but the core 'good' paths seem to be mostly working when running processes. Optimistically this will get most people over the hump whilst we clean up the few remaining problems.
There are still some concerns around running a process in 'terminal' or 'detached' mode and I've not done any testing (and there is a path missing) of getting stdin attached to the process. This is probably the remaining 'big' issue but I think I can see a path through this.
Take it for a spin and let us know how you go. I will try to priorities the issues that are burning people the most.
Nothing published for this version
Nothing published for this version
The sleep function is now fully syncronous and blocks all async code from running. This is a BREAKING change as the previous version of sleep allowed…
fixed the sdk range for dcli_common
- upgrade settings_yaml version.
Nothing published for this version
BREAKING - removed the PubSpec class. We now recommend that you use the package pubspec_manager which provide similar (better) functionality We have a
Special thanks to Vyacheslav Egorov for contributing most of the work required to remove waitFor.
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 →