Releases: ruby-shoryuken/shoryuken
v7.0.0.rc1
-
Enhancement: Add ActiveJob Continuations support (Rails 8.1+)
- Implements
stopping?method in ActiveJob adapters to signal graceful shutdown - Enables jobs to checkpoint progress and resume after interruption
- Handles past timestamps correctly (SQS treats negative delays as immediate delivery)
- Tracks shutdown state in Launcher via
stopping?flag - Leverages existing Shoryuken shutdown lifecycle (stop/stop! methods)
- Includes comprehensive integration tests with continuable jobs
- See Rails PR #55127 for more details on ActiveJob Continuations
- Implements
-
Breaking: Remove support for Rails versions older than 7.2
- Rails 7.0 and 7.1 have reached end-of-life and are no longer supported
- Supported versions: Rails 7.2, 8.0, and 8.1
- Users on older Rails versions should upgrade or remain on Shoryuken 6.x
-
Enhancement: Replace Concurrent::AtomicFixnum with pure Ruby AtomicCounter
- Removes external dependency on concurrent-ruby for atomic fixnum operations
- Introduces Shoryuken::Helpers::AtomicCounter as a thread-safe alternative using Mutex
- Reduces gem footprint while maintaining full functionality
-
Enhancement: Replace Concurrent::AtomicBoolean with pure Ruby AtomicBoolean
- Removes external dependency on concurrent-ruby for atomic boolean operations
- Introduces Shoryuken::Helpers::AtomicBoolean extending AtomicCounter
- Further reduces gem footprint while maintaining full functionality
-
Enhancement: Replace Concurrent::Hash with pure Ruby AtomicHash
-
Enhancement: Replace core class extensions with helper utilities
- Removes all core Ruby class monkey-patching (Hash and String extensions)
- Introduces Shoryuken::Helpers::HashUtils.deep_symbolize_keys for configuration processing
- Introduces Shoryuken::Helpers::StringUtils.constantize for dynamic class loading
- Eliminates unnecessary ActiveSupport dependencies
- Completely removes lib/shoryuken/core_ext.rb file
- Maintains all existing functionality while following Ruby best practices
- Improves code maintainability and reduces global namespace pollution
-
Enhancement: Implement Zeitwerk autoloading
- Replaces manual require statements with Zeitwerk-based autoloading
- Adds zeitwerk dependency for modern Ruby module loading
- Splits polling classes into properly named files (BaseStrategy, QueueConfiguration)
- Reduces startup overhead and improves code organization
- Maintains backward compatibility while modernizing the codebase
-
Enhancement: Increase
SendMessageBatchto 1MB to align with AWS -
Enhancement: Replace OpenStruct usage with Struct for inline execution
-
Enhancement: Configure server side logging (BenMorganMY)
-
Enhancement: Use -1 as thread priority
-
Enhancement: Add Support for message_attributes to InlineExecutor
-
Enhancement: Introduce trusted publishing
-
Enhancement: Add enqueue_after_transaction_commit? for Rails 7.2 compatibility
-
Enhancement: Bring Ruby 3.4 into the CI
-
Fix integration tests by updating aws-sdk-sqs and replacing moto with LocalStack
-
Breaking: Remove support of Ruby versions older than 3.1
-
Breaking: Remove support of Rails versions older than 7.0
-
Breaking: Require
aws-sdk-sqs>=1.66:
v7.0.0.alpha2
-
Enhancement: Replace Concurrent::AtomicFixnum with pure Ruby AtomicCounter
- Removes external dependency on concurrent-ruby for atomic fixnum operations
- Introduces Shoryuken::Helpers::AtomicCounter as a thread-safe alternative using Mutex
- Reduces gem footprint while maintaining full functionality
-
Enhancement: Replace Concurrent::AtomicBoolean with pure Ruby AtomicBoolean
- Removes external dependency on concurrent-ruby for atomic boolean operations
- Introduces Shoryuken::Helpers::AtomicBoolean extending AtomicCounter
- Further reduces gem footprint while maintaining full functionality
-
Enhancement: Replace Concurrent::Hash with pure Ruby AtomicHash
-
Enhancement: Replace core class extensions with helper utilities
- Removes all core Ruby class monkey-patching (Hash and String extensions)
- Introduces Shoryuken::Helpers::HashUtils.deep_symbolize_keys for configuration processing
- Introduces Shoryuken::Helpers::StringUtils.constantize for dynamic class loading
- Eliminates unnecessary ActiveSupport dependencies
- Completely removes lib/shoryuken/core_ext.rb file
- Maintains all existing functionality while following Ruby best practices
- Improves code maintainability and reduces global namespace pollution
-
Enhancement: Implement Zeitwerk autoloading
- Replaces manual require statements with Zeitwerk-based autoloading
- Adds zeitwerk dependency for modern Ruby module loading
- Splits polling classes into properly named files (BaseStrategy, QueueConfiguration)
- Reduces startup overhead and improves code organization
- Maintains backward compatibility while modernizing the codebase
-
Enhancement: Increase
SendMessageBatchto 1MB to align with AWS -
Enhancement: Replace OpenStruct usage with Struct for inline execution
-
Enhancement: Configure server side logging (BenMorganMY)
-
Enhancement: Use -1 as thread priority
-
Enhancement: Add Support for message_attributes to InlineExecutor
-
Enhancement: Introduce trusted publishing
-
Enhancement: Add enqueue_after_transaction_commit? for Rails 7.2 compatibility
-
Enhancement: Bring Ruby 3.4 into the CI
-
Fix integration tests by updating aws-sdk-sqs and replacing moto with LocalStack
-
Breaking: Remove support of Ruby versions older than 3.1
-
Breaking: Remove support of Rails versions older than 7.0
-
Breaking: Require
aws-sdk-sqs>=1.66:
v7.0.0.alpha1
-
Enhancement: Use -1 as thread priority
-
Enhancement: Add Support for message_attributes to InlineExecutor
-
Enhancement: Introduce trusted publishing
-
Enhancement: Add enqueue_after_transaction_commit? for Rails 7.2 compatibility
-
Enhancement: Bring Ruby 3.4 into the CI
-
Fix integration tests by updating aws-sdk-sqs and replacing moto with LocalStack
-
Breaking: Remove support of Ruby versions older than 2.7
-
Breaking: Remove support of Rails versions older than 6.1
-
Breaking: Require
aws-sdk-sqs>=1.66: