We can't find the internet
Attempting to reconnect
Something went wrong!
Hang in there while we get back on track
Releasing OptimumCredo 0.5.0
almirsarajcic
OptimumCredo 0.5.0 adds a 74-check collection and moves three previously published checks to KogenCredo.
If you use those checks, add KogenCredo as a separate dependency and update their enabled names in .credo.exs. Both packages require Credo 1.7.19 or newer within 1.x; update your locked Credo version when upgrading. Credo can warn about a missing check and still exit successfully, so verify that the new names actually run.
## 0.5.0 (2026-10-28)
- Added the complete review-derived check collection: 74 checks for readability, module organization, tests, Phoenix, configuration, migrations and optional Ash policies. See `docs/checks.md` for behavior and parameters.
- Added `mix optimum.heex_check` to scan standalone HEEx templates and the opt-in `CallerModuleAttributes` check for macro and DSL libraries.
- Fixed false positives in types and specs, quoted and DSL code, Phoenix callbacks, schema migration replay, dependency requirements, Ecto lock clauses, test naming and paths. Added context-owned association recognition and documented describe-level error-path exemptions.
- Kept source-derived identities as strings instead of allocating atoms; inspected installed BEAM metadata without loading modules and supported long paths on older OTP versions.
- Fixed Credo JSON diagnostics and Elixir 1.20 compatibility. Require Credo 1.7.19 or newer within 1.x.
- **BREAKING:** Moved `EmptySetupBlock`, `RuntimeEnvDevDefault` and `SkippedTest` from OptimumCredo to KogenCredo. The previously unreleased `JustifiedCoverageIgnore` also belongs to KogenCredo. Add KogenCredo and update enabled module names as described in `docs/migration.md`; old names no longer run.
The migration guide maps the old names to the new ones. JustifiedCoverageIgnore was unreleased in OptimumCredo; the other three names were published in 0.4.0.
copied to clipboard