PackageTrack
Sign in Get early access

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 2025
2021 2022 2023 2024 2025 2026
Release Pre-release

Releases

latest 60 of 121
  1. 0.1.2 25 Nov 2025
    Release notes
    • fix: loop rendering when parameters contains an empty list (#1611)
    • refactor: address pana issues (#1613)
    • refactor: upgrade analysis options (#1539)
    Open source →
    Release notes
    • fix: loop rendering when parameters contains an empty list (#1611)
    • refactor: address pana issues (#1613)
    • refactor: upgrade analysis options (#1539)
    Open source →
  2. 0.1.1 01 Mar 2025
    Release notes
    • chore(deps): upgrade pkg:archive to ^4.0.0 (#1532)
    Open source →
    Release notes
    • chore(deps): upgrade pkg:archive to ^4.0.0 (#1532)
    Open source →
  3. 0.1.0 27 Nov 2024
    Release notes
    • chore: bump to stable v0.1.0 🎉
    Open source →
  4. 0.1.0-dev.60 05 Sep 2024 pre-release
    Release notes
    • chore: add platforms to pubspec.yaml (#1420)
    Open source →
  5. 0.1.0-dev.59 27 Aug 2024 pre-release
    Release notes
    • deps: loosen pkg:collection constraint for Flutter compat (#1411)
    Open source →
  6. 0.1.0-dev.58 21 Aug 2024 pre-release
    Release notes
    • deps: tighten dependency constraints (#1401)
      • bumps the Dart SDK minimum version up to 3.5.0
    • chore: add funding to pubspec.yaml (#1371)
    Open source →
  7. 0.1.0-dev.57 13 Jun 2024 pre-release
    Release notes
    • fix: compile hooks to AOT when using AOT runtime (#1331)
    • fix: nested hooks execution (#1348)
    Open source →
  8. 0.1.0-dev.56 29 May 2024 pre-release
    Release notes
    • 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
    Open source →
  9. 0.1.0-dev.55 29 May 2024 pre-release
    Release notes
    • fix: nested hooks execution (#1334)
    Open source →
  10. 0.1.0-dev.54 29 May 2024 pre-release
    Release notes
    • fix: compile hooks to AOT when using AOT runtime (#1331)
    Open source →
  11. 0.1.0-dev.53 20 Apr 2024 pre-release
    Release notes
    • chore(deps): upgrade pkg:mason_logger to ^0.2.15 (#1302)
      • bumps the Dart SDK minimum version up to 3.3.0
    Open source →
  12. 0.1.0-dev.52 10 Jan 2024 pre-release
    Release notes
    • fix: update hook run to support long Dart formats (#1164)
    • docs: include reference to DirectoryGeneratorTarget (#1098)
    • chore: fix malformed doc template
    Open source →
  13. 0.1.0-dev.51 22 Sep 2023 pre-release
    Release notes
    • 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
    Open source →
  14. 0.1.0-dev.50 03 Jul 2023 pre-release
    Release notes
    • feat: support for type list in brick.yaml vars
      vars:
        languages:
          type: list
          description: Your favorite languages
          prompt: What are your favorite languages?
      
    • deps: allow latest version of package:http
    Open source →
  15. 0.1.0-dev.49 05 Apr 2023 pre-release
    Release notes
    • feat: add PascalDotCase lambda and String extension
    • deps: integrate package:recase
    Open source →
  16. 0.1.0-dev.48 24 Mar 2023 pre-release
    Release notes
    • fix: git brick install across file systems
    • refactor: use Isolate.run
    Open source →
  17. 0.1.0-dev.47 01 Mar 2023 pre-release
    Release notes
    • fix: loop detection in runSubstitution
    • test: use private mocks
    Open source →
  18. 0.1.0-dev.46 23 Feb 2023 pre-release
    Release notes
    • fix: MasonBundle use fieldRename: FieldRename.snake
    Open source →
  19. 0.1.0-dev.45 23 Feb 2023 pre-release
    Release notes
    • feat: add publishTo to MasonBundle
    Open source →
  20. 0.1.0-dev.44 23 Feb 2023 pre-release
    Release notes
    • feat: support optional publish_to in brick.yaml
    Open source →
  21. 0.1.0-dev.43 22 Feb 2023 pre-release
    Release notes
    • fix: sort contents of bricks.json
    • fix: brick git installation algorithm
    Open source →
  22. 0.1.0-dev.42 14 Feb 2023 pre-release
    Release notes
    • feat: improve generated file output
    • deps: upgrade to Dart >=2.19, mason_logger ^0.2.5, and very_good_analysis ^4.0.0
    Open source →
  23. 0.1.0-dev.41 30 Jan 2023 pre-release
    Release notes
    • deps: upgrade to Dart >=2.17, mason_logger ^0.2.4, and very_good_analysis ^3.1.0
    • fix: createBundle and unpackBundle normalize bundled file paths.
    Open source →
  24. 0.1.0-dev.40 23 Dec 2022 pre-release
    Release notes
    • feat: export StringCaseExtensions
    Open source →
  25. 0.1.0-dev.39 25 Nov 2022 pre-release
    Release notes
    • BREAKING refactor!: remove GeneratorHooks.fromBundle in favor of GeneratorHooks.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/hooks directory within the corresponding hooks directory
    • feat: bundled artifacts from MasonGenerator.fromBundle are stored in the bundled directory within the mason cache.
    • fix: avoid bundling extraneous hook files (e.g. coverage files)
    Open source →
  26. 0.1.0-dev.38 12 Nov 2022 pre-release
    Release notes
    • perf: compile hooks
    • fix: allow optional __brick__ directory
    Open source →
  27. 0.1.0-dev.37 08 Nov 2022 pre-release
    Release notes
    • fix: hook execution after pub cache clean
    Open source →
  28. 0.1.0-dev.36 03 Nov 2022 pre-release
    Release notes
    • fix: support mp3 binary file types
    Open source →
  29. 0.1.0-dev.35 02 Nov 2022 pre-release
    Release notes
    • BREAKING feat!: avoid templating hook contents
    • chore(deps): upgrade to mason_logger ^0.2.2
    Open source →
  30. 0.1.0-dev.34 13 Oct 2022 pre-release
    Release notes
    • chore(deps): upgrade to mason_logger ^0.2.0
    Open source →
  31. 0.1.0-dev.33 16 Sep 2022 pre-release
    Release notes
    • refactor: use mason_logger ^0.1.3
    Open source →
  32. 0.1.0-dev.32 11 Sep 2022 pre-release
    Release notes
    • fix: use file descriptor pooling
    • chore: add additional pubspec.yaml metadata
    Open source →
  33. 0.1.0-dev.31 21 Jul 2022 pre-release
    Release notes
    • fix: render asymmetrical shorthand lambda expressions correctly
    Open source →
  34. 0.1.0-dev.30 20 Jul 2022 pre-release
    Release notes
    • refactor(deps): remove pkg:universal_io
    • refactor: use mason_logger ^0.1.1
    Open source →
  35. 0.1.0-dev.29 18 Jul 2022 pre-release
    Release notes
    • fix: improve lambda shorthand syntax flexibility
    • perf: speed up hooks execution
    • refactor: use mason_logger ^0.1.0
    Open source →
  36. 0.1.0-dev.28 06 Jul 2022 pre-release
    Release notes
    • fix: override toString on MasonException
    Open source →
  37. 0.1.0-dev.27 01 Jul 2022 pre-release
    Release notes
    • perf: run substitutions in isolate and improve render specificity
    • chore: use mason_logger ^0.1.0-dev.14
    Open source →
  38. 0.1.0-dev.26 10 Jun 2022 pre-release
    Release notes
    • 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
      
    Open source →
  39. 0.1.0-dev.25 05 Jun 2022 pre-release
    Release notes
    • 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
      
    Open source →
  40. 0.1.0-dev.24 29 May 2022 pre-release
    Release notes
    • fix: rendering shorthand lambdas within loops
    Open source →
  41. 0.1.0-dev.23 28 May 2022 pre-release
    Release notes
    • chore: use mason_logger ^0.1.0-dev.9
    Open source →
  42. 0.1.0-dev.22 25 May 2022 pre-release
    Release notes
    • feat: add mustacheCase lambda
    Open source →
  43. 0.1.0-dev.21 08 May 2022 pre-release
    Release notes
    • feat: expose OverwriteRule
    Open source →
  44. 0.1.0-dev.20 07 May 2022 pre-release
    Release notes
    • feat: expose GeneratorTarget
    Open source →
  45. 0.1.0-dev.19 29 Apr 2022 pre-release
    Release notes
    • refactor: improve brick location serialization for hosted bricks

      # before
      hello:
        version: ^0.1.0
      
      # after
      hello: ^0.1.0
      
    Open source →
  46. 0.1.0-dev.18 14 Apr 2022 pre-release
    Release notes
    • fix: HookContext vars mutation
    Open source →
  47. 0.1.0-dev.17 12 Apr 2022 pre-release
    Release notes
    • fix: lambda shorthand conditional interop
    • fix: lambda shorthand partials interop
    Open source →
  48. 0.1.0-dev.16 11 Apr 2022 pre-release
    Release notes
    • fix: lambda shorthand syntax interop
    Open source →
  49. 0.1.0-dev.15 10 Apr 2022 pre-release
    Release notes
    • feat: introduce shorthand lambda syntax
      • {{name.upperCase()}} <-> {{#upperCase}}{{name}}{{/upperCase}}
    • chore: use mason_logger ^0.1.0-dev.8
    Open source →
  50. 0.1.0-dev.14 04 Apr 2022 pre-release
    Release notes
    • feat: add optional repository field to brick.yaml
    Open source →
  51. 0.1.0-dev.13 25 Mar 2022 pre-release
    Release notes
    • BREAKING: feat: BricksJson.add returns CachedBrick instead of String location.
    • feat: add MasonLockJson
    • feat: export CachedBrick, GeneratorHooks, MasonLockJson, Version, VersionConstraint, and VersionRange
    Open source →
  52. 0.1.0-dev.12 09 Mar 2022 pre-release
    Release notes
    • feat: include README, CHANGELOG, and LICENSE in MasonBundle
    Open source →
  53. 0.1.0-dev.11 03 Mar 2022 pre-release
    Release notes
    • fix: Yaml.encode handle escape characters
    Open source →
  54. 0.1.0-dev.10 02 Mar 2022 pre-release
    Release notes
    • BREAKING: feat: run fromUniversalBundle in Isolate (async)
    • feat: expose Yaml encoding utility
    • feat: add fromDartBundle to MasonBundle
    Open source →
  55. 0.1.0-dev.9 25 Feb 2022 pre-release
    Release notes
    • feat: expose MasonBundledFile
    Open source →
  56. 0.1.0-dev.8 23 Feb 2022 pre-release
    Release notes
    • 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

    Open source →
  57. 0.1.0-dev.7 21 Feb 2022 pre-release
    Release notes
    • BREAKING: feat: add MasonGenerator.fromBrick
      • refactor: remove MasonGenerator.fromGitPath (use fromBrick instead)
      • refactor: remove MasonGenerator.fromBrickYaml (use fromBrick instead)
    • BREAKING: refactor: Brick named constructors
      • Brick.path, Brick.git, Brick.version
    • BREAKING: refactor: remove WriteBrickException
    • BREAKING: refactor: simplify bricks.json format
    • refactor: git cache directory location
    • feat: add fromUniversalBundle and toUniversalBundle on MasonBundle
    • feat: add BrickLocation
    • feat: add unpackBundle to convert universal bundle bytes to a MasonBundle
    • fix: yaml string encoding for semver
    • fix: BrickNotFoundException message when git path is empty
    • chore: upgrade to mason_logger ^0.1.0-dev.5
    • chore: upgrade to Dart 2.16
    Open source →
  58. 0.1.0-dev.6 09 Feb 2022 pre-release
    Release notes
    • BREAKING feat: return list of GeneratedFile from generate
    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
    Open source →
  59. 0.1.0-dev.5 27 Jan 2022 pre-release
    Release notes
    • 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');
    }
    
    Open source →
  60. 0.1.0-dev.4 19 Jan 2022 pre-release
    Release notes
    • BREAKING feat: restructure 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
        • Use named constructor parameters instead of positional parameters
      • MasonGenerator.generate(...)
        • Accepts optional Logger and FileConflictResolution
      • DirectoryGeneratorTarget
        • No longer accepts optional 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

    Open source →

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive