Skip to content

DF-22956: case normalization canary integration tests & rollout guide#4744

Open
cl-efornaciari wants to merge 3 commits intomainfrom
feature/DF-22956/blocksize-case-normalization
Open

DF-22956: case normalization canary integration tests & rollout guide#4744
cl-efornaciari wants to merge 3 commits intomainfrom
feature/DF-22956/blocksize-case-normalization

Conversation

@cl-efornaciari
Copy link
Contributor

@cl-efornaciari cl-efornaciari commented Mar 16, 2026

Summary

  • Adds integration tests for the blocksize-capital adapter verifying that mixed-case requests for base/quote pairs resolve to the same cached data when the framework-level NORMALIZE_CASE_INPUTS setting is enabled.
  • Fixes broken tiingoCommonSubscriptionRequestTransform in both tiingo and tiingo-state: the function was a factory that returned a transform without executing it, making the toLowerCase() call a no-op since it was written. Replaced with empty stubs.
  • Updates the phased rollout guide (CASE_NORMALIZATION_ROLLOUT.md) with full EA audit results confirming no adapter needs NORMALIZE_CASE_INPUTS=false — tiingo/tiingo-state are now high-priority rollout targets instead of opt-outs.

Dependencies

Jira

DF-22956

EA Audit Summary

Full audit of all source adapters confirmed:

  • 6 adapters have correct inline uppercase transforms (redundant but safe with framework normalization)
  • 12+ adapters have no base/quote transforms (framework normalization helps)
  • 5 adapters use non-base/quote params (unaffected)
  • 2 adapters (tiingo, tiingo-state) had broken factory-function transforms (fixed in this PR)
  • 0 adapters require NORMALIZE_CASE_INPUTS=false

Test plan

  • Integration tests for mixed-case deduplication (blocksize-capital)
  • Rollout guide reviewed and updated with full audit
  • Broken tiingo transforms fixed
  • CI passes on this PR
  • Framework version bump after ea-framework-js release

…sset handling

Adds tests verifying that mixed-case requests for the same asset pair
(e.g. ETH vs Eth vs eth) resolve to the same cached response without
causing WebSocket subscription churn.

These tests require @chainlink/external-adapter-framework >= 2.14.0
with NORMALIZE_CASE_INPUTS support (DF-22956).

Refs: DF-22956
Documents the phased rollout plan for DF-22956 NORMALIZE_CASE_INPUTS,
including adapter batches, opt-out instructions for tiingo/tiingo-state,
and optional cleanup of redundant requestTransforms.

Refs: DF-22956
@changeset-bot
Copy link

changeset-bot bot commented Mar 16, 2026

⚠️ No Changeset found

Latest commit: 87bdd11

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@cl-efornaciari cl-efornaciari changed the title test/docs(blocksize-capital): case normalization canary integration tests & rollout guide DF-22956: case normalization canary integration tests & rollout guide Mar 16, 2026
…t guide

tiingoCommonSubscriptionRequestTransform was a factory function that
returned a transform without executing it, making the toLowerCase()
call a no-op. Replace with an empty stub for backward compatibility.

Update rollout guide: full EA audit confirms no adapter needs
NORMALIZE_CASE_INPUTS=false. Add tiingo/tiingo-state as high-priority
rollout targets and document the broken transform bug.
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.

1 participant