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 22 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.
chore(deps): various dependency upgrades
fix: loop rendering when parameters contains an empty list
chore(deps): upgrade pkg:archive to ^4.0.0
pkg:archive to ^4.0.0 (#1532)- chore: bump to stable v0.1.0 🎉
chore: add platforms to pubspec.yaml
platforms to pubspec.yaml (#1420)deps: loosen pkg:collection constraint for Flutter compat
pkg:collection constraint for Flutter compat (#1411)deps: tighten dependency constraints
fix: compile hooks to AOT when using AOT runtime
revert: fix: compile hooks to AOT when using AOT runtime
- fix: nested hooks execution
fix: compile hooks to AOT when using AOT runtime
chore(deps): upgrade pkg:mason_logger to ^0.2.15
pkg:mason_logger to ^0.2.15 (#1302)
3.3.0fix: update hook run to support long Dart formats
deps: upgrade to mason_logger v0.2.9
mason_logger v0.2.9
dart fix --applyfeat: support for type list in brick.yaml vars `yaml vars: languages: type: list description: Your favorite languages prompt: What are your favorite l
list in brick.yaml varsvars:
languages:
type: list
description: Your favorite languages
prompt: What are your favorite languages?
package:httpfeat: add PascalDotCase lambda and String extension
PascalDotCase lambda and String extensionpackage:recasefix: git brick install across file systems
Isolate.runfix: loop detection in runSubstitution
runSubstitutionfix: MasonBundle use fieldRename: FieldRename.snake
MasonBundle use fieldRename: FieldRename.snakefeat: add publishTo to MasonBundle
publishTo to MasonBundlefeat: support optional publish_to in brick.yaml
publish_to in brick.yamlfix: sort contents of bricks.json
bricks.jsonfeat: improve generated file output
Dart >=2.19, mason_logger ^0.2.5, and very_good_analysis ^4.0.0deps: upgrade to Dart >=2.17, mason_logger ^0.2.4, and very_good_analysis ^3.1.0
Dart >=2.17, mason_logger ^0.2.4, and very_good_analysis ^3.1.0createBundle and unpackBundle normalize bundled file paths.feat: export StringCaseExtensions
StringCaseExtensionsBREAKING refactor!: remove GeneratorHooks.fromBundle in favor of GeneratorHooks.fromBrickYaml.
GeneratorHooks.fromBundle in favor of GeneratorHooks.fromBrickYaml.__brick__ directorybuild/hooks directory within the corresponding hooks directoryMasonGenerator.fromBundle are stored in the bundled directory within the mason cache.fix: allow optional __brick__ directory
__brick__ directoryfix: hook execution after pub cache clean
fix: support mp3 binary file types
BREAKING feat!: avoid templating hook contents
mason_logger ^0.2.2chore(deps): upgrade to mason_logger ^0.2.0
mason_logger ^0.2.0refactor: use mason_logger ^0.1.3
mason_logger ^0.1.3fix: use file descriptor pooling
pubspec.yaml metadatafix: render asymmetrical shorthand lambda expressions correctly
refactor(deps): remove pkg:universal_io
pkg:universal_iomason_logger ^0.1.1fix: improve lambda shorthand syntax flexibility
mason_logger ^0.1.0fix: override toString on MasonException
toString on MasonExceptionperf: run substitutions in isolate and improve render specificity
mason_logger ^0.1.0-dev.14fix: file path looping array resolution
fix: file path looping array resolution
feat: brick.yaml vars array support
vars:
color:
type: array
description: Your desired build flavors
defaults:
- production
prompt: What build flavors would you like?
values:
- development
- staging
- production
fix: do not prompt when overwrite rule is alwaysOverwrite
fix: do not prompt when overwrite rule is alwaysOverwrite
feat: brick.yaml vars enum support
vars:
color:
type: enum
description: Your favorite color
default: green
prompt: What is your favorite color?
values:
- red
- green
- blue
fix: rendering shorthand lambdas within loops
chore: use mason_logger ^0.1.0-dev.9
mason_logger ^0.1.0-dev.9- feat: add mustacheCase lambda
mustacheCase lambda- feat: expose OverwriteRule
OverwriteRule- feat: expose GeneratorTarget
GeneratorTargetrefactor: improve brick location serialization for hosted bricks
refactor: improve brick location serialization for hosted bricks
# before
hello:
version: ^0.1.0
# after
hello: ^0.1.0
- fix: HookContext vars mutation
HookContext vars mutationfix: lambda shorthand conditional interop
fix: lambda shorthand syntax interop
feat: introduce shorthand lambda syntax
{{name.upperCase()}} <-> {{#upperCase}}{{name}}{{/upperCase}}mason_logger ^0.1.0-dev.8feat: add optional repository field to brick.yaml
repository field to brick.yamlBREAKING: feat: BricksJson.add returns CachedBrick instead of String location.
BricksJson.add returns CachedBrick instead of String location.MasonLockJsonCachedBrick, GeneratorHooks, MasonLockJson, Version, VersionConstraint, and VersionRangefeat: include README, CHANGELOG, and LICENSE in MasonBundle
README, CHANGELOG, and LICENSE in MasonBundlefix: Yaml.encode handle escape characters
Yaml.encode handle escape charactersBREAKING: feat: run fromUniversalBundle in Isolate (async)
fromUniversalBundle in Isolate (async)Yaml encoding utilityfromDartBundle to MasonBundle- feat: expose MasonBundledFile
MasonBundledFilefeat: add environment to brick.yaml
feat: add environment to brick.yaml
name: example
description: An example brick
version: 0.1.0+1
environment:
mason: ">=0.1.0-dev.1 <0.1.0"
feat: add isBrickCompatibleWithMason
BREAKING: feat: add MasonGenerator.fromBrick
MasonGenerator.fromBrick
MasonGenerator.fromGitPath (use fromBrick instead)MasonGenerator.fromBrickYaml (use fromBrick instead)Brick named constructors
Brick.path, Brick.git, Brick.versionWriteBrickExceptionbricks.json formatfromUniversalBundle and toUniversalBundle on MasonBundleBrickLocationunpackBundle to convert universal bundle bytes to a MasonBundleBrickNotFoundException message when git path is emptymason_logger ^0.1.0-dev.5BREAKING feat: return list of GeneratedFile from generate
GeneratedFile from generateimport 'dart:io';
import 'package:mason/mason.dart';
Future<void> main() async {
final generator = await MasonGenerator.fromGitPath(
const GitPath(
'https://github.com/felangel/mason.git',
path: 'bricks/greeting',
),
);
final files = await generator.generate(
DirectoryGeneratorTarget(Directory.current),
vars: <String, dynamic>{'name': 'Dash'},
);
}
packageVersionBREAKING feat: add computed vars support via HookContext
HookContext// pre_gen.dart
import 'package:mason/mason.dart';
// Every hook must contain a run method which accepts a `HookContext`
// from package:mason/mason.dart.
void run(HookContext context) {
// Read/Write vars
context.vars = {...context.vars, 'custom_var': 'foo'};
// Use the logger
context.logger.info('hello from pre_gen.dart');
}
Your coding agent can read these notes before it upgrades. Set up the MCP server →