Skip to content

refactor(op): Extract starlark infrastructure from pkg/op into pkg/op/bind #264

Closed

Description

@David-Noble-at-work

Summary

Split pkg/op into a starlark-free core (pkg/op) and a starlark binding package (pkg/op/bind). Create a plan provider (pkg/op/provider/plan) that implements graph-construction as a regular immediate provider. Flatten the plan namespace and eliminate the plan.flow sub-namespace.

Goals

  1. pkg/op is starlark-free — zero go.starlark.net imports
  2. pkg/op/bind owns all starlark binding infrastructure — runtime, marshal, receivers, promise
  3. bind has a minimal public API — bind.StarlarkRuntime and bind.StarlarkConfig only
  4. Plan is a provider — pkg/op/provider/plan with pure Go graph-construction methods
  5. Flat plan namespace — plan.choose, plan.complete, plan.wait_until etc. at top level
  6. No circular dependencies — bind imports op, never the reverse

Phases

  1. Create plan provider and flatten plan namespace
  2. Create pkg/op/bind package (move starlark binding infrastructure)
  3. Sever starlark references from pkg/op
  4. Update generated code and code generator
  5. Update consumers and verify

Plan

See docs/plans/extract-starlark-from-op.md

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions