mix hexorcist.update (hexorcist_update v0.3.0)

Copy Markdown View Source

Fetches this project's upgrade plan from Hexorcist and applies the safe, lockfile-only part (mix deps.update), optionally test-gated, leaving the mix.lock change as a reviewable diff. It never commits or pushes by default.

mix hexorcist.update --project <public-id>

Configuration — flags override env, env overrides the repo config file .hexorcist.exs (a keyword list, e.g. [project: "…", url: "…"]):

  • --project / HEXORCIST_PROJECT / :project — the project's public id (required)
  • --token / HEXORCIST_TOKEN — account token (required; never put in the file)
  • --url / HEXORCIST_URL / :url — base URL (default https://hexorcist.net)
  • --test — run mix test after updating; roll back changes if it fails
  • --edit-mix — raise mix.exs constraints to unlock still-blocked majors
  • --commitgit commit the change (still never pushes)
  • --dry-run — just print the plan; change nothing

Commit .hexorcist.exs so the project id travels with the repo; keep the token in your environment (it's a secret).

Without --edit-mix, only lockfile bumps are applied (updates that fit your existing mix.exs). With it, a still-blocked update has its literal {:dep, "~> x"} constraint raised — in the root mix.exs or, for an umbrella, whichever apps/*/mix.exs declares it (all of them, if several do). Anything not safely rewritable is reported as a suggestion, and an edit that doesn't actually unlock the dep is reverted.