The agent's Resque instrumentation makes use of the resolv-replace gem that is automatically available for all currently supported Rubies (v2.4 - v3.3). Starting with Ruby v3.4, resolve-replace will not be present by default and will need to be sourced from RubyGems.org as a dependency. We need to understand what this Ruby v3.4 driven change will mean for our Resque instrumentation.
We have a hypothesis that the agent's existing use of resolv-replace is not actually necessary for modern Resque versions. If this is true AND we have already dropped support for the older Resque versions that necessitated it, we can simply refactor out the agent's resolv-replace logic. If resolv-replace is still required, then things are a bit trickier. We might not want to declare resolv-replace as a dependency of the agent when it is unnecessary for all customers not using Resque. We might be able to fork the sliver of resolv-replace logic that we use. We might be able to refactor around the need for resolv-replace. We might be able to put the onus of bringing resolv-replace on the customer with conditional logic that only enables Resque instrumentation if that gem is present.
NOTE: Ruby v3.4 is expected to release on 2024-12-25.
The agent's Resque instrumentation makes use of the
resolv-replace
gem that is automatically available for all currently supported Rubies (v2.4 - v3.3). Starting with Ruby v3.4,resolve-replace
will not be present by default and will need to be sourced from RubyGems.org as a dependency. We need to understand what this Ruby v3.4 driven change will mean for our Resque instrumentation.We have a hypothesis that the agent's existing use of
resolv-replace
is not actually necessary for modern Resque versions. If this is true AND we have already dropped support for the older Resque versions that necessitated it, we can simply refactor out the agent'sresolv-replace
logic. Ifresolv-replace
is still required, then things are a bit trickier. We might not want to declareresolv-replace
as a dependency of the agent when it is unnecessary for all customers not using Resque. We might be able to fork the sliver ofresolv-replace
logic that we use. We might be able to refactor around the need forresolv-replace
. We might be able to put the onus of bringingresolv-replace
on the customer with conditional logic that only enables Resque instrumentation if that gem is present.NOTE: Ruby v3.4 is expected to release on 2024-12-25.