Skip to content

[CRE] Remove legacy DAG paths from workflows/wasm/host - #2382

Open
bolekk wants to merge 1 commit into
mainfrom
keystone_wasm_cleanup_c2
Open

bolekk wants to merge 1 commit into
mainfrom
keystone_wasm_cleanup_c2

Conversation

@bolekk

@bolekk bolekk commented Sep 11, 2026

Copy link
Copy Markdown
Contributor

Strips the v1 legacy DAG machinery from the wasm host ahead of the DAG WASM removal (CRE-5836): ModuleV1/Run, linkLegacyDAG, IsLegacyDAG, GetWorkflowSpec, the legacy fetch/emit/log env imports and converters, the determinism random_get shim, the legacy poll_oneoff stub and fake clock, and the Fetch/MaxFetchRequests/Labeler/Determinism module config fields. IsLegacyDAG is also dropped from host.ModuleBase.

The sleep/oom test drivers are ported to v2 guests (rawsdk import) and driven via Execute, the two brotli/size tests are kept, and the 13 legacy guest test modules plus the dead test/requirements fixtures, mocks/module_v1 and its .mockery.yaml entry are deleted.

@github-actions

github-actions Bot commented Sep 11, 2026

Copy link
Copy Markdown
Contributor

⚠️ API Diff Results - github.com/smartcontractkit/chainlink-common

⚠️ Breaking Changes (28)

package github (3)
  • com/smartcontractkit/chainlink-common/pkg/workflows/wasm/host/test/builderr/cmd — 🗑️ Removed

  • com/smartcontractkit/chainlink-common/pkg/workflows/wasm/host/test/computepanic/cmd — 🗑️ Removed

  • com/smartcontractkit/chainlink-common/pkg/workflows/wasm/host/test/runnerapi/cmd — 🗑️ Removed

pkg/workflows/host.ModuleBase (2)
  • IsLegacyDAG — 🗑️ Removed

  • IsLegacyDAG, method set of *ModuleAndHandler — 🗑️ Removed

pkg/workflows/host/mocks (1)
  • Module_IsLegacyDAG_Call — 🗑️ Removed
pkg/workflows/host/mocks.(*Module) (1)
  • IsLegacyDAG — 🗑️ Removed
pkg/workflows/host/mocks.(*Module_Expecter) (1)
  • IsLegacyDAG — 🗑️ Removed
pkg/workflows/wasm/host (7)
  • DeterminismConfig — 🗑️ Removed

  • FetchRequest — 🗑️ Removed

  • FetchRequestMetadata — 🗑️ Removed

  • FetchResponse — 🗑️ Removed

  • GetWorkflowSpec — 🗑️ Removed

  • ModuleV1 — 🗑️ Removed

  • WithDeterminism — 🗑️ Removed

pkg/workflows/wasm/host.(*module) (2)
  • IsLegacyDAG — 🗑️ Removed

  • Run — 🗑️ Removed

pkg/workflows/wasm/host.ModuleConfig (4)
  • Determinism — 🗑️ Removed

  • Fetch — 🗑️ Removed

  • Labeler — 🗑️ Removed

  • MaxFetchRequests — 🗑️ Removed

pkg/workflows/wasm/host/mocks (7)
  • ModuleV1 — 🗑️ Removed

  • ModuleV1_Close_Call — 🗑️ Removed

  • ModuleV1_Expecter — 🗑️ Removed

  • ModuleV1_IsLegacyDAG_Call — 🗑️ Removed

  • ModuleV1_Run_Call — 🗑️ Removed

  • ModuleV1_Start_Call — 🗑️ Removed

  • NewModuleV1 — 🗑️ Removed


📄 View full apidiff report

Strips the v1 legacy DAG machinery from the wasm host ahead of the DAG
WASM removal (CRE-5836): ModuleV1/Run, linkLegacyDAG, IsLegacyDAG,
GetWorkflowSpec, the legacy fetch/emit/log env imports and converters,
the determinism random_get shim, the legacy poll_oneoff stub and fake
clock, and the Fetch/MaxFetchRequests/Labeler/Determinism module config
fields. IsLegacyDAG is also dropped from host.ModuleBase.

The sleep/oom test drivers are ported to v2 guests (rawsdk import) and
driven via Execute, the two brotli/size tests are kept, and the 13
legacy guest test modules plus the dead test/requirements fixtures,
mocks/module_v1 and its .mockery.yaml entry are deleted.
@bolekk
bolekk force-pushed the keystone_wasm_cleanup_c2 branch from 1cfb5ef to 7e496f7 Compare September 16, 2026 01:05
@bolekk
bolekk marked this pull request as ready for review September 16, 2026 15:39
@bolekk
bolekk requested review from a team as code owners September 16, 2026 15:39

@nolag nolag left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Up to you to address my comments or not. I'm ok with the breaking change given we want to burn this bridge, but also get that we can leave a couple few and not worry about compliation.

type ModuleBase interface {
Start()
Close()
IsLegacyDAG() bool

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Should we just return false and make it a non-breaking change?

}

// Run is deprecated, use execute instead
func (m *module) Run(ctx context.Context, request *wasmdagpb.Request) (*wasmdagpb.Response, error) {

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

If we want "non-breaking" for the interface, we can return an error saying we no longer run these.

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