We can't find the internet
Attempting to reconnect
Something went wrong!
Hang in there while we get back on track
Speed up CI with parallel ExUnit partitions
Running your full test suite sequentially in CI is wasted time. ExUnit has built-in support for partitioning — split your suite into N slices and run ...
`assign_new/3` prevents expensive recomputations in LiveView
Calling assign/2 recalculates values every time the socket updates, even if the data hasn't changed. Use assign_new/3 to compute expensive operations ...
`Req.Test` stubs keep HTTP out of your tests
Req ships with a built-in test stub mechanism. No Bypass, no Mox, no additional dependencies — just three small changes and your HTTP calls never hit ...
Chain failable operations cleanly with `with`
Nested case statements for operations that can fail look neat at first — until you need three of them. with lets you sequence failable operations and ...
Split async and sync tests in one file
Marking a test module async: false serializes every test inside it. If only two tests genuinely need it — because they touch a globally-named Task.Sup...
optimum_credo v0.4.0
We've moved to almost fully autonomous AI-driven development and rely less on human code review. We're pushing more into Credo — mechanical rules that...
Override config in async tests
Application.put_env/3 in tests mutates global state. Two concurrent tests overwriting the same key will race — the restore in on_exit runs after the o...
`Phoenix.Token` beyond `mix phx.gen.auth`
If you've used mix phx.gen.auth, you've already seen Phoenix.Token at work — it's what powers the email verification and password reset links in the g...
Chain failable operations cleanly with `with`
Nested case statements for operations that can fail look neat at first — until you need three of them. with lets you sequence failable operations and ...
`Repo.stream/2` processes database results without loading all rows
Exporting a million database rows? Repo.all/2 loads everything into memory first. Repo.stream/2 uses database cursors to fetch rows in batches, keepin...
optimum_credo v0.3.0
optimum_credo version 0.3.0 was released....
Pause an Oban job with `{:snooze, seconds}`
Sometimes a job isn't ready to run yet — a third-party API is rate-limiting you, a resource hasn't been created, or you just need to wait a few minute...
Use `Integer.parse/1` for params, not `String.to_integer/1`
Phoenix does zero automatic type coercion. Every value in params arrives as a string — or not at all. Reaching for String.to_integer/1 on user-supplie...
github_workflows_generator v0.1.4
github_workflows_generator version 0.1.4 was released with escript support, making it usable in projects without mix....
optimum_credo v0.2.0
We added 6 new Credo checks to optimum_credo: unused types, private function specs, verbose nil assertions, extractable spec types, module organizatio...
copied to clipboard