phx-deps-update

Update Hex dependencies in Elixir projects with changelog deltas, verification, and grouped PRs.

537|38|Updated Feb 12, 2026
One-click install
npx skills add https://github.com/oliver-kriska/claude-elixir-phoenix --skill phx-deps-update
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: phx-deps-update
Source: https://github.com/oliver-kriska/claude-elixir-phoenix/tree/main/targets/codex/skills/phx-deps-update
Command: npx skills add https://github.com/oliver-kriska/claude-elixir-phoenix --skill phx-deps-update

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve?

Upgrading Hex dependencies in Elixir/Phoenix projects is risky: major versions hide breaking changes, coupled packages like Phoenix and Ecto break when bumped separately, and a lockfile change without verification can silently corrupt a build. This Skill runs a disciplined inventory → update → fix → PR workflow that catches those failures before they ship.

Core Features & Use Cases

  • Classified Inventory: Parses mix hex.outdated output into patch/minor/major/blocked groups, including git deps, private orgs, and umbrella apps.
  • Changelog-Driven Updates: Snapshots changelogs before updating and extracts deltas via mix hex.package diff with GitHub releases fallbacks, so no update happens blind.
  • Coupled-Group Handling: Forces Phoenix, Ecto, Ash, Oban, telemetry, and other interdependent package families into single atomic commits, including assets/package-lock.json for Phoenix bumps.
  • Verification & Security Handoff: Gates every update on compile-plus-test verification and hands the lock diff to a security audit before creating grouped PRs.
  • Use Case: Run $elixir-phoenix:phx-deps-update --scope patch to bundle all low-risk patch bumps into one verified PR, or target a single package like phoenix_live_view with its coupled group.

Quick Start

Ask the assistant to update the outdated Hex dependencies in your mix.exs project, starting with a dry-run inventory of what can be bumped.

Frequently Asked Questions about phx-deps-update

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I safely update Hex dependencies in an Elixir project?▼

Run an inventory with mix hex.outdated, classify updates by semver delta, then update per package while snapshotting changelogs first. Verify each change with compile --warnings-as-errors plus the test suite before committing mix.lock and mix.exs together.

How do I upgrade a Phoenix dependency across a major version?▼

Edit the version constraint in mix.exs first, since mix deps.update cannot cross a requirement boundary. Use mix hex.outdated <pkg> to check whether transitive consumers block the new major, adding override: true only when one does, and keep one major per PR.

Why does mix hex.outdated exit with code 1?▼

Exit code 1 from mix hex.outdated is normal and simply means some dependencies are outdated, not that the command failed. Capture its output with || true and parse the text table, since no JSON output exists.

Which Elixir packages must be updated together?▼

Coupled groups include Phoenix core (phoenix, phoenix_live_view, phoenix_ecto), Ecto with ecto_sql and postgrex, Ash libraries, Oban with oban_pro and oban_web, and telemetry packages. Bumping one member without its siblings causes compile or runtime errors from version pinning.

Can I preview dependency updates without changing mix.lock?▼

Yes, use the --dry-run flag to stop after the inventory phase. It produces a classified table of patch, minor, major, blocked, and git dependencies without editing mix.exs or mix.lock.

How do I get a changelog diff between two Hex package versions?▼

Run mix hex.package diff <pkg> <old>..<new>, which fetches both tarballs and diffs them, keeping the CHANGELOG.md hunk. If no changelog exists, fall back to GitHub releases via gh api or link the diff.hex.pm compare URL.