Skip to content

Bump oban from 2.18.3 to 2.19.4 #3159

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 1 commit into from
Closed

Conversation

dependabot[bot]
Copy link
Contributor

@dependabot dependabot bot commented on behalf of github Apr 28, 2025

Bumps oban from 2.18.3 to 2.19.4.

Release notes

Sourced from oban's releases.

v2.19.2

Enhancements

  • [Oban] Allow setting a MFA in :get_dynamic_repo

    Anonymous functions don't work with OTP releases, as anonymous functions cannot be used in configuration. Now a MFA tuple can be passed instead of a fun, and the scaling guide recommends a function instead.

  • [Cron] Include configured timezone in cron job metadata

    Along with the cron expression, stored as cron_expr, the configured timezone is also recorded as cron_tz in cron job metadata.

  • [Cron] Add next_at/2 and last_at/2 for cron time calculations

    This implements jumping functions for cron expressions. Rather than naively iterating through minutes, it uses the expression values to efficiently jump to the next or last cron run time.

  • [Executor] Always convert queue_time to native time unit

    The telemetry docs state that measurements are recorded in native time units. However, that hasn't been the case for queue_time for a while now. It usually worked anyway native and nanosecond is of the same resolution, but now it is guaranteed.

Bug Fixes

  • [Peer] Correct leadership elections for the Dolphin engine

    MySQL always returns the number of entries attempted, even when nothing was added. The previous match caused all nodes to believe they were the leader. This uses a secondary query within the same transaction to detect if the current instance is the leader.

  • [Reindexer] Drop invalid indexes concurrently when reindexing.

    The DROP INDEX query would lock the whole table with an ACCESS EXCLUSIVE lock and could cause queries to fail unexpectedly.

  • [Testing] Use Ecto.Type.cast/2 for backward compatibility

    The cast!/2 function wasn't added until Ecto 3.12. This reverts time casting to use cast/2 for compatibility with earlier Ecto versions.

  • [Worker] Validate that the unique option isn't an empty list.

    An empty list was accepted at compile time, but wouldn't be valid later at runtime. Now the two validations match for greater parity.

v2.19.1

Bug Fixes

  • [Mix] Improve igniter installer idempotency and compatibility.

    The installer now uses on_exists: :skip when generating a migration, so it composes safely with other igniter installers. It also removes unnecessary add_dep calls that would overwrite a previously specified Oban version with ~> 2.18.

v2.19

The minimum Elixir version is now v1.15. The official policy is to only support the three latest versions of Elixir.

🐬 MySQL Support

Oban officially supports MySQL with the new Dolphin engine. Oban supports modern (read "with full JSON support") MySQL [versions from 8.4][m84] on, and has been tested on the highly scalable [Plantescale][pla] database.

... (truncated)

Changelog

Sourced from oban's changelog.

v2.19.4 — 2025-03-25

Bug Fixes

  • [Validation] Partially revert removal of unused validators.

    Some validations are actively used by the current version of Oban Pro and shouldn't have been removed.

  • [Plugins] Handle and log all unexpected messages.

    Some genservers handled unexpected messages while others did not. Now all plugins and other genservers consistently handle those messages. Public facing modules, such as plugins, all log a warning about the message while internal modules ignore them.

v2.19.3 — 2025-03-24

Bug Fixes

  • [Install] Use configure_new for idempotent installation.

    Prevent overwriting existing :oban configuration when running installer.

  • [Sonar] Correct stale node logic for sonar tracking.

    The original code had a logical error. By calculating stale as current time + interval * multiplier, it would reject nodes that were recorded in the future relative to the current time (which is unlikely to be the intended behavior) The new code correctly identifies stale nodes by checking if they're older than the threshold.

Enhancements

  • [Worker] Check for worker functions rather than behaviour

    Behaviours can't contain overlapping callbacks. In order to have a worker-like module that defines it's own timeout/1 or backoff/1, we must use an alternate callback.

  • [Worker] Improve warning message on incorrect return from perform/1.

  • [Telemetry] Skip logging peer events unless node leadership changes.

    The default logger only outputs peer events when something changed: either the peer became leader or lost the leader.

  • [Validation] Add schema validator for tuple options.

    Being able to validate tuples eliminates the need for custom validator functions in several locations.

  • [Oban] Compatiblity updates for changes in the upcoming Elixir v1.19

... (truncated)

Commits
  • 8b0aada Release v2.19.4
  • f91ea26 Partially revert removal of unused validators
  • d86f2b9 Handle and log unexpected messages
  • 6151f17 Release v2.19.3
  • 02bd42f Skip logging peer events unless leadership changes
  • 3ae8122 Correct stale node logic for sonar tracking
  • 470cdd0 Expand defining queues guide
  • 4f3bc80 Expand operational maintenance guide
  • 2c488ed Expand and enhance the periodic jobs guide
  • 3776ff0 Expand and clarify scheduling guide
  • Additional commits viewable in compare view

Dependabot compatibility score

You can trigger a rebase of this PR 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 merge will merge this PR after your CI passes on it
  • @dependabot squash and merge will squash and merge this PR after your CI passes on it
  • @dependabot cancel merge will cancel a previously requested merge and block automerging
  • @dependabot reopen will reopen this PR if it is closed
  • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
  • @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)

Note
Automatic rebases have been disabled on this pull request as it has been open for over 30 days.

@dependabot dependabot bot added dependencies Pull requests that update a dependency file elixir Pull requests that update Elixir code labels Apr 28, 2025
@github-project-automation github-project-automation bot moved this to New Issues in v2 Apr 28, 2025
Copy link

codecov bot commented Apr 28, 2025

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 90.86%. Comparing base (f4445a3) to head (102c449).

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #3159      +/-   ##
==========================================
- Coverage   90.89%   90.86%   -0.03%     
==========================================
  Files         359      359              
  Lines       13605    13605              
==========================================
- Hits        12366    12362       -4     
- Misses       1239     1243       +4     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@theroinaochieng theroinaochieng moved this from New Issues to Tech Backlog in v2 May 6, 2025
@stuartc
Copy link
Member

stuartc commented May 27, 2025

@dependabot recreate

Bumps [oban](https://github.com/oban-bg/oban) from 2.18.3 to 2.19.4.
- [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.18.3...v2.19.4)

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

Signed-off-by: dependabot[bot] <[email protected]>
@dependabot dependabot bot force-pushed the dependabot/hex/oban-2.19.4 branch from 102c449 to adf6d14 Compare May 27, 2025 06:51
stuartc added a commit that referenced this pull request Jul 15, 2025
- bcrypt_elixir: 3.2.1 → 3.3.2
- sobelow: 0.13.0 → 0.14.0
- jsonpatch: 1.0.2 → 2.2.2
- oban: 2.18.3 → 2.19.4
- eqrcode: 0.1.10 → 0.2.1

Updated API calls for jsonpatch v2.x compatibility:
- Removed Jsonpatch.Mapper.from_map/1 and to_map/1 calls
- Updated workflow_params.ex and workflow_live_helpers.ex

Removed custom transact/2 function from Lightning.Repo:
- Ecto 3.13.2 now provides built-in transact functionality
- Eliminated function conflicts and duplication

Closes #3264
Closes #3263
Closes #3262
Closes #3159
Closes #3116
@github-project-automation github-project-automation bot moved this from Tech Backlog to Done in v2 Jul 15, 2025
Copy link
Contributor Author

dependabot bot commented on behalf of github Jul 15, 2025

OK, I won't notify you again about this release, but will get in touch when a new version is available. If you'd rather skip all updates until the next major or minor version, let me know by commenting @dependabot ignore this major version or @dependabot ignore this minor version. You can also ignore all major, minor, or patch releases for a dependency by adding an ignore condition with the desired update_types to your config file.

If you change your mind, just re-open this PR and I'll resolve any conflicts on it.

@dependabot dependabot bot deleted the dependabot/hex/oban-2.19.4 branch July 15, 2025 16:53
elias-ba pushed a commit that referenced this pull request Jul 15, 2025
* Bump multiple dependencies to latest versions

- bcrypt_elixir: 3.2.1 → 3.3.2
- sobelow: 0.13.0 → 0.14.0
- jsonpatch: 1.0.2 → 2.2.2
- oban: 2.18.3 → 2.19.4
- eqrcode: 0.1.10 → 0.2.1

Updated API calls for jsonpatch v2.x compatibility:
- Removed Jsonpatch.Mapper.from_map/1 and to_map/1 calls
- Updated workflow_params.ex and workflow_live_helpers.ex

Removed custom transact/2 function from Lightning.Repo:
- Ecto 3.13.2 now provides built-in transact functionality
- Eliminated function conflicts and duplication

Closes #3264
Closes #3263
Closes #3262
Closes #3159
Closes #3116

* Update CHANGELOG
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
Status: Done
Development

Successfully merging this pull request may close these issues.

1 participant