Hasty Briefsbeta

Bilingual

Mason: A declarative build tool on top of Dagger

a year ago
  • #devops
  • #dagger
  • #build-tools
  • Mason is a declarative build tool built on top of Dagger to simplify and scale its usage.
  • Dagger's current form poses challenges like boilerplate code and non-trivial CLI usage, making it hard to deploy at scale.
  • Mason aims for a simple, consistent CLI UX across projects, similar to Maven's 'mvn package' simplicity.
  • It provides a declarative configuration approach, inspired by GoReleaser and Kubernetes, for projects with similar needs but different parameters.
  • Mason leverages Dagger's Interactive Shell to generate scripts based on configuration files, simplifying module orchestration.
  • The tool introduces a two-phase plan/apply design: generating scripts in the first phase and executing them in the second.
  • Mason benefits from Dagger's built-in features like caching, plugin system via modules, sandboxed execution, and TUI.
  • Adopting Mason requires transitioning from local Dagger modules to YAML configs and consolidating CI calls, but retains Dagger's core functionalities.
  • In corporate settings, Mason simplifies project 'daggerization' with YAML files, offering maintainability and consistent developer UX across projects.
  • Future enhancements may include reporting features and deeper integration with Dagger, positioning Mason as a potential 'Docker Compose' for Dagger.