NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
pub.dev · #437 most downloaded on pub.dev
A Dart template generator which helps teams generate files quickly and consistently.
Last release 20 days ago
15 Sep 2026
Release timing varies
gaps range from 2 weeks to 10 months
Nearly every release is documented
notes for 4 of 4 stable releases
Nothing withdrawn
no release was ever pulled
6 years old
122 releases · first in 2020
One column per quarter.
BREAKING feat: restructure brick.yaml vars to support type, description, and default:
brick.yaml vars to support type, description, and default:name: example
description: An example brick.
# The following defines the version and build number for your brick.
# A version number is three numbers separated by dots, like 1.2.34
# followed by an optional build number (separated by a +).
version: 0.1.0+1
# Variables specify dynamic values that your brick depends on.
# Zero or more variables can be specified for a given brick.
# Each variable has:
# * a type (string, number, or boolean)
# * an optional short description
# * an optional default value
# * an optional prompt phrase used when asking for the variable.
vars:
name:
type: string
description: Your name
default: Dash
prompt: What is your name?
BREAKING feat: add version to bundle
BREAKING refactor: API improvements to MasonBundle, MasonGenerator, and DirectoryGeneratorTarget
MasonBundle
MasonGenerator.generate(...)
Logger and FileConflictResolutionDirectoryGeneratorTarget
Logger and FileConflictResolution (moved to generate API above)Before
final generator = MasonGenerator.fromBundle(myBundle);
final target = DirectoryGeneratorTarget(dir, Logger(), FileConflictResolution.skip);
await generator.generate(target, vars: {...});
After
final generator = MasonGenerator.fromBundle(myBundle);
final target = DirectoryGeneratorTarget(dir);
await generator.generate(
DirectoryGeneratorTarget(tempDir),
vars: {...},
logger: Logger(), // optional logger
fileConflictResolution: FileConflictResolution.skip, // optional conflict resolution strategy
);
fix: ignore FileConflictResolution when there are no conflicts
docs: README updates and upgrade example bricks
chore: upgrade to mason_logger: v0.1.0-dev.4
BREAKING feat: add version to brick.yaml
brick.yamlRenderTemplate extension on String
render APIs
RenderTemplate extension on Stringfeat: decompose mason into mason, mason_cli and mason_logger
mason into mason, mason_cli and mason_logger
package:mason - core generatorpackage:mason_cli - command line interfacepackage:mason_logger - reusable loggerNothing published for this version
feat: add generator hooks support (custom script execution)
mason bundle outputpre_gen and post_gen hooksfix: mason new output format improvements
mason new output format improvements
logger.detail instead of logger.success color for consistencyfix: partials file name resolution
fix: nested lambdas within loops
feat: improve automatic update prompt style
feat: add automatic update support
feat: conditional file and directory creation support
BREAKING refactor: remove mason install and mason uninstall
mason install and mason uninstall
mason install -> mason add -gmason uninstall -> mason remove -gmason init generated mason.yamlmason list empty outputmason remove commandmason add commandmason init command automatically gets first brickmason get commandrefactor: remove dart:io platform dependency
dart:io platform dependencyfeat: add append conflict resolution strategy
fix: vars in brick.yaml are not required
vars in brick.yaml are not requiredfix: mason bundle resolves implicit_dynamic_map_literal in generated Dart bundle
mason bundle resolves implicit_dynamic_map_literal in generated Dart bundlefix: mason bundle add .otf support
mason bundle add .otf supportfeat: custom file conflict resolution via mason make --on-conflict
mason make --on-conflict` ├── HELLO.md ├── {{~ footer.md }} └── {{~ header.md }} `
feat: support partials
Example:
├── HELLO.md
├── {{~ footer.md }}
└── {{~ header.md }}
{{~ header.md }}
# 🧱 {{name}}
{{~ footer.md }}
_made with 💖 by mason_
HELLO.md
{{> header.md }}
Hello {{name}}!
{{> footer.md }}
$ mason make hello --name Dash
HELLO.md
# 🧱 Dash
Hello Dash!
_made with 💖 by mason_
fix: improve mason make --help to show complete usage information
fix: improve mason make --help to show complete usage information
Generate code using an existing brick template.
Usage: mason make [arguments]
-h, --help Print this usage information.
-c, --config-path Path to config json file containing variables.
-o, --output-dir Directory where to output the generated code.
(defaults to ".")
Run "mason help" to see global options.
feat: add OverwriteRule for file conflict resolution (Yna)
OverwriteRule for file conflict resolution (Yna)
Y - overwrite (default)n - do not overwritea - overwrite this and all othersfix: create target directory if it does not exist
feat!: update mason make to support custom output directory via --output-dir (-o)
mason make to support custom output directory via --output-dir (-o)mason bundle --directory (-d) to mason bundle --output-dir (-o)mason make --json (-j) to mason make --config-path (-c)feat!: remove --force from mason cache clear
--force from mason cache clear
mason cache clear will remove all local bricks so --force is not necessarymason cache clear behavior to always clear local and global brick cachesmason list duplicate bricksMasonCache to BricksJson
docs: update command descriptions for consistency
mason list commandfeat: add mason uninstall command
mason uninstall commandfix: adjust mason cache clear --force target directory to avoid deleting local files
mason cache clear --force target directory to avoid deleting local filesfix: local mason get installation location for remote bricks
mason get no longer supports --force since it is handled automaticallyfeat: mason install command for global brick templates
feat!: windows compatibility fixes
mason get --forcefeat: new templates are readily available
bundlefix: improved error handling and error reporting
mason new is missing a brick namemason make is missing a subcommandmason get handle empty brick list in mason.yamlbricks.json is empty.READMErefactor: update logger api to support nullable strings
BREAKING feat: migrate to null safety
{{% %}} for windows compatibilityfix: mason bundle path resolution fixes
mason bundle path resolution fixesfeat: exclude analyzer warnings from dart bundle
feat: add MasonGenerator.fromBundle
mason bundle commandMasonGenerator.fromBundlefeat: add mason cache clear command
mason cache clear commandmason get restores bricks when brick.json is empty/missingfix: support non-ascii characters in templates
fix: issue with variable mutation which excluded variables within arrays
feat: export MasonGenerator and relevant objects to allow mason to be consumed as a library
MasonGenerator and relevant objects to allow mason to be consumed as a libraryfromGitPath on MasonGeneratorfix: file loop content template variable resolution
fix: mason init incorrectly throwing MissingMasonYamlException
BREAKING revert: remove dart executable template support
lowerCase and upperCase lambdasfeat: support dart execution inside templates
brick.yamlBREAKING: mason make creates subcommands for all available bricks
mason make creates subcommands for all available bricks
mason make <BRICK_NAME> -- --var1 value1 --var2 value2 -> mason make <BRICK_NAME> --var1 value1 --var2 value2mason make -h provides a list of available subcommands based on available bricksmason get to get all bricksmason get --forcemason.yaml and brick.yamlmason.yamlbrick.yamlfeat: add mason new to create a new brick
mason new to create a new brickmason init sets up bricks with samplevarsvarsQuick Start sectionfix: mason init path resolution
feat: improve mason init output
mason init outputfeat: improve CLI output and error messages
mason initBREAKING: rename templates to bricks
templates to bricks
__template__ to __brick__template.yaml to brick.yamlmason build to mason makefeat: support file resolution from path variable
fix: unhandled json exception when --json omitted
json exception when --json omittedfeat: support for --json option in mason build
--json option in mason buildBREAKING mason.yaml is required
mason.yaml is requiredmason.yaml format changed
__template__mason.yaml format changedmason.yaml will be usedREADME updates- feat: support mason.yaml - feat: support prompts for vars - refactor: use CommandRunner - docs: README updates
mason.yamlCommandRunnerREADME updatesfix: stop progress on build error
- fix: mason CLI version fix
feat: support for remote templates
Your coding agent can read these notes before it upgrades. Set up the MCP server →