Skip to content

bump deps & rubydex - #118

Merged
slbug merged 10 commits into
mainfrom
update_deps_and_rubydex
Aug 9, 2026
Merged

bump deps & rubydex#118
slbug merged 10 commits into
mainfrom
update_deps_and_rubydex

Conversation

@slbug

@slbug slbug commented Aug 9, 2026

Copy link
Copy Markdown
Owner

No description provided.

@slbug slbug self-assigned this Aug 9, 2026
@codecov

codecov Bot commented Aug 9, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 99.69%. Comparing base (3ad633b) to head (ae7932f).
✅ All tests successful. No failed tests found.

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            
Flag Coverage Δ
active_job 99.67% <ø> (ø)
core 99.78% <100.00%> (+<0.01%) ⬆️
gcp 100.00% <ø> (ø)
karafka 100.00% <100.00%> (ø)
rack 100.00% <ø> (ø)
ractor 99.51% <100.00%> (+0.05%) ⬆️
rails 99.45% <100.00%> (ø)
rails_support 100.00% <ø> (ø)
redaction 100.00% <ø> (ø)
semantic_logger 98.01% <ø> (ø)
Files with missing lines Coverage Δ
gems/core/lib/julewire/core.rb 100.00% <100.00%> (ø)
...ore/lib/julewire/core/destinations/chaos_output.rb 98.21% <100.00%> (+0.13%) ⬆️
.../core/lib/julewire/core/destinations/collection.rb 100.00% <100.00%> (ø)
...core/lib/julewire/core/destinations/destination.rb 100.00% <100.00%> (ø)
.../julewire/core/destinations/synchronized_output.rb 100.00% <100.00%> (ø)
...re/lib/julewire/core/destinations/tail_sampling.rb 100.00% <100.00%> (ø)
gems/core/lib/julewire/core/facade_methods.rb 100.00% <100.00%> (ø)
...lib/julewire/core/integration/before_fork_hooks.rb 100.00% <100.00%> (ø)
...s/core/lib/julewire/core/integration/fork_hooks.rb 100.00% <100.00%> (ø)
...s/core/lib/julewire/core/integration/hook_names.rb 100.00% <100.00%> (ø)
... and 19 more

@slbug
slbug requested a balanced review from Copilot August 9, 2026 11:31

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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_fork is never set. Core then rolls this destination back via after_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.

Comment thread gems/ractor/lib/julewire/ractor/destination.rb Outdated
Comment thread gems/ractor/lib/julewire/ractor/destination.rb Outdated
Comment thread gems/ractor/CHANGELOG.md Outdated
@slbug
slbug requested a balanced review from Copilot August 9, 2026 12:56

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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, so close_output: true resources never receive close. 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::ForkTracker already invokes Julewire.after_fork! after Process._fork (as documented immediately above). Calling it again from on_worker_boot forwards a second after_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.

Comment thread gems/core/lib/julewire/core/destinations/tail_sampling.rb Outdated
Comment thread gems/core/lib/julewire/core/destinations/collection.rb
@slbug
slbug requested a balanced review from Copilot August 9, 2026 13:58

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 88 out of 100 changed files in this pull request and generated 1 comment.

Comment thread gems/ractor/lib/julewire/ractor/destination.rb
@slbug
slbug requested a balanced review from Copilot August 9, 2026 14:42

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 88 out of 100 changed files in this pull request and generated 1 comment.

Comment thread gems/karafka/lib/julewire/karafka/fork_hooks.rb
@slbug
slbug requested a balanced review from Copilot August 9, 2026 15:44

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 90 out of 102 changed files in this pull request and generated no new comments.

@slbug
slbug merged commit 68ad5da into main Aug 9, 2026
77 checks passed
@slbug
slbug deleted the update_deps_and_rubydex branch August 9, 2026 15:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants