Skip to content

ref(resolvers): remove the TraceItemDataResolver abstraction - #8455

Open
MeredithAnya wants to merge 1 commit into
meredith/convert-resolver-trace-item-tablefrom
meredith/remove-resolver-abstraction
Open

ref(resolvers): remove the TraceItemDataResolver abstraction#8455
MeredithAnya wants to merge 1 commit into
meredith/convert-resolver-trace-item-tablefrom
meredith/remove-resolver-abstraction

Conversation

@MeredithAnya

Copy link
Copy Markdown
Member

Stack

  1. ref(resolvers): remove unused resolver declarations #8451 ref(resolvers): remove unused resolver declarations
  2. ref(resolvers): inline the trace item stats resolver #8452 ref(resolvers): inline the trace item stats resolver
  3. ref(resolvers): inline the time series resolver #8453 ref(resolvers): inline the time series resolver
  4. ref(resolvers): inline the trace item table resolver #8454 ref(resolvers): inline the trace item table resolver
  5. → #this ref(resolvers): remove the TraceItemDataResolver abstraction

What

No endpoint dispatches through a resolver anymore, so this deletes:

  • TraceItemDataResolver and RPCEndpoint.get_resolver in snuba/web/rpc/__init__.py
  • the whole snuba/web/rpc/v1/resolvers/ package, including the _TO_IMPORT directory scan that populated the registry as an import side effect

Re-homing the non-resolvers

resolvers/ also held modules that were never resolvers and are imported by already-converted endpoints (endpoint_trace_item_attribute_names.py, trace_item_attribute_values.py, endpoint_get_traces.py), so they move somewhere that describes them — following eefb13118:

From To
resolvers/common/{aggregation,trace_item_table,cross_item_queries,formula_reliability}.py snuba/web/rpc/common/
resolvers/R_eap_items/heatmap_builder.py snuba/web/rpc/v1/
resolvers/R_eap_items/co_occurring_attrs/ snuba/web/rpc/v1/
tests/web/rpc/v1/resolvers/.../co_occurring_attrs/ tests/web/rpc/v1/co_occurring_attrs/

All git mv, so they should show as renames.

Verification

  • pytest tests/web/rpc/826 passed, 2 skipped, 2 xfailed
  • mypy snuba/ → clean across 816 files
  • grep -rn 'resolver' snuba/web/rpc/ returns only the unrelated snuba/query/allocation_policies/resolver.py import

Worth a second look: deleting the _TO_IMPORT scan removes an import side effect. The passing suite dispatches these endpoints by name over HTTP, which covers registration, but I couldn't run a standalone import smoke check — a bare python -c 'from snuba.web.rpc import RPCEndpoint' fails with AttributeError: METRICS_COUNTERS on master too, so that's a pre-existing settings-profile thing rather than something introduced here.

🤖 Generated with Claude Code

No endpoint dispatches through a resolver anymore, so delete
TraceItemDataResolver, RPCEndpoint.get_resolver, and the resolvers
package -- including the directory-scan auto-import that populated the
registry as an import side effect.

The modules under resolvers/ that were never resolvers move to homes
that describe them, following eefb131:

  resolvers/common/*            -> snuba/web/rpc/common/
  R_eap_items/heatmap_builder   -> snuba/web/rpc/v1/
  R_eap_items/co_occurring_attrs -> snuba/web/rpc/v1/

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@MeredithAnya
MeredithAnya requested review from a team as code owners September 9, 2026 23:46
@MeredithAnya
MeredithAnya added this pull request to stack #8456 September 9, 2026 23:52
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