Skip to content

Releases: temporalio/sdk-ruby

v1.0.0

29 Sep 20:31
49ef94e
Compare
Choose a tag to compare

Get from RubyGems and read the README

Highlights

Temporal Ruby SDK Generally Available

With this 1.0.0 release, the Ruby SDK is now considered stable. This means it has been thoroughly used and tested to ensure it meets Temporal quality standards. Throughout the prerelease period, we have received ample feedback and have adjusted the SDK as needed to address feedback and address any issues encountered. We strive to not make any backwards incompatible changes.

Environment Configuration Support (experimental)

Users can now use Temporalio::EnvConfig to load environment configuration from config files or environment variables. This is the same configuration approach that can be used across other SDKs and CLI. See https://docs.temporal.io/develop/environment-configuration for more details.

⚠️ This is experimental and subject to change.

Custom Slot Suppliers (experimental)

Worker tuners can now provide custom slot suppliers. This is for very advanced use cases that need custom logic to determine when a slot can be reserved. A custom implementation of Temporalio::Worker::Tuner::SlotSupplier::Custom can be provided for slot suppliers in a tuner which is then called from the C extension to determine if a slot can be reserved and to report on usage/release of the slot. Users of this API should pay close attention to API docs since it can affect the running of the system if implemented improperly.

⚠️ This is experimental and subject to change.

Specific Changes

2025-09-03 - 1039803 - Bump golang.org/x/net in /temporalio/test/golangworker (#303)
2025-09-03 - 4fc6a58 - Bump tracing-subscriber from 0.3.19 to 0.3.20 in /temporalio (#331)
2025-09-08 - d3391ec - Reduce the scope of the illegal call tracer and other tracing fixes (#332)
2025-09-10 - 51b5f95 - Environment configuration (#326)
2025-09-11 - cd07caa - Activity reset support (#337)
2025-09-15 - 472ac69 - Added first_execution_run_id to Workflow::Info (#339)
2025-09-18 - 3a8a977 - Remove useless disable_file parameter for ClientConfig.load (#340)
2025-09-19 - 1aa91a2 - Added retry policy to activity info (#341)
2025-09-19 - 1bcac1a - Added option to set local activity summary. Added activity summary tests (#342)
2025-09-29 - 9b641d7 - Custom slot suppliers (#343)

v0.6.0

25 Aug 15:26
46ebcb4
Compare
Choose a tag to compare

⚠️ THIS IS A BETA RELEASE AND COMPATIBILITY MAY NOT BE MAINTAINED

Get from RubyGems and read the README

Highlights

💥 BREAKING CHANGE - Ruby Sync Constructs Invalid in Workflows

After many discussions/deliberations, we have decided to consider Ruby sync constructs in the standard library like sleep, Timeout.timeout, Mutex, and Queue as illegal in workflows. Even though they are fiber-aware and therefore implicitly durable, they can accidentally be misused and are implicitly used inside things like loggers that can cause issues for workflows. We provide workflow-safe equivalents for use.

See the PR at #314, associated links on that PR, and the README for more information.

Task Queue Fairness Support (experimental)

This release adds support for Task Queue Fairness. Fairness is a new feature of Temporal's task queues that allows for more control over the order that tasks are dispatched from a backlog. It's intended to address common situations like multi-tenant applications and reserved capacity bands.

This is in addition to experimental "Task Queue Priority Support" provided last release.

Specific Changes

2025-07-24 - f3b34b4 - Coinbase Ruby guide (#304)
2025-08-11 - 21a3f31 - Fix issue with high-contention mutex causing hung workflows (#309)
2025-08-14 - ad2b9f5 - Update Core (#317)
2025-08-14 - d799d0b - Change Logger::Unknown to Logger::UNKNOWN in scoped_logger.rb (#316)
2025-08-15 - 4a9740e - Do not resume wait condition if fiber no longer alive (#312)
2025-08-18 - 248dc46 - 💥 BREAKING CHANGE - Disallow Ruby sync constructs from stdlib and provide safe alternatives (#314)
2025-08-20 - c3779da - Fairness Keys & Weights (#322)
2025-08-21 - 6512c02 - Priority key should be optional (#323)
2025-08-21 - 960f162 - Allow name reuse on different handler types (#321)
2025-08-25 - 16cf3aa - Update version to 0.6.0 (#324)
2025-08-25 - 866db2b - Update Core to support Unix-socket-based HTTP proxies (#325)

v0.5.0

24 Jul 16:44
3f457cb
Compare
Choose a tag to compare

⚠️ THIS IS A BETA RELEASE AND COMPATIBILITY MAY NOT BE MAINTAINED

Get from RubyGems and read the README

Highlights

Converter Hints

Most places that affect data conversion to/from types can now have a "hint" set which is passed to the payload converter. These hints are not used by the default converters, but custom converters may leverage them to know more about the (de)serialization they should perform.

Task Queue Priority Support (experimental)

Task queue priority annotations are present to set workflow/activity tasks with specific priorities. This is to support the new server-side task queue priority feature which is still experimental.

Worker Versioning (experimental)

Worker versioning details can be set for workflow/activity/worker options. This is to support the new server-side worker versioning feature which is still experimental.

Poller Auto-scaling

Options for automating poller scaling are now available for workers.

Activity Pause (experimental)

Activities are interrupted via cancellation mechanisms when paused. This is to support the new server-side activity pause feature which is still experimental.

Specific Changes

2025-04-28 - 1d8b2c6 - Add CODEOWNERS (#256)
2025-05-02 - 9ce9025 - Fix auto_time_skipping_disabled (#260)
2025-05-06 - f1339c4 - Set required_ruby_version to >= 3.2.0 in the gemspec (#258)
2025-05-12 - 8c5c8b9 - Add workflow check that local activity exists (#263)
2025-05-12 - 95dc94a - Fix issue with OTel timestamps (#257)
2025-05-14 - df0a34f - Worker Versioning (#262)
2025-05-19 - 644bb8c - Use proper workflow start time in workflow info (#266)
2025-05-19 - 64deb42 - Rails README updates (#269)
2025-05-19 - f2e5c17 - Disallow keyword arguments on handlers with deserialized arguments (#265)
2025-05-29 - 196e0ac - Priority annotations (#274)
2025-05-29 - 251c16f - Expose poller automation (#275)
2025-06-03 - 143e257 - Added application error category (#277)
2025-06-09 - 2d764b5 - Properly retry start update if not ready yet (#282)
2025-06-09 - 9a043a2 - Do not require heartbeating to be done in context (#280)
2025-06-10 - 143e421 - Activity pause support (#283)
2025-06-27 - cc5b393 - Allow specifying Exception as workflow failure types (#286)
2025-06-27 - ec7212b - Pagination support for listing workflows through a new Client#list_workflow_page method (#285)
2025-06-27 - ee772d4 - Support certain Time calls in workflows with advanced validation (#291)
2025-07-07 - 7eb50a5 - Make application error type default to unqualified type name (#295)
2025-07-07 - dc83329 - Allow unsafe disabling of durable workflow scheduler (#284)
2025-07-14 - 5685901 - Converter hints (#296)
2025-07-22 - 6ca1482 - Update Core (#302)
2025-07-22 - c00f40a - Allow hints for accessing last heartbeat details (#300)
2025-07-23 - 5be2e52 - Prevent using SDK runtimes/clients/workers across forks (#301)

v0.4.0

21 Apr 13:05
c52c5fe
Compare
Choose a tag to compare

⚠️ THIS IS A BETA RELEASE AND COMPATIBILITY MAY NOT BE MAINTAINED

Get from RubyGems and read the README

Highlights

SDK is now Beta

Ruby SDK is now in beta and will be GA soon. Being in beta means that APIs are fairly stable and there has been plenty of production usage to confirm the quality and approach. Although no exact timetable is set, it will not be too long before 1.0. Please use the SDK and give feedback to help us get to GA faster.

Workflow Replayer

Temporalio::Worker::WorkflowReplayer is now available to replay workflow histories. This is an important utility to be able to test that new workflow code is safe to run against existing histories. Using this with debug_mode=true is a common way to debug and step through past executions to see what exact lines of code were executed.

MUSL Support

Linux MUSL x64 gems are now published for each release. This allows users to use Alpine-based images/containers to run the SDK.

Update-with-Start and Signal-with-start

The client now supports signal_with_start_workflow, start_update_with_start_workflow, and execute_update_with_start_workflow. As of this writing, update with start is not yet GA, but it will be soon.

OpenTelemetry Tracing

Temporalio::Contrib::OpenTelemetry module is now present that contains a TracingInterceptor class that can be set on clients for enabling OpenTelemetry tracing, and a Workflow module with with_completed_span/completed_span helpers. See the README section on OpenTelemetry for more details.

Specific Changes

2025-01-23 - 17cb2b5 - Fix typo in README example (#202)
2025-01-24 - c79cc61 - Workflow replayer support (#204)
2025-01-27 - 2115ff7 - Workflow and activity instance access from context (#207)
2025-02-03 - fb1305e - Add CI job for docs site (#212)
2025-02-05 - 880b63c - Add request for feedback to README (#214)
2025-02-06 - 5b34e03 - Downgrade minimum protobuf version needed to 3.25 (#213)
2025-02-06 - c32e808 - MUSL support (#216)
2025-02-11 - 319fe2e - Update and signal with start (#201)
2025-02-11 - 7162d3e - Worker client replacement and activity client access (#219)
2025-02-12 - 66d68ea - Search attributes and UI port on dev server (#220)
2025-02-19 - e7f19b9 - Reserve certain prefixes (#221)
2025-02-20 - 5d692ab - User metadata (#223)
2025-03-17 - 6b4631a - Use RawValue for built-in query response (#231)
2025-03-17 - be309d1 - Support HTTP protocol for OTel metrics (#230)
2025-03-21 - 6218c1f - Simple nightly benchmark (#235)
2025-03-27 - 7f746cf - OpenTelemetry tracing support (#234)
2025-04-09 - 89945c2 - Buffered metric support (#240)
2025-04-15 - 125e51a - Update Core (with changes needed) and update version to 0.4.0 (#245)
2025-04-15 - 5af1ad4 - Support parentless OTel workflow spans (#244)
2025-04-15 - 90d90bd - Support unsafe IO/io_wait inside workflows (#243)
2025-04-17 - 71af6d6 - Expose root execution info and update cargo deps (#247)
2025-04-18 - c52c5fe - Custom histogram metric buckets (#249)

v0.3.0

22 Jan 14:12
eabdfe8
Compare
Choose a tag to compare

⚠️ THIS IS AN ALPHA RELEASE AND COMPATIBILITY MAY NOT BE MAINTAINED

Get from RubyGems and read the README

Highlights

Workflow Support

This release contains full support for workflows, now making the Ruby SDK a full-featured SDK. All major features of workflows are present. See the README for details on how to write workflows.

Schedule Support

Full support for creating and managing schedules has been added.

💥BREAKING CHANGE: Activity Definition Base Class Change

In the last alpha release in 0.2.0, activities had to extend Temporalio::Activity. This has changed to Temporalio::Activity::Definition to be more in line with workflows.

💥BREAKING CHANGE: Ruby 3.1 No Longer Supported

Only Ruby 3.2+ is supported now (with tests confirming 3.4 support). Many uses of Structs have been changed to Data along with this change.

Specific Changes

2024-10-21 - 67741fc - RPC cancellation support (#174)
2024-11-04 - ecaab5c - Support for schedules (#175)
2024-11-12 - 4599b85 - Metric meter support (#177)
2025-01-14 - 4512224 - Workflow support (#183)
2025-01-15 - a9034b8 - Drop Ruby 3.1, support Ruby 3.4 (#194)
2025-01-17 - 350951a - Dynamic activities (#198)
2025-01-21 - bbd6842 - Update core, update release version to 0.3.0 (#199)
2025-01-21 - ef62a52 - Cloud test and support for updating API keys and RPC metadata (#197)
2025-01-22 - eabdfe8 - Remove Ractor expectations (#200)

v0.2.0

18 Oct 17:38
cde31d9
Compare
Choose a tag to compare

⚠️ THIS IS AN ALPHA RELEASE AND COMPATIBILITY WILL NOT BE MAINTAINED

Get from RubyGems and read the README

Highlights

Client and Activity Worker support

This is the initial release since a refresh of the project. This includes client support and support for running activities. See the README for more information on how to use.

Specific Changes

2024-07-12 - c896498 - Reset repository
2024-07-12 - fd0bfe0 - Add LICENSE and README
2024-08-09 - 5d17d1d - Scaffolding and bare-bones client (#155)
2024-09-05 - ff47b2e - More client features (#157)
2024-09-13 - 83bea60 - More client work (#159)
2024-10-17 - dd0da03 - Activity support (#161)
2024-10-18 - cde31d9 - Update version to not mark gem as prerelease and add source gem (#173)
2024-10-18 - f49e5a3 - Support for building gems and prepare release (#171)

v0.1.1 (alpha)

28 Mar 15:45
cc665f0
Compare
Choose a tag to compare
v0.1.1 (alpha) Pre-release
Pre-release

⚠️ THIS IS AN ALPHA RELEASE — COMPATIBILITY WILL NOT BE MAINTAINED

Get it from Ruby Gems.
See the README for an overview.

Highlights

  • Include RBS files in bundled Gems. Should hopefully fix #134.
  • Make sure ld build flag -Wl,-undefined,dynamic_lookup is always present on OSX. This fixes a build issue causing Undefined symbols for architecture arm64 errors if Ruby was built with XCode 14+.

The following features from previous releases are also included:

  • A Temporal client capable of starting, signaling, querying and terminating workflows
  • Activity-only workers for running Ruby activities
  • Data Converters for encoding/decoding payloads
  • Supports for Linux x64 and ARM (glibc >= 2.31), and OSX x64 and ARM (aka. M1/M2)

Note that this release does not include support for developping workflows in Ruby. Development for Workflow Workers is ongoing and will be included in a future release (no ETA at this moment).

v0.1.0 (alpha)

23 Mar 20:56
4556c0f
Compare
Choose a tag to compare
v0.1.0 (alpha) Pre-release
Pre-release

⚠️ THIS IS AN ALPHA RELEASE — COMPATIBILITY WILL NOT BE MAINTAINED

Get it from Ruby Gems.
See the README for an overview.

Highlights

  • TLS/mTLS is now supported!
  • Added support for activity interceptors

The following features from previous releases are also included:

  • A Temporal client capable of starting, signaling, querying and terminating workflows
  • Activity-only workers for running Ruby activities
  • Data Converters for encoding/decoding payloads
  • Supports for Linux x64 and ARM (glibc >= 2.31), and OSX x64 and ARM (aka. M1/M2)

Note that this release does not include support for developping workflows in Ruby. Development for Workflow Workers is ongoing and will be included in a future release (no ETA at this moment).

v0.0.2 (alpha)

05 Jan 00:02
Compare
Choose a tag to compare
v0.0.2 (alpha) Pre-release
Pre-release

⚠️ THIS IS AN EARLY RELEASE AND COMPATIBILITY WILL NOT BE MAINTAINED

Activity Worker

This release includes:

  • A framework for defining Activities
  • An Activity Worker that allows you to process Activities
  • Rename of the Temporal namespace to Temporalio (inline with other SDKs)

This release does not include (these will be available in the upcoming releases):

  • mTLS support for Temporal Client
  • Interceptors for Activity Worker
  • Workflow worker

Please refer to the README for instructions on how to use it.

v0.0.1 (alpha)

18 Nov 19:11
Compare
Choose a tag to compare
v0.0.1 (alpha) Pre-release
Pre-release

⚠️ THIS IS AN EARLY RELEASE AND COMPATIBILITY WILL NOT BE MAINTAINED

Initial release

This release includes:

  • A Temporal Client based on the Core SDK for interacting with Temporal Server and specific workflows
  • Data Converters for encoding/decoding payloads
  • Support for macOS x64, macOS ARM, Linux x64 and Linux ARM

This release does not include (these will be available in the upcoming releases):

  • mTLS support for Temporal Client
  • Activity worker
  • Workflow worker

Please refer to the README for instructions on how to use it.