All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

[0.1.2] - 2026-08-04

Fixed

  • Passing a workflow flag (e.g. mix starter.run --oban-pro) crashed the entire queued-task chain: custom flags leaked into subprocess argv and igniter.install's strict option parser rejected them, so no installs ran at all. Queued tasks now receive exactly their own args plus --yes.
  • mix starter.run failed with "No workflow found" on Mix 1.20.3+: workflow discovery relied on mix compile loading the app, which newer Mix no longer does. The app is now loaded explicitly.
  • Re-running the bun step on an already-configured app crashed rewrite's formatter; its dep add and config edits are now skip-on-rerun.

Changed

  • The generated workflow queues sort_deps last instead of running it in-run, so dependencies added by the {:install, ...} installers get sorted too. Ordering guidance added to the Starter.Workflow docs.

[0.1.1] - 2026-08-04

Fixed

  • Interactive mix starter.run (without --yes) stalled at the first {:install, ...} step: Igniter executes queued tasks through a subprocess with no stdin, so the upstream installer's confirmation prompt could never be answered. Queued tasks (installs included) now always run with --yes — confirming the workflow's diff is the approval for everything it queues.

[0.1.0] - 2026-08-04

Initial release.

Added

  • Starter.Workflowuse Starter.Workflow turns a module into a runnable, flag-aware Igniter setup task
  • Workflow step forms: built-in steps ({:add, :oban}), optional steps (if: :flag), arbitrary Mix tasks ({:task, name, argv}), nested workflows ({:workflow, Module}), and custom step modules
  • mix starter.new — generates a self-documenting, editable workflow in your project. Every step carries a description rendered from its module's @shortdoc, so the file cannot drift from the catalog
  • mix starter.run — finds and runs your project's workflow, passing flags through (equivalent to invoking the workflow task directly)
  • mix starter.add, mix starter.remove, mix starter.gen — run steps individually, with --list
  • {:install, :package} step form: packages that ship their own Igniter installer (oban, oban_web, tidewave, ash, …) are installed by their own installer via mix igniter.install; Starter ships no competing step for them. Built-in add steps exist only where upstream ships no installer.
  • {:queue, task, argv} step form: queue any Mix task to run after the workflow's changes apply, in order — the way to sequence work after {:install, ...} steps (e.g. oban_pro after {:install, :oban})
  • mix starter.new --from SomeShared.Workflow — generate the app's workflow by expanding a shared workflow module (e.g. from a personal step pack) instead of the built-in catalog
  • Step catalog: 11 add steps, 5 remove steps, 12 gen steps (see README)
  • Latest-Phoenix-only support policy: steps target current phx.new output (Phoenix 1.8); workflows warn when run against apps on older Phoenix versions
  • Remove/gen steps warn loudly when they find nothing to change instead of silently no-oping
  • Version lookups (Hex, npm, GitHub, and the Oban Pro docs site for the private-repo oban_pro package) keep generated dependencies current and degrade gracefully offline
  • Test suite built on Igniter.Test; CI golden test runs the generated workflow against a freshly generated phx.new app