Skip to content

Releases: rage-rb/rage

v1.20.0

20 Jan 13:23
62c0b31

Choose a tag to compare

Rage v1.20 continues its observability journey and introduces Rage::Telemetry - a built-in telemetry system that lets developers observe and measure what's happening inside the application.
The first user of Rage::Telemetry is the official OpenTelemetry integration to be released and available in the following weeks.

Other changes include:

  • Add Response#status method for direct status code access
  • Expose metadata inside deferred tasks
  • Introduce middleware system for deferred tasks
  • Ensure compatibility with Rack::Events

Learn more: https://rage-rb.dev/docs/telemetry

v1.19.0

03 Dec 12:17
a762e4e

Choose a tag to compare

Rage v1.19 brings the first wave of observability improvements, starting with enhanced logging capabilities:

  • Global Log Context - Add dynamic data to all log entries in a centralized way
  • External Loggers - Connect Rage.logger directly to external observability platforms
  • Enhanced Deferred Logging - Deferred tasks now have access to complete log context, not just request IDs

Learn more: https://rage-rb.dev/docs/logging

Full Changelog: v1.18.0...v1.19.0

v1.18.0

29 Oct 10:23
d79f112

Choose a tag to compare

What's Changed

Added

Rage now includes a lightweight pub/sub event system for building decoupled, event-driven applications.

Key Features:

  • Define events using Ruby's Data class
  • Subscribe to parent classes or modules to handle multiple related events
  • Run subscribers in the background with automatic retries
  • Visualize event-subscriber relationships

https://rage-rb.dev/docs/event-system

Fixed

Fixed Fiber.await to correctly handle multiple sequential calls.

Full Changelog: v1.17.1...v1.18.0

v1.17.0

20 Aug 21:44
8373f95

Choose a tag to compare

Rage v1.17 introduces Rage::Deferred, an in-process background job queue that offloads long-running tasks from the request pipeline, improving client response times. Key features include:

  • Data Durability: A disk-based write-ahead log ensures task replay after server restarts or crashes.
  • Automatic Retries: Tasks are retried up to 5 times with exponential backoff on failure.
  • Backpressure: Prevents uncontrolled queue growth by blocking new tasks when the queue exceeds a limit.

Rage::Deferred is ideal for tasks like communicating with other services, sending emails, or syncing data. Check out the guide for all the details.

Other Changes

Full Changelog: v1.16.0...v1.17.0

v1.16.0

20 May 17:15
df55698

Choose a tag to compare

What's Changed

Rage v1.16 introduces a new WebSocket protocol - RawWebSocketJson. This protocol enables you to interact with Rage::Cable applications using the native WebSocket object, eliminating the need for the @rails/actioncable dependency.

Other changes:

  • Feature: Added the after_initialize hook by @serhii-sadovskyi in #149
  • [OpenAPI] Correctly handle the key option in associations
  • [OpenAPI] Correctly handle root_key!
  • Correctly parse plaintext responses in RSpec

New Contributors

Full Changelog: v1.15.1...v1.16.0

v1.15.0

02 Apr 17:45
8a8a12e

Choose a tag to compare

What's Changed

With v1.15, Rage introduces OpenAPI Explorer - a tool that allows you to experiment with Rage::OpenAPI without the need to set up a project. You can try out different tags and serializer combinations to see the documentation generated by Rage::OpenAPI.

Additionally, the release includes some new functionality and numerous bug fixes.

Added

  • Enhance the Rage::Request class by @aaoafk
  • [OpenAPI] Support the @param tag

Fixed

  • Fix using Fiber.schedule in console by @lkibbalam
  • Correctly handle regexp origins in Rage::Cors
  • [OpenAPI] Correctly handle trailing slash
  • [OpenAPI] Correctly handle empty shared components
  • [OpenAPI] Explicitly load Prism
  • [OpenAPI] Correctly verify available before actions
  • [OpenAPI] Correctly handle global comments

Shoutouts

Thank you to @RichStone for his idea of the OpenAPI Explorer tool, as well as for his feedback and advice on how to improve Rage::OpenAPI.

New Contributors

Full Changelog: v1.14.0...v1.15.0

v1.14.0

10 Mar 18:03
f2ec2e5

Choose a tag to compare

What's Changed

  • Update app template to include all app rake tasks by @pjb3 in #130
  • Reload code in development based on filesystem updates by @rsamoilov in #132

New Contributors

  • @pjb3 made their first contribution in #130

Full Changelog: v1.13.0...v1.14.0

v1.13.0

12 Feb 19:47
bc8bb2c

Choose a tag to compare

What's Changed

Shoutouts

Special thanks to @p8 for tackling the Ruby 3.4 + Rage bug!

New Contributors

Full Changelog: v1.12.0...v1.13.0

v1.12.0

21 Jan 18:28
47e227c

Choose a tag to compare

What's Changed

  • [Cable] Added Redis adapter, which now allows you to scale Rage::Cable applications to more than one server. The adapter is based on Redis Streams, which means clients do not lose messages during network disruptions. As before, an adapter is not needed if you only use one server. This means that even if Redis is down due to an outage, clients connected to the same server as the broadcaster will still receive broadcasts.
  • [API] Added long-awaited around_action hooks.
  • [OpenAPI] Added global response tags, which can be used to specify global responses shared by multiple endpoints.

Full Changelog: v1.11.0...v1.12.0

v1.11.0

18 Dec 19:49
58cf4fa

Choose a tag to compare

What's Changed

If you still haven’t had enough reasons to use Rage, here’s one more - v1.11 now lets you build OpenAPI specifications for your applications!

We’ve worked hard on implementing this feature and even harder on scoping it out. And with features like automatic security scheme application based on before_action callbacks and integration with the awesome Alba, we couldn’t be happier with the result!

So, check out the guide and don’t forget to share your feedback!

Another important update in this release:
Rage now correctly handles ActiveRecord connections in the environments with legacy_connection_handling == false.

Full Changelog: v1.10.1...v1.11.0