mason
A Dart template generator which helps teams generate files quickly and consistently.
0.1.2
363K downloads/mo
#611 most downloaded on pub.dev
felangel/mason
What this package is like to depend on
Last release 9 months ago
25 Nov 2025
Release timing varies
gaps range from 2 weeks to 9 months
Nearly every release is documented
notes for 3 of 3 stable releases
Nothing withdrawn
no release was ever pulled
6 years old
121 releases · first in 2020
1 release in the last 12 months
see the full history below
Release timeline
121 releases · Nov 2020 to Nov 2025Releases
latest 60 of 121-
0.1.225 Nov 2025 -
0.1.101 Mar 2025 -
0.1.027 Nov 2024 -
0.1.0-dev.6005 Sep 2024 pre-release -
0.1.0-dev.5927 Aug 2024 pre-release -
0.1.0-dev.5821 Aug 2024 pre-release -
0.1.0-dev.5713 Jun 2024 pre-releaseRelease notes
Open source → -
0.1.0-dev.5629 May 2024 pre-releaseRelease notes
Open source →- revert: fix: compile hooks to AOT when using AOT runtime (#1331)
- fix was incomplete and resulted in hook execution to break in JIT mode in some situations
- revert: fix: compile hooks to AOT when using AOT runtime (#1331)
-
0.1.0-dev.5529 May 2024 pre-release -
0.1.0-dev.5429 May 2024 pre-release -
0.1.0-dev.5320 Apr 2024 pre-releaseRelease notes
Open source →- chore(deps): upgrade
pkg:mason_loggerto^0.2.15(#1302)- bumps the Dart SDK minimum version up to
3.3.0
- bumps the Dart SDK minimum version up to
- chore(deps): upgrade
-
0.1.0-dev.5210 Jan 2024 pre-release -
0.1.0-dev.5122 Sep 2023 pre-releaseRelease notes
Open source →- deps: upgrade to
mason_logger v0.2.9- fix: arrow keys on windows (#816)
- chore: improve lint rules
- chore:
dart fix --apply - chore(deps): upgrade dependencies
- deps: upgrade to
-
0.1.0-dev.5003 Jul 2023 pre-releaseRelease notes
Open source →- feat: support for type
listinbrick.yamlvarsvars: languages: type: list description: Your favorite languages prompt: What are your favorite languages? - deps: allow latest version of
package:http
- feat: support for type
-
0.1.0-dev.4905 Apr 2023 pre-releaseRelease notes
Open source →- feat: add
PascalDotCaselambda andStringextension - deps: integrate
package:recase
- feat: add
-
0.1.0-dev.4824 Mar 2023 pre-release -
0.1.0-dev.4701 Mar 2023 pre-release -
0.1.0-dev.4623 Feb 2023 pre-release -
0.1.0-dev.4523 Feb 2023 pre-release -
0.1.0-dev.4423 Feb 2023 pre-release -
0.1.0-dev.4322 Feb 2023 pre-release -
0.1.0-dev.4214 Feb 2023 pre-releaseRelease notes
Open source →- feat: improve generated file output
- deps: upgrade to
Dart >=2.19,mason_logger ^0.2.5, andvery_good_analysis ^4.0.0
-
0.1.0-dev.4130 Jan 2023 pre-releaseRelease notes
Open source →- deps: upgrade to
Dart >=2.17,mason_logger ^0.2.4, andvery_good_analysis ^3.1.0 - fix:
createBundleandunpackBundlenormalize bundled file paths.
- deps: upgrade to
-
0.1.0-dev.4023 Dec 2022 pre-release -
0.1.0-dev.3925 Nov 2022 pre-releaseRelease notes
Open source →- BREAKING refactor!: remove
GeneratorHooks.fromBundlein favor ofGeneratorHooks.fromBrickYaml. - feat: support relative imports in hooks
- feat: support non-ascii characters in hooks
- feat: support bricks with no
__brick__directory - feat: hook artifacts are stored in the
build/hooksdirectory within the corresponding hooks directory - feat: bundled artifacts from
MasonGenerator.fromBundleare stored in thebundleddirectory within the mason cache. - fix: avoid bundling extraneous hook files (e.g. coverage files)
- BREAKING refactor!: remove
-
0.1.0-dev.3812 Nov 2022 pre-release -
0.1.0-dev.3708 Nov 2022 pre-release -
0.1.0-dev.3603 Nov 2022 pre-release -
0.1.0-dev.3502 Nov 2022 pre-releaseRelease notes
Open source →- BREAKING feat!: avoid templating hook contents
- chore(deps): upgrade to
mason_logger ^0.2.2
-
0.1.0-dev.3413 Oct 2022 pre-release -
0.1.0-dev.3316 Sep 2022 pre-release -
0.1.0-dev.3211 Sep 2022 pre-releaseRelease notes
Open source →- fix: use file descriptor pooling
- chore: add additional
pubspec.yamlmetadata
-
0.1.0-dev.3121 Jul 2022 pre-release -
0.1.0-dev.3020 Jul 2022 pre-releaseRelease notes
Open source →- refactor(deps): remove
pkg:universal_io - refactor: use
mason_logger ^0.1.1
- refactor(deps): remove
-
0.1.0-dev.2918 Jul 2022 pre-releaseRelease notes
Open source →- fix: improve lambda shorthand syntax flexibility
- perf: speed up hooks execution
- refactor: use
mason_logger ^0.1.0
-
0.1.0-dev.2806 Jul 2022 pre-release -
0.1.0-dev.2701 Jul 2022 pre-releaseRelease notes
Open source →- perf: run substitutions in isolate and improve render specificity
- chore: use
mason_logger ^0.1.0-dev.14
-
0.1.0-dev.2610 Jun 2022 pre-releaseRelease notes
Open source →-
fix: file path looping array resolution
-
feat:
brick.yamlvars array supportvars: color: type: array description: Your desired build flavors defaults: - production prompt: What build flavors would you like? values: - development - staging - production
-
-
0.1.0-dev.2505 Jun 2022 pre-releaseRelease notes
Open source →-
fix: do not prompt when overwrite rule is
alwaysOverwrite -
feat:
brick.yamlvars enum supportvars: color: type: enum description: Your favorite color default: green prompt: What is your favorite color? values: - red - green - blue
-
-
0.1.0-dev.2429 May 2022 pre-release -
0.1.0-dev.2328 May 2022 pre-release -
0.1.0-dev.2225 May 2022 pre-release -
0.1.0-dev.2108 May 2022 pre-release -
0.1.0-dev.2007 May 2022 pre-release -
0.1.0-dev.1929 Apr 2022 pre-releaseRelease notes
Open source →-
refactor: improve brick location serialization for hosted bricks
# before hello: version: ^0.1.0 # after hello: ^0.1.0
-
-
0.1.0-dev.1814 Apr 2022 pre-release -
0.1.0-dev.1712 Apr 2022 pre-releaseRelease notes
Open source →- fix: lambda shorthand conditional interop
- fix: lambda shorthand partials interop
-
0.1.0-dev.1611 Apr 2022 pre-release -
0.1.0-dev.1510 Apr 2022 pre-releaseRelease notes
Open source →- feat: introduce shorthand lambda syntax
{{name.upperCase()}}<->{{#upperCase}}{{name}}{{/upperCase}}
- chore: use
mason_logger ^0.1.0-dev.8
- feat: introduce shorthand lambda syntax
-
0.1.0-dev.1404 Apr 2022 pre-release -
0.1.0-dev.1325 Mar 2022 pre-releaseRelease notes
Open source →- BREAKING: feat:
BricksJson.addreturnsCachedBrickinstead ofStringlocation. - feat: add
MasonLockJson - feat: export
CachedBrick,GeneratorHooks,MasonLockJson,Version,VersionConstraint, andVersionRange
- BREAKING: feat:
-
0.1.0-dev.1209 Mar 2022 pre-release -
0.1.0-dev.1103 Mar 2022 pre-release -
0.1.0-dev.1002 Mar 2022 pre-releaseRelease notes
Open source →- BREAKING: feat: run
fromUniversalBundleinIsolate(async) - feat: expose
Yamlencoding utility - feat: add
fromDartBundletoMasonBundle
- BREAKING: feat: run
-
0.1.0-dev.925 Feb 2022 pre-release -
0.1.0-dev.823 Feb 2022 pre-releaseRelease notes
Open source →-
feat: add environment to
brick.yamlname: example description: An example brick version: 0.1.0+1 environment: mason: ">=0.1.0-dev.1 <0.1.0" -
feat: add
isBrickCompatibleWithMason
-
-
0.1.0-dev.721 Feb 2022 pre-releaseRelease notes
Open source →- BREAKING: feat: add
MasonGenerator.fromBrick- refactor: remove
MasonGenerator.fromGitPath(usefromBrickinstead) - refactor: remove
MasonGenerator.fromBrickYaml(usefromBrickinstead)
- refactor: remove
- BREAKING: refactor:
Bricknamed constructorsBrick.path,Brick.git,Brick.version
- BREAKING: refactor: remove
WriteBrickException - BREAKING: refactor: simplify
bricks.jsonformat - refactor: git cache directory location
- feat: add
fromUniversalBundleandtoUniversalBundleonMasonBundle - feat: add
BrickLocation - feat: add
unpackBundleto convert universal bundle bytes to aMasonBundle - fix: yaml string encoding for semver
- fix:
BrickNotFoundExceptionmessage when git path is empty - chore: upgrade to
mason_logger ^0.1.0-dev.5 - chore: upgrade to Dart 2.16
- BREAKING: feat: add
-
0.1.0-dev.609 Feb 2022 pre-releaseRelease notes
Open source →- BREAKING feat: return list of
GeneratedFilefromgenerate
import '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'}, ); }- feat: expose
packageVersion
- BREAKING feat: return list of
-
0.1.0-dev.527 Jan 2022 pre-releaseRelease notes
Open source →- BREAKING feat: add computed vars support via
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'); } - BREAKING feat: add computed vars support via
-
0.1.0-dev.419 Jan 2022 pre-releaseRelease notes
Open source →- BREAKING feat: restructure
brick.yamlvars 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
versionto bundle -
BREAKING refactor: API improvements to
MasonBundle,MasonGenerator, andDirectoryGeneratorTargetMasonBundle- Use named constructor parameters instead of positional parameters
MasonGenerator.generate(...)- Accepts optional
LoggerandFileConflictResolution
- Accepts optional
DirectoryGeneratorTarget- No longer accepts optional
LoggerandFileConflictResolution(moved togenerateAPI above)
- No longer accepts optional
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
FileConflictResolutionwhen there are no conflicts -
docs: README updates and upgrade example bricks
-
chore: upgrade to
mason_logger: v0.1.0-dev.4
- BREAKING feat: restructure