v0.2.3

  • use PhoenixMountable.Install compiles in an app without Igniter, as a plain Mix task. It chose the task with an if in the code it generated, and Elixir expands both branches, so use Igniter.Mix.Task failed to expand without Igniter: a library with an installer did not compile at all in such an app.

v0.2.2

  • A library's callbacks are found while its modules are not loaded yet, as in development and tests, where a module loads when first called: the definition's session/3 (until then, the first library page after boot had no session, and an admin could get a 404), repo/1 of the schema check, an assets strategy's inject/2, a migration's down/1, a host router's mounts and an installer's install/1.

v0.2.1

v0.2.0

  • use PhoenixMountable.Install declares a library's installer in one use: mounts, the migration, a LiveView hook, style sheets, Tailwind sources and the supervisor, then the library's own install/1. It is an Igniter task (mix igniter.install my_lib) and, in a host without Igniter, says how to get it.
  • PhoenixMountable.Igniter.mount/4 mounts in any scope, with its pipelines, options ({web} is the host's web module) and a re-exported macro (:import), and imports the library's formatter, so the host writes the mount without parentheses.
  • PhoenixMountable.Igniter.add_hook/4 and add_css_imports/4 edit the host's app.js and app.css (PhoenixMountable.Igniter.HostAssets), or give the lines to add where they cannot.
  • TypeScript types for the browser helper.
  • A pending upgrade under pending_migrations: :raise is checked again on each use, so running the migration takes effect without a restart.
  • The migration generator compiles without warnings on Elixir 1.19 and 1.20.

v0.1.0

The first release.