bump deps & rubydex - #118
Conversation
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #118 +/- ##
========================================
Coverage 99.68% 99.69%
========================================
Files 234 238 +4
Lines 9946 10130 +184
Branches 1463 1498 +35
========================================
+ Hits 9915 10099 +184
Misses 23 23
Partials 8 8
|
There was a problem hiding this comment.
Pull request overview
Releases Julewire 1.1.3 with dependency updates, Rubydex indexing, and safer pre-fork handling for Ractor-based destinations.
Changes:
- Adds coordinated
before_fork!lifecycle hooks across core, Ractor, Rails, and Karafka. - Updates Karafka compatibility and extracts monitor profiles.
- Bumps gem versions, development dependencies, and locksets.
Reviewed changes
Copilot reviewed 87 out of 99 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
Rakefile |
Registers the new public error API. |
gems/semantic_logger/lib/julewire/semantic_logger/version.rb |
Bumps version to 1.1.3. |
gems/semantic_logger/gemfiles/semantic_logger_5.gemfile.lock |
Refreshes Semantic Logger 5 dependencies. |
gems/semantic_logger/gemfiles/semantic_logger_4.gemfile.lock |
Refreshes Semantic Logger 4 dependencies. |
gems/semantic_logger/Gemfile.lock |
Updates dependencies and adds Rubydex. |
gems/semantic_logger/Gemfile |
Adds Rubydex tooling. |
gems/semantic_logger/CHANGELOG.md |
Documents release 1.1.3. |
gems/redaction/lib/julewire/redaction/version.rb |
Bumps version to 1.1.3. |
gems/redaction/Gemfile.lock |
Refreshes dependencies. |
gems/redaction/Gemfile |
Adds Rubydex tooling. |
gems/redaction/CHANGELOG.md |
Documents release 1.1.3. |
gems/rails/lib/julewire/rails/version.rb |
Bumps version to 1.1.3. |
gems/rails/lib/julewire/rails/exception_severity.rb |
Simplifies constant qualification. |
gems/rails/Gemfile.lock |
Refreshes dependencies. |
gems/rails/Gemfile |
Adds Rubydex tooling. |
gems/rails/docs/lifecycle.md |
Documents Puma fork lifecycle. |
gems/rails/CHANGELOG.md |
Documents release 1.1.3. |
gems/rails_support/lib/julewire/rails_support/version.rb |
Bumps version to 1.1.3. |
gems/rails_support/Gemfile.lock |
Refreshes dependencies. |
gems/rails_support/Gemfile |
Adds Rubydex tooling. |
gems/rails_support/CHANGELOG.md |
Documents release 1.1.3. |
gems/ractor/test/julewire/test_remote_runtime.rb |
Tests remote pre-fork rejection. |
gems/ractor/test/julewire/test_ractor_destination.rb |
Expands destination lifecycle tests. |
gems/ractor/test/julewire/test_ractor_destination_collections.rb |
Tests fanout pre-fork behavior. |
gems/ractor/test/julewire/test_ractor_bridge_lifecycle.rb |
Tests bridge fork safety. |
gems/ractor/test/julewire/test_destination_worker.rb |
Tests worker quiescing. |
gems/ractor/test/julewire/test_bridge_stats.rb |
Resets bridge statistics after tests. |
gems/ractor/lib/julewire/ractor/version.rb |
Bumps version to 1.1.3. |
gems/ractor/lib/julewire/ractor/remote_runtime.rb |
Rejects remote before_fork!. |
gems/ractor/lib/julewire/ractor/fanout.rb |
Adds fanout preparation and rollback. |
gems/ractor/lib/julewire/ractor/destination.rb |
Implements destination quiescing and restart. |
gems/ractor/lib/julewire/ractor/destination_worker.rb |
Adds non-closing quiesce command. |
gems/ractor/lib/julewire/ractor/bridge.rb |
Rejects unsafe forks with live Ractors. |
gems/ractor/lib/julewire/ractor.rb |
Registers the bridge pre-fork hook. |
gems/ractor/julewire-ractor.gemspec |
Requires core 1.1.3. |
gems/ractor/Gemfile.lock |
Refreshes dependencies. |
gems/ractor/Gemfile |
Adds Rubydex tooling. |
gems/ractor/docs/bridge.md |
Documents safe Ractor forking. |
gems/ractor/CHANGELOG.md |
Documents Ractor lifecycle changes. |
gems/rack/lib/julewire/rack/version.rb |
Bumps version to 1.1.3. |
gems/rack/Gemfile.lock |
Refreshes dependencies. |
gems/rack/Gemfile |
Adds Rubydex tooling. |
gems/rack/CHANGELOG.md |
Documents release 1.1.3. |
gems/karafka/test/support/julewire/karafka/fakes.rb |
Clarifies a test fake signature. |
gems/karafka/test/support/julewire/karafka/capture.rb |
Excludes the new fork event. |
gems/karafka/test/julewire/test_waterdrop.rb |
Uses direct event constants. |
gems/karafka/test/julewire/test_public_api.rb |
Tests Karafka pre-fork integration. |
gems/karafka/test/julewire/test_listener.rb |
Updates profile and event coverage. |
gems/karafka/README.md |
Documents swarm fork behavior. |
gems/karafka/lib/julewire/karafka/waterdrop_installer.rb |
Uses extracted producer profiles. |
gems/karafka/lib/julewire/karafka/version.rb |
Bumps version to 1.1.3. |
gems/karafka/lib/julewire/karafka/monitor_subscription.rb |
Accepts resolved profile objects. |
gems/karafka/lib/julewire/karafka/monitor_profiles.rb |
Defines consumer and producer profiles. |
gems/karafka/lib/julewire/karafka/monitor_listener.rb |
Uses extracted profiles. |
gems/karafka/lib/julewire/karafka/installer.rb |
Supplies the consumer profile. |
gems/karafka/lib/julewire/karafka/fork_hooks.rb |
Handles manager pre-fork events. |
gems/karafka/julewire-karafka.gemspec |
Requires core 1.1.3. |
gems/karafka/Gemfile.lock |
Updates Karafka and tooling dependencies. |
gems/karafka/Gemfile |
Adds Rubydex tooling. |
gems/karafka/docs/consumer-events.md |
Documents Karafka fork hooks. |
gems/karafka/CHANGELOG.md |
Documents release 1.1.3. |
gems/gcp/lib/julewire/gcp/version.rb |
Bumps version to 1.1.3. |
gems/gcp/Gemfile.lock |
Refreshes dependencies. |
gems/gcp/Gemfile |
Adds Rubydex tooling. |
gems/gcp/CHANGELOG.md |
Documents release 1.1.3. |
gems/core/test/julewire/test_tail_sampling.rb |
Tests sampling pre-fork behavior. |
gems/core/test/julewire/test_synchronized_output_concurrency.rb |
Tests lifecycle serialization. |
gems/core/test/julewire/test_output_lifecycle.rb |
Tests output hook forwarding. |
gems/core/test/julewire/test_destination_collection.rb |
Tests preparation and rollback. |
gems/core/test/julewire/test_core.rb |
Verifies the new public API. |
gems/core/test/julewire/test_core_runtime_hooks.rb |
Tests runtime and integration hooks. |
gems/core/lib/julewire/core/version.rb |
Bumps version to 1.1.3. |
gems/core/lib/julewire/core/unsafe_fork_error.rb |
Defines unsafe-fork failures. |
gems/core/lib/julewire/core/runtime.rb |
Exposes runtime preparation methods. |
gems/core/lib/julewire/core/runtime_registry.rb |
Coordinates runtimes before forks. |
gems/core/lib/julewire/core/processing/pipeline.rb |
Forwards pipeline lifecycle calls. |
gems/core/lib/julewire/core/integration/lifecycle.rb |
Registers pre-fork integration hooks. |
gems/core/lib/julewire/core/integration/hook_names.rb |
Centralizes hook-name validation. |
gems/core/lib/julewire/core/integration/fork_hooks.rb |
Reuses hook-name validation. |
gems/core/lib/julewire/core/integration/before_fork_hooks.rb |
Stores and runs pre-fork hooks. |
gems/core/lib/julewire/core/facade_methods.rb |
Adds public before_fork!. |
gems/core/lib/julewire/core/destinations/tail_sampling.rb |
Drains sampling before forks. |
gems/core/lib/julewire/core/destinations/synchronized_output.rb |
Serializes output preparation. |
gems/core/lib/julewire/core/destinations/destination.rb |
Forwards destination preparation. |
gems/core/lib/julewire/core/destinations/collection.rb |
Coordinates preparation and rollback. |
gems/core/lib/julewire/core/destinations/chaos_output.rb |
Forwards pre-fork lifecycle calls. |
gems/core/lib/julewire/core.rb |
Publishes UnsafeForkError. |
gems/core/Gemfile.lock |
Refreshes dependencies. |
gems/core/Gemfile |
Adds Rubydex tooling. |
gems/core/docs/outputs-and-lifecycle.md |
Documents lifecycle usage. |
gems/core/docs/extensions-and-api.md |
Documents extension hooks. |
gems/core/docs/contracts.md |
Updates public and SPI contracts. |
gems/core/CHANGELOG.md |
Documents release 1.1.3. |
gems/core/.mutant.yml |
Adds new API mutation targets. |
gems/active_job/lib/julewire/active_job/version.rb |
Bumps version to 1.1.3. |
gems/active_job/Gemfile.lock |
Refreshes dependencies. |
gems/active_job/Gemfile |
Adds Rubydex tooling. |
gems/active_job/CHANGELOG.md |
Documents release 1.1.3. |
.rubocop.yml |
Enables caching and project indexing. |
Suppressed comments (1)
gems/ractor/lib/julewire/ractor/destination.rb:138
- If teardown times out or raises after the quiesce command is sent,
@prepared_for_forkis never set. Core then rolls this destination back viaafter_fork!, but that method returns immediately because the flag is false, leaving the destination closed with a worker that is stopping or stopped. The fork is aborted, yet logging cannot resume. Preserve an explicit partial-preparation state and make rollback collect/restart the worker before re-enabling emits.
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 87 out of 99 changed files in this pull request and generated 2 comments.
Suppressed comments (2)
gems/ractor/lib/julewire/ractor/destination.rb:115
- Closing a successfully prepared destination skips terminal output cleanup.
before_fork!quiesces the worker without closing an owned output and clears@worker; this code then clears the preparation flag and returns immediately, soclose_output: trueresources never receiveclose. Handle the prepared/no-worker state by performing an owned-output close (or starting a terminal worker to do so) before clearing the flag.
gems/rails/docs/lifecycle.md:19 - Remove this child hook because Rails' installed
ActiveSupport::ForkTrackeralready invokesJulewire.after_fork!afterProcess._fork(as documented immediately above). Calling it again fromon_worker_bootforwards a secondafter_fork!to every custom destination, which can duplicate reopen/reset operations. Keep only the pre-fork Puma hook; the parent can still use its separate post-fork hook as described below.
No description provided.