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.

See full plan in https://docs.google.com/document/d/1pRJ8zXt7Z_skqksG7-yRoa6v7pMEbZ7jmhu5DybaI6s/edit?usp=sharing

Deployment Validation: Existing Canaries.

@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

nolag
nolag previously approved these changes Sep 16, 2026

@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.

pavel-raykov
pavel-raykov previously approved these changes Sep 17, 2026
@bolekk
bolekk dismissed stale reviews from pavel-raykov and nolag via d787e16 September 19, 2026 17:29
@bolekk
bolekk force-pushed the keystone_wasm_cleanup_c2 branch from 9870d9f to d787e16 Compare September 19, 2026 17:29

@github-actions github-actions Bot 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.

⚠️ Performance Alert ⚠️

Possible performance regression was detected for benchmark.
Benchmark result of this commit is worse than the previous benchmark result exceeding threshold 2.

Benchmark suite Current: 22538eb Previous: 525697c Ratio
BenchmarkKeystore_Sign/nop/in-process 820.6 ns/op 350.1 ns/op 2.34

This comment was automatically generated by workflow using github-action-benchmark.

@bolekk
bolekk force-pushed the keystone_wasm_cleanup_c2 branch from d787e16 to db24ccb Compare September 19, 2026 17:32
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 db24ccb to 22538eb Compare September 19, 2026 17:34
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.

3 participants