Skip to content

chore(deps): bump oban from 2.23.0 to 2.24.1 - #214

Open
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/hex/oban-2.24.1
Open

dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/hex/oban-2.24.1

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Oct 9, 2026

Copy link
Copy Markdown
Contributor

Bumps oban from 2.23.0 to 2.24.1.

Release notes

Sourced from oban's releases.

v2.24.0

This release unifies configuration for queues, repos, and services, swaps opaque timing integers for readable durations, and backports per-entry cron timezones and attempt-preserving snoozes from Oban Pro.

⚙️ Unified Service Configuration

Configuration for queues, repos, and all services (formerly "plugins") is now entirely unified. This is a massive syntactic change, but it isn't all sugar. There's purpose behind the unification and the configuration hoisting.

Functionality like pruning jobs and rescuing orphaned jobs is essential to running Oban, and it shouldn't be an optional afterthought that's demoted as a "plugin" and buried in a guide. Now services are top level configuration just like the engine, notifier, and peer:

config :my_app, Oban,
  cron: [crontab: [{"0 2 * * *", MyApp.Nightly}]],
  pruner: [max_age: {7, :days}],
  lifeline: [rescue_after: {30, :minutes}],
  reindexer: Oban.Reindexer,
  ...

This configuration style should look familiar to anybody using oban-py. Building it is where we realized that these services are core functionality (in fact, it doesn't even have plugins).

Service module names are flatter as well. Since they're not considered plugins anymore, the Plugin namespace was a confusing misnomer—so Oban.Plugins.Cron is simply Oban.Cron, Oban.Plugins.Pruner is now Oban.Pruner, and so on.

Along with keyword options, the unified syntax supports bare modules, {module, opts} tuples, and disabling functionality altogether by passing false. The tuple variant makes it especially easy to swap core services out for alternatives (particularly useful for Pro 😉):

config :my_app, Oban,
+ engine: Oban.Pro.Engine,
- cron: {Oban.Cron, crontab: [...]},
+ cron: {Oban.Pro.Cron, crontab: [...]},
- lifeline: Oban.Lifeline,
+ lifeline: Oban.Pro.Lifeline,
- pruner: {Oban.Pruner, ...},
+ pruner: {Oban.Pro.Pruner, ...},
- queues: [...]
+ queues: {Oban.Pro.Queues, queues: [...]}

You'll see more about that in the Pro v1.8 release as well.

Finally, the repo option got the same treatment. Both log and get_dynamic_repo were really repo options, and the stand-alone log option was genuinely confusing. Now you can use the tuple format to pass those options through :repo directly:

repo: {MyApp.Repo, log: false, dynamic_repo: fn -> MyApp.Repo end}

Don't worry, these changes are fully backward compatible. Oban transparently rewrites older configuration formats into the correct format, all of the old plugin modules have backward compatible shims, and you can still provide plugins beyond the standard services.

🎁 Backports from Oban Pro

... (truncated)

Changelog

Sourced from oban's changelog.

v2.24.1 - 2026-09-03

Bug Fixes

  • [Engine] Prevent newer execution from overwriting

    Acking now verifies that the database hasn't been updated by another execution. Writes from a new executor will no longer transition an acked job, e.g. erroring or snoozing a job back out of completed.

    This applies to ack operations in Basic, Dolphin, and Lite engines.

  • [Notifier] Track notify listeners in isolated registry

    Listeners were tracked within each notifier process, which was lost if the notifier crashed. Registration now lives in a dedicated registry, owne by the Oban application, which is immune to process crashes.

  • [Notifier] Normalize notifier exits into error tuples

    Notifier callbacks through the notifier process could exit if it crashed or timed out, leaving callers to guard themselves with a try/catch.

    Now, exits are caught in the Notifier itself, and returned as an error tuple. Postgres and PG notifiers also no longer raise when their registered state is gone.

  • [Queues] Allow dispatch_cooldown when starting queues

    The dispatch_cooldown option was silently ignored for static queues, and loudly failed validation for dynamic queues. The option was always threaded through to the producer, and now they pass validation.

v2.24.0 - 2026-08-25

Changes

  • [Oban] Top-level config for maintenance plugins

    Promote the common maintenance plugins to first-class configuration keys: cron, pruner, lifeline, and reindexer. Each desugars into a standard plugin entry and accepts the same forms used elsewhere in Oban:

    config :my_app, Oban,
      cron: [crontab: [{"0 2 * * *", MyApp.Nightly}]],
      pruner: [max_age: 60 * 60 * 24 * 7]
    

    A keyword list configures the default plugin, and a module or {module, opts} tuple can configure an alternative (making it an easy switch for Oban Pro, e.g. lifeline: Oban.Pro.Lifeline).

... (truncated)

Commits
  • 64b8481 Release v2.24.1
  • 2e44ccb Normalize notifier exits into error tuples
  • b95e362 Track notify listeners in isolated registry
  • 8591092 Add precommit alias for precommit hook usage
  • 2368be1 Move module aliases below aliases
  • b9c86b1 Prevent newer execution from overwriting
  • 8d65be6 Reformat and rephrase issue templates
  • ca19fab Unwrap validator type in validation module
  • 0b55a41 Allow dispatch_cooldown when starting queues
  • a315b6d Release v2.24
  • Additional commits viewable in compare view

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

Bumps [oban](https://github.com/oban-bg/oban) from 2.23.0 to 2.24.1.
- [Release notes](https://github.com/oban-bg/oban/releases)
- [Changelog](https://github.com/oban-bg/oban/blob/main/CHANGELOG.md)
- [Commits](oban-bg/oban@v2.23.0...v2.24.1)

---
updated-dependencies:
- dependency-name: oban
  dependency-version: 2.24.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot added dependencies Pull requests that update a dependency file elixir Pull requests that update elixir code labels Oct 9, 2026
@coderabbitai

coderabbitai Bot commented Oct 9, 2026

Copy link
Copy Markdown
Contributor

Important

Review skipped

Bot user detected.

To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration
  • Configuration used: Organization UI
  • Review profile: ASSERTIVE
  • Plan: Advanced
  • Run ID: d86b96e8-61d5-44bf-bada-e63dea63f679

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file elixir Pull requests that update elixir code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants