merry 2.0.0
merry: ^2.0.0 copied to clipboard
A script manager for Dart/Flutter — define script shortcuts in pubspec.yaml and run them with a single command.
2.0.0 #
Merry is a maintained fork of derry by Frenco, which has been unmaintained since February 2023. All original functionality is preserved and the script definition format is fully compatible — only the CLI command name changes.
Breaking changes #
- Package renamed from
derrytomerry; CLI command is nowmerry - Minimum Dart SDK raised to
>=3.10.4 - Scripts definition file is now named
merry.yamlby convention (any filename is still accepted)
Bug fixes #
- Fix missing
awaitbefore main script execution, which caused post-hooks to run concurrently with the main script instead of after it - Fix Ctrl+C propagation: signals now reliably kill the child process across
multiple script executions; previously
ctrlc::set_handlerwas called once per script invocation, causing a panic on the second call - Fix CI blob build workflow:
ubuntu-20.04andmacos-13runners are retired; WindowsCOPYfailed with a file-lock error when the Dart runtime had the existing DLL open
New features #
-
(default)— Define a default script for a command group, executed when the group name is used without a sub-commandbuild: (default): flutter build apk web: flutter build web -
Positional arguments (
$1,$2, …) — Inject individual command-line arguments into a script by positiongreet: echo Hello $1 # merry greet World → echo Hello World -
(workdir)— Run a script in a specific working directorynative: (workdir): packages/native (scripts): cargo build --release -
Platform-specific scripts (
(linux),(macos),(windows)) — Select the right script automatically based on the current OS; falls back to(scripts)if no platform key matchesopen: (linux): xdg-open . (macos): open . (windows): explorer . -
(aliases)— Define short aliases for frequently-used commandsinstall: (aliases): [i, in] (scripts): dart pub get # merry i → merry install -
(variables)/${VAR}— Define reusable variables scoped to the scripts map; environment variables are used as a fallback for unknown names(variables): OUTPUT: build/release bundle: flutter build apk --output ${OUTPUT} -
merry ls --output=json— Machine-readable JSON output for tooling integration (e.g. VS Code extensions); use--output=tree(default) for the existing human-readable treemerry ls --output=json # {"name":"my_app","version":"1.0.0","scripts":[{"path":"build","commands":[...]},...]}
Migrating from derry #
- Deactivate derry and install merry:
dart pub global deactivate derry dart pub global activate merry - Replace all
derryinvocations withmerryin scripts, CI pipelines, and documentation - Optionally rename
derry.yaml→merry.yamland update thescripts:value inpubspec.yaml— existing filenames continue to work unchanged - No changes to script definitions are required
1.5.0 #
- Add support for M1 Macs
- Blob sizes are now much smaller
- Opted-in to sound null-safety
- Rewrite most of the existing codes to be more concise and clearer, and also more performant by reducing io reads as much as possible and by caching a lot
- Use meaningful error codes with better error messages
- Rename
subcommandstoreferences - Remove "execution type" which is useless and confusing
- Publishing is now done via GitHub Actions
1.4.3 #
- Bump version to correct
derry --version
1.4.2 #
- Fix a bug by correctly passing extra arguments to parsed subcommands
1.4.1 #
- Add description option usage to README documentation
1.4.0 #
- Add description option which can now be used by
derry ls -dcommand
1.3.0 #
- Update dependencies
- Refactor code with organized imports and typedefs according to new formatter rules
1.2.1 #
- Normalize absolute paths for
derry sourcecommand - Format old changelogs
1.2.0 #
- Enforce stricter linter rules and refactor according to it
- Support
pre&postscripts - Move native code into a separate directory
1.1.1 #
- Format according to
dartfmtto get better pub score
1.1.0 #
- Scripts now return exit codes
- Remove
--slientor-soption fromruncommand - Change info lines' styles
- Reduce exported API elements to only commands and version
1.0.5 #
- Update pub package description
1.0.4 #
- Refactor to not expose all APIs but only important ones so most library APIs will not be available
- Add more documentation comments
1.0.3 #
- Format error types in error messages to be uppercase
1.0.2 #
- Rename
derry updatecommand toderry upgrade - Fix type casting error on extra arguments
1.0.1 #
- Format changelogs according to pub.dev
1.0.0 #
- Today I learned how versioning system actually works
0.1.4 #
- Derry now uses
lintinstead ofpedanticas code linter & analyzer - Code base is now formatted according to the
lint's rules - Use
stdoutandstderrinstead ofprint
0.1.3 #
- Add support for nested subcommands like
$generate:envto run asderry generate env - Add support for
derry updatecommand - Sort output of
derry lstree - Remove alias list
0.1.2 #
- Now
runscripts can be used without using therunkeyword. For example,derry testcan be used instead ofderry run testwithout explicit implementations, for all scripts - Remove the old
buildandtestalias implementations - The derry commands no longer print the current directory on the script execution
0.1.1+1 #
- Update the pub link in README.md from
httptohttpsto get better pub score
0.1.1 #
- Refactor ffi directory to bindings directory
- Refactor usage lines to be all lowercase and with no period
- Adde
derry --versionoption
0.1.0 #
- Add support for
derry sourcecommand
0.0.9 #
- Add support for using subcommands with options/arguments/parameters
0.0.8+1 #
- Fix #20
MultipleHandlersError caused by #12 fix
0.0.8 #
- Fix #12 Ctrl-C Error
- Add
-sas abbrreviation for--silent
0.0.7+1 #
- Fix #14 error on not being able to use options caused by previous changes
0.0.7 #
- Add support for nested scripts
- Modify
Did you mean this?check andlscommands to work well with nested scripts - Breaking changes on
Advanced ConfigurationAPI for compatibility with nested scripts
0.0.6 #
- Add
Did you mean this?check by usingstring-similaritypackage - Fix null infoLine error
- Fix command not found unhandled exceptions
0.0.5 #
- Add
derry lscommand - Updat documentation
0.0.4 #
- Add support for
testandbuildaliases - Better and consistent error messages with an API
0.0.3+1 #
- Modify README to work correctly on pub.dev
0.0.3 #
- Add support for
--silent - Refactor Rust source code
- Start using derry for build
- Modify documentation
0.0.2 #
- Add support for subcommands
0.0.1 #
- Initial version, scaffolded by Stagehand
- Add support for list definitions
- Add support for configurable execution type
- Add support for win64, linux64, and (mac64)
- Add tests for helpers