Release checklist

Copy Markdown

Incant is still experimental. Use this checklist before publishing a Hex release.

Package metadata

  • Confirm package name and ownership on Hex.pm.
  • Add package description, licenses, links, and maintainers in mix.exs.
  • Confirm dependency constraints are appropriate for library consumers.
  • Keep installer dependencies intentional; Igniter is runtime false but available to the install task.

Versioning

  • Set version in mix.exs.
  • Add or update a changelog before tagging.
  • Avoid breaking DSL/API changes without a version bump.

Docs

  • Keep README.md focused on quick start and links.
  • Keep detailed guides under docs/.
  • Verify examples compile or are clearly marked conceptual.
  • Update PLAN.md, CONVENTIONS.md, and REFERENCES.md when product direction changes.

Current status

Verified before tagging a release:

  • mix ci passes.
  • cd examples/playground && mix test passes.
  • Playground /admin renders in a local Phoenix server.
  • API naming remains actor, actor_assign, actor, and policy for now.

Tests

Run:

mix test
cd examples/playground && mix test

Before release, also run the full project CI alias when dependencies/tools are available:

mix ci

Playground

  • Confirm /admin renders.
  • Confirm Catalog, LLM, and Support examples still make sense.
  • Avoid public demo routes that look like product API unless documented.

Installer

  • Test mix incant.install in a fresh Phoenix app.
  • Verify starter files are generated.
  • Verify router patch is correct.
  • Verify Tailwind CSS source patch is correct.
  • Verify fallback instructions are useful when files are missing.

Authorization

  • Confirm default behavior remains allow-all without a policy.
  • Confirm actor_assign and actor callback extraction work.
  • Confirm policy scoping protects list and detail data.
  • Confirm local resource/dashboard policies override the admin policy where intended.

Publishing

mix hex.build
mix hex.publish

Tag the release after publishing:

git tag vX.Y.Z
git push origin vX.Y.Z