Skip to content

Bump tuber from 0.5.1 to 0.6.0 - #21

Open
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/bundler/tuber-0.6.0
Open

dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/bundler/tuber-0.6.0

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Sep 23, 2026

Copy link
Copy Markdown

Bumps tuber from 0.5.1 to 0.6.0.

Changelog

Sourced from tuber's changelog.

0.6.0 (September 16 2026)

Reconnection release. The gem retried reconnects but not connects, so a consumer that caught Tuber::NotConnected and built a new client — the obvious thing to write — never reached the retrying path, and a server restart of a few seconds was enough to kill it. reconnect! makes the existing healing reachable, and connect_retries gives a cold start a window wider than the outage. Existing behaviour is unchanged until connect_retries is raised, with two exceptions noted below: NotConnected messages gained a suffix (the historical text remains a strict prefix), and a connect error other than ECONNREFUSED is now retried and surfaced as NotConnected rather than escaping as a raw Errno.

  • Add Tuber#reconnect! / Connection#reconnect!: re-establishes the connection and replays its tube state (watched tubes with their weights, the used tube, the reserve mode). This healing only ever ran when the connection itself noticed a dropped socket, so a consumer that caught Tuber::NotConnected had no way to reach it and had to build a new client — which starts with no tube state and has to re-watch and re-weight every tube by hand.
  • Add connect_retries and connect_retry_interval configuration. The initial connect took exactly one attempt with no retry, so a cold start during a server restart — a web boot, a fresh Tuber.new, a daemon rebuilding its client after an error — failed where an established connection would have healed. Defaults to the historical single attempt; raising it also lifts the reconnect budget of connections already established, so one knob covers both.
  • Retry a connect that fails for any reason the server might be unreachable (ETIMEDOUT, EHOSTUNREACH, ENETUNREACH, DNS failure, connect timeout), not only ECONNREFUSED. Those previously escaped as a raw Errno from the middle of a reconnect, a class no consumer thinks to rescue.
  • Tuber::NotConnected now names the underlying error in its message and keeps it as the exception's cause. A bare rescue collapsed every connect failure into "Connection to beanstalk '...' is closed!", hiding whether the server refused, timed out, or was never resolved — exactly what you need during an outage.
  • Connection#close no longer raises if the socket cannot be closed cleanly; the connection is gone either way and reconnect! must not fail on the way to replacing it.
  • Fix a reconnect silently dropping per-tube weights and the connection's reserve mode (#1). Both are per-connection server state that a fresh socket resets, so a consumer that healed across a brief server restart kept working but quietly fell back to FIFO. Connection now remembers the weight each tube was watched with and the mode set by Tubes#reserve_mode, and replays them (watch, then ignore default, then reserve-mode) when re-initialising tubes.
  • Fix _initialize_tubes sending ignore default after a reconnect even when default was one of the watched tubes, which dropped it from the watch list.
  • Connection#add_to_watched now takes an optional weight as a second argument, and Connection#tube_weights / Connection#reserve_mode expose the replayed state.
Commits

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 [tuber](https://github.com/tuberq/tuber-gem) from 0.5.1 to 0.6.0.
- [Release notes](https://github.com/tuberq/tuber-gem/releases)
- [Changelog](https://github.com/tuberq/tuber-gem/blob/main/CHANGELOG.md)
- [Commits](https://github.com/tuberq/tuber-gem/commits)

---
updated-dependencies:
- dependency-name: tuber
  dependency-version: 0.6.0
  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 ruby Pull requests that update ruby code labels Sep 23, 2026
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 ruby Pull requests that update ruby code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants