Igniter is a code generation and project patching framework.
There are two audiences for Igniter:
- End-users:
- Provides tasks like
mix igniter.install
to automatically add dependencies to your project - Provides upgraders to upgrade your deps and apply codemods at the same time
- Provides refactors like
mix igniter.refactor.rename_function
to refactor your code automatically
- Provides tasks like
- Library authors and platform teams: Igniter is a toolkit for writing smarter generators that can semantically create and modify existing files in end-user's projects (e.g. codemods)
Igniter provides mix igniter.install
, which will automatically add the dependency to your mix.exs and then run
that library's installer if it has one.
The mix igniter.upgrade
mix task is a drop-in replacement for mix deps.update
but it will additionally
run any upgrade patchers defined in the target package (if there are any).
See the upgrades guide guide for more.
In addition to providing tools for library authors to patch your code, common operations are available to use as needed.
mix igniter.refactor.rename_function
- Rename a function in your application, along with all references to it. Optionally it can also mark the previous function as deprecated.
mix igniter.update_gettext
- Use this to update gettext if your version of gettext is lower than 0.26.1 and you are seeing a compile warning about gettext backends.