Skip to content

Bump hammer, credo, dialyxir, ex_doc, benchee to latest compatible versions - #74

Merged
epinault merged 2 commits into
masterfrom
maint/update-deps-all
Sep 4, 2026
Merged

epinault merged 2 commits into
masterfrom
maint/update-deps-all

Conversation

@epinault

@epinault epinault commented Sep 4, 2026

Copy link
Copy Markdown
Contributor

Summary

Routine dependency update. No majors were held — every outdated package resolved to its latest release within the constraint already declared in mix.exs (all ~> ranges), so nothing needed a constraint edit.

Baseline (before any change) was green: mix compile --warnings-as-errors + mix test passed at 64d6cb9. No security advisories or retired packages (mix hex.audit); this repo doesn't have mix_audit installed so advisory scanning relied on mix hex.audit plus changelog reading.

Package-by-package

hammer 7.1.0 -> 7.5.0 (runtime dependency, own commit)

  • Reviewed the CHANGELOG for every version in between (7.2.0-7.5.0).
  • Changes: CAS-based race fixes in the Atomic backend, a renamed :algorithm -> :algorithm_module option in the Atomic backend, timestamp fixes in the ETS TokenBucket/LeakyBucket, a new :fix_window_per_key algorithm for ETS/Atomic, and a new mix hammer.install Igniter task.
  • None of that touches the Mnesia backend this repo implements (Hammer.Mnesia, Hammer.Mnesia.{FixWindow,LeakyBucket,TokenBucket}) — no source changes needed.
  • Note for awareness, not a blocker: hammer's CHANGELOG says 7.2.0 "dropped Elixir 1.14 support," but hammer's own mix.exs still declares elixir: "~> 1.14", so Hex resolution isn't affected. This repo's CI matrix (.github/workflows/ci.yml) still tests against Elixir 1.14/1.15/1.16, which I can't reproduce here (only 1.20.4 is available in this environment) — worth watching if that matrix job goes red.

Dev/test/bench tooling (batched, one commit)

  • credo 1.7.13 -> 1.7.19, dialyxir 1.4.6 -> 1.4.7, ex_doc 0.39.1 -> 0.40.4, benchee 1.5.0 -> 1.5.1
  • Transitive refresh pulled along: deep_merge 1.0.0 -> 1.0.2, earmark_parser 1.4.44 -> 1.4.46, erlex 0.2.7 -> 0.2.9, jason 1.4.4 -> 1.4.5, makeup 1.2.1 -> 1.2.2, makeup_erlang 1.0.2 -> 1.1.0, statistex 1.1.0 -> 1.1.1
  • All dev/test/bench-only, no runtime impact.
  • Side note: credo 1.7.13 has a false-positive on this repo as-is (mix credo --strict reports "Modules should have a @moduledoc tag" on all 4 lib modules, which already have moduledocs). credo 1.7.19 fixes it — mix credo --strict goes from 4 findings to 0 with no source changes.

Verification

This repo has no mix precommit alias, so I used its own CI steps (.github/workflows/ci.yml) as the equivalent gate, run after each batch and again on the final branch state:

  • mix deps.unlock --check-unused
  • mix compile --warnings-as-errors
  • mix credo --strict --format=oneline
  • mix test --warnings-as-errors --cover --include slow (27 tests, 89.6% coverage, above the 85% threshold)
  • mix format --check-formatted
  • mix dialyzer (0 errors, run once after the tooling batch since dialyxir moved)

Not run: the full CI version matrix (Elixir 1.14-1.18 / OTP 25-27) — only Elixir 1.20.4/OTP 29 is available in this environment.

Test plan

  • CI green on this PR, including the version matrix (1.14 in particular, given the hammer note above)

epinault added 2 commits September 3, 2026 22:04
Runtime dependency this backend implements against. Reviewed changelog for 7.2.0-7.5.0: changes land in ETS/Atomic backends and fix_window_per_key, none of which this Mnesia backend implements. No source changes required.

Verified: mix compile --warnings-as-errors, mix test --warnings-as-errors --cover --include slow (27 tests, 89.6%25 coverage), mix credo --strict, mix format --check-formatted, mix deps.unlock --check-unused.
credo 1.7.13 -> 1.7.19, dialyxir 1.4.6 -> 1.4.7, ex_doc 0.39.1 -> 0.40.4, benchee 1.5.0 -> 1.5.1, plus their transitive deps (deep_merge, earmark_parser, erlex, jason, makeup, makeup_erlang, statistex). All within existing mix.exs constraints, dev/test/bench only.

Notably credo 1.7.19 fixes a false-positive it had on this repo's moduledocs: mix credo --strict went from 4 findings to 0 with no source changes.

Verified: mix compile --warnings-as-errors, mix credo --strict, mix test --warnings-as-errors --cover --include slow (27 tests, 89.6%25 coverage), mix dialyzer (0 errors), mix format --check-formatted, mix deps.unlock --check-unused.
@epinault
epinault merged commit 78ea373 into master Sep 4, 2026
10 checks passed
@epinault
epinault deleted the maint/update-deps-all branch September 4, 2026 05:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant